这些 Xcursor 名称的含义是什么?

这些 Xcursor 名称的含义是什么?

我计划制作自己的 Xcursor 主题。我正在查看现有主题并发现一些奇怪的名称,例如08e8e1c95fe2fc01f976f1e063a24ccd.我找到了一段包含这个名字的代码。

https://vimsky.com/examples/detail/cpp-ex---QHash-reserve-method.html

根据评论,它似乎是硬编码的 MD5 哈希值。但我未能产生这个哈希值。哪些程序需要这些名称?我的系统上安装的所有主题都是这些名称的符号链接,但我找不到任何相关文档。

还有两个光标,分别命名size_bdiag为右上角/左下角窗口大小调整和size_fdiag左上角/右下角窗口大小调整。但我无法理解这些名字的含义。也许“diag”的意思是“对角线”,但我仍然无法猜测“b”和“f”的意思。我用谷歌搜索了好几次,但找不到任何文档。那些没有意义吗?原作者是在玩我吗?

答案1

手册页解释如何使用哈希:

无效 XcursorImageHash (
               X图像*图像,
               无符号字符哈希[XCURSOR_BITMAP_HASH_SIZE])

       计算图像的哈希值,以在环境发生变化时显示
       设置变量 XCURSOR_DISCOVER。

光标 XcursorTryShapeBitmapCursor (
               显示*dpy,
               像素图源,
               像素图蒙版,
               XColor *前景,
               X颜色*背景,
               无符号整型 x,
               无符号整型 y)

      如果显示器支持 ARGB 或主题,请尝试加载
      使用源参数作为光标进入 Xcursor 的缓存
      像素图 ID。源可能不再位于缓存中。光标
      使用哈希值来识别所需的图像。

源代码解释说它不使用md5等,

    /*
     * 计算哈希值。是的,使用起来可能会很好
     * 更强的哈希函数,但是MD5和SHA1都是
     *为此在时间和空间上有点昂贵,
     * 并且游标通常足够小,弱
     * hash足以区分它们。
     */

关于晦涩难懂的助记符,X 鼠标光标的乐趣,特别是 left_ptr_watch有一些插图:

  • “fdiag”是一个带有箭头的类似反斜杠的符号

  • “bdiag”是带有箭头的类似正斜杠的符号

然而,这只是一组图像。 X 光标名称(定义在头文件) 在 Xcursor API 中用于各种图像集;有些与原始 X 光标图片完全无关。例如,bdiag/fdiag 似乎是 Qt 名称,它们又可能映射到 X 名称(ymmv- 阅读 Qt 源代码会有所帮助):

  • Qt::SizeBDiagCursorBOTTOM_LEFT_CORNER
  • Qt::SizeFDiagCursorBOTTOM_RIGHT_CORNER

右侧的这些名称对应于 X 源代码中的定义:

#定义XC_bottom_left_corner 12
#定义XC_bottom_right_corner 14

决定在哪里bdiag/fdiag 名称的来源需要一些研究。 Qt 开发人员可能还记得,但话又说回来,也许不记得了。这QCursor 类参考指的是这样的名称ibeam(在 X 源中不存在,但可能来自 XView,相当于xterm)。 xterm手册页有一个 X 光标名称列表,没有提及“ibeam”。

相关内容