Определите пользовательские свойства для окон x11, чтобы связать с ними дополнительные данные.

Я пытаюсь выяснить, как определить свои собственные свойства окна в xcb/x11, чтобы иметь возможность связать дополнительные данные с окном.

Я могу устанавливать и извлекать предварительно определенные свойства, такие как XCB_ATOM_WM_NAME, с помощью xcb_change_property() и xcb_get_property(), но не могу понять, как определить собственные новые свойства.

В ряде руководств упоминается, что это возможно и действительно является неотъемлемой частью дизайна, но я нигде не могу найти никаких указаний о том, как это сделать.


person Ian Lyon    schedule 23.06.2021    source источник
comment
Связанный вопрос: Назначить пользовательские данные окну x11/xcb, но не ясно отвечать.   -  person Weather Vane    schedule 23.06.2021


Ответы (1)


Я не знаю о xcb, но в X вы можете создать Atom (Property) с помощью

XInternAtom

Функция XInternAtom возвращает идентификатор атома, связанный с указанной строкой atom_name. Если only_if_exists имеет значение False, атом создается, если он не существует.

и изменить/получить его с помощью

XChangeProperty
XGetWindowProperty

xcb должен предоставить что-то подобное.

person Erdal Küçük    schedule 23.06.2021
comment
Ага, xcb_intern_atom и xcb_change_property. - person Uli Schlachter; 24.06.2021
comment
@UliSchlachter Почему я не удивлен? Большое спасибо! - person Erdal Küçük; 24.06.2021
comment
Большое спасибо, ребята, это прибило меня - person Ian Lyon; 25.06.2021