diff options
author | John Stowers <john.stowers@gmail.com> | 2010-05-08 12:14:59 +1200 |
---|---|---|
committer | John Stowers <john.stowers@gmail.com> | 2010-05-08 12:52:38 +1200 |
commit | a744feaed3dd56c85ac730f5114ff705c8bd067a (patch) | |
tree | 3af6c25cfb23fb3f9dc81e41e73e54c53ecc04d0 /examples | |
parent | f0d8199252e79e5e257b0b92c2ecf3f92afc7ea1 (diff) | |
download | pygtk-a744feaed3dd56c85ac730f5114ff705c8bd067a.tar.gz |
Add a gtk.InfoBar demo
Diffstat (limited to 'examples')
-rw-r--r-- | examples/Makefile.am | 3 | ||||
-rw-r--r-- | examples/pygtk-demo/demos/infobar.py | 87 |
2 files changed, 89 insertions, 1 deletions
diff --git a/examples/Makefile.am b/examples/Makefile.am index 2edce6bf..268b223a 100644 --- a/examples/Makefile.am +++ b/examples/Makefile.am @@ -89,7 +89,8 @@ demo_PYTHON = \ pygtk-demo/demos/tree_store.py \ pygtk-demo/demos/treemodel.py \ pygtk-demo/demos/statusicon.py \ - pygtk-demo/demos/ui_manager.py + pygtk-demo/demos/ui_manager.py \ + pygtk-demo/demos/infobar.py demoimg_DATA = \ pygtk-demo/demos/images/alphatest.png \ diff --git a/examples/pygtk-demo/demos/infobar.py b/examples/pygtk-demo/demos/infobar.py new file mode 100644 index 00000000..b4a5440d --- /dev/null +++ b/examples/pygtk-demo/demos/infobar.py @@ -0,0 +1,87 @@ +#!/usr/bin/env python +'''Info Bar + +is a widget that can be used to show messages to the user without showing a +dialog. It is often temporarily shown at the top or bottom of a document. +''' +# pygtk version: John Stowers <john.stowers@gmail.com> + +import gtk + +class InfoBarDemo(gtk.Window): + def __init__(self, parent=None): + 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_border_width(8) + + vb = gtk.VBox() + self.add(vb) + + bar = gtk.InfoBar() + vb.pack_start(bar, False, False) + bar.set_message_type(gtk.MESSAGE_INFO) + bar.get_content_area().pack_start( + gtk.Label("This is an info bar with message type GTK_MESSAGE_INFO"), + False, False) + + bar = gtk.InfoBar() + vb.pack_start(bar, False, False) + bar.set_message_type(gtk.MESSAGE_WARNING) + bar.get_content_area().pack_start( + gtk.Label("This is an info bar with message type GTK_MESSAGE_WARNING"), + False, False) + + bar = gtk.InfoBar() + bar.add_button(gtk.STOCK_OK, gtk.RESPONSE_OK) + bar.connect("response", self._on_bar_response) + vb.pack_start(bar, False, False) + bar.set_message_type(gtk.MESSAGE_QUESTION) + bar.get_content_area().pack_start( + gtk.Label("This is an info bar with message type GTK_MESSAGE_QUESTION"), + False, False) + + bar = gtk.InfoBar() + vb.pack_start(bar, False, False) + bar.set_message_type(gtk.MESSAGE_ERROR) + bar.get_content_area().pack_start( + gtk.Label("This is an info bar with message type GTK_MESSAGE_ERROR"), + False, False) + + bar = gtk.InfoBar() + vb.pack_start(bar, False, False) + bar.set_message_type(gtk.MESSAGE_OTHER) + bar.get_content_area().pack_start( + gtk.Label("This is an info bar with message type GTK_MESSAGE_OTHER"), + False, False) + + frame = gtk.Frame("Info bars") + vb.pack_start(frame, False, False, 8) + vb2 = gtk.VBox(spacing=8) + vb2.set_border_width(8) + frame.add(vb2) + vb2.pack_start(gtk.Label("An example of different info bars"), False, False) + + self.show_all() + + def _on_bar_response(self, button, response_id): + dialog = gtk.MessageDialog( + self, + gtk.DIALOG_MODAL|gtk.DIALOG_DESTROY_WITH_PARENT, + gtk.MESSAGE_INFO, + gtk.BUTTONS_OK, + "You clicked a button on an info bar") + dialog.format_secondary_text("Your response has id %d" % response_id) + dialog.run() + dialog.destroy() + + +def main(): + InfoBarDemo() + gtk.main() + +if __name__ == '__main__': + main() |