Class: Tgui::ListBox

Inherits:
Widget show all
Defined in:
lib/white_gold/dsl/list_box.rb,
lib/white_gold/generated/tgui-abi-loader.gf.rb

Defined Under Namespace

Classes: Item, SignalItem, Theme

Constant Summary collapse

@@auto_item_id =
"@/"

Constants included from ApiChild

ApiChild::API_CHILD_PREFIX

Instance Attribute Summary

Attributes inherited from Widget

#page

Attributes inherited from ExternObject

#pointer

Instance Method Summary collapse

Methods inherited from Widget

#_abi_ask_tool_tip, #_abi_can_gain_focus, _abi_finalizer, #_abi_finish_all_animations, #_abi_get_absolute_position, #_abi_get_boolean_renderer_property, #_abi_get_color_renderer_property, #_abi_get_float_renderer_property, #_abi_get_font_renderer_property, #_abi_get_full_size, #_abi_get_mouse_cursor, #_abi_get_name, #_abi_get_outline_renderer_property, #_abi_get_position, #_abi_get_size, #_abi_get_string_renderer_property, #_abi_get_text_size, #_abi_get_text_styles_renderer_property, #_abi_get_texture_renderer_property, #_abi_get_tool_tip, _abi_get_type, _abi_get_unshared, #_abi_get_widget_name, #_abi_hide_with_effect, #_abi_is_animation_playing, #_abi_is_container, #_abi_is_enabled, #_abi_is_focusable, #_abi_is_focused, #_abi_is_mouse_down, #_abi_is_visible, #_abi_key_pressed, #_abi_left_mouse_pressed, #_abi_left_mouse_released, #_abi_mouse_moved, #_abi_move_to_back, #_abi_move_to_front, #_abi_move_with_animation, #_abi_on_animation_finish, #_abi_on_focus, #_abi_on_mouse_enter, #_abi_on_mouse_leave, #_abi_on_position_change, #_abi_on_show_effect_finish, #_abi_on_size_change, #_abi_on_unfocus, #_abi_resize_with_animation, #_abi_right_mouse_pressed, #_abi_right_mouse_released, #_abi_scrolled, #_abi_set_boolean_renderer_property, #_abi_set_color_renderer_property, #_abi_set_enabled, #_abi_set_float_renderer_property, #_abi_set_focusable, #_abi_set_focused, #_abi_set_font_renderer_property, #_abi_set_height, #_abi_set_mouse_cursor, #_abi_set_outline_renderer_property, #_abi_set_position, #_abi_set_renderer, #_abi_set_size, #_abi_set_string_renderer_property, #_abi_set_text_size, #_abi_set_text_styles_renderer_property, #_abi_set_texture_renderer_property, #_abi_set_tool_tip, #_abi_set_visible, #_abi_set_widget_name, #_abi_set_width, #_abi_show_with_effect, #_abi_text_entered, api_attr, finalizer, #flags=, #height, #hide, #method_missing, #pack_animation_time, #renderer=, #respond_to?, #self_cast_up, self_renderer, #show, #theme_comp, #visible=, #width, #window

Methods included from ApiChild

#api_child

Methods included from BangDef

#def!

Methods included from BangNestedCaller

#bang_method_missing, #bang_object_stack, #bang_respond_to?, #self!, #upon!

Methods inherited from ExternObject

abi_attr, abi_bit_enum, abi_def, abi_enum, #abi_pack, abi_signal, abi_static, #abi_unpack, callback_storage, callback_storage=, data_storage=, finalizer, global_callback_storage, global_callback_storage=, #initialized, self_abi_def, self_abi_def_setter

Methods included from Packer

#abi_pack, #abi_packer, #abi_packer_method_name

Methods included from Unpacker

#abi_unpack, #abi_unpacker, #abi_unpacker_method_name

Constructor Details

#initialize(*a, pointer: nil) ⇒ ListBox

Returns a new instance of ListBox.



1306
# File 'lib/white_gold/generated/tgui-abi-loader.gf.rb', line 1306

def initialize(*a, pointer: nil);    Abi.call_arg_map! a; super(pointer: pointer || Abi.ABI_ListBox_new(*a)); initialized(); end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class Tgui::Widget

Instance Method Details

#[](object) ⇒ Object



126
127
128
129
# File 'lib/white_gold/dsl/list_box.rb', line 126

def [](object)
  id = self_find_id_by_object object
  id ? Item.new(self, id) : nil
end

#_abi_add_item(*a) ⇒ Object



1307
# File 'lib/white_gold/generated/tgui-abi-loader.gf.rb', line 1307

def _abi_add_item(*a);    Abi.call_arg_map! a; Abi.ABI_ListBox_addItem(@pointer, *a); end

#_abi_change_item(*a) ⇒ Object



1323
# File 'lib/white_gold/generated/tgui-abi-loader.gf.rb', line 1323

def _abi_change_item(*a);    Abi.call_arg_map! a; Abi.ABI_ListBox_changeItem(@pointer, *a); end

#_abi_change_item_by_id(*a) ⇒ Object



1324
# File 'lib/white_gold/generated/tgui-abi-loader.gf.rb', line 1324

def _abi_change_item_by_id(*a);    Abi.call_arg_map! a; Abi.ABI_ListBox_changeItemById(@pointer, *a); end

#_abi_change_item_by_index(*a) ⇒ Object



1325
# File 'lib/white_gold/generated/tgui-abi-loader.gf.rb', line 1325

def _abi_change_item_by_index(*a);    Abi.call_arg_map! a; Abi.ABI_ListBox_changeItemByIndex(@pointer, *a); end

#_abi_contains(*a) ⇒ Object



1337
# File 'lib/white_gold/generated/tgui-abi-loader.gf.rb', line 1337

def _abi_contains(*a);    Abi.call_arg_map! a; Abi.ABI_ListBox_contains(@pointer, *a); end

#_abi_contains_id(*a) ⇒ Object



1338
# File 'lib/white_gold/generated/tgui-abi-loader.gf.rb', line 1338

def _abi_contains_id(*a);    Abi.call_arg_map! a; Abi.ABI_ListBox_containsId(@pointer, *a); end

#_abi_deselect_item(*a) ⇒ Object



1311
# File 'lib/white_gold/generated/tgui-abi-loader.gf.rb', line 1311

def _abi_deselect_item(*a);    Abi.call_arg_map! a; Abi.ABI_ListBox_deselectItem(@pointer, *a); end

#_abi_get_auto_scroll(*a) ⇒ Object



1334
# File 'lib/white_gold/generated/tgui-abi-loader.gf.rb', line 1334

def _abi_get_auto_scroll(*a);    Abi.call_arg_map! a; Abi.ABI_ListBox_getAutoScroll(@pointer, *a); end

#_abi_get_id_by_index(*a) ⇒ Object



1319
# File 'lib/white_gold/generated/tgui-abi-loader.gf.rb', line 1319

def _abi_get_id_by_index(*a);    Abi.call_arg_map! a; Abi.ABI_ListBox_getIdByIndex(@pointer, *a); end

#_abi_get_index_by_id(*a) ⇒ Object



1318
# File 'lib/white_gold/generated/tgui-abi-loader.gf.rb', line 1318

def _abi_get_index_by_id(*a);    Abi.call_arg_map! a; Abi.ABI_ListBox_getIndexById(@pointer, *a); end

#_abi_get_item_by_id(*a) ⇒ Object



1316
# File 'lib/white_gold/generated/tgui-abi-loader.gf.rb', line 1316

def _abi_get_item_by_id(*a);    Abi.call_arg_map! a; Abi.ABI_ListBox_getItemById(@pointer, *a); end

#_abi_get_item_by_index(*a) ⇒ Object



1317
# File 'lib/white_gold/generated/tgui-abi-loader.gf.rb', line 1317

def _abi_get_item_by_index(*a);    Abi.call_arg_map! a; Abi.ABI_ListBox_getItemByIndex(@pointer, *a); end

#_abi_get_item_count(*a) ⇒ Object



1326
# File 'lib/white_gold/generated/tgui-abi-loader.gf.rb', line 1326

def _abi_get_item_count(*a);    Abi.call_arg_map! a; Abi.ABI_ListBox_getItemCount(@pointer, *a); end

#_abi_get_item_height(*a) ⇒ Object



1330
# File 'lib/white_gold/generated/tgui-abi-loader.gf.rb', line 1330

def _abi_get_item_height(*a);    Abi.call_arg_map! a; Abi.ABI_ListBox_getItemHeight(@pointer, *a); end

#_abi_get_item_ids(*a) ⇒ Object



1328
# File 'lib/white_gold/generated/tgui-abi-loader.gf.rb', line 1328

def _abi_get_item_ids(*a);    Abi.call_arg_map! a; Abi.ABI_ListBox_getItemIds(@pointer, *a); end

#_abi_get_items(*a) ⇒ Object



1327
# File 'lib/white_gold/generated/tgui-abi-loader.gf.rb', line 1327

def _abi_get_items(*a);    Abi.call_arg_map! a; Abi.ABI_ListBox_getItems(@pointer, *a); end

#_abi_get_maximum_items(*a) ⇒ Object



1332
# File 'lib/white_gold/generated/tgui-abi-loader.gf.rb', line 1332

def _abi_get_maximum_items(*a);    Abi.call_arg_map! a; Abi.ABI_ListBox_getMaximumItems(@pointer, *a); end

#_abi_get_scrollbar_value(*a) ⇒ Object



1340
# File 'lib/white_gold/generated/tgui-abi-loader.gf.rb', line 1340

def _abi_get_scrollbar_value(*a);    Abi.call_arg_map! a; Abi.ABI_ListBox_getScrollbarValue(@pointer, *a); end

#_abi_get_selected_item(*a) ⇒ Object



1320
# File 'lib/white_gold/generated/tgui-abi-loader.gf.rb', line 1320

def _abi_get_selected_item(*a);    Abi.call_arg_map! a; Abi.ABI_ListBox_getSelectedItem(@pointer, *a); end

#_abi_get_selected_item_id(*a) ⇒ Object



1321
# File 'lib/white_gold/generated/tgui-abi-loader.gf.rb', line 1321

def _abi_get_selected_item_id(*a);    Abi.call_arg_map! a; Abi.ABI_ListBox_getSelectedItemId(@pointer, *a); end

#_abi_get_selected_item_index(*a) ⇒ Object



1322
# File 'lib/white_gold/generated/tgui-abi-loader.gf.rb', line 1322

def _abi_get_selected_item_index(*a);    Abi.call_arg_map! a; Abi.ABI_ListBox_getSelectedItemIndex(@pointer, *a); end

#_abi_get_text_alignment(*a) ⇒ Object



1336
# File 'lib/white_gold/generated/tgui-abi-loader.gf.rb', line 1336

def _abi_get_text_alignment(*a);    Abi.call_arg_map! a; Abi.ABI_ListBox_getTextAlignment(@pointer, *a); end

#_abi_on_double_click(*a) ⇒ Object



1344
# File 'lib/white_gold/generated/tgui-abi-loader.gf.rb', line 1344

def _abi_on_double_click(*a);    Abi.call_arg_map! a; Abi.ABI_ListBox_onDoubleClick(@pointer, *a); end

#_abi_on_item_select(*a) ⇒ Object



1341
# File 'lib/white_gold/generated/tgui-abi-loader.gf.rb', line 1341

def _abi_on_item_select(*a);    Abi.call_arg_map! a; Abi.ABI_ListBox_onItemSelect(@pointer, *a); end

#_abi_on_mouse_press(*a) ⇒ Object



1342
# File 'lib/white_gold/generated/tgui-abi-loader.gf.rb', line 1342

def _abi_on_mouse_press(*a);    Abi.call_arg_map! a; Abi.ABI_ListBox_onMousePress(@pointer, *a); end

#_abi_on_mouse_release(*a) ⇒ Object



1343
# File 'lib/white_gold/generated/tgui-abi-loader.gf.rb', line 1343

def _abi_on_mouse_release(*a);    Abi.call_arg_map! a; Abi.ABI_ListBox_onMouseRelease(@pointer, *a); end

#_abi_on_scroll(*a) ⇒ Object



1345
# File 'lib/white_gold/generated/tgui-abi-loader.gf.rb', line 1345

def _abi_on_scroll(*a);    Abi.call_arg_map! a; Abi.ABI_ListBox_onScroll(@pointer, *a); end

#_abi_remove_all_items(*a) ⇒ Object



1315
# File 'lib/white_gold/generated/tgui-abi-loader.gf.rb', line 1315

def _abi_remove_all_items(*a);    Abi.call_arg_map! a; Abi.ABI_ListBox_removeAllItems(@pointer, *a); end

#_abi_remove_item(*a) ⇒ Object



1312
# File 'lib/white_gold/generated/tgui-abi-loader.gf.rb', line 1312

def _abi_remove_item(*a);    Abi.call_arg_map! a; Abi.ABI_ListBox_removeItem(@pointer, *a); end

#_abi_remove_item_by_id(*a) ⇒ Object



1313
# File 'lib/white_gold/generated/tgui-abi-loader.gf.rb', line 1313

def _abi_remove_item_by_id(*a);    Abi.call_arg_map! a; Abi.ABI_ListBox_removeItemById(@pointer, *a); end

#_abi_remove_item_by_index(*a) ⇒ Object



1314
# File 'lib/white_gold/generated/tgui-abi-loader.gf.rb', line 1314

def _abi_remove_item_by_index(*a);    Abi.call_arg_map! a; Abi.ABI_ListBox_removeItemByIndex(@pointer, *a); end

#_abi_set_auto_scroll(*a) ⇒ Object



1333
# File 'lib/white_gold/generated/tgui-abi-loader.gf.rb', line 1333

def _abi_set_auto_scroll(*a);    Abi.call_arg_map! a; Abi.ABI_ListBox_setAutoScroll(@pointer, *a); end

#_abi_set_item_height(*a) ⇒ Object



1329
# File 'lib/white_gold/generated/tgui-abi-loader.gf.rb', line 1329

def _abi_set_item_height(*a);    Abi.call_arg_map! a; Abi.ABI_ListBox_setItemHeight(@pointer, *a); end

#_abi_set_maximum_items(*a) ⇒ Object



1331
# File 'lib/white_gold/generated/tgui-abi-loader.gf.rb', line 1331

def _abi_set_maximum_items(*a);    Abi.call_arg_map! a; Abi.ABI_ListBox_setMaximumItems(@pointer, *a); end

#_abi_set_scrollbar_value(*a) ⇒ Object



1339
# File 'lib/white_gold/generated/tgui-abi-loader.gf.rb', line 1339

def _abi_set_scrollbar_value(*a);    Abi.call_arg_map! a; Abi.ABI_ListBox_setScrollbarValue(@pointer, *a); end

#_abi_set_selected_item(*a) ⇒ Object



1308
# File 'lib/white_gold/generated/tgui-abi-loader.gf.rb', line 1308

def _abi_set_selected_item(*a);    Abi.call_arg_map! a; Abi.ABI_ListBox_setSelectedItem(@pointer, *a); end

#_abi_set_selected_item_by_id(*a) ⇒ Object



1309
# File 'lib/white_gold/generated/tgui-abi-loader.gf.rb', line 1309

def _abi_set_selected_item_by_id(*a);    Abi.call_arg_map! a; Abi.ABI_ListBox_setSelectedItemById(@pointer, *a); end

#_abi_set_selected_item_by_index(*a) ⇒ Object



1310
# File 'lib/white_gold/generated/tgui-abi-loader.gf.rb', line 1310

def _abi_set_selected_item_by_index(*a);    Abi.call_arg_map! a; Abi.ABI_ListBox_setSelectedItemByIndex(@pointer, *a); end

#_abi_set_text_alignment(*a) ⇒ Object



1335
# File 'lib/white_gold/generated/tgui-abi-loader.gf.rb', line 1335

def _abi_set_text_alignment(*a);    Abi.call_arg_map! a; Abi.ABI_ListBox_setTextAlignment(@pointer, *a); end

#itemsObject



122
123
124
# File 'lib/white_gold/dsl/list_box.rb', line 122

def items
  self_objects.values
end

#items=(items) ⇒ Object



115
116
117
118
119
120
# File 'lib/white_gold/dsl/list_box.rb', line 115

def items=(items)
  remove_all
  items.each do |item|
    self.item item
  end
end

#remove(object) ⇒ Object



107
108
109
110
111
112
113
# File 'lib/white_gold/dsl/list_box.rb', line 107

def remove object
  id = self_find_id_by_object object
  if id
    _abi_remove_item_by_id abi_pack_string(id)
    self_objects.delete id
  end
end

#remove_allObject



90
91
92
93
# File 'lib/white_gold/dsl/list_box.rb', line 90

def remove_all
  self_objects.clear
  _abi_remove_all_items
end

#selectedObject



95
96
97
# File 'lib/white_gold/dsl/list_box.rb', line 95

def selected
  return self_objects[abi_unpack_string _abi_get_selected_item_id]
end

#selected=(object) ⇒ Object



99
100
101
102
103
# File 'lib/white_gold/dsl/list_box.rb', line 99

def selected=(object)
  id = self_find_id_by_object object
  raise "`#{object}` is out of the listbox" if !id
  _abi_set_selected_item_by_id abi_pack_string(id)
end

#self_find_id_by_object(object) ⇒ Object



141
142
143
# File 'lib/white_gold/dsl/list_box.rb', line 141

def self_find_id_by_object object
  self_objects.find{ _2 == object }&.at(0)
end

#self_get_object_by_id(id) ⇒ Object



137
138
139
# File 'lib/white_gold/dsl/list_box.rb', line 137

def self_get_object_by_id id
  return self_objects[id]
end