Ключевые понятия PHP-GTK



Как же организована PHP-GTK и как работают ее компоненты? Понятие иерархии очень важно в PHP-GTK. Каждый объект в языке, в конечном счете, является производным от базового класса GtkObject . Каждый объект в языке также наследует методы и единственный сигнал ('destroy'), реализованные в базовом классе GtkObject. Если в GtkObject есть поля свойств -открытые свойства класса, непосредственно доступные программисту, каждый объект также наследует их.

В дереве наследования есть несколько ветвей наследования, и некоторые графические элементы имеют до пяти предков, отделяющих их от базового класса GtkObject . В PHP-GTK, как и в GTK+, графический элемент (widget) служит обозначением любого элемента GUI, например метки, переключателя (radio button) или окна списка. Все графические элементы PHP-GTK являются производными от базового класса второго уровня с именем GtkWidget . Есть только три объекта в иерархии PHP-GTK, не являющиеся производными от GtkWidget , и один из этих трех - GtkTooltips - будет участвовать в приводимом примере.
Это умный элемент, знающий свою родословную. Графические элементы PHP-GTK умеют это, в отличие от графических элементов GTK. Дело в том, что РНР обладает возможностью действительного наследования, отсутствующего в С. Не требуется сообщать PHP-GTK, откуда родом метод, или определять родство вызывающего графического элемента с исходным классом, как требуется программисту GTK при работе с С. Это делает программирование PHP-GTK значительно более интуитивным, но также способствует совершению ошибок из-за непонимания иерархической структуры классов GTK. По этой причине программисту PHP-GTK следует твердо помнить происхождение графического элемента. Контейнер является графическим элементом, производным от базового класса третьего уровня с именем GtkContainer , который обладает свойством содержать один или более дочерних графических элементов. Примерами контейнеров служат GtkWindow, GtkTable и GtkList . За исключением того обстоятельства, что они могут содержать в себе другие графические элементы,
они точно такие же, как другие графические элементы, и потому контейнер может быть дочерним для другого контейнера. GTK - система, построенная на событиях. Это значит, что каждая программа PHP-GTK имеет главный цикл, продолжающийся в течение всего срока работы программы. Главный цикл состоит из потока событий, т. е. сообщений от интерфейса, относящихся к изменениям его окружения, таким как первоначальное появление графического элемента на экране, перемещения указателя мыши, нажатия клавиш.
Когда происходит событие, имеющее отношение к графическому элементу, управление переходит к функции, обрабатывающей это событие, с помощью сигнала, генерируемого графическим элементом. Этот сигнал и функция, им вызываемая, могут быть внутренними для GTK, например изменение цвета при входе курсора мыши в чувствительную для графического элемента область экрана, либо сигнал может быть связан с функцией, написанной программистом PHP-GTK.