预定义的Atom¶
预定义Atom并不是严格必需的,也可能不是在所有环境中都有用,但是它们将在大多数应用程序中避免许多interAtom请求(避免频繁创建Atom)。
请注意,它们仅在具有数值的意义上进行预定义,而不是在具有所需语义的意义上进行预定义。
核心协议对这些名称没有强加语义,但语义在其他X窗口系统标准中有规定,例如客户端间通信约定手册和X逻辑字体描述约定。
以下名称具有预定义的Atom。注意区分大小写:
ARC
ITALIC_ANGLE
STRING
ATOM
MAX_SPACE
SUBSCRIPT_X
BITMAP
MIN_SPACE
SUBSCRIPT_Y
CAP_HEIGHT
NORM_SPACE
SUPERSCRIPT_X
CARDINAL
NOTICE
SUPERSCRIPT_Y
COLORMAP
PIXMAP
UNDERLINE_POSITION
COPYRIGHT
POINT
UNDERLINE_THICKNESS
CURSOR
POINT_SIZE
VISUALID
CUT_BUFFER0
PRIMARY
WEIGHT
CUT_BUFFER1
QUAD_WIDTH
WINDOW
CUT_BUFFER2
RECTANGLE
WM_CLASS
CUT_BUFFER3
RESOLUTION
WM_CLIENT_MACHINE
CUT_BUFFER4
RESOURCE_MANAGER
WM_COMMAND
CUT_BUFFER5
RGB_BEST_MAP
WM_HINTS
CUT_BUFFER6
RGB_BLUE_MAP
WM_ICON_NAME
CUT_BUFFER7
RGB_COLOR_MAP
WM_ICON_SIZE
DRAWABLE
RGB_DEFAULT_MAP
WM_NAME
END_SPACE
RGB_GRAY_MAP
WM_NORMAL_HINTS
FAMILY_NAME
RGB_GREEN_MAP
WM_SIZE_HINTS
FONT
RGB_RED_MAP
WM_TRANSIENT_FOR
FONT_NAME
SECONDARY
WM_ZOOM_HINTS
FULL_NAME
STRIKEOUT_ASCENT
X_HEIGHT
INTEGER
STRIKEOUT_DESCENT
为了避免与将来可能强加语义的名称发生冲突(无论是在协议级别还是在更高级别的用户界面模型中),以下划线开头的名称应该用于特定供应商或组织私有的Atom。
为了保证供应商和组织之间没有冲突,需要使用额外的前缀。然而,协议没有定义选择这些前缀的机制。
对于单个应用程序或最终用户私有但存储在全局可访问位置的名称,建议使用两个前导下划线来避免与其他名称冲突。