Zwischenablagen und Ziehen-und-Ablegen

Wenn Benutzer mit immer mehr Datentypen in verschiedenen Anwendungen arbeiten, entwickelt sich häufig Bedarf an Möglichkeiten zum Austausch von Daten und Objekten zwischen ihren Anwendungen. GNOME unterstützt zwei Methoden für die Datenübertragung zwischen Anwendungen: Zum einen das Ziehen-und-Ablegen, zum anderen das Kopieren in eine un d Einfügen aus einer systemweiten Zwischenablage. Sowohl die Zwischenablage als auch Ziehen-und-Ablegen funktionieren über Anwendungsgrenzen hinweg, einschließlich mit Anwendungen, die nicht mit GNOME entwickelt wurden.

Die Zwischenablage wird verwendet, wenn der Benutzer explizit Daten in einer Anwendung kopiert. Die Anwendung nimmt die Zwischenablage dann »in Beschlag«. Wenn der Benutzer Daten aus der Zwischenablage in eine andere Anwendung einfügt, erfragt diese die Daten aus der Zwischenablage, die von der ersten Anwendung stammen. Die Operationen der Zwischenablage werden durch GTK+ vollständig untertsützt.

Ziehen-und-Ablegen funktioniert ähnlich. Allerdings ist es nötig, dass der Mauszeiger seine Form ändert, sobald er über mögliche Ablageziele bewegt wird. Wenn eine Anwendung erkennt, dass während einer Aktion zum Ablegen sich der Mauszeiger über ihr befindet, muss sie die Form des Mauszeigers entsprechend aktualisieren, um anzugeben, ob das Ablegen an der jeweiligen Stelle möglich ist oder nicht. GTK+ stellt Unterstützung für Ziehen-und-Ablegen über eine hochentwickelte Schnittstelle bereit und erleichtert die Verwaltung von Ablagezielen in Ihrer Anwendung dadurch wesentlich.

Sowohl die Zwischenablage als auch das Ziehen-und-Ablegen erfordern Verhandlungen über die Inhalte. Wenn eine Anwendung Daten anbietet, zeigt sie an, welche Formate für diese Daten verfügbar sind. Die empfangenden Anwendungen können die verwertbaren Formate abfragen. Wenn beispielsweise ein Benutzer Text aus einem Webbrowser kopiert, dann bittet eine Textverarbeitung um den Empfang der Daten in HTML, während ein gewöhnlicher Texteditor dir Daten als reinen Text ohne Formatierung empfangen kann.

Sie sollten die Funktionalität zum Ziehen-und-Ablegen für jegliche Daten anbieten, mit denen Ihre Anwendung umgehen kann. Die Zwischenablage und das Ziehen-und-Ablegen sind für weitaus mehr als nur für reinen Text zu gebrauchen. Auch Dateien, Grafiken und Klänge sind Beispiele für mögliche zwischen Anwendungen übertragbare Daten. Wenn Sie GTK+ verwenden, erhalten Sie automatisch Unterstützung für das Ziehen-und-Ablegen in Textdarstellungen, Farbknöpfen, Dateiwählern und anderen in der Schnittstelle eingebauten Bedienelementen. Sie sollten die Schnittstellen in GTK+ verwenden, um Unterstützung für alle Daten in Ihrer Anwendung anzubieten.

Weitere Informationen finden Sie in Drag-and-Drop Protocol for the X Window System, X Clipboard Explanation, und The Clipboard Manager Specification.