Re: GladeXML: signal_autoconnect to an object?
| From: | Steph Fox | Date: | Tue, 25 Oct 2005 13:16:43 +0000 |
| Subject: | Re: GladeXML: signal_autoconnect to an object? | ||
| References: | 1 2 3 | Groups: | php.gtk.dev |
| Request: | Send a blank email to php-gtk-dev+get-1930@lists.php.net to get a copy of this message | ||
Christian,
If MyClass::btnClicked had worked in the first place, I wouldn't have
bothered going to some lengths to make it work last night.
Your test script is wrong. As I explained earlier, you _cannot_ have $this
as a parameter. Also, GladeXML::new_from_buffer() isn't implemented at
present (and hasn't been).
Throughout Glade, you have the option to add 'object' or 'after' to any
signal, including signal_autoconnect(). Glade doesn't even _use_
connect_simple()...
The whole point of allowing gtk::main_quit as a handler was that you
wouldn't need to call anything more than signal_autoconnect() to use it.
I have no idea (yet) why your test script fails and my almost exactly
similar test script succeeds. Looking into it, but bear in mind I also have
a job.
- Steph
----- Original Message -----
From: "Christian Weiske" <cweiske@cweiske.de>
To: "Steph Fox" <steph@zend.com>
Cc: "PHP-GTK dev" <php-gtk-dev@lists.php.net>
Sent: Tuesday, October 25, 2005 7:25 AM
Subject: Re: [PHP-GTK-DEV] GladeXML: signal_autoconnect to an object?
> Good morning Steph,
>
>
> > Staying with your example below, you need to declare either
> > "self::btnClicked" or "MyApp::btnClicked" as the callback handler
> > within
the
> > Glade file, rather than plain-vanilla "btnClicked".
> MyClass::btnClicked works, but it's obvious a static call which should
> be ok.
> What not works is self::btnClicked, at least for all five of my signals
> - I always get a
> -------------------
> cweiske:/data/php-gtk/two/PEAR_Frontend_Gtk2> p5 run.phpw
> PHP Warning: Unable to invoke signal callback 'self::quitDialog'
> specified in /data/php-gtk/two/PEAR_Frontend_Gtk2/Gtk2.php on line 55 in
> /data/php-gtk/two/PEAR_Frontend_Gtk2/run.phpw on line 4
> -------------------
>
> But even self:: should have the meaning that the signal is being
> connected to the static function of the current class. So I vote for no
> prefix (no "self::" or so) if that's possible.
>
> I added a test script in the test/ directory.
>
> Btw, could it be that you forgot to commit your new_from_buffer-patch
> which used strlen() instead of some zend zval size things?
> The test script doesn't work for me, and the other new_from_buffer-test
> script not, too.
>
>
> > Adding any parameter to the signal_autoconnect() call simply passes that
> > data to the callback(s), no change there.
>
> > I'd like to make static GTK calls work in a similar way to this -
especially
> > main_quit, for obvious reasons! - but that'll take a little more umming
and
> > ahhing over here... at present there's always an object passed to the
> > callback, exactly as if connect() were being called.
> A signal_autoconnect_simple doesn't really help as _all_ sigs would be
> connected that way. I think that is a pretty hopeless thing; at least if
> you can't split the signal handler functions into groups - those which
> shall be connected simple, and those not.
>
> --
> Regards/MfG,
> Christian Weiske