Firefox addon X11中的菜单枚举函数?

Firefox addon X11中的菜单枚举函数?,firefox-addon,x11,jsctypes,Firefox Addon,X11,Jsctypes,我正在将这个屏幕保护程序测试从linux代码转换为js ctypes 它大量使用X11,但我找不到任何菜单功能 这是我正在尝试转换的代码: 1012 XMenuList::GetInstance()->InsertMenuWindowXIDs(&windows); 1013 // Enumerate the menus first. 1014 for (iter = windows.begin(); iter != windows.end(); iter++

我正在将这个屏幕保护程序测试从linux代码转换为js ctypes

它大量使用X11,但我找不到任何菜单功能

这是我正在尝试转换的代码:

1012     XMenuList::GetInstance()->InsertMenuWindowXIDs(&windows);
1013     // Enumerate the menus first.
1014     for (iter = windows.begin(); iter != windows.end(); iter++) {
1015       if (delegate->ShouldStopIterating(*iter))
1016         return true;
1017     }
1018     windows.clear();
此代码可在此处找到:

基本上,我试图通过窗口枚举,但他们在寻找屏幕保护程序时也会检查菜单

我看到这张便条:

X11本身不做菜单。这就是为什么要创建GTK、Qt、Motif等工具包的原因

这是否意味着我应该
ctypes。打开除X11之外的另一个库,有人知道是哪个库吗?我找不到

谢谢

这是我正在编写的代码:

这是我用于x11函数的freedocs页面:

如果您查看源代码,您可以看到,对于Mozilla来说,菜单只是一个窗口,它的
\u NET\u WM\u window\u TYPE
属性设置为
\u NET\u WM\u window\u TYPE\u menu

桌面标准称,这些窗口是从主应用程序窗口“撕下”并固定在桌面上的菜单。您不需要任何特殊的库来检测这种情况,只需使用普通的属性操纵函数即可


我不太明白为什么屏幕保护程序需要这个功能。

不清楚你指的是什么样的菜单。X11没有菜单的概念,正如您引用的注释正确地说的那样。工具箱可以帮助您的程序实现菜单,它不会将菜单引入X服务器,也不能帮助您检测由其他程序实现的菜单。“枚举X11中的菜单”是什么意思?好的,如果你看一下,你会发现对于Mozilla来说,菜单只是一个窗口,它的
\u NET\u WM\u window\u TYPE
属性设置为
\u NET\u WM\u window\u TYPE\u menu
。它是一个菜单,从主应用程序中“撕下”并固定在桌面上。您不需要任何特殊的库来检测这种情况,只需使用普通的属性操纵函数即可。我不太明白为什么屏幕保护程序需要这个。谢谢@n.m!!其他人,如果你知道谷歌chrome为什么要执行“enum menus 1st”上面的代码,请告诉我:)@n.m.如果不是你,请将你的评论移到解决方案中。我会一直迷路到现在,我非常感谢你的评论,即使你不是jsctypes的人。谢谢