diff options
Diffstat (limited to 'clipi_gtk3.py')
-rw-r--r-- | clipi_gtk3.py | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/clipi_gtk3.py b/clipi_gtk3.py new file mode 100644 index 0000000..1f395e6 --- /dev/null +++ b/clipi_gtk3.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() |