Есть ли способ вернуть все виджеты из родительского окна с X11/Xt?
Я пишу приложение, используя X11, Xt и Motif напрямую с C. Я хочу иметь возможность перечислять все дочерние виджеты из родительского окна. Есть ли способ сделать это?
Я нашел следующий фрагмент для рекурсивного анализа дерева виджетов Motif, но у меня есть только структура окна Xlib, поэтому я хочу иметь возможность получить дочерние виджеты этого окна, а затем передать этот виджет чему-то похожему на этот рекурсивный синтаксический анализатор дерева.
Мой текущий код выглядит примерно так:
int main() {
Display* display;
int screen_num = 0;
display = XOpenDisplay(NULL);
Window window = XRootWindow(display, screen_num);
dumpWidgetTree((Widget)window);
return 0;
}
Я попытался просто привести Window к Widget, но это, как и ожидалось, вызвало ошибку.
0 ответов
Вы можете получить большинство виджетов из дерева окон. Вы можете использовать "XtWindowToWidget" для преобразования идентификатора окна в виджет. Этот подход будет работать для виджета в текущем приложении и не сможет получить доступ к виджетам без окон (также известным как гаджеты).