Аллен Питер В.
Шрифт:
♦ GDK_DESTROY — уничтожение;
♦ GDK_MOTION_NOTIFY — уведомление о перемещении;
♦ GDK_BUTTON_PRESS — нажата любая кнопка мыши;
♦ GDK_1BUTTON_PRESS — нажатие первой кнопки мыши;
♦ GDK_2BUTTON_PRESS — нажатие второй кнопки мыши;
♦ GDK_3BUTTON_PRESS — нажата третья кнопка;
♦ GDK_BUTTON_RELEASE — кнопка (любая) отпущена;
♦ GDK_KEY_PRESS — нажата клавиша;
♦ GDK_KEY_RELEASE — клавиша отпущена;
♦ GDK_ENTER_NOTIFY — указатель мыши в пределах объекта (виджита);
♦ GDK_LEAVE_NOTIFY — указатель мыши вышел за пределы виджита;
♦ GDK_FOCUS_CHANGE — изменения фокуса ввода;
♦ GDK_OTHER_EVENT — другое событие.
23.3.5. Виджит событий — EventBox
Далеко не все виджиты связаны с окнами. Например, GtkLabel (надпись), GtkTable (контейнер-таблица), GtkHBox (горизонтальный контейнер), GtkVBox (вертикальный контейнер) и некоторые другие с окнами не связаны.
Если нужно, чтобы эти виджиты реагировали на определенные сигналы, нужно использовать виджит EventBox, позволяющий привязать сигнал к не связанному с окном виджиту. Следующая программа демонстрирует привязку события button_press_event к виджиту GtkLabel.
Листинг 23.5. Виджит EventBox
Откомпилируйте и запустите программу. Над надписью указатель мыши должен принять вид руки (как в браузере над ссылкой). При щелчке на надписи программа будет закрыта.
Если вы хотите создать надпись на русском языке, то подключите заголовок locale.h и вызовите функцию: