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

       Нажатия и отжатия кнопок на мышке порождают событие XButtonEvent. В зависимости от нажатия или отжатия кнопки значение поля type принимает значения ButtonPress и ButtonRelease соответственно. Для более упорядоченной обработки событий клавиатуры определены дополнительные названия этой структуры: XButtonPressedEvent и XButtonReleasedEvent.

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

  typedef struct {
    int type;
    unsigned long serial;
    Bool send_event;
    Display *display;
    Window window;
    Window root;
    Window subwindow;
    Time time;
    int x, y;
    int x_root, y_root;
    unsigned int state;      /* состояния кнопок мыши */
    unsigned int button;     /* код кнопки, изменившей значение */
    Bool same_screen;
  } XButtonEvent;
  typedef XButtonEvent XButtonPressedEvent;
  typedef XButtonEvent XButtonReleasedEvent;

       Поле type определяет состояние кнопки после события. Принимает значение ButtonPress, если кнопка была нажата, или ButtonRelease, если кнопка была отпущена.

       Поле serial хранит серийный номер последнего обработанного запроса.

       Поле send_event принимает значение True, если событие послано другим клиентом через вызов XSendEvent.

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

       Поле window хранит идентификатор окна, для которого сгенерировано это событие.

       Поле root указывает на корневое окно, которому принадлежит окно window.

       Поле subwindow будет указывать на дочернее окно окна window в том случае, если событие принадлежит дочернему окну. Иначе в это поле записывается значение None.

       Поле time хранит время, в которое событие было сгенерировано.

       Поля x и y хранят координаты графического курсора мыши относительно окна window.

       Поля x_root и y_root хранят координаты графического курсора мыши относительно корневого окна.

       Поле state указывает состояние кнопок мыши. Оно является битовой маской. Для каждой кнопки определена своя маска: Button1Mask, Button2Mask, Button3Mask, Button4Mask, Button5Mask. Установленный в единицу разряд соответствует нажатому состоянию кнопки. Проверка состояния какой-либо кнопки производится путём логического умножения поля state с битовой маской кнопки. Если результат будет ненулевым, то значит кнопка нажата.

       В поле button записывается код кнопки мыши, которая изменила свое состояние. Для обозначения кнопок определены следующие значения Button1, Button2, Button3, Button4 и Button5.

       Поле same_screen принимает значение True, если событие было порождено на том же экране, которому принадлежит окно window.


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