我有一个相当大且相当旧的 C 应用程序,已移植到 Linux 上。我负责让鼠标光标正常工作,但遇到一些问题。我能够将我们需要的大部分光标转换为使用提供的标准光标X字体光标 http://tronche.com/gui/x/xlib/appendix/b/通过使用类似的东西:
gCursorTable[waitCurs] = XCreateFontCursor(gDisplay, XC_watch);
...
XDefineCursor(gDisplay, WHostWindow(w), gCursorTable[cursor]);
XFlush(gDisplay);
这对于 XFontCursor 提供的极其有限的(有用)光标列表中具有类似物的光标来说很好,但是我想设置其他内置主题光标。例如,我希望能够在我的应用程序中将光标设置为 bd_double_arrow (它包含在每个光标主题中,并且是 Windows 的标准对角线大小光标),但显然不能使用 XCreateFontCursor 做到这一点。这看起来很基本,但对于我来说,我找不到任何关于如何做到这一点的描述。
我只想知道其他 X11 应用程序如何设置光标,因为它们显然是从全局主题获取光标,而不仅仅是使用 XCreateFontCursor。
使用主题光标的最简单方法是使用 Xcursor 库。
#include <X11/Xcursor/Xcursor.h>
...
Cursor c = XcursorLibraryLoadCursor(dpy, "sb_v_double_arrow");
XDefineCursor (dpy, w, c);
这些名称是标准游标名称X11/cursorfont.h
, sans XC_
。如果主题有额外的光标,例如bd_double_arrow
,也可以使用这些名称(但并非所有主题都有它们!)
如果主题没有某些核心 X 光标的替代品,则库将回退到核心光标。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)