Overrides for GtkUIManager and GtkCalendar

From: Date: Sat, 10 Dec 2005 05:28:31 +0000
Subject: Overrides for GtkUIManager and GtkCalendar
Groups: php.gtk.dev 
Request: Send a blank email to php-gtk-dev+get-2095@lists.php.net to get a copy of this message
Hi Here is a combined UiManager and GtkCalendar patch for gtk2 I have added a fourth value to the array returned by GtkCalendar::get_date() which is a string suitable for use in the php strtotime() function (ie. '2005-12-10') The month I have left in the 0-11 format to match the rest of the calendar functions. The UiMangager functions I provided before were missing NOT_STATIC_METHOD(); Hope this helps. -- Tom

RCS file: /repository/php-gtk/ext/gtk+/gtk.overrides,v retrieving revision 1.132 diff -u -w -b -r1.132 gtk.overrides --- gtk.overrides 19 Nov 2005 21:00:54 -0000 1.132 +++ gtk.overrides 10 Dec 2005 05:17:24 -0000 @@ -1610,5 +1610,115 @@ %% }}} +%% {{{ 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 +{ + zval *items = NULL; + zend_bool free_text; + char *text; + long text_len; + GError *error; + + NOT_STATIC_METHOD(); + if (!php_gtk_parse_args(ZEND_NUM_ARGS(), "u#", &text, &text_len, &free_text)) + return; + + gtk_ui_manager_add_ui_from_string(GTK_UI_MANAGER(PHPG_GOBJECT(this_ptr)), text, text_len, &error); + + if (free_text) g_free(text); +} + +%% +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 +static PHP_METHOD(GtkUIManager, get_toplevels) +{ + long types; + GSList *toplevels = 0; + + NOT_STATIC_METHOD(); + if (!php_gtk_parse_args(ZEND_NUM_ARGS(), "i", &types)) + return; + + array_init(return_value); + + for (toplevels = gtk_ui_manager_get_toplevels(GTK_UI_MANAGER(PHPG_GOBJECT(this_ptr)), types); toplevels; toplevels = toplevels->next) { + zval *item = NULL; + char *name = NULL; + (const gchar*) name = gtk_widget_get_name(toplevels->data); + phpg_gobject_new(&item, G_OBJECT(toplevels->data) TSRMLS_CC); + add_assoc_zval(return_value, name, item); + } + + g_slist_free(toplevels); +} + + +%% +override gtk_ui_manager_get_action_groups +static PHP_METHOD(GtkUIManager, get_action_groups) +{ + 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; + char *name = NULL; + (const gchar*) 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, name, item); + } +} + +%% }}} + +%% {{{ GtkCalendar + +%% +override gtk_calendar_get_date +static PHP_METHOD(GtkCalendar, get_date) +{ + guint year, month, day; + char date[11]; + + NOT_STATIC_METHOD(); + if (!php_gtk_parse_args(ZEND_NUM_ARGS(), "")) + return; + + array_init(return_value); + + gtk_calendar_get_date(GTK_CALENDAR(PHPG_GOBJECT(this_ptr)), &year, &month, &day); + + snprintf(date, sizeof(date), "%04d-%02d-%02d", year, month+1, day); + + add_index_long(return_value, 0, year); + add_index_long(return_value, 1, month); + add_index_long(return_value, 2, day); + add_index_string(return_value, 3, date, 1); +} + +%% }}} + %% include gtktextview.overrides %% include gtktreeview.overrides
« previous php.gtk.dev (#2095) next »