GTK+ 2.0 教學-拖曳

GTK+ 有一套高級的函式用來支持圖形程式之間通過拖曳系統傳遞訊息。GTK+ 能在低級的 Xdnd 和 Motif 拖曳協議基礎上實施拖曳。

概述

一個支持 GTK+ 拖曳的應用程式先要定義和設置能拖曳的元件。每個元件都可以是拖曳的來源端和/或目標端。注意這些元件必須有一個關聯的 X 視窗,用 GTK_WIDGET_NO_WINDOW(widget) 檢測。

來源元件可以發送拖動資料,因此允許用戶把東西從它們上面拖出去,同時目標元件能接收拖動資料。拖曳的目標端能限制它們接受誰的拖動資料,比如,同一應用程式或任意應用程式(包括它自己)。

發送和接收拖動資料是利用 GTK+ 信號來進行的。投放一個項目到一個目的元件需要一個資料請求(來源元件使用)和資料接收信號處理函式(目的元件使用)。如果你想要知道何時拖動開始(在開始的最初一瞬間),以及何時整個拖曳過程完成(是否成功)可以連接一些附加的信號處理函式來使用。

當接收到請求時,你的應用程式將需要為來源元件提供資料,還包括一個拖動資料請求信號處理函式。而對目的元件將需要一個拖動資料接收信號處理函式。

一個典型的拖曳週期將像下面這樣:

  1. 拖動開始。
  2. 拖動資料請求(當投放發生)。
  3. 拖動資料被接收(可能在同一個應用程式內部或不同應用程式之間)。
  4. 拖動資料被刪除(如果拖動是移動)。
  5. 拖曳過程完成。

在它們之間也有一些次要的步驟,但這些我們等下再作詳細介紹。

感謝你看到這裡,很快就可以離開了,但最好的獎勵行動就是按一下幫我分享或留言,感恩喔~

點我分享到Facebook

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *