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.

Attachment: 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/

Reply via email to