Class: Gtk::SysTray
Instance Method Summary collapse
-
#initialize(window, title = "title?", config) ⇒ SysTray
constructor
A new instance of SysTray.
Constructor Details
#initialize(window, title = "title?", config) ⇒ SysTray
Returns a new instance of SysTray.
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/plugins/systray.rb', line 10 def initialize(window,title="title?",config) $statusIcon=self @popup_tray=Menu.new @checkMenu={} file= (config[:icon] && File.exist?(config[:icon])) ? config[:icon] : nil alert("No icon defined for systray (or unknown file)") if ! file config.each do |label,proc| if Proc === proc case label when /^\+/ bshow = CheckMenuItem.new(label[1..-1]) @checkMenu[bshow]=bshow bshow.signal_connect("toggled") { |w| proc.call(! w.active?) } #TODO : get checkButton state to application closure, set state with closure return value when /^-+/ bshow = SeparatorMenuItem.new else bshow = MenuItem.new(label) bshow.signal_connect("activate") { proc.call(window.visible?) } #TODO : icon in face of button end @popup_tray.append(bshow) end end if config[:quit] @bquit_tray=ImageMenuItem.new(Stock::QUIT) @bquit_tray.signal_connect("activate"){window.main_quit} @popup_tray.append(SeparatorMenuItem.new) @popup_tray.append(@bquit_tray) end @popup_tray.show_all super() self.pixbuf=if file then Gdk::Pixbuf.new(file) ;else nil ; end self.tooltip=title||"" self.signal_connect('activate'){ window.visible? ? window.hide : window.show } self.signal_connect('popup-menu'){|tray, , time| @popup_tray.popup(nil, nil, , time) } end |