概述
選取區域(Selections)是X和 GTK 提供的圖形程式之間傳遞訊息的方法之一。一個選取區域標識了一塊資料,例如,用戶用某種方式(比如拖動滑鼠)選擇的一部分文字。一個顯示區(即用戶)同一時間裡只能有一個應用程式能得到選取區域,所以當一個程式聲稱一個選取區域時,前一個選選區域所有者必須告訴用戶舊選取區域已經被放棄了。其它程式能得到選取區域內容的不同的形式,叫做目標(targets)。可以有任意多個選取區域,但大多數X程式只會處理一個,叫做主選取區域(primary selection)。
大多數情況下,一個 GTK 應用程式並不必自己處理選取區域。標準的元件,比如文字輸入元件,已經有了在適當的情況下(例如,當用戶在文字上拖動時)聲稱選取區域的能力,也能得到其它元件或程式的選取區域內容(比如,當用戶按滑鼠中鍵時)。然而,有些情況下你可能想使其它元件具有提供選取區域的能力,或者你想得到預設未支持的目標 (targets)。
處理選取區域時要理解的一個基本概念是原子(atom)。atom是一個唯一地標識一個字串(在一個確定的顯示區)的整數。某些atom被X伺服器預定義了,其中一些atom在gtk.h中有對應的常數。例如GDK_PRIMARY_SELECTION常數對應於字串”PRIMARY”。其它情況下,你要使用gdk_atom_intern()函式,根據字串以獲得對應的atom,使用gdk_atom_name()函式,以獲得atom的名稱。選取區域和目標都是通過atom來辯識的。
1 則留言