Presse-papiers et glisser-déposer

Alors que les utilisateurs travaillent avec de plus en plus de types de données dans différentes applications, ils ont toujours plus besoin de partager des objets et des données entre leurs applications. GNOME gère deux méthodes liées pour transférer des données entre applications : les opérations de glisser-déposer et le copier-coller à partir d'un presse-papiers système. Ces deux méthodes fonctionnent entre des applications différentes, y compris celles qui n'ont pas été développées avec GNOME.

Le presse-papiers est utilisé lorsqu'un utilisateur copie explicitement des données dans une application. Cette application réclame la propriété du presse-papiers. Lorsque l'utilisateur colle son contenu dans une autre application, cette dernière demande les données du presse-papiers à l'application d'origine. Les opérations de presse-papiers sont pleinement prises en charge dans GTK+.

Les opérations de glisser-déposer sont semblables, mais elles exigent que le pointeur de souris soit suivi et mis à jour pendant que l'utilisateur le déplace au-dessus de cibles de destination potentielles. Lorsqu'une application est avertie qu'un pointeur la survole pendant un « glisser » actif, elle doit mettre à jour le curseur pour indiquer si elle est capable d'accepter le « déposer ». GTK+ offre la prise en charge du glisser-déposer avec une interface de programmation avancée qui permet de gérer facilement les destinations de « déposer » dans vos applications.

Les opérations de presse-papiers comme celles de glisser-déposer prennent en charge la négociation de contenu. Lorsqu'une application a des données à mettre à disposition, elle signale quels formats sont disponibles pour ces données. Les applications de réception peuvent demander les formats les plus appropriés. Par exemple, si un utilisateur copie du texte d'un navigateur Web, un traitement de texte peut conserver le format en demandant les données en HTML, alors qu'un simple éditeur texte recevra les données sans mise en forme.

Vous devriez offrir les fonctionnalités de presse-papiers et de glisser-déposer pour toutes les données que traite votre application. Cela concerne plus que simplement le texte : fichiers, dessins et extraits sonores sont tous des exemples de données qui sont susceptibles d'être transférées entre les applications. Lorsque vous utilisez GTK+, vous héritez automatiquement de la prise en charge du presse-papiers et du glisser-déposer pour les zones de texte, les boutons de couleur, les sélecteurs de fichiers et les autres composants d'interface prédéfinis. Vous devriez utiliser les interfaces de programmation de GTK+ pour fournir la prise en charge de toute autre donnée de votre application.

Pour plus d'informations, consultez [en anglais] Drag-and-Drop Protocol for the X Window System, X Clipboard Explanation et The Clipboard Manager Specification.