Jag håller på och försöker skapa en tray icon till ett program jag mekar med och jag fattar inte hur allt ska komma ihop. Än så länge har jag iallfall en applet som dyker upp i notifieringsytan, men jag vill att man ska få upp en meny med olik val om man högerklickar på ikonen och att huvudprogrammet kommer upp om man vänsterklickar.
Någton som har någon erfarenhet av detta? Jag använder Python för koden, men själva GTK2+ anropet borde väl vara densamma oavsett språk. Kort sagt så är frågan hur jag ska få in en meny i koden nedan?
Kod: Markera allt
#!/usr/bin/env python
import os
import sys
import gtk
class StatusIcc:
# activate callback
def activate( self, widget, data=None):
dialog = gtk.MessageDialog(
parent = None,
flags = gtk.DIALOG_DESTROY_WITH_PARENT,
type = gtk.MESSAGE_INFO,
buttons = gtk.BUTTONS_YES_NO,
message_format = "This will open SixA's main window")
dialog.set_title('SixA')
dialog.connect('response', self.show_hide)
dialog.show()
# Show_Hide callback
def show_hide(self, widget,response_id, data= None):
if response_id == gtk.RESPONSE_YES:
widget.hide()
else:
widget.hide()
# destroyer callback
def destroyer(self, widget,response_id, data= None):
if response_id == gtk.RESPONSE_OK:
gtk.main_quit()
else:
widget.hide()
# popup callback
def popup(self, button, widget, data=None):
dialog = gtk.MessageDialog(
parent = None,
flags = gtk.DIALOG_DESTROY_WITH_PARENT,
type = gtk.MESSAGE_INFO,
buttons = gtk.BUTTONS_OK_CANCEL,
message_format = "Do you really want to quit SixA?")
dialog.set_title('Popup Window')
dialog.connect('response', self.destroyer)
dialog.show()
def __init__(self):
# create a new Status Icon
self.staticon = gtk.StatusIcon()
self.staticon.set_from_file("sixa-192.png")
self.staticon.connect("activate", self.activate)
self.staticon.connect("popup_menu", self.popup)
self.staticon.set_visible(True)
# invoking the main()
gtk.main()
if __name__ == "__main__":
statusicon = StatusIcc()