Class: Tgui::TreeView

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

Defined Under Namespace

Classes: Item, SignalItemHierarchy, Theme, TreeNode

Constant Summary

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) ⇒ TreeView

Returns a new instance of TreeView.



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

def initialize(*a, pointer: nil);    Abi.call_arg_map! a; super(pointer: pointer || Abi.ABI_TreeView_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

#[](*path) ⇒ Object



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

def [](*path)
  Item.new self, path
end

#_abi_add_item(*a) ⇒ Object



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

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

#_abi_collapse(*a) ⇒ Object



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

def _abi_collapse(*a);    Abi.call_arg_map! a; Abi.ABI_TreeView_collapse(@pointer, *a); end

#_abi_collapse_all(*a) ⇒ Object



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

def _abi_collapse_all(*a);    Abi.call_arg_map! a; Abi.ABI_TreeView_collapseAll(@pointer, *a); end

#_abi_deselect_item(*a) ⇒ Object



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

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

#_abi_expand(*a) ⇒ Object



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

def _abi_expand(*a);    Abi.call_arg_map! a; Abi.ABI_TreeView_expand(@pointer, *a); end

#_abi_expand_all(*a) ⇒ Object



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

def _abi_expand_all(*a);    Abi.call_arg_map! a; Abi.ABI_TreeView_expandAll(@pointer, *a); end

#_abi_get_horizontal_scrollbar_value(*a) ⇒ Object



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

def _abi_get_horizontal_scrollbar_value(*a);    Abi.call_arg_map! a; Abi.ABI_TreeView_getHorizontalScrollbarValue(@pointer, *a); end

#_abi_get_item_height(*a) ⇒ Object



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

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

#_abi_get_nodes(*a) ⇒ Object



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

def _abi_get_nodes(*a);    Abi.call_arg_map! a; Abi.ABI_TreeView_getNodes(@pointer, *a); end

#_abi_get_selected_item(*a) ⇒ Object



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

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

#_abi_get_vertical_scrollbar_value(*a) ⇒ Object



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

def _abi_get_vertical_scrollbar_value(*a);    Abi.call_arg_map! a; Abi.ABI_TreeView_getVerticalScrollbarValue(@pointer, *a); end

#_abi_on_collapse(*a) ⇒ Object



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

def _abi_on_collapse(*a);    Abi.call_arg_map! a; Abi.ABI_TreeView_onCollapse(@pointer, *a); end

#_abi_on_double_click(*a) ⇒ Object



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

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

#_abi_on_expand(*a) ⇒ Object



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

def _abi_on_expand(*a);    Abi.call_arg_map! a; Abi.ABI_TreeView_onExpand(@pointer, *a); end

#_abi_on_item_select(*a) ⇒ Object



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

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

#_abi_on_right_click(*a) ⇒ Object



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

def _abi_on_right_click(*a);    Abi.call_arg_map! a; Abi.ABI_TreeView_onRightClick(@pointer, *a); end

#_abi_remove_all_items(*a) ⇒ Object



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

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

#_abi_remove_item(*a) ⇒ Object



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

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

#_abi_select_item(*a) ⇒ Object



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

def _abi_select_item(*a);    Abi.call_arg_map! a; Abi.ABI_TreeView_selectItem(@pointer, *a); end

#_abi_set_horizontal_scrollbar_value(*a) ⇒ Object



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

def _abi_set_horizontal_scrollbar_value(*a);    Abi.call_arg_map! a; Abi.ABI_TreeView_setHorizontalScrollbarValue(@pointer, *a); end

#_abi_set_item_height(*a) ⇒ Object



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

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

#_abi_set_vertical_scrollbar_value(*a) ⇒ Object



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

def _abi_set_vertical_scrollbar_value(*a);    Abi.call_arg_map! a; Abi.ABI_TreeView_setVerticalScrollbarValue(@pointer, *a); end

#itemsObject



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

def items
  self_collect_items self_tree
end

#items=(items) ⇒ Object



133
134
135
# File 'lib/white_gold/dsl/tree_view.rb', line 133

def items=(items)
  self_items items
end

#remove(*path) ⇒ Object



145
146
147
# File 'lib/white_gold/dsl/tree_view.rb', line 145

def remove *path
  self[*path].remove
end

#selectedObject



158
159
160
# File 'lib/white_gold/dsl/tree_view.rb', line 158

def selected
  selected_item&.object
end

#selected=(path) ⇒ Object



149
150
151
# File 'lib/white_gold/dsl/tree_view.rb', line 149

def selected=(path)
  self[*path].selected = true
end

#selected_itemObject



153
154
155
156
# File 'lib/white_gold/dsl/tree_view.rb', line 153

def selected_item
  path = self_selected_item_path
  path.empty? ? nil : Item.new(self, self_tree.path_str_to_object(path))
end

#self_add_item(path, object, **na, &b) ⇒ Object



191
192
193
194
195
196
197
198
199
# File 'lib/white_gold/dsl/tree_view.rb', line 191

def self_add_item path, object, **na, &b
  new_path = [*path, object]
  self_path_block new_path do
    _abi_add_item _1, _2, abi_pack_boolean(true)
    self_tree[*_3, grow: true].object = object
  end
  item = Item.new self, new_path
  upon! item, **na, &b
end

#self_collect_items(tree_node) ⇒ Object



186
187
188
# File 'lib/white_gold/dsl/tree_view.rb', line 186

def self_collect_items tree_node
  tree_node.nodes.map{|k, v| [v.object, self_collect_items(v)]}.to_h
end

#self_items(items, path = []) ⇒ Object



179
180
181
182
183
184
# File 'lib/white_gold/dsl/tree_view.rb', line 179

def self_items items, path = []
  items.each do |k, v|
    self_add_item path, k
    self_items v, [*path, k] if v.is_a? Hash
  end
end

#self_path_block(path, &b) ⇒ Object



201
202
203
204
# File 'lib/white_gold/dsl/tree_view.rb', line 201

def self_path_block path, &b
  path = path.map(&format)
  b.(*abi_pack(String.., *path), path)
end