com gtk/php-gtk: - get_widget_prefix() - expose G ladeXML->filename property: ext/libglade/libglade.def s ext/libglade/libglade.overrides

[email protected] (David Soria Parra) Mon, 17 Oct 2005 05:13:31 +0000
Newsgroups php.gtk.cvs
Message-ID <[email protected]>
Commit:    f12f742c9287388442411dd9a74bbf507b319456
Author:    Steph Fox <[email protected]>         Mon, 17 Oct 2005 05:13:31 +0000
Parents:   7fb0990689703fe34088249c510fe0cdf4b84a80
Branches:  master

Link:       http://git.php.net/?p=gtk/php-gtk.git;a=commitdiff;h=f12f742c9287388442411dd9a74bbf507b319456

Log:
- get_widget_prefix()
- expose GladeXML->filename property

Changed paths:
  M  ext/libglade/libglade.defs
  M  ext/libglade/libglade.overrides


Diff:
f12f742c9287388442411dd9a74bbf507b319456
diff --git a/ext/libglade/libglade.defs b/ext/libglade/libglade.defs
index 84b4839..a0873db 100644
--- a/ext/libglade/libglade.defs
+++ b/ext/libglade/libglade.defs
@@ -6,6 +6,9 @@
   (parent "GObject")
   (c-name "GladeXML")
   (gtype-id "GLADE_TYPE_XML")
+  (fields
+    '("gchar*" "filename")
+  )
 )
 
 ;; Functions, constructors, and methods ...
diff --git a/ext/libglade/libglade.overrides b/ext/libglade/libglade.overrides
index 2de12e1..b60e07e 100644
--- a/ext/libglade/libglade.overrides
+++ b/ext/libglade/libglade.overrides
@@ -9,6 +9,9 @@ ignore-glob
 %%
 ignore
   glade_xml_construct
+  glade_xml_signal_connect_data
+  glade_xml_signal_connect_full
+  glade_xml_signal_autoconnect_full
 
 %% {{{ GladeXML
 %%
@@ -20,7 +23,7 @@ PHP_METHOD
     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);
+        return;
     }
 
     wrapped_obj = (GObject *) glade_xml_new(fname, (const char *)root, (const char *)domain);
@@ -34,4 +37,29 @@ PHP_METHOD
     phpg_gobject_set_wrapper(this_ptr, wrapped_obj TSRMLS_CC);
 }
 
+%%
+override glade_xml_get_widget_prefix
+PHP_METHOD
+{
+    char *name;
+    zend_bool free_name;
+    GList *list, *item;
+
+    if (!php_gtk_parse_args(ZEND_NUM_ARGS(), "u", &name, &free_name)) {
+        return;
+    }
+
+    list = glade_xml_get_widget_prefix(GLADE_XML(PHPG_GOBJECT(this_ptr)), (const char *)name);
+    if (free_name) g_free(name);
+
+    array_init(return_value);
+    for (item = list; item; item = item->next) {
+        zval *php_item = NULL;
+        phpg_gobject_new(&php_item, G_OBJECT(item->data) TSRMLS_CC);
+        add_next_index_zval(return_value, php_item);
+    }
+
+    g_list_free(list);
+}
+
 %% }}}