com gtk/php-gtk: GtkFileFilter::list_filters() GtkF ileFilter::list_shortcut_folders() GtkFileFilter ::list_shortcut_folder_uris(): ext/gtk+/gtk .overrides

[email protected] (David Soria Parra)
Newsgroups php.gtk.cvs
Message-ID <[email protected]>
Commit:    107fbd4ab85fd33e773ebc3d32d768cd49af4b9f
Author:    Christian Weiske <[email protected]>         Fri, 16 Jun 2006 13:18:35 +0000
Parents:   dedc8764a46ff50a47b2506f74995b3af6769136
Branches:  master

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

Log:
GtkFileFilter::list_filters()
GtkFileFilter::list_shortcut_folders()
GtkFileFilter::list_shortcut_folder_uris()

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


Diff:
107fbd4ab85fd33e773ebc3d32d768cd49af4b9f
diff --git a/ext/gtk+/gtk.overrides b/ext/gtk+/gtk.overrides
index 25ddeb4..54ed384 100644
--- a/ext/gtk+/gtk.overrides
+++ b/ext/gtk+/gtk.overrides
@@ -1976,7 +1976,6 @@ PHP_METHOD
     }
 }
 
-
 %%
 add-arginfo GtkFileChooser get_filenames
 static
@@ -2041,6 +2040,119 @@ PHP_METHOD
     g_slist_free(files);
 }
 
+%%
+override gtk_file_chooser_list_filters
+PHP_METHOD
+{
+    GSList *filters, *current;
+    zval *item;
+
+    NOT_STATIC_METHOD();
+
+    if (!php_gtk_parse_args(ZEND_NUM_ARGS(), ""))
+        return;
+
+    filters = gtk_file_chooser_list_filters(GTK_FILE_CHOOSER(PHPG_GOBJECT(this_ptr)));
+
+    array_init(return_value);
+    for (current = filters; current; current = current->next) {
+        MAKE_STD_ZVAL(item);
+        phpg_gobject_new(&item, G_OBJECT(current->data) TSRMLS_CC);
+        add_next_index_zval(return_value, item);
+    }
+    g_slist_free(filters);
+}
+
+%%
+add-arginfo GtkFileChooser list_shortcut_folders
+static
+ZEND_BEGIN_ARG_INFO_EX(ARGINFO_NAME, 0, 0, 0)
+    ZEND_ARG_INFO(0, convert)
+ZEND_END_ARG_INFO();
+
+%%
+override gtk_file_chooser_list_shortcut_folders
+PHP_METHOD
+{
+    GSList *files;
+    gchar *cp = NULL;
+    gchar *fn = NULL;
+    gsize cp_len = 0;
+    zend_bool free_cp = FALSE;
+    zend_bool convert = 1;
+
+    NOT_STATIC_METHOD();
+
+    if (!php_gtk_parse_args(ZEND_NUM_ARGS(), "|b", &convert)) 
+        return;
+
+    array_init(return_value);
+    for (files = gtk_file_chooser_list_shortcut_folders(GTK_FILE_CHOOSER(PHPG_GOBJECT(this_ptr))); files; files = files->next) {
+        if (convert) {
+            if (files->data) {
+                fn = g_filename_to_utf8(files->data, strlen(files->data), NULL, NULL, NULL);
+                cp = phpg_from_utf8(fn, strlen(fn), &cp_len, &free_cp TSRMLS_CC);
+                if (cp) {
+                    add_next_index_string(return_value, (char *)cp, 1);
+                } else {
+                    php_error(E_WARNING, "%s::%s(): could not convert return value from UTF-8", get_active_class_name(NULL TSRMLS_CC), get_active_function_name(TSRMLS_C));
+                }
+                if (free_cp)
+                    g_free(cp);
+            }
+        } else {
+            add_next_index_string(return_value, (char *)files->data, 1);
+        }
+        g_free(files->data);
+    }
+    g_slist_free(files);
+}
+
+%%
+add-arginfo GtkFileChooser list_shortcut_folder_uris
+static
+ZEND_BEGIN_ARG_INFO_EX(ARGINFO_NAME, 0, 0, 0)
+    ZEND_ARG_INFO(0, convert)
+ZEND_END_ARG_INFO();
+
+%%
+override gtk_file_chooser_list_shortcut_folder_uris
+PHP_METHOD
+{
+    GSList *files;
+    gchar *cp = NULL;
+    gchar *fn = NULL;
+    gsize cp_len = 0;
+    zend_bool free_cp = FALSE;
+    zend_bool convert = 1;
+
+    NOT_STATIC_METHOD();
+
+    if (!php_gtk_parse_args(ZEND_NUM_ARGS(), "|b", &convert)) 
+        return;
+
+    array_init(return_value);
+    for (files = gtk_file_chooser_list_shortcut_folder_uris(GTK_FILE_CHOOSER(PHPG_GOBJECT(this_ptr))); files; files = files->next) {
+        if (convert) {
+            if (files->data) {
+                fn = g_filename_to_utf8(files->data, strlen(files->data), NULL, NULL, NULL);
+                cp = phpg_from_utf8(fn, strlen(fn), &cp_len, &free_cp TSRMLS_CC);
+                if (cp) {
+                    add_next_index_string(return_value, (char *)cp, 1);
+                } else {
+                    php_error(E_WARNING, "%s::%s(): could not convert return value from UTF-8", get_active_class_name(NULL TSRMLS_CC), get_active_function_name(TSRMLS_C));
+                }
+                if (free_cp)
+                    g_free(cp);
+            }
+        } else {
+            add_next_index_string(return_value, (char *)files->data, 1);
+        }
+        g_free(files->data);
+    }
+    g_slist_free(files);
+}
+
 %% }}}
 
 %% {{{ GtkFileChooserDialog
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.