[gtksourceview] Added completion test in python



commit 2da752cb5e316312f4f8b8d6b84a2d500ebdd4db
Author: Ignacio Casal Quinteiro <icq gnome org>
Date:   Tue Jun 15 18:21:01 2010 +0200

    Added completion test in python

 tests/Makefile.am        |    4 +
 tests/test-completion.py |  137 ++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 141 insertions(+), 0 deletions(-)
---
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 23f882c..efdb786 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -41,6 +41,9 @@ test_printcompositor_LDADD = 		\
 	$(DEP_LIBS)			\
 	$(TESTS_LIBS)
 
+python_tests =			\
+	test-completion.py
+
 # testregion need gtk_text_region_ api which is normally private
 # modify gtksourceview/Makefile.am to export gtk_text_* symbols
 # TEST_PROGS += testregion
@@ -50,6 +53,7 @@ test_printcompositor_LDADD = 		\
 #	$(DEP_LIBS)
 
 EXTRA_DIST =				\
+	$(python_tests)			\
 	apple-red.png			\
 	gnome-gmush.png
 
diff --git a/tests/test-completion.py b/tests/test-completion.py
new file mode 100644
index 0000000..f6b4914
--- /dev/null
+++ b/tests/test-completion.py
@@ -0,0 +1,137 @@
+#!/usr/bin/env python
+
+import os, os.path
+import sys
+
+from gi.repository import Gio, GObject, Pango, Gtk, GdkPixbuf, Gdk, GtkSource
+
+class TestProvider(GObject.Object, GtkSource.CompletionProvider):
+    __gtype_name__ = 'TestProvider'
+
+    def __init__(self):
+        GObject.Object.__init__(self)
+
+        self.priority = 1
+
+        theme = Gtk.IconTheme.get_default()
+        icon = theme.load_icon(Gtk.STOCK_DIALOG_INFO, 16, 0)
+
+        self.proposals = []
+        self.proposals.append(GtkSource.CompletionItem.new("Proposal 1", "Proposal 1", icon, "blah 1"))
+        self.proposals.append(GtkSource.CompletionItem.new("Proposal 2", "Proposal 2", icon, "blah 2"))
+        self.proposals.append(GtkSource.CompletionItem.new("Proposal 3", "Proposal 3", icon, "blah 3"))
+
+    def do_get_name(self):
+        return "Test Provider"
+
+    def do_get_priority(self):
+        return self.priority
+
+    def do_match(self, context):
+        return True
+
+    def do_populate(self, context):
+        context.add_proposals(self, self.proposals, True)
+
+    def set_priority(self, priority):
+        self.priority = priority
+
+GObject.type_register(TestProvider)
+
+def create_completion():
+    prov_words = GtkSource.CompletionWords.new(None, None)
+    prov_words.register(view.get_buffer())
+
+    prov_words.set_property("priority", 10)
+
+    completion.add_provider(prov_words)
+
+    test1 = TestProvider()
+    completion.add_provider(test1)
+
+    test2 = TestProvider()
+    completion.add_provider(test2)
+    test2.set_priority(5)
+
+def remember_toggled_cb(button, data):
+    completion.set_property("remember-info-visibility", button.get_active())
+
+def select_on_show_toggled_cb(button, data):
+    completion.set_property("select-on-show", button.get_active())
+
+def show_headers_toggled_cb(button, data):
+    completion.set_property("show-headers", button.get_active())
+
+def show_icons_toggled_cb(button, data):
+    completion.set_property("show-icons", button.get_active())
+
+def toggle_active_property(source, dest, name):
+    value = source.get_property(name)
+    dest.set_property("active", value)
+
+def create_window():
+    global window
+    global view
+    global completion
+
+    window = Gtk.Window()
+    window.set_title('GtkSourceView Completion Demo')
+    window.set_icon_name('text-editor')
+    window.set_default_size(600, 400)
+    window.connect_after('destroy', _quit)
+
+    vbox = Gtk.VBox()
+    hbox = Gtk.HBox()
+
+    sw = Gtk.ScrolledWindow(hadjustment=None,
+                            vadjustment=None)
+    sw.set_shadow_type(Gtk.ShadowType.IN)
+
+    view = GtkSource.View.new()
+    sw.add(view)
+
+    completion = view.get_completion()
+
+    remember = Gtk.CheckButton.new_with_label("Remember info visibility")
+    select_on_show = Gtk.CheckButton.new_with_label("Select first on show")
+    show_headers = Gtk.CheckButton.new_with_label("Show headers")
+    show_icons = Gtk.CheckButton.new_with_label("Show icons")
+
+    toggle_active_property(completion, remember, "remember-info-visibility")
+    toggle_active_property(completion, select_on_show, "select-on-show")
+    toggle_active_property(completion, show_headers, "show-headers")
+    toggle_active_property(completion, show_icons, "show-icons")
+
+    hbox.pack_start(remember, False, False, 0)
+    hbox.pack_start(select_on_show, False, False, 0)
+    hbox.pack_start(show_headers, False, False, 0)
+    hbox.pack_start(show_icons, False, False, 0)
+
+    vbox.pack_start(sw, True, True, 0)
+    vbox.pack_end(hbox, False, False, 0)
+
+    window.add(vbox)
+
+    remember.connect("toggled", remember_toggled_cb, None)
+    select_on_show.connect("toggled", select_on_show_toggled_cb, None)
+    show_headers.connect("toggled", show_headers_toggled_cb, None)
+    show_icons.connect("toggled", show_icons_toggled_cb, None)
+
+    return window
+
+def _quit(*args):
+    Gtk.main_quit()
+
+def main(args = []):
+
+    window = create_window()
+    create_completion()
+
+    window.show_all()
+
+    Gtk.main()
+
+if __name__ == '__main__':
+    main(sys.argv)
+
+



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