4.3性质和原子
属性是命名的类型化数据的集合。窗口系统有一组预定义的属性(例如,窗口名称、大小提示等),用户可以定义任何其他任意信息并将其与windows关联。每个属性都有一个名称,它是一个ISO拉丁语-1字符串。对于每个命名的属性,唯一标识符(atom)与之关联。属性也有一个类型,例如字符串或整数。这些类型也使用原子表示可以定义类型。只有一种类型的数据可以与单个属性名称。客户端可以存储和检索与窗口关联的属性。出于效率原因,使用原子而不是字符串。XInternAtom()可以用于获取属性名称的原子。
属性也以几种可能的格式之一存储。X服务器可以将信息存储为8位数量、16位数量,或32位数量。这允许X服务器以字节顺序显示数据客户期望。
注释
如果进一步定义复杂类型的属性,你必须自己对它们进行编码和解码。如果要便于携带,必须仔细编写这些函数。有关如何编写库扩展的更多信息,请参阅“扩展".
属性的类型由原子定义,它允许此类型方案中的任意扩展。
某些属性名称是在服务器中为常用功能预定义。这些属性的原子定义如下X11/X原子。小时
.为了避免名称与用户符号冲突#定义
每个原子的名称都有XA公司_
前缀。对于这些属性的定义,请参见下文。有关获取和设置的函数的说明存储在这些预定义属性中的许多信息,请参阅“客户端间通信功能".
核心协议没有对这些属性名称强加语义,但是在其他X联盟标准中规定了语义,例如用户之间的通讯对话说明书和X逻辑字体描述惯例.
您可以使用属性在应用。本节中描述的函数允许您定义新属性并获取应用程序中唯一的原子ID。
尽管任何特定原子都可以有一些客户解释在每个名称空间内,原子出现在协议中的五个不同的名称空间中:
内置选择属性名称为:
内置属性名称为:
剪切缓冲区0 | 资源管理器 |
切割缓冲区1 | WM_分类 |
切割缓冲2 | WM_CLIENT_MACHINE公司 |
切割缓冲3 | WM_COLORMAP_WINDOWS公司 |
切割_BUFFER4 | WM_COMMAND公司 |
切割缓冲5 | WM_情报 |
切割_BUFFER6 | WM_ICON_名称 |
切割缓冲器7 | WM_ICON_SIZE(WM_ICON_尺寸) |
RGB_BEST_MAP(RGB_最佳地图) | WM_名称 |
RGB_蓝色_MAP | WM_NORMAL_HINTS公司 |
RGB默认映射 | WM_原色 |
RGB_GRAY_MAP公司 | WM_状态 |
RGB_绿色_MAP | WM_传输 |
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网站