Señales

Cuando un destino acepta un elemento arrastrado, se emiten ciertas señales, dependiendo de qué acción se ha seleccionado. Por ejemplo, el usuario podría haber mantenido presionada la tecla Mayús para especificar un movimiento en vez de una copia. Recuerde que el usuario sólo puede seleccionar las acciones que ha especificado en sus llamadas a drag_dest_set() y drag_source_set().

18.3.1. Copiar

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.

18.3.2. Mover

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.