Class | Tk::Iwidgets::Menubar |
In: |
tk/lib/tkextlib/iwidgets/menubar.rb
|
Parent: | Tk::Itk::Widget |
TkCommandNames | = | ['::iwidgets::menubar'.freeze].freeze |
WidgetClassName | = | 'Menubar'.freeze |
itemcget | -> | menucget |
itemconfigure | -> | menuconfigure |
itemconfiginfo | -> | menuconfiginfo |
current_itemconfiginfo | -> | current_menuconfiginfo |
# File tk/lib/tkextlib/iwidgets/menubar.rb, line 74 def __methodcall_optkeys {'menubuttons'=>'menubuttons'} end
# File tk/lib/tkextlib/iwidgets/menubar.rb, line 87 def _parse_menu_spec(menu_spec) ret = '' menu_spec.each{|spec| next unless spec if spec.kind_of?(Hash) args = [spec] type = 'options' else type, *args = spec end type = type.to_s case type when 'options' keys = args[0] ary = [type] ary.concat(hash_kv(keys)) ret << array2tk_list(ary) << "\n" when 'menubutton', 'cascade' name, keys = args if keys ary = [type, name] keys = _symbolkey2str(keys) keys['menu'] = _parse_menu_spec(keys['menu']) if keys.key?('menu') ary.concat(hash_kv(keys)) ret << array2tk_list(ary) << "\n" else ret << array2tk_list([type, name]) << "\n" end else name, keys = args if keys ary = [type, name] ary.concat(hash_kv(keys)) ret << array2tk_list(ary) << "\n" else ret << array2tk_list([type, name]) << "\n" end end } ret end
# File tk/lib/tkextlib/iwidgets/menubar.rb, line 135 def add(type, tag=nil, keys={}) if tag.kind_of?(Hash) keys = tag tag = nil end if tag tag = Tk::Itk::Component.new(self, tagid(tag)) else tag = Tk::Itk::Component.new(self) end keys = _symbolkey2str(keys) keys['menu'] = _parse_menu_spec(keys['menu']) if keys.key?('menu') tk_call(@path, 'add', type, tagid(tag), *hash_kv(keys)) tag end
# File tk/lib/tkextlib/iwidgets/menubar.rb, line 151 def delete(path1, path2=nil) if path2 else tk_call(@path, 'delete', index(idx)) end self end
# File tk/lib/tkextlib/iwidgets/menubar.rb, line 159 def index(idx) number(tk_call(@path, 'index', tagid(idx))) end
# File tk/lib/tkextlib/iwidgets/menubar.rb, line 163 def insert(idx, type, tag=nil, keys={}) if tag.kind_of?(Hash) keys = tag tag = nil end if tag tag = Tk::Itk::Component.new(self, tagid(tag)) else tag = Tk::Itk::Component.new(self) end keys = _symbolkey2str(keys) keys['menu'] = _parse_menu_spec(keys['menu']) if keys.key?('menu') tk_call(@path, 'insert', index(idx), type, tagid(tag), *hash_kv(keys)) tag end
# File tk/lib/tkextlib/iwidgets/menubar.rb, line 179 def invoke(idx) tk_call(@path, 'invoke', index(idx)) self end
# File tk/lib/tkextlib/iwidgets/menubar.rb, line 78 def menubuttons(val = nil) unless val return tk_call(@path, 'cget', '-menubuttons') end tk_call(@path, 'configure', '-menubuttons', _parse_menu_spec(val)) self end
# File tk/lib/tkextlib/iwidgets/menubar.rb, line 184 def menupath(pat) if (win = tk_call(@path, 'path', pat)) == '-1' return nil end window(win) end
# File tk/lib/tkextlib/iwidgets/menubar.rb, line 190 def menupath_glob(pat) if (win = tk_call(@path, 'path', '-glob', pat)) == '-1' return nil end window(win) end
# File tk/lib/tkextlib/iwidgets/menubar.rb, line 196 def menupath_tclregexp(pat) if (win = tk_call(@path, 'path', '-regexp', pat)) == '-1' return nil end window(win) end
# File tk/lib/tkextlib/iwidgets/menubar.rb, line 55 def tagid(tagOrId) if tagOrId.kind_of?(Tk::Itk::Component) tagOrId.name else #_get_eval_string(tagOrId) tagOrId end end
# File tk/lib/tkextlib/iwidgets/menubar.rb, line 203 def type(path) tk_call(@path, 'type', path) end