<?php /** * FIXED by Steph on 2005-10-25 19:04 * php-gtk/ext/libglade/libglade.overrides:1.25 * * To test if GladeXML's signal_autoconnect($obj) method * works correctly */ $XML = <<<EOX <?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="dlgAutoconnectTest"> <property name="visible">True</property> <property name="title" translatable="yes">Signal autoconnection test</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> <child> <widget class="GtkVBox" id="vbox1"> <property name="visible">True</property> <property name="homogeneous">False</property> <property name="spacing">0</property> <child> <widget class="GtkButton" id="btnSelf"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="label" translatable="yes">self::clickMe</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <signal name="clicked" handler="self::clickMe" last_modification_time="Tue, 25 Oct 2005 06:09:29 GMT"/> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> <widget class="GtkButton" id="btnClassName"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="label" translatable="yes">MyApp::clickMe</property> <property name="use_underline">True</property> <property name="relief">GTK_RELIEF_NORMAL</property> <property name="focus_on_click">True</property> <signal name="clicked" handler="MyApp::clickMe" last_modification_time="Tue, 25 Oct 2005 06:10:37 GMT"/> </widget> <packing> <property name="padding">0</property> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> </widget> </child> </widget> </glade-interface> EOX; class MyApp { function __construct() { // $glade = new GladeXML(dirname(__FILE__) . '/bug_glade_signal_autoconnect.glade'); $glade = GladeXML::new_from_buffer($GLOBALS['XML']); $glade->signal_autoconnect($this); $glade->get_widget('dlgAutoconnectTest')->connect_simple('destroy', array('gtk', 'main_quit')); //Note the Gtk::main() *here*, not after the "new MyApp()" (self:: doesn't work otherwise) Gtk::main(); } function clickMe($obj) { echo 'clickMe'; if (!isset($this)) { echo ' static'; } echo "\r\n"; } } new MyApp(); ?>