[pygi] new button box demo
- From: John Palmieri <johnp src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [pygi] new button box demo
- Date: Sun, 6 Jun 2010 03:53:52 +0000 (UTC)
commit 986db1c73746d3a8ad7d8d5141c7eed194e7b948
Author: John (J5) Palmieri <johnp redhat com>
Date: Sat Jun 5 23:53:36 2010 -0400
new button box demo
demos/gtk-demo/demos/button_box.py | 121 ++++++++++++++++++++++++++++++++++++
1 files changed, 121 insertions(+), 0 deletions(-)
---
diff --git a/demos/gtk-demo/demos/button_box.py b/demos/gtk-demo/demos/button_box.py
new file mode 100644
index 0000000..203166a
--- /dev/null
+++ b/demos/gtk-demo/demos/button_box.py
@@ -0,0 +1,121 @@
+#!/usr/bin/env python
+# -*- Mode: Python; py-indent-offset: 4 -*-
+# vim: tabstop=4 shiftwidth=4 expandtab
+#
+# Copyright (C) 2010 Red Hat, Inc., John (J5) Palmieri <johnp redhat com>
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
+# USA
+
+title = "Button Boxes"
+description = """
+The Button Box widgets are used to arrange buttons with padding.
+"""
+
+# See FIXME's
+is_fully_bound = True
+
+from gi.repository import Gtk
+
+class ButtonBoxApp:
+ def __init__(self):
+ window = Gtk.Window()
+ window.set_title('Button Boxes')
+ window.connect('destroy', lambda x: Gtk.main_quit())
+ window.set_border_width(10)
+
+ main_vbox = Gtk.VBox(homogeneous=False, spacing=0)
+ window.add(main_vbox)
+
+ frame_horz = Gtk.Frame(label='Horizontal Button Boxes')
+ main_vbox.pack_start(frame_horz, True, True, 10)
+
+ vbox = Gtk.VBox(homogeneous=False, spacing=0)
+ vbox.set_border_width(10)
+ frame_horz.add(vbox)
+
+ vbox.pack_start(
+ self.create_bbox(True, 'Spread', 40, Gtk.ButtonBoxStyle.SPREAD),
+ True, True, 0)
+
+ vbox.pack_start(
+ self.create_bbox(True, 'Edge', 40, Gtk.ButtonBoxStyle.EDGE),
+ True, True, 5)
+
+ vbox.pack_start(
+ self.create_bbox(True, 'Start', 40, Gtk.ButtonBoxStyle.START),
+ True, True, 5)
+
+ vbox.pack_start(
+ self.create_bbox(True, 'End', 40, Gtk.ButtonBoxStyle.END),
+ True, True, 5)
+
+ frame_vert = Gtk.Frame(label='Vertical Button Boxes')
+ main_vbox.pack_start(frame_vert, True, True, 10)
+
+ hbox = Gtk.HBox(homogeneous=False, spacing=0)
+ hbox.set_border_width(10)
+ frame_vert.add(hbox)
+
+ hbox.pack_start(
+ self.create_bbox(False, 'Spread', 30, Gtk.ButtonBoxStyle.SPREAD),
+ True, True, 0)
+
+ hbox.pack_start(
+ self.create_bbox(False, 'Edge', 30, Gtk.ButtonBoxStyle.EDGE),
+ True, True, 5)
+
+ hbox.pack_start(
+ self.create_bbox(False, 'Start', 30, Gtk.ButtonBoxStyle.START),
+ True, True, 5)
+
+ hbox.pack_start(
+ self.create_bbox(False, 'End', 30, Gtk.ButtonBoxStyle.END),
+ True, True, 5)
+
+ window.show_all()
+
+ def create_bbox(self, is_horizontal, title, spacing, layout):
+ frame = Gtk.Frame(label=title)
+
+ if is_horizontal:
+ bbox = Gtk.HButtonBox()
+ else:
+ bbox = Gtk.VButtonBox()
+
+ bbox.set_border_width(5)
+ frame.add(bbox)
+
+ bbox.set_layout(layout)
+ bbox.set_spacing(spacing)
+
+ # FIXME: GtkButton consturctor should take a stock_id
+ button = Gtk.Button.new_from_stock(Gtk.STOCK_OK)
+ bbox.add(button)
+
+ button = Gtk.Button.new_from_stock(Gtk.STOCK_CANCEL)
+ bbox.add(button)
+
+ button = Gtk.Button.new_from_stock(Gtk.STOCK_HELP)
+ bbox.add(button)
+
+ return frame
+
+def main():
+ app = ButtonBoxApp()
+ Gtk.main()
+
+if __name__ == '__main__':
+ main()
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]