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

The source widget will emit these signals, in this order:

  • drag_begin: Provides DragContext.
  • drag_data_get: Provides info about the dragged data format, and a Gtk::SelectionData structure, in which you should put the requested data.
  • drag_end: Provides DragContext.

The destination widget will emit these signals, in this order:

  • drag_motion: Provides DragContext and coordinates. You can call the drag_status() method of the DragContext to indicate which action will be accepted.
  • drag_drop: Provides DragContext and coordinates. You can call drag_get_data(), which triggers the drag_data_get signal in the source widget, and then the drag_data_received signal in the destination widget.
  • drag_data_received: Provides info about the dragged data format, and a Gtk::SelectionData structure which contains the dropped data. You should call the drag_finish() method of the DragContext to indicate whether the operation was successful.

XVIII.III.II. Déplacement

During a move, the source widget will also emit this signal:

  • drag_data_delete: Gives the source the opportunity to delete the original data if that's appropriate.