操作选中区

概述

选中区(Selections)是X和 GTK 提供的图形程序之间传递信息的方法之一。一个选中区标识了一块数据,例如,用户用某种方式(比如拖动鼠标)选择的一部分文本。一个显示区(即用户)同一时间里只能有一个应用程序能得到选中区,所以当一个程序声称一个选中区时,前一个选中区所有者必须告诉用户旧选中区已经被放弃了。其它程序能得到选中区内容的不同的形式,叫做目标(targets)。可以有任意多个选中区,但大多数X程序只会处理一个,叫做主选中区(primary selection)。

大多数情况下,一个 GTK 应用程序并不必自己处理选中区。标准的构件,比如文本输入构件,已经有了在适当的情况下(例如,当用户在文本上拖动时)声称选中区的能力,也能得到其它构件或程序的选中区内容(比如,当用户按鼠标中键时)。然而,有些情况下你可能想使其它构件具有提供选中区的能力,或者你想得到默认未支持的目标(targets)。

处理选中区时要理解的一个基本概念是原子(atom)。原子是一个唯一地标识一个字符串(在一个确定的显示区)的整数。某些原子被X服务器预定义了,其中一些原子在gtk.h中有对应的常量。例如GDK_PRIMARY_SELECTION常量对应于字符串"PRIMARY"。其它情况下,你要使用gdk_atom_intern()函数,根据字符串以获得对应的原子,使用gdk_atom_name()函数,以获得原子的名称。选中区和目标都是通过原子来标识的。