Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > 11c5630b2c8f00f64861e0dac51a202a > files > 48

php-gtk2-2.0.1-12mdv2010.0.i586.rpm

<?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();
?>