Signaux

Quand une destination a accepté un élément glissé, certains signaux vont être émis selon l'action choisie. Par exemple, l'utilisateur peut avoir maintenu enfoncée la touche Maj pour indiquer un déplacement plutôt qu'une copie. Souvenez-vous que l'utilisateur ne peut sélectionner que les actions définies dans vos appels à drag_dest_set() et drag_source_set().

XVIII.III.I. Copie

L'élément graphique source va émettre ces signaux, dans cet ordre :

  • drag_begin : fournit un objet DragContext.
  • drag_motion : fournit un objet DragContext et les coordonnées. Vous pouvez appeler la fonction membre drag_status() de l'objet DragContext pour faire savoir les cibles acceptées.
  • drag_get : fournit un objet info concernant le format des données glissées et une structure GtkSelectionData dans laquelle vous pouvez mettre les données requises.
  • drag_drop : fournit un objet DragContext et les coordonnées.
  • drag_end : fournit un objet DragContext.

L'élément graphique destination émet ce signal après que l'élément source a émis le signal drag_get :

  • drag_data_received : fournit un objet info concernant le format des données glissées et une structure GtkSelectionData contenant les données déposées. Vous pouvez appeller la fonction membre drag_finish() sur l'objet DragContext pour savoir si l'opération a réussi ou non.

XVIII.III.II. Déplacement

Pendant un déplacement, l'élément graphique source émet également le signal :

  • drag_delete : offre à la source la possibilité de détruire les données initiales si c'est approprié.