[gnome-devel-docs] tutorials python: example of multiline text editor (also added section in main page)



commit 608f4a3b93415ef393448494bccf580d05789b21
Author: Marta Maria Casetti <mmcasetti gmail com>
Date:   Sat May 26 10:21:36 2012 +0100

    tutorials python: example of multiline text editor (also added section in main page)

 platform-demos/C/beginner.py.page    |    4 ++-
 platform-demos/C/media/textview.png  |  Bin 0 -> 15364 bytes
 platform-demos/C/samples/textview.py |   43 ++++++++++++++++++++++++++++++++++
 platform-demos/C/textview.py.page    |   40 +++++++++++++++++++++++++++++++
 platform-demos/Makefile.am           |    3 ++
 5 files changed, 89 insertions(+), 1 deletions(-)
---
diff --git a/platform-demos/C/beginner.py.page b/platform-demos/C/beginner.py.page
index 89f3c1d..916dec4 100644
--- a/platform-demos/C/beginner.py.page
+++ b/platform-demos/C/beginner.py.page
@@ -5,7 +5,7 @@
 
 <info>
   <link type="guide" xref="py"/>
-  <revision version="0.1" date="2012-02-19" status="stub"/>
+  <revision version="0.1" date="2012-05-26" status="stub"/>
 
   <desc>A beginner's guide to GUI programming using GTK+, including code samples and practice exercises.</desc>
   <credit type="author copyright">
@@ -53,6 +53,8 @@
   </section>
   <section id="entry" style="2column"><title>Numeric and text data entry</title>
   </section>
+  <section id="multiline" style="2column"><title>Multiline text editor</title>
+  </section>
   <section id="menu-combo-toolbar" style="2column"><title>Menu, combo box and toolbar widgets</title>
   </section>
   <section id="treeview" style="2column"><title>TreeView widget</title>
diff --git a/platform-demos/C/media/textview.png b/platform-demos/C/media/textview.png
new file mode 100644
index 0000000..6f8b2b0
Binary files /dev/null and b/platform-demos/C/media/textview.png differ
diff --git a/platform-demos/C/samples/textview.py b/platform-demos/C/samples/textview.py
new file mode 100644
index 0000000..7718398
--- /dev/null
+++ b/platform-demos/C/samples/textview.py
@@ -0,0 +1,43 @@
+from gi.repository import GLib
+from gi.repository import Gtk
+from gi.repository import Gio
+import sys
+
+class MyWindow(Gtk.ApplicationWindow):
+    def __init__(self, app):
+        Gtk.Window.__init__(self, title="TextView Example", application=app)
+        self.set_default_size(300, 450)
+
+        # a scrollbar for the child widget (that is, the textview)
+        scrolled_window = Gtk.ScrolledWindow()
+        scrolled_window.set_border_width(5)
+        # we scroll only if needed
+        scrolled_window.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC)
+
+        # a text buffer (stores text)
+        buffer1 = Gtk.TextBuffer()
+
+        # a textview (displays the buffer)
+        textview = Gtk.TextView(buffer=buffer1)
+        # wrap the text, if needed, breaking lines in between words
+        textview.set_wrap_mode(Gtk.WrapMode.WORD)
+
+        # textview is scrolled
+        scrolled_window.add_with_viewport(textview)
+
+        self.add(scrolled_window)
+
+class MyApplication(Gtk.Application):
+    def __init__(self):
+        Gtk.Application.__init__(self, application_id="org.gtk.example.grid")
+
+    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/C/textview.py.page b/platform-demos/C/textview.py.page
new file mode 100644
index 0000000..1025f09
--- /dev/null
+++ b/platform-demos/C/textview.py.page
@@ -0,0 +1,40 @@
+<page xmlns="http://projectmallard.org/1.0/";
+      xmlns:xi="http://www.w3.org/2001/XInclude";
+      type="guide" style="task"
+      id="textview.py">
+  <info>
+    <link type="guide" xref="beginner.py#multiline"/>
+    <link type="seealso" xref="scrolledwindow.py"/>
+    <revision version="0.1" date="2012-05-26" status="draft"/>
+
+    <credit type="author copyright">
+      <name>Marta Maria Casetti</name>
+      <email>mmcasetti gmail com</email>
+      <years>2012</years>
+    </credit>
+
+    <desc>Widget that displays a GtkTextBuffer</desc>
+  </info>
+
+  <title>TextView</title>
+  <media type="image" mime="image/png" src="media/textview.png"/>
+  <p>The text reads:</p>
+  <p>This is an example of Gtk.TextView.</p>
+  <p>If we press "enter", we have a new line.</p>
+  <p>But we can also have a new line if we write a long sentence (the text will wrap breaking lines between words).</p>
+  <p>If we have a loooooooooooooooooooooooooooooooooooong</p>
+  <p>(that was long)</p>
+  <p>word, an horizontal scrollbar will appear.</p>
+
+<code mime="text/x-python" style="numbered"><xi:include href="samples/textview.py" parse="text"><xi:fallback/></xi:include></code>
+<p>
+  In this sample we used the following:
+</p>
+<list>
+  <item><p><link href="http://developer.gnome.org/gtk3/3.4/GtkTextView.html";>GtkTextView</link></p></item>
+  <item><p><link href="http://developer.gnome.org/gtk3/3.4/GtkTextBuffer.html";>GtkTextBuffer</link></p></item>
+  <item><p><link href="http://developer.gnome.org/gtk3/3.4/GtkTextTags.html";>GtkTextTags</link></p></item>
+  <item><p><link href="http://developer.gnome.org/gtk3/3.4/GtkScrolledWindow.html";>GtkScrolledWindow</link></p></item>
+  <item><p><link href="http://developer.gnome.org/gtk3/3.4/gtk3-Standard-Enumerations.html";>Standard Enumerations</link></p></item>
+</list>
+</page>
diff --git a/platform-demos/Makefile.am b/platform-demos/Makefile.am
index c034820..76143cf 100644
--- a/platform-demos/Makefile.am
+++ b/platform-demos/Makefile.am
@@ -65,6 +65,7 @@ demo_sources = \
 	samples/statusbar.vala			\
 	samples/switch.py			\
 	samples/switch.vala			\
+	samples/textview.py			\
 	samples/togglebutton.py			\
 	samples/togglebutton.vala		\
 	samples/toolbar.vala			\
@@ -111,6 +112,7 @@ DOC_FIGURES = \
 	media/statusbar.png			\
 	media/switch_on.png			\
 	media/switch_off.png			\
+	media/textview.png			\
 	media/togglebutton.png			\
 	media/toolbar.png			\
 	media/toolbar2.png			\
@@ -197,6 +199,7 @@ DOC_PAGES =				\
 	statusbar.vala.page		\
 	switch.py.page			\
 	switch.vala.page		\
+	textview.py.page		\
 	togglebutton.py.page		\
 	togglebutton.vala.page		\
 	toolbar.js.page			\



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]