Sha256: 61370bb501ce707f18f46c51a4b16d31129af9e879a2e11b0bb16c38f9fe4265
Contents?: true
Size: 1.3 KB
Versions: 40
Compression:
Stored size: 1.3 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 Php4r.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
40 entries across 40 versions & 1 rubygems