Sha256: 65c28bed8c477c99d65ea1f5eb746a70dc6d9e38cd3acbf48a37c284a59a1922
Contents?: true
Size: 1.16 KB
Versions: 4
Compression:
Stored size: 1.16 KB
Contents
class Knj::Gtk2::Menu def initialize(paras) @paras = paras @items = [] @mainmenu = Gtk::Menu.new @signal = "" count = 0 if @paras["items"].respond_to?("reverse") items = @paras["items"].reverse else items = @paras["items"] end if items.is_a?(Array) items = Knj::ArrayExt.dict(items) end items.each do |signal, menuitem| if menuitem.is_a?(Array) old_mi = menuitem menuitem = {"text" => menuitem[0], "connect" => menuitem[1]} end newitem = Gtk::MenuItem.new(menuitem["text"]) if menuitem["connect"] newitem.signal_connect("activate") do Knj::Php.call_user_func(menuitem["connect"]) end else newitem.signal_connect("activate") do on_menuitem_activate end end @items[count] = { "gtkmenuitem" => newitem, "signal" => signal } @mainmenu.prepend(newitem) count += 1 end event = Gdk::EventButton.new(Gdk::Event::BUTTON_PRESS) @mainmenu.show_all @mainmenu.popup(nil, nil, event.button, event.time) end def on_menuitem_activate(signal) @signal = signal end def signal() return @signal end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
knjrbfw-0.0.8 | lib/knj/gtk2_menu.rb |
knjrbfw-0.0.7 | lib/knj/gtk2_menu.rb |
knjrbfw-0.0.4 | lib/knj/gtk2_menu.rb |
knjrbfw-0.0.3 | lib/knj/gtk2_menu.rb |