Содержание Список структур

XWMHints - параметры окна для оконного менеджера

Формат структуры:

    typedef struct {
	long flags;
	Bool input;
	int initial_state;
	Pixmap icon_pixmap;
	Window icon_window;
	int icon_x, icon_y;
	Pixmap icon_mask;
	XID window_group;
	/* this structure may be extended in the future */
    } XWMHints;

       Возможно, в будущем к этой структуре будут добавлены дополнительные поля.

       Поле flags представляет собой битовую маску обозначает, какие из полей этой структуры задействованы. Один бит соответствует конкретному полю структуры. Вариация полей достигается логическим сложением небходимых разрядов. Для каждого разряда определено символьное название:

       Несмотря на то, что определена такая маска как PAllHints, пользоваться ею крайне не рекомендуется. Это связано с тем, что в будущем возможно расширение структуры и введение дополнительных масок. В этом случае при использовании маски PAllHints будет подразумеваться использование этих расширенных полей, а значения на самом деле заполнены не будут и в итоге возможна некорректная работа программы.

       Поле input определяет модель работы с фокусом ввода с клавиатуры, который следует применять к окну.

       Если приложение будет осуществлять ввод с клавиатуры, но никогда не будет явно устанавливать фокус на какое-либо из своих дочерних окон (push-модель управления фокусом), тогда в поле input необходимо записать значение True.

       Аналогично, приложения, которые будут устанавливать фокус на дочерние окна в случае получения фокуса на главное окно, должны записать в поле input значение True.

       Приложения, которые управляют фокусом путем явной установки фокуса на дочернее окно всякий раз, когда необходим ввод с клавиатуры (pull-модель управления фокусом) должны записать в поле input значение False.

       Приложения, которым ввод с клавиатуры не требуется, также должны записать в поле input значение False.

       Поле initial_state определяет первоначальное состояние окна. Эти состояния определены следующим образом:

       Поле icon_pixmap предназначено для указания идентификатора графического образа, который будет использоваться в качестве графической иконки, обозначающей данное окно.

       Поле icon_mask используется для указания идентификатора графического образа, который будет использоваться в качестве маски для иконки icon_pixmap. Маска должна быть монохромной. Она указывает, какие точки из иконки необходимо отображать на экране, а какие нет. С её помощью можно формировать непрямоугольные графические иконки.

       Поле icon_window позволяют приложению указать идентификатор окна, который следует использовать в качестве иконки, обозначающей приложение. Не все оконные менеджеры поддерживают эту возможность.

       Поля icon_x и icon_y описывают первоначальное положение иконки приложения на рабочем столе.

       Поле window_group позволяет указать, что данное окно принадлежит группе других окон. К примеру, если приложение работает одновременно с несколькими окнами верхнего уровня, это поле будет содержать достаточную информацию для оконного менеджера, чтобы свернуть все окна сразу, избавив пользователя от работы по свертыванию каждного окна по-отдельности.

       Флаг UrgencyHint в поле flags служит для обозначения того, что приложение в этом окне отображает очень важные сведения, требующие немедленной реакции пользователя. Оконный менеджер должен предпринимать какие-либо действия для привлечения внимания к этому окну до тех пор, пока этот флаг установлен для этого окна.

       Приложение должно обеспечить средства пользователю для снятия этого флага или закрытия окна.

См. также: XSetWMHints, XGetWMHints.


Содержание Список структур