<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
<glade-interface>
<widget class="GtkWindow" id="wndClose">
<property name="visible">True</property>
<property name="title" translatable="yes">Close me</property>
<property name="type">GTK_WINDOW_TOPLEVEL</property>
<property name="window_position">GTK_WIN_POS_NONE</property>
<property name="modal">False</property>
<property name="resizable">True</property>
<property name="destroy_with_parent">False</property>
<property name="decorated">True</property>
<property name="skip_taskbar_hint">False</property>
<property name="skip_pager_hint">False</property>
<property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
<property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
<signal name="destroy" handler="gtk::main_quit"/>
<child>
<widget class="GtkButton" id="btnClose">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label">gtk-close</property>
<property name="use_stock">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
<signal name="clicked" handler="onClickButton"/>
</widget>
</child>
</widget>
</glade-interface>
<signal name="clicked" handler="onClickButton"/>
<?php
$glade = new GladeXML(dirname(__FILE__) . '/helloglade.glade');
//这是重点,事件自动绑定
$glade->signal_autoconnect();
//当btnClose被点击的时候就会调用本事件
function onClickButton() {
echo "button clicked!\r\n";
Gtk::main_quit();
}
//Start the main loop
Gtk::main();
?>
<?php
// 这里我们使用一个对象来代替function
class MyClass {
//btnClose被点击的时候会调用本方法
function onClickButton() {
echo "MyClass->onClickButton!\r\n";
Gtk::main_quit();
}
function staticMethod() {
echo "MyClass::staticMethod()\r\n";
}
}
$glade = new GladeXML(dirname(__FILE__) . '/helloglade.glade');
//这里是重点,自动绑定某个对象的方法
$myClassInstance = new MyClass();
$glade->signal_autoconnect_instance($myClassInstance);
Gtk::main();
?>