Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/clipi_gtk3_garnacho.py
diff options
context:
space:
mode:
Diffstat (limited to 'clipi_gtk3_garnacho.py')
-rw-r--r--clipi_gtk3_garnacho.py52
1 files changed, 52 insertions, 0 deletions
diff --git a/clipi_gtk3_garnacho.py b/clipi_gtk3_garnacho.py
new file mode 100644
index 0000000..8a56bea
--- /dev/null
+++ b/clipi_gtk3_garnacho.py
@@ -0,0 +1,52 @@
+#!/usr/bin/python3
+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_data([Gtk.TargetEntry.new('foobar', 0, 0),
+ Gtk.TargetEntry.new('foobarbaz', 0, 0)],
+ __clipboard_get_func_cb,
+ __clipboard_clear_func_cb,
+ 'hello clipboard')
+
+def __clipboard_get_func_cb(clipboard, selectiondata, info, data):
+ print('* __clipboard_get_func_cb data=', data)
+ selectiondata.set(Gdk.Atom.intern('STRING', False), 8, data)
+
+def __clipboard_clear_func_cb(clipboard, data):
+ print('* __clipboard_clear_func_cb')
+
+
+def __paste_clicked_cb(widget):
+ clipboard = Gtk.Clipboard.get(Gdk.SELECTION_CLIPBOARD)
+ atom = Gdk.Atom.intern('foobar', False)
+ clipboard.request_contents(atom, __paste_contents_received, None)
+
+def __paste_contents_received(clipboard, selectiondata, data):
+ print('* __paste_contents_received: ', selectiondata, data)
+ print(' - data=', (str(selectiondata.get_format())))
+ print(' - type=', (str(selectiondata.get_data())))
+ print(' - format=', (str(selectiondata.get_data_type())))
+ 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()