class Glimmer::Tk::ListProxy
Custom list widget implementation
Public Class Methods
new(underscored_widget_name, parent_proxy, args)
click to toggle source
Calls superclass method
# File lib/glimmer/tk/list_proxy.rb, line 28 def initialize(underscored_widget_name, parent_proxy, args) super('treeview', parent_proxy, args) @tk.show = 'tree' end
Public Instance Methods
widget_custom_attribute_mapping()
click to toggle source
# File lib/glimmer/tk/list_proxy.rb, line 33 def widget_custom_attribute_mapping @widget_custom_attribute_mapping ||= { ::Tk::Tile::Treeview => { 'items' => { getter: {name: 'items', invoker: lambda { |widget, args| tk.children('').map(&:text) }}, setter: {name: 'items=', invoker: lambda { |widget, args| @tk.delete @tk.children('') args.first.each do |child| @tk.insert('', 'end', :text => child) end }}, }, 'selection' => { getter: {name: 'selection', invoker: lambda { |widget, args| @tk.selection.map(&:text) }}, setter: {name: 'selection=', invoker: lambda { |widget, args| selection_args = args.first.is_a?(Array) ? args.first : [args.first] selection_items = selection_args.map do |arg| @tk.children('').detect {|item| item.text == arg} end @tk.selection_set(*selection_items) }}, }, }, } end