com gtk/php-gtk: Make libglade constructor work out of the box in most cases.: ext/libglade/libglade.overrides
[email protected] (David Soria Parra) Sun, 16 Oct 2005 21:03:02 +0000
| Newsgroups | php.gtk.cvs |
|---|---|
| Message-ID | <[email protected]> |
Commit: e328d04b672ccd83b78749e52038c8fa18154926 Author: Steph Fox <[email protected]> Sun, 16 Oct 2005 21:03:02 +0000 Parents: 9c8b550720501b04ff4d32d1bfcda60cb824baec Branches: master Link: http://git.php.net/?p=gtk/php-gtk.git;a=commitdiff;h=e328d04b672ccd83b78749e52038c8fa18154926 Log: Make libglade constructor work out of the box in most cases. Changed paths: M ext/libglade/libglade.overrides Diff: e328d04b672ccd83b78749e52038c8fa18154926 diff --git a/ext/libglade/libglade.overrides b/ext/libglade/libglade.overrides index 7d4de89..6a77a32 100644 --- a/ext/libglade/libglade.overrides +++ b/ext/libglade/libglade.overrides @@ -8,8 +8,33 @@ ignore-glob *_get_type %% ignore - glade_xml_new - glade_xml_signal_connect_full - glade_xml_signal_connect_data - glade_xml_signal_autoconnect_full + glade_xml_construct +%% {{{ GladeXML +%% +override glade_xml_new +PHP_METHOD +{ + char *fname, *root = NULL, *domain = NULL; + zend_bool free_fname, free_root, free_domain; + GObject *wrapped_obj; + + if (!php_gtk_parse_args(ZEND_NUM_ARGS(), "u|uu", &fname, &free_fname, &root, &free_root, &domain, &free_domain)) { + PHPG_THROW_CONSTRUCT_EXCEPTION(GladeXML); + } + + /* Glade's default name for the toplevel window is hard-coded - but there may be a better way */ + if (!root) root = (char *)"window1"; + + wrapped_obj = (GObject *) glade_xml_new(fname, root, domain); + if (free_fname) g_free(fname); + if (free_root) g_free(root); + if (free_domain) g_free(domain); + + if (!wrapped_obj) { + PHPG_THROW_CONSTRUCT_EXCEPTION(GladeXML); + } + phpg_gobject_set_wrapper(this_ptr, wrapped_obj TSRMLS_CC); +} + +%% }}}