summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorJohn Stowers <john.stowers@gmail.com>2010-05-08 12:14:59 +1200
committerJohn Stowers <john.stowers@gmail.com>2010-05-08 12:52:38 +1200
commita744feaed3dd56c85ac730f5114ff705c8bd067a (patch)
tree3af6c25cfb23fb3f9dc81e41e73e54c53ecc04d0 /examples
parentf0d8199252e79e5e257b0b92c2ecf3f92afc7ea1 (diff)
downloadpygtk-a744feaed3dd56c85ac730f5114ff705c8bd067a.tar.gz
Add a gtk.InfoBar demo
Diffstat (limited to 'examples')
-rw-r--r--examples/Makefile.am3
-rw-r--r--examples/pygtk-demo/demos/infobar.py87
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()