Есть ли способ вернуть все виджеты из родительского окна с 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" для преобразования идентификатора окна в виджет. Этот подход будет работать для виджета в текущем приложении и не сможет получить доступ к виджетам без окон (также известным как гаджеты).

Другие вопросы по тегам