Der Evernote-Client hat eine nette Funktion, die es erlaubt, Links aus Firefox in das Evernote-Bearbeitungsfenster zu ziehen, was sowohl mit Lesezeichen als auch mit Links im Browserfenster funktioniert. Ich würde gerne eine ähnliche Funktion zu einer PyGTK-Anwendung hinzufügen. Hier ist, was ich bisher versucht habe (mit Py 2.7.2 und PyGTK 2.24.0):
import pygtk
pygtk.require('2.0')
import gtk,pango
flags = gtk.TARGET_OTHER_APP
targets = [
('text/uri-list', flags, 0),
('text/plain', flags, 1),
('text/x-uri', flags, 2),
('text/x-moz-url', flags, 3),
('application/x-bookmark', flags, 4),
('application/x-mswinurl', flags, 5),
('application/x-desktop', flags, 6)]
def receive_data(wid, context, x, y, data, info, time):
type = data.type
url = data.data
if info == 2:
url = url.decode('utf-16')
url = url.splitlines()[0]
text = '%s\n%s' % (type, url)
label.set_text(text)
context.finish(True, False, time)
window = gtk.Window()
window.set_size_request(400, 80)
label = gtk.Label()
label.set_justify(gtk.JUSTIFY_CENTER)
label.set_ellipsize(pango.ELLIPSIZE_END)
window.add(label)
window.drag_dest_set(gtk.DEST_DEFAULT_ALL, targets,
gtk.gdk.ACTION_COPY|gtk.gdk.ACTION_MOVE)
window.connect('drag_data_received', receive_data)
window.connect('destroy', lambda window: gtk.main_quit())
window.show_all()
gtk.main()
Dies funktioniert gut unter Linux: Sie können einen Link oder ein Lesezeichen aus Firefox in das GTK-Fenster ziehen und dort ablegen, und es zeigt die gezogene URL an. Leider funktioniert es nicht unter Windows. Ich habe es mit Windows 7 getestet. Hier akzeptiert die obige Anwendung nur Dateilinks, aber keine Internet-Links aus Firefox oder anderen Webbrowsern. Ist es möglich, es auch unter Windows zum Laufen zu bringen?