com gtk/php-gtk: Override some GtkAboutDialog functions. (patch by Anant N): ext/gtk+/gtk.overrides
[email protected] (David Soria Parra) Thu, 06 Apr 2006 06:20:11 +0000
| Newsgroups | php.gtk.cvs |
|---|---|
| Message-ID | <[email protected]> |
Commit: ffcfb176d415997369e4f34a097230c292aee283 Author: Andrei Zmievski <[email protected]> Thu, 6 Apr 2006 06:20:11 +0000 Parents: b13b6625988424df3dd118e6e2927e28e63f48f9 Branches: master Link: http://git.php.net/?p=gtk/php-gtk.git;a=commitdiff;h=ffcfb176d415997369e4f34a097230c292aee283 Log: Override some GtkAboutDialog functions. (patch by Anant N) Changed paths: M ext/gtk+/gtk.overrides Diff: ffcfb176d415997369e4f34a097230c292aee283 diff --git a/ext/gtk+/gtk.overrides b/ext/gtk+/gtk.overrides index 1bfd30c..a6f7b8f 100644 --- a/ext/gtk+/gtk.overrides +++ b/ext/gtk+/gtk.overrides @@ -682,6 +682,166 @@ PHP_METHOD } %% }}} +%% {{{ GtkAboutDialog + +%% +override gtk_about_dialog_get_artists +PHP_METHOD +{ + gchar **artists; + + NOT_STATIC_METHOD(); + + if (!php_gtk_parse_args(ZEND_NUM_ARGS(), "")) + return; + + artists = (gchar **)gtk_about_dialog_get_artists(GTK_ABOUT_DIALOG(PHPG_GOBJECT(this_ptr))); + + array_init(return_value); + if (artists) { + while (*artists) { + add_next_index_string(return_value, *artists, 1); + *artists++; + } + } +} + +%% +override gtk_about_dialog_get_authors +PHP_METHOD +{ + gchar **authors; + + NOT_STATIC_METHOD(); + + if (!php_gtk_parse_args(ZEND_NUM_ARGS(), "")) + return; + + authors = (gchar **)gtk_about_dialog_get_authors(GTK_ABOUT_DIALOG(PHPG_GOBJECT(this_ptr))); + + array_init(return_value); + if (authors) { + while (*authors) { + add_next_index_string(return_value, *authors, 1); + *authors++; + } + } +} + +%% +override gtk_about_dialog_get_documenters +PHP_METHOD +{ + gchar **doccers; + + NOT_STATIC_METHOD(); + + if (!php_gtk_parse_args(ZEND_NUM_ARGS(), "")) + return; + + doccers = (gchar **)gtk_about_dialog_get_documenters(GTK_ABOUT_DIALOG(PHPG_GOBJECT(this_ptr))); + + array_init(return_value); + if (doccers) { + while (*doccers) { + add_next_index_string(return_value, *doccers, 1); + *doccers++; + } + } +} + +%% +override gtk_about_dialog_set_artists +PHP_METHOD +{ + gchar **artists; + zval *arr = NULL; + zval **data; + int i, arr_count; + + if (!php_gtk_parse_args(ZEND_NUM_ARGS(), "a", &arr)) { + return; + } + + arr_count = zend_hash_num_elements(Z_ARRVAL_P(arr)); + artists = safe_emalloc(arr_count+1, sizeof (gchar *), 0); + + for (i=0, zend_hash_internal_pointer_reset(Z_ARRVAL_P(arr)); + zend_hash_get_current_data(Z_ARRVAL_P(arr), (void **)&data) == SUCCESS; + zend_hash_move_forward(Z_ARRVAL_P(arr))) { + + convert_to_string_ex(data); + artists[i++] = Z_STRVAL_PP(data); + + } + + artists[i] = NULL; + gtk_about_dialog_set_artists(GTK_ABOUT_DIALOG(PHPG_GOBJECT(this_ptr)), (const gchar **)artists); + efree(artists); +} + +%% +override gtk_about_dialog_set_authors +PHP_METHOD +{ + gchar **authors; + zval *arr = NULL; + zval **data; + int i, arr_count; + + if (!php_gtk_parse_args(ZEND_NUM_ARGS(), "a", &arr)) { + return; + } + + arr_count = zend_hash_num_elements(Z_ARRVAL_P(arr)); + authors = safe_emalloc(arr_count+1, sizeof (gchar *), 0); + + for (i=0, zend_hash_internal_pointer_reset(Z_ARRVAL_P(arr)); + zend_hash_get_current_data(Z_ARRVAL_P(arr), (void **)&data) == SUCCESS; + zend_hash_move_forward(Z_ARRVAL_P(arr))) { + + convert_to_string_ex(data); + authors[i++] = Z_STRVAL_PP(data); + + } + + authors[i] = NULL; + gtk_about_dialog_set_authors(GTK_ABOUT_DIALOG(PHPG_GOBJECT(this_ptr)), (const gchar **)authors); + efree(authors); +} + +%% +override gtk_about_dialog_set_documenters +PHP_METHOD +{ + gchar **doccers; + zval *arr = NULL; + zval **data; + int i, arr_count; + + if (!php_gtk_parse_args(ZEND_NUM_ARGS(), "a", &arr)) { + return; + } + + arr_count = zend_hash_num_elements(Z_ARRVAL_P(arr)); + doccers = safe_emalloc(arr_count+1, sizeof (gchar *), 0); + + for (i=0, zend_hash_internal_pointer_reset(Z_ARRVAL_P(arr)); + zend_hash_get_current_data(Z_ARRVAL_P(arr), (void **)&data) == SUCCESS; + zend_hash_move_forward(Z_ARRVAL_P(arr))) { + + convert_to_string_ex(data); + doccers[i++] = Z_STRVAL_PP(data); + + } + + doccers[i] = NULL; + gtk_about_dialog_set_documenters(GTK_ABOUT_DIALOG(PHPG_GOBJECT(this_ptr)), (const gchar **)doccers); + efree(doccers); +} + +%% }}} + %% {{{ GtkAdjustment %% @@ -726,7 +886,7 @@ PHP_METHOD %% }}} -%% {{{ GtkAdjustment +%% {{{ GtkAlignment %% override gtk_alignment_get_padding