diff options
Diffstat (limited to 'examples/pygtk-demo/demos/builder.py')
-rw-r--r-- | examples/pygtk-demo/demos/builder.py | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/examples/pygtk-demo/demos/builder.py b/examples/pygtk-demo/demos/builder.py new file mode 100644 index 00000000..5df9d10c --- /dev/null +++ b/examples/pygtk-demo/demos/builder.py @@ -0,0 +1,50 @@ +#!/usr/bin/env python +'''Builder + +This is a test of the new gtk builder system. It is a +fairly straight forward port of the example distributed with gtk. +''' + +import gtk + +class BuilderDemo(gtk.Window): + def __init__(self, parent=None, filename="demos/demo.ui"): + gtk.Window.__init__(self) + try: + self.set_screen(parent.get_screen()) + except AttributeError: + self.connect('destroy', lambda *w: gtk.main_quit()) + self.set_title(self.__class__.__name__) + self.set_default_size(440, 250) + + # create a new empty Builer object + builder = gtk.Builder() + + # load an XML definition + builder.add_from_file(filename) + + # We must get the vbox and reparent it to self + # since we don't use the main window defined in the ui file + vbox = builder.get_object("vbox1") + vbox.reparent(self) + + # autoconnect the signals from the instance self + builder.connect_signals(self) + + self.show_all() + + def about_activate(self, action, data=None): + about_dlg = gtk.AboutDialog() + about_dlg.set_name("GtkBuilder demo") + about_dlg.run() + about_dlg.destroy() + + def quit_activate(self, action, data=None): + gtk.main_quit() + + def main(self): + gtk.main() + +if __name__ == '__main__': + build = BuilderDemo(None, "demo.ui") + build.main() |