[gnome-devel-docs] tutorials python: buttonbox
- From: Marta Maria Casetti <mmcasetti src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-devel-docs] tutorials python: buttonbox
- Date: Wed, 15 Aug 2012 14:56:49 +0000 (UTC)
commit 36dcffb07c3d344b9d41bc66eb071778b72473a0
Author: Marta Maria Casetti <mmcasetti gmail com>
Date: Wed Aug 15 15:49:35 2012 +0100
tutorials python: buttonbox
platform-demos/C/buttonbox.py.page | 41 ++++++++
platform-demos/C/media/buttonbox_calculator.png | Bin 0 -> 5929 bytes
platform-demos/C/samples/buttonbox.py | 118 +++++++++++++++++++++++
platform-demos/Makefile.am | 3 +
4 files changed, 162 insertions(+), 0 deletions(-)
---
diff --git a/platform-demos/C/buttonbox.py.page b/platform-demos/C/buttonbox.py.page
new file mode 100644
index 0000000..6f19031
--- /dev/null
+++ b/platform-demos/C/buttonbox.py.page
@@ -0,0 +1,41 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<page xmlns="http://projectmallard.org/1.0/"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ type="guide" style="task"
+ id="buttonbox.py">
+ <info>
+ <link type="guide" xref="beginner.py#layout"/>
+ <link type="seealso" xref="button.py"/>
+ <revision version="0.2" date="2012-08-01" status="stub"/>
+
+ <credit type="author copyright">
+ <name>Marta Maria Casetti</name>
+ <email>mmcasetti gmail com</email>
+ <years>2012</years>
+ </credit>
+
+ <desc>A container for arranging buttons</desc>
+ </info>
+
+ <title>ButtonBox</title>
+
+ <media type="image" mime="image/png" src="media/buttonbox_calculator.png"/>
+ <p>Some labels in a grid.</p>
+
+ <links type="section" />
+
+ <section id="code">
+ <title>Code used to generate this example</title>
+ <code mime="text/python" style="numbered"><xi:include href="samples/buttonbox.py" parse="text"><xi:fallback/></xi:include></code>
+ </section>
+
+ <section id="references">
+ <title>API References</title>
+ <p>In this sample we used the following:</p>
+ <list>
+ <item><p><link href="http://developer.gnome.org/gtk3/stable/GtkButtonBox.html">GtkButtonBox</link></p></item>
+ <item><p><link href="http://developer.gnome.org/gtk3/stable/GtkButton.html">GtkButton</link></p></item>
+ <item><p><link href="http://developer.gnome.org/gtk3/stable/GtkEntry.html">GtkEntry</link></p></item>
+ </list>
+ </section>
+</page>
diff --git a/platform-demos/C/media/buttonbox_calculator.png b/platform-demos/C/media/buttonbox_calculator.png
new file mode 100644
index 0000000..f110c4d
Binary files /dev/null and b/platform-demos/C/media/buttonbox_calculator.png differ
diff --git a/platform-demos/C/samples/buttonbox.py b/platform-demos/C/samples/buttonbox.py
new file mode 100644
index 0000000..1ed7872
--- /dev/null
+++ b/platform-demos/C/samples/buttonbox.py
@@ -0,0 +1,118 @@
+from gi.repository import Gtk
+import sys
+
+class MyWindow(Gtk.ApplicationWindow):
+ def __init__(self, app):
+ Gtk.Window.__init__(self, title="Calculator", application=app)
+ self.set_default_size(450, 100)
+ self.set_border_width(10)
+
+ box = Gtk.ButtonBox.new(Gtk.Orientation.HORIZONTAL)
+
+ button_plus = Gtk.Button(label="+")
+ button_plus.connect("clicked", self.plus_callback)
+ box.add(button_plus)
+
+ button_minus = Gtk.Button(label="-")
+ button_minus.connect("clicked", self.minus_callback)
+ box.add(button_minus)
+
+ button_multi = Gtk.Button(label="*")
+ button_multi.connect("clicked", self.multi_callback)
+ box.add(button_multi)
+
+ button_divided = Gtk.Button(label="/")
+ button_divided.connect("clicked", self.divided_callback)
+ box.add(button_divided)
+
+ button_equal = Gtk.Button(label="=")
+ button_equal.connect("clicked", self.equal_callback)
+ box.add(button_equal)
+
+ button_cancel = Gtk.Button(label="C")
+ button_cancel.connect("clicked", self.cancel_callback)
+ box.add(button_cancel)
+
+ box.set_child_non_homogeneous(button_cancel, True)
+
+ self.entry = Gtk.Entry()
+ self.entry.set_text('0.0')
+ self.entry.connect("activate", self.equal_callback)
+
+ self.second_number = 0.0
+ self.result = 0.0
+
+ self.operation = ""
+
+ grid = Gtk.Grid()
+ grid.attach(self.entry, 0, 0, 1, 1)
+ grid.attach(box, 0, 1, 1, 1)
+
+ self.add(grid)
+
+ def plus_callback(self, button):
+ if self.entry.get_text() == "":
+ self.first_number = 0.0
+ else:
+ self.first_number = float(self.entry.get_text())
+ self.operation = "plus"
+
+ def minus_callback(self, button):
+ if self.entry.get_text() == "":
+ self.first_number = 0.0
+ else:
+ self.first_number = float(self.entry.get_text())
+ self.operation = "minus"
+
+ def multi_callback(self, button):
+ if self.entry.get_text() == "":
+ self.first_number = 0.0
+ else:
+ self.first_number = float(self.entry.get_text())
+ self.operation = "multiplication"
+
+ def divided_callback(self, button):
+ if self.entry.get_text() == "":
+ self.first_number = 0.0
+ else:
+ self.first_number = float(self.entry.get_text())
+ self.operation = "division"
+
+ def equal_callback(self, button):
+ self.second_number = float(self.entry.get_text())
+ if self.operation == "plus":
+ self.result = self.first_number + self.second_number
+ elif self.operation == "minus":
+ self.result = self.first_number - self.second_number
+ elif self.operation == "multiplication":
+ self.result = self.first_number * self.second_number
+ elif self.operation == "division":
+ self.result = self.first_number / self.second_number
+ else:
+ print "Error!"
+ self.first_number = self.result
+ self.entry.set_text(str(self.result))
+
+ def cancel_callback(self, button):
+ if self.entry.get_text() == "":
+ self.first_number = 0.0
+ else:
+ self.first_number = float(self.entry.get_text())
+ self.second_number = 0.0
+ self.result = 0.0
+ self.entry.set_text('0.0')
+
+class MyApplication(Gtk.Application):
+ def __init__(self):
+ Gtk.Application.__init__(self)
+
+ def do_activate(self):
+ win = MyWindow(self)
+ win.show_all()
+
+ def do_startup(self):
+ Gtk.Application.do_startup(self)
+
+app = MyApplication()
+exit_status = app.run(sys.argv)
+sys.exit(exit_status)
diff --git a/platform-demos/Makefile.am b/platform-demos/Makefile.am
index 7fa265f..d016dd6 100644
--- a/platform-demos/Makefile.am
+++ b/platform-demos/Makefile.am
@@ -35,6 +35,7 @@ demo_sources = \
samples/button.js \
samples/button.py \
samples/button.vala \
+ samples/buttonbox.py \
samples/checkbutton.c \
samples/checkbutton.js \
samples/checkbutton.py \
@@ -183,6 +184,7 @@ DOC_FIGURES = \
media/03_jssignal_04.png \
media/aboutdialog_GMenu.png \
media/button.png \
+ media/buttonbox_calculator.png \
media/checkbutton.png \
media/colorbutton.png \
media/combobox.png \
@@ -276,6 +278,7 @@ DOC_PAGES = \
button.js.page \
button.py.page \
button.vala.page \
+ buttonbox.py.page \
c.page \
checkbutton.c.page \
checkbutton.js.page \
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]