GtkBuilder does not call __construct() for custom widgets
[email protected] (Pistiolis Konstantinos) Tue, 13 Oct 2009 14:44:12 +0300
| Newsgroups | php.gtk.dev |
|---|---|
| Message-ID | <1255434253.6678.213.camel@faidra> |
Hi,
I'm trying to add custom php-gtk widgets to glade-3
- I've compiled a php with the embed sapi and linked it
with a library of my own which includes the php code.
- added the .so to the glade path
- added the needed catalogue files
It seems to be ok with glade but there is a major problem:
GtkBuilder creates the php-gtk Derived objects but does not
call their constructor (their __construct() method in php)
check this code:
<?php
class MyWin extends GtkWindow {
public function __construct() {
echo "MyWin::__construct(): constructor called\n";
parent::__construct();
}
}
GObject::register_type('MyWin');
$xml = '<interface><object class="MyWin"
id="window1"></object></interface>';
$builder = new GtkBuilder();
$builder->add_from_string($xml);
$win = $builder->get_object('window1');
$win->connect_simple('destroy', array('Gtk', 'main_quit'));
$win->show_all();
Gtk::main();
?>
no conctructor is called
Same thing works in pygtk:
import gtk
class MyWin(gtk.Window):
__gtype_name__ = 'MyWin'
def __init__(self):
print "MyWin.__init__(): constructor called"
super(MyWin, self).__init__()
xml = '<interface><object class="MyWin"
id="window1"></object></interface>'
builder = gtk.Builder()
builder.add_from_string(xml)
win = builder.get_object('window1')
win.connect('destroy', gtk.main_quit)
win.show_all()
gtk.main()
Isn't this a bug?
I have tried to check it from the php-gtk code but I don't know
zend so I can't do much.
Con