From 1d6008630248c4e234af1aed53ccf0732f9c0fc6 Mon Sep 17 00:00:00 2001 From: Manuel Kaufmann Date: Thu, 22 Nov 2012 21:28:30 +0000 Subject: Many tests and one example --- diff --git a/examples/gtk_treeview.py b/examples/gtk_treeview.py new file mode 100644 index 0000000..7884461 --- /dev/null +++ b/examples/gtk_treeview.py @@ -0,0 +1,17 @@ +from gi.repository import Gtk + + +def _destroy_cb(widget, data=None): + Gtk.main_quit() + +window = Gtk.Window() +window.connect("destroy", _destroy_cb) + +tree = Gtk.TreeView() +cell = Gtk.CellRendererToggle() + +tree.insert_column_with_attributes(0, 'Test', cell) + + +window.show_all() +Gtk.main() diff --git a/tests/espeak_gst_1.py b/tests/espeak_gst_1.py new file mode 100644 index 0000000..ef9402f --- /dev/null +++ b/tests/espeak_gst_1.py @@ -0,0 +1,63 @@ +from gi.repository import Gtk +from gi.repository import Gst +from gi.repository import GObject + +GObject.threads_init() + +import gi +gi.require_version('Gtk', '3.0') +gi.require_version('Gst', '1.0') + +Gst.init(None) + +# pipeline = None +# bus = None + + +def _destroy_cb(widget, data=None): + Gtk.main_quit() + +window = Gtk.Window() +window.set_default_size(100, 40) +window.connect("destroy", _destroy_cb) + + +def pipe_message_cb(bus, message, pipeline): + if message.type == Gst.MessageType.EOS: + print 'EOS' + pipeline.set_state(Gst.State.NULL) + elif message.type == Gst.MessageType.ERROR: + print 'ERROR' + pipeline.set_state(Gst.State.NULL) + print Gst.Message.parse_error(message) + # else: + # print 'Error' + # print message.type + + +def play(*args, **kargs): + # global pipeline, bus + + pipeline = Gst.parse_launch('espeak name=espeak ! autovideosink') + + bus = pipeline.get_bus() + bus.add_signal_watch() + bus.connect('message', pipe_message_cb, pipeline) + + src = pipeline.get_by_name('espeak') + + src.props.text = 'Hello Manuel Kaufmann. Please, type something' + src.props.rate = 0 + src.props.pitch = 0 + src.props.voice = 'default' + # src.props.voice = 'en_GB.utf8' + src.props.track = 2 + + # pipeline.set_state(Gst.State.NULL) + pipeline.set_state(Gst.State.PLAYING) + +button = Gtk.Button('Click me!') +button.connect('clicked', play) +window.add(button) +window.show_all() +Gtk.main() diff --git a/tests/focus-button-osk-javascript.html b/tests/focus-button-osk-javascript.html new file mode 100644 index 0000000..3b3519b --- /dev/null +++ b/tests/focus-button-osk-javascript.html @@ -0,0 +1,19 @@ + + + + + Focus OSK test case + + + +

This page will be loaded without focusing anything and after clicking + the "Click me!" button the focus will be taken to the input field and + OSK should appear

+ +
+ + +
+ + + diff --git a/tests/focus-initial-osk-javascript.html b/tests/focus-initial-osk-javascript.html new file mode 100644 index 0000000..51ab5c0 --- /dev/null +++ b/tests/focus-initial-osk-javascript.html @@ -0,0 +1,20 @@ + + + + + Focus OSK test case + + + +

This page will be loaded focusing on the input field. You + can click the "Click me!" button to focus it again after + loosing the focus by clicking outside. OSK should appear + everytime the input field has the focus.

+ +
+ + +
+ + + diff --git a/tests/gobject_handlers_block.py b/tests/gobject_handlers_block.py new file mode 100644 index 0000000..fe1bd52 --- /dev/null +++ b/tests/gobject_handlers_block.py @@ -0,0 +1,12 @@ +from gi.repository import Gtk +from gi.repository import GObject + + +def my_func(*args, **kargs): + print 'my_func was called.' + + +adj = Gtk.Adjustment() +sw = Gtk.ScrolledWindow() +GObject.signal_handlers_block_matched(adj, GObject.SignalMatchType.ID, 0, 0, None, my_func, sw) + diff --git a/tests/scrollable_inside_scrollable.py b/tests/scrollable_inside_scrollable.py new file mode 100644 index 0000000..47cf776 --- /dev/null +++ b/tests/scrollable_inside_scrollable.py @@ -0,0 +1,36 @@ +#!/usr/bin/env python + +from gi.repository import Gtk + + +def main(): + window = Gtk.Window() + window.set_default_size(400, 400) + + tv1 = Gtk.TextView() + tv2 = Gtk.TextView() + + label = Gtk.Label() + label.set_text('Separator') + + sw1 = Gtk.ScrolledWindow() + sw1.add(tv1) + + sw2 = Gtk.ScrolledWindow() + sw2.add(tv2) + + container = Gtk.Box(orientation=Gtk.Orientation.VERTICAL) + container.pack_start(sw1, True, True, 0) + container.add(label) + container.pack_start(sw2, True, True, 0) + + sw3 = Gtk.ScrolledWindow() + sw3.add(container) + + window.add(sw3) + window.connect("destroy", Gtk.main_quit) + window.show_all() + Gtk.main() + +if __name__ == "__main__": + main() diff --git a/tests/target_blank.html b/tests/target_blank.html new file mode 100644 index 0000000..6dd5dab --- /dev/null +++ b/tests/target_blank.html @@ -0,0 +1,18 @@ + + + + + + +Go to Google.com + +
+ + + +
+ + + + + diff --git a/tests/webkit_load_status.py b/tests/webkit_load_status.py new file mode 100644 index 0000000..1d6649f --- /dev/null +++ b/tests/webkit_load_status.py @@ -0,0 +1,38 @@ +from gi.repository import Gtk +from gi.repository import WebKit +from gi.repository import GObject + + +class MyWindow(Gtk.Window): + + def __init__(self): + Gtk.Window.__init__(self, title="WebKit load-status FAILED") + self.set_default_size(1000, 500) + self.connect("delete-event", Gtk.main_quit) + + webview = WebKit.WebView() + webview.connect('notify::load-status', self.__load_status_changed_cb) + webview.connect('load-error', self.__load_error_cb) + webview.load_uri('http://www.google.com') + + self.add(webview) + self.show_all() + + def __load_error_cb(self, web_view, web_frame, uri, web_error): + print '### WEB_ERROR_CODE:', web_error.code + + def __load_status_changed_cb(self, widget, param): + status = widget.get_load_status() + if status is WebKit.LoadStatus.COMMITTED: + GObject.timeout_add(40, self.__stop_loading, widget) + print '### STATUS:', status + print '### URI:', widget.props.uri + + def __stop_loading(self, webview): + print 'WebKit.WebView.stop_loading' + webview.stop_loading() + + +if __name__ == '__main__': + win = MyWindow() + Gtk.main() diff --git a/tests/webkit_window_features.py b/tests/webkit_window_features.py new file mode 100644 index 0000000..1a29180 --- /dev/null +++ b/tests/webkit_window_features.py @@ -0,0 +1,39 @@ +from gi.repository import Gtk +from gi.repository import WebKit + + +class MyWindow(Gtk.Window): + + def __init__(self): + Gtk.Window.__init__(self, title='WebKit Scroll Bars') + self.set_default_size(250, 200) + self.connect("delete-event", Gtk.main_quit) + + self.webview = WebKit.WebView(self_scrolling=True) + # self.webview.props.self_scrolling = True + self.window_features = self.webview.get_window_features() + self.window_features.connect( + 'notify::height', self.__height_cb) + self.webview.connect( + 'notify::load-status', self.__load_status_changed_cb) + self.webview.connect( + 'notify::window-features', self.__window_features_cb) + + self.webview.load_uri('http://css-tricks.com/examples/WebKitScrollbars/') + + self.add(self.webview) + self.show_all() + + def __window_features_cb(self, *args, **kwargs): + print '__window_features_cb' + + def __height_cb(self, *args, **kwargs): + print '__height_cb' + + def __load_status_changed_cb(self, *args, **kwargs): + print 'scrollbar-visible:', self.webview.props.window_features.props.scrollbar_visible + + +if __name__ == '__main__': + win = MyWindow() + Gtk.main() diff --git a/tests/wikipedia_search.html b/tests/wikipedia_search.html new file mode 100644 index 0000000..06812b4 --- /dev/null +++ b/tests/wikipedia_search.html @@ -0,0 +1,25 @@ + + + + wikipedia search + + + + + + + + diff --git a/tests/zoom_center.py b/tests/zoom_center.py new file mode 100644 index 0000000..db96b04 --- /dev/null +++ b/tests/zoom_center.py @@ -0,0 +1,57 @@ +#!/usr/bin/env python +# Copyright (C) 2011, One Laptop Per Child +# Author, Gonzalo Odiard +# Translated from c demo provided by Carlos Garnacho + +from gi.repository import Gtk +from gi.repository import Gdk +import math +import logging +import random + +COLORS = (0.1, 0.2, 0.3, 0.4) + + +class TestTouch(Gtk.DrawingArea): + + def __init__(self): + super(TestTouch, self).__init__() + + self.touch = None + + self.set_events(Gdk.EventMask.TOUCH_MASK) + self.connect('draw', self.__draw_cb) + self.connect('event', self.__event_cb) + + def __event_cb(self, widget, event): + if event.type == Gdk.EventType.TOUCH_BEGIN: + self.touch = 200, 200 + self.queue_draw() + else: + self.touch = None + + def __draw_cb(self, widget, ctx): + if self.touch is None: + return + + for x in range(1, 10): + color = random.choice(COLORS) + ctx.set_source_rgba(color, color, color, 0.7) + ctx.save() + ctx.arc(x, y, 60 * x, 0., 2 * math.pi) + ctx.fill() + ctx.restore() + + +def main(): + window = Gtk.Window() + test_touch = TestTouch() + + window.add(test_touch) + window.connect("destroy", Gtk.main_quit) + window.show_all() + window.set_requested_size(400, 400) + Gtk.main() + +if __name__ == "__main__": + main() -- cgit v0.9.1