我有一个相当大而且比较老的C应用程序,已经移植到Linux。我负责确保鼠标指针正常工作,但遇到了一些问题。我能够将我们需要的大多数光标转换为使用XFontCursor提供的标准光标,例如:
gCursorTable[waitCurs] = XCreateFontCursor(gDisplay, XC_watch);
...
XDefineCursor(gDisplay, WHostWindow(w), gCursorTable[cursor]);
XFlush(gDisplay);
这对于在 XFontCursor 提供的(有用的)极其有限的光标列表中具有类似物的光标来说是可以的,但还有其他内置主题化光标我想设置。例如,我想在我的应用程序中将光标设置为 bd_double_arrow(它包含在每个光标主题中,并且是窗口的标准对角线调整大小光标),但显然您不能使用 XCreateFontCursor 来实现这一点。这似乎很基础,但我却找不到任何关于如何做到这一点的描述。
我只是想知道其他 X11 应用程序是如何设置光标的,因为它们显然是从全局主题中获取它们,而不仅仅使用 XCreateFontCursor。
bd_double_arrow
。角落调整箭头是size_bdiag
和size_fdiag
。查看man Xcursor
以查看光标图像的搜索位置,有一个很长的列表,我不知道它们在SuSE中的位置。我认为没有API可以列出所有可用的光标名称;要查看是否提供了光标,请尝试加载它。阅读Xcursors的源代码以获得更深入的见解。 - n. m.