4.3性质和原子

属性是命名的类型化数据的集合。窗口系统有一组预定义的属性(例如,窗口名称、大小提示等),用户可以定义任何其他任意信息并将其与windows关联。每个属性都有一个名称,它是一个ISO拉丁语-1字符串。对于每个命名的属性,唯一标识符(atom)与之关联。属性也有一个类型,例如字符串或整数。这些类型也使用原子表示可以定义类型。只有一种类型的数据可以与单个属性名称。客户端可以存储和检索与窗口关联的属性。出于效率原因,使用原子而不是字符串。XInternAtom()可以用于获取属性名称的原子。

属性也以几种可能的格式之一存储。X服务器可以将信息存储为8位数量、16位数量,或32位数量。这允许X服务器以字节顺序显示数据客户期望。

注释

如果进一步定义复杂类型的属性,你必须自己对它们进行编码和解码。如果要便于携带,必须仔细编写这些函数。有关如何编写库扩展的更多信息,请参阅“扩展".
属性的类型由原子定义,它允许此类型方案中的任意扩展。

某些属性名称是在服务器中为常用功能预定义。这些属性的原子定义如下X11/X原子。小时.为了避免名称与用户符号冲突#定义每个原子的名称都有XA公司_前缀。对于这些属性的定义,请参见下文。有关获取和设置的函数的说明存储在这些预定义属性中的许多信息,请参阅“客户端间通信功能".

核心协议没有对这些属性名称强加语义,但是在其他X联盟标准中规定了语义,例如用户之间的通讯对话说明书X逻辑字体描述惯例.

您可以使用属性在应用。本节中描述的函数允许您定义新属性并获取应用程序中唯一的原子ID。

尽管任何特定原子都可以有一些客户解释在每个名称空间内,原子出现在协议中的五个不同的名称空间中:

内置选择属性名称为:

主要
次要

内置属性名称为:
剪切缓冲区0资源管理器
切割缓冲区1WM_分类
切割缓冲2WM_CLIENT_MACHINE公司
切割缓冲3WM_COLORMAP_WINDOWS公司
切割_BUFFER4WM_COMMAND公司
切割缓冲5WM_情报
切割_BUFFER6WM_ICON_名称
切割缓冲器7WM_ICON_SIZE(WM_ICON_尺寸)
RGB_BEST_MAP(RGB_最佳地图)WM_名称
RGB_蓝色_MAPWM_NORMAL_HINTS公司
RGB默认映射WM_原色
RGB_GRAY_MAP公司WM_状态
RGB_绿色_MAPWM_传输
RGB_RED_MAP(RGB_RED_MAP)WM_缩放_ INTS

内置属性类型包括:

原子能机构RGB_COLOR_MAP(RGB_COLOR_MAP)
位图矩形
CARDINAL公司字符串
彩色地图VISUALID公司
光标窗户
可拖动WM_点
FONT公司WM_SIZE_HINTS公司
整数
PIXMAP公司

内置字体属性名称为:
最小间隔(_S)STRIKEOUT_DESCENT(删除_退出)
NORM_SPACE(标准_空格)罢工_现场
最大_空间意大利_天使
结束_空格X_高度
超级脚本_X四边形_宽度
超级脚本_Y重量
订阅_X点_大小
订阅_Y决议
下划线_位置版权
下层_厚度通知
字体_名称家庭_姓名
全名(_N)盖_高度

有关字体属性的更多信息,请参阅“字体度量".

要返回给定名称的原子,请使用XInternAtom().要返回名称数组的原子,请使用X内部原子().

要返回给定原子标识符的名称,请使用XGetAtomName().

要返回原子标识符数组的名称,请使用XGetAtomName().

下一步:获取和更改窗口属性

克里斯托夫·特朗奇,ch@tronche.com网站