com gtk/php-gtk: - Fix compile warning in set_cell_data_f unc(). - Add some GtkUIManager overrides (p atch by Tom Rogers, modified by Andrei): ex t/gtk+/gtk.overrides ext/gtk+/gtktreeview.overrides

[email protected] (David Soria Parra) Fri, 17 Mar 2006 05:50:57 +0000
Newsgroups php.gtk.cvs
Message-ID <[email protected]>
Commit:    b249fd0360403ce5555972c1186db5eb032b07ed
Author:    Andrei Zmievski <[email protected]>         Fri, 17 Mar 2006 05:50:57 +0000
Parents:   f764f8a58b30c93f69db706b3e216eebc10221c8
Branches:  master

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

Log:
- Fix compile warning in set_cell_data_func().
- Add some GtkUIManager overrides (patch by Tom Rogers, modified by Andrei)

Changed paths:
  M  ext/gtk+/gtk.overrides
  M  ext/gtk+/gtktreeview.overrides


Diff:
b249fd0360403ce5555972c1186db5eb032b07ed
diff --git a/ext/gtk+/gtk.overrides b/ext/gtk+/gtk.overrides
index c0a7e20..94a7658 100644
--- a/ext/gtk+/gtk.overrides
+++ b/ext/gtk+/gtk.overrides
@@ -2685,6 +2685,103 @@ PHP_METHOD
 }
 %% }}}
 
+%% {{{ GtkUIManager
+
+%%
+add-arginfo GtkUIManager add_ui_from_string
+static
+ZEND_BEGIN_ARG_INFO(ARGINFO_NAME, 0)
+    ZEND_ARG_INFO(0, text)
+ZEND_END_ARG_INFO();
+
+%%
+override gtk_ui_manager_add_ui_from_string
+PHP_METHOD
+{
+    char *text;
+    long text_len;
+    guint ret;
+    GError *error = NULL;
+    zend_bool free_text;
+
+    NOT_STATIC_METHOD();
+    if (!php_gtk_parse_args(ZEND_NUM_ARGS(), "u#", &text, &text_len, &free_text))
+        return;
+
+    ret = gtk_ui_manager_add_ui_from_string(GTK_UI_MANAGER(PHPG_GOBJECT(this_ptr)), text, text_len, &error);
+
+    if (free_text) g_free(text);
+    if (phpg_handle_gerror(&error TSRMLS_CC)) {
+        return;
+    }
+    RETURN_LONG(ret);
+}
+
+%%
+add-arginfo GtkUIManager get_toplevels
+static
+ZEND_BEGIN_ARG_INFO(ARGINFO_NAME, 0)
+    ZEND_ARG_INFO(0, types)
+ZEND_END_ARG_INFO();
+
+%%
+override gtk_ui_manager_get_toplevels
+PHP_METHOD
+{
+    GtkUIManagerItemType types;
+    zval *php_types = NULL;
+    GSList *toplevels = 0, *tmp;
+
+    NOT_STATIC_METHOD();
+    if (!php_gtk_parse_args(ZEND_NUM_ARGS(), "i", &types))
+        return;
+
+	if (php_types && phpg_gvalue_get_flags(GTK_TYPE_UI_MANAGER_ITEM_TYPE, php_types, (gint *)&types) == FAILURE) {
+		return;
+	}
+    array_init(return_value);
+
+    toplevels = gtk_ui_manager_get_toplevels(GTK_UI_MANAGER(PHPG_GOBJECT(this_ptr)), types);
+    for (tmp = toplevels; tmp; tmp = tmp->next) {
+        zval *item = NULL;
+        const char *name = NULL;
+
+        name = gtk_widget_get_name(tmp->data);
+        phpg_gobject_new(&item, G_OBJECT(tmp->data) TSRMLS_CC);
+        add_assoc_zval(return_value, (char *)name, item);
+    }
+    g_slist_free(toplevels);
+}
+
+
+%%
+override gtk_ui_manager_get_action_groups 
+
+PHP_METHOD
+{
+    GList *action_groups = 0;
+
+    NOT_STATIC_METHOD();
+    if (!php_gtk_parse_args(ZEND_NUM_ARGS(), ""))
+        return;
+
+    array_init(return_value);
+
+    for (action_groups = gtk_ui_manager_get_action_groups(GTK_UI_MANAGER(PHPG_GOBJECT(this_ptr)));
+         action_groups;
+         action_groups = action_groups->next) {
+
+        zval *item = NULL;
+        const char *name = NULL;
+
+        name = gtk_action_group_get_name(action_groups->data);
+        phpg_gobject_new(&item, G_OBJECT(action_groups->data) TSRMLS_CC);
+        add_assoc_zval(return_value, (char *)name, item);
+    }
+}
+
+%% }}}
+
 %% {{{ GtkWidget
 
 %%
diff --git a/ext/gtk+/gtktreeview.overrides b/ext/gtk+/gtktreeview.overrides
index 39e6999..e77e0ce 100644
--- a/ext/gtk+/gtktreeview.overrides
+++ b/ext/gtk+/gtktreeview.overrides
@@ -134,7 +134,7 @@ PHP_METHOD
     zval_add_ref(&callback);
     cb_data = phpg_cb_data_new(callback, extra TSRMLS_CC);
 
-    gtk_cell_layout_set_cell_data_func(layout, cell, (GtkTreeCellDataFunc)phpg_cell_data_func_marshal,
+    gtk_cell_layout_set_cell_data_func(layout, cell, (GtkCellLayoutDataFunc)phpg_cell_data_func_marshal,
                                        cb_data, phpg_cb_data_destroy);
 }
 %% }}}