I found this which is realllly old http://www.daa.com.au/pipermail/pygtk/2002-September/003393.html
and I made it work with current code, unfortunatly the example wasn't complete so it is still not material for documentation.
GNOME_HelloApplet.server
Description: Binary data
#!/usr/bin/env python
import gtk
import gnome
import gnome.ui
import gnomeapplet
print 'starting'
def item_callback(item, name):
print item.child.get_text()
return True
def button_cb(widget, event, data):
menu = gtk.Menu()
applet = widget.get_data("applet")
item = gtk.MenuItem("OIT")
item.set_data("applet", applet)
item.connect("activate", item_callback, "OIT")
item.show()
menu.add(item)
item = gtk.MenuItem("Home")
item.set_data("applet", applet)
item.connect("activate", item_callback, "Home")
item.show()
menu.add(item)
item = gtk.MenuItem("Rogue")
item.set_data("applet", applet)
item.connect("activate", item_callback, "Rogue")
item.show()
menu.add(item)
menu.popup(None, None, None, event.button, event.time)
return True
def hello_factory(applet, iid):
box = gtk.HBox()
label = gtk.Button("Network:")
label.set_data("applet", applet)
label.set_relief(gtk.RELIEF_NONE)
label.connect("button-press-event", button_cb, None)
label.set_events(label.get_events() | gtk.gdk.BUTTON_PRESS_MASK)
applet.set_data("label", label)
box.pack_start(label)
applet.add(box)
applet.show_all()
return True
def add_items_from_list(menu, list):
for i in list:
if (i == "<sep>"):
item = gtk.SeparatorMenuItem()
menu.add(item)
else:
item = gtk.MenuItem(i)
item.connect("activate", item_callback, None)
menu.add(item)
def about_cb(widget, data):
about = gnome.ui.About("Network Chooser", "0.0.0", "(C) 2002 Rob",
"Applet for choosing your network from multiple locations.", ["Rob"], [""])
about.show()
def create_network_window(widget, data):
dialog = gnome.ui.Dialog()
dialog.show()
pass
menu = """
<popup name="button3">
<menuitem name="Item 1" verb="Networks" label="Networks..."
pixtype="stock" pixname="gtk-properties"/>
<menuitem name="Item 2" verb="Help" label="Help"
pixtype="stock" pixname="gtk-help"/>
<menuitem name="Item 3" verb="About" label="About..."
pixtype="stock" pixname="gnome-stock-about"/>
</popup>
"""
def hello_factory_test(applet, iid):
label = gtk.Label(' Network: None ')
applet.setup_menu(menu, [("Networks", create_network_window),
("About", about_cb),
("Help", None)
], None)
applet.add(label)
applet.show_all()
return True
gnomeapplet.bonobo_factory("OAFIID:GNOME_Hello_Factory",
gnomeapplet.Applet.__gtype__,
"hello", "0", hello_factory_test)
def main():
main_window = gtk.Window(gtk.WINDOW_TOPLEVEL)
main_window.set_title("Python Applet")
main_window.connect("destroy", gtk.main_quit)
app = gnomeapplet.Applet()
hello_factory_test(app, None)
app.reparent(main_window)
main_window.show_all()
gtk.main()
if __name__ == "__main__":
main()
_______________________________________________ pygtk mailing list [email protected] http://www.daa.com.au/mailman/listinfo/pygtk Read the PyGTK FAQ: http://www.async.com.br/faq/pygtk/
