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

El widget origen emitirá estas señales, en este orden:

  • drag_begin: proporciona DragContext.
  • drag_motion: proporciona DragContext y coordenadas. Puede llamar al método drag_status() del DragContext para indicar qué objetivo se aceptará.
  • drag_set: proporciona info acerca del formato de datos arrastrado, y una estructura GtkSelectionData, en la que debe poner los datos pedidos.
  • drag_drop: proporciona DragContext y coordenadas.
  • drag_end: proporciona DragContext.

El widget de destino emitirá esta señal, después de que el destino de origen haya emitido la señal drag_get:

  • drag_data_received: proporciona info acerca del formato de datos arrastrado, y una estructura GtkSelectionData que contiene los datos soltados. Debe llamar al método drag_finish() del DragContext para indicar si la operación tuvo éxito.

18.3.2. Mover

Mientras se realice un movimiento, el widget origen también emitirá esta señal:

  • drag_delete: le da al origen la oportunidad de eliminar los datos originales si es lo apropiado.