GTK+ 2.0 教学-选取区域管理

概述
选取区域(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来辩识的。

Comments are closed.