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); } %% }}}