シグナル

ドロップのデスティネーション先がドラッグされたアイテムを受け取ると、選択されたアクションに固有のシグナルが発行されます。選択とは、例えば、ユーザーがShiftキーを押して、コピーではなく移動を指定することなどです。覚えておいてほしいのは、ユーザーが選べるアクションはdrag_dest_set()drag_source_set()を使って設定したものに限られるということです。

コピー

ソース元のウィジットは以下のシグナルをこの順序で発行します:

  • drag_begin: DragContextを提供します。

  • drag_motion: DragContextと座標を提供します。drag_status()メソッドを呼んで、どのターゲットが受け取られるかを指定することもできます。

  • drag_get: ドラッグされたデータのフォーマットinfoと、要求するデータを入れておくGtkSelectionData構造体を提供します。

  • drag_drop: DragContextと座標を提供します。

  • drag_end: DragContextを提供します。

ソース元がdrag_getシグナルを発行した後、デスティネーションは以下のシグナルを発行します:

  • drag_data_received: ドラッグされたデータのフォーマットinfoと、ドロップされたデータを保持するGtkSelectionData構造体を提供します。DragContextdrag_finish()メソッドを呼び、操作が成功したかどうかを知らせるべきです。

移動

moveの間、ソース元ウィジットは次のシグナルを発行します:

  • drag_delete: オリジナルデータを破棄することが適切である場合にソース元にこれを行う機会を与えます。

リンク

TODO: Find an example or documentation.