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

Событие перемещения графического курсора мыши

       Перемещение мышки порождает событие XMotionEvent. Существует еще одно название этой структуры: XPointerMovedEvent.

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

  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;
    char is_hint;
    Bool same_screen;
  } XMotionEvent;
  typedef XMotionEvent XPointerMovedEvent;

       Значение поля type в этой структуре всегда равно MotionNotify.

       Поле 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 с битовой маской кнопки. Если результат будет ненулевым, то значит кнопка нажата.

       Поле is_hint может принимать значения NotifyNormal или NotifyHint. Значение NotifyNormal соответствует обычному событию от перемещения мыши. Значение NotifyHint обозначает, что для окна был выбран режим PointerMotionHintMask и что для получения координат курсора необходимо воспользваться функцией XQueryPointer.

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


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