Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/clipi_gtk3_simon.py
diff options
context:
space:
mode:
Diffstat (limited to 'clipi_gtk3_simon.py')
-rw-r--r--clipi_gtk3_simon.py49
1 files changed, 49 insertions, 0 deletions
diff --git a/clipi_gtk3_simon.py b/clipi_gtk3_simon.py
new file mode 100644
index 0000000..1f395e6
--- /dev/null
+++ b/clipi_gtk3_simon.py
@@ -0,0 +1,49 @@
+from gi.repository import Gtk
+from gi.repository import Gdk
+
+def _destroy_cb(widget, data=None):
+ Gtk.main_quit()
+
+
+def __copy_clicked_cb(widget):
+ clipboard = Gtk.Clipboard.get(Gdk.SELECTION_CLIPBOARD)
+ clipboard.set_with_closures([Gtk.TargetEntry.new('STRING', 0, 0)],
+ __clipboard_get_func_cb,
+ __clipboard_clear_func_cb,
+ None)
+
+def __clipboard_get_func_cb(clipboard, selectiondata, info):
+ print '* __clipboard_get_func_cb data=', data
+ selectiondata.set('STRING', 8, data)
+
+def __clipboard_clear_func_cb(clipboard):
+ print '* __clipboard_clear_func_cb'
+
+
+def __paste_clicked_cb(widget):
+ clipboard = Gtk.Clipboard.get(Gdk.SELECTION_CLIPBOARD)
+ clipboard.request_contents(Gdk.Atom.intern_static_string('STRING'), __paste_contents_received, None)
+
+def __paste_contents_received(clipboard, selectiondata, data):
+ print '* __paste_contents_received: '
+ print ' - data=', (str(selectiondata.get_data()))
+ print ' - format=', (str(selectiondata.get_format()))
+ print ' - target=', (str(selectiondata.get_target()))
+
+
+window = Gtk.Window()
+window.connect("destroy", _destroy_cb)
+
+box = Gtk.VBox()
+window.add(box)
+
+button = Gtk.Button(label='copy')
+box.add(button)
+button.connect('clicked', __copy_clicked_cb)
+
+button = Gtk.Button(label='paste')
+box.add(button)
+button.connect('clicked', __paste_clicked_cb)
+
+window.show_all()
+Gtk.main()