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