GTK+ 2.0 Tutorial |
||
---|---|---|
Advanced Event and Signal Handling |
Signal Emission - процесс, посредством которого GTK выполняет все обработчики для определенного объекта и сигнала.
Для начала отметьте, что возвращаемое значение от эмиссии сигнала (Signal Emission) - возвращаемое значение последнего выполняемого обработчика. Так как события сигналов все имеют тип GTK_RUN_LAST, он же будет установлен (самим GTK) по умолчанию обработчиком, если вы не вызовите gtk_signal_connect_after().
Событием обработчика (говорят "button_press_event") может быть:
Воспроизвести основной сигнал "event". Если этот обработчик вернул значение TRUE, остановить весь процесс.
В другом случае воспроизвести специфический сигнал "button_press_event". Если возвращено TRUE, остановить весь процесс.
Иначе, вернутся к родителю виджета, и повторить вышеупомянутые два шага.
Продолжать пока обработчик сигнала не вернул TRUE, или пока виджет верхнего уровня не достиг предела.
Некоторые последствия вышеупомянутого:
Возвращаемое значение вашего обработчика не будет иметь никакого эффекта, если это обработчик по умолчанию, или если вы не вызываете gtk_signal_connect_after().
Чтобы обработчик значения по умолчанию не выполнился, вы должны вызвать gtk_signal_connect() и использовать gtk_signal_emit_stop_by_name() - возвращаемое значение влияет на размножение сигнала, но не на текущую эмиссию.
Advanced Event and Signal Handling |
Managing Selections |