/*
* Copyright (c) 2003-2005 by the gtk2-perl team (see the file AUTHORS)
*
* Licensed under the LGPL, see LICENSE file for more information.
*
* $Id$
*/
#include "gtk2perl.h"
MODULE = Gtk2::FileChooser PACKAGE = Gtk2::FileChooser PREFIX = gtk_file_chooser_
=for enum GtkFileChooserAction
=cut
=for enum GtkFileChooserError
=cut
## Configuration
##
void gtk_file_chooser_set_action (GtkFileChooser *chooser, GtkFileChooserAction action);
GtkFileChooserAction gtk_file_chooser_get_action (GtkFileChooser *chooser);
void gtk_file_chooser_set_local_only (GtkFileChooser *chooser, gboolean files_only);
gboolean gtk_file_chooser_get_local_only (GtkFileChooser *chooser);
void gtk_file_chooser_set_select_multiple (GtkFileChooser *chooser, gboolean select_multiple);
gboolean gtk_file_chooser_get_select_multiple (GtkFileChooser *chooser);
## Filename manipulation
##
void gtk_file_chooser_set_current_name (GtkFileChooser *chooser, const gchar *name);
gchar_own * gtk_file_chooser_get_filename (GtkFileChooser *chooser);
gboolean gtk_file_chooser_set_filename (GtkFileChooser *chooser, const char *filename);
gboolean gtk_file_chooser_select_filename (GtkFileChooser *chooser, const char *filename);
void gtk_file_chooser_unselect_filename (GtkFileChooser *chooser, const char *filename);
void gtk_file_chooser_select_all (GtkFileChooser *chooser);
void gtk_file_chooser_unselect_all (GtkFileChooser *chooser);
void gtk_file_chooser_get_filenames (GtkFileChooser *chooser);
PREINIT:
GSList * names, * i;
PPCODE:
names = gtk_file_chooser_get_filenames (chooser);
for (i = names ; i != NULL ; i = i->next) {
XPUSHs (sv_2mortal (newSVGChar (i->data)));
g_free (i->data);
}
g_slist_free (names);
gboolean gtk_file_chooser_set_current_folder (GtkFileChooser *chooser, const gchar *filename);
gchar_own *gtk_file_chooser_get_current_folder (GtkFileChooser *chooser);
## URI manipulation
##
gchar_own * gtk_file_chooser_get_uri (GtkFileChooser *chooser);
gboolean gtk_file_chooser_set_uri (GtkFileChooser *chooser, const char *uri);
gboolean gtk_file_chooser_select_uri (GtkFileChooser *chooser, const char *uri);
void gtk_file_chooser_unselect_uri (GtkFileChooser *chooser, const char *uri);
void gtk_file_chooser_get_uris (GtkFileChooser *chooser);
PREINIT:
GSList * uris, * i;
PPCODE:
uris = gtk_file_chooser_get_uris (chooser);
for (i = uris ; i != NULL ; i = i->next) {
XPUSHs (sv_2mortal (newSVGChar (i->data)));
g_free (i->data);
}
g_slist_free (uris);
gboolean gtk_file_chooser_set_current_folder_uri (GtkFileChooser *chooser, const gchar *uri);
gchar_own *gtk_file_chooser_get_current_folder_uri (GtkFileChooser *chooser);
## Preview widget
##
void gtk_file_chooser_set_preview_widget (GtkFileChooser *chooser, GtkWidget *preview_widget);
GtkWidget *gtk_file_chooser_get_preview_widget (GtkFileChooser *chooser);
void gtk_file_chooser_set_preview_widget_active (GtkFileChooser *chooser, gboolean active);
gboolean gtk_file_chooser_get_preview_widget_active (GtkFileChooser *chooser);
## char *gtk_file_chooser_get_preview_filename (GtkFileChooser *file_chooser);
GPerlFilename_own gtk_file_chooser_get_preview_filename (GtkFileChooser *file_chooser);
CODE:
RETVAL = gtk_file_chooser_get_preview_filename (file_chooser);
if (!RETVAL)
XSRETURN_UNDEF;
OUTPUT:
RETVAL
## char *gtk_file_chooser_get_preview_uri (GtkFileChooser *file_chooser);
gchar_own *gtk_file_chooser_get_preview_uri (GtkFileChooser *file_chooser);
CODE:
RETVAL = gtk_file_chooser_get_preview_uri (file_chooser);
if (!RETVAL)
XSRETURN_UNDEF;
OUTPUT:
RETVAL
void gtk_file_chooser_set_use_preview_label (GtkFileChooser *chooser, gboolean use_label);
gboolean gtk_file_chooser_get_use_preview_label (GtkFileChooser *chooser);
## Extra widget
##
void gtk_file_chooser_set_extra_widget (GtkFileChooser *chooser, GtkWidget *extra_widget);
GtkWidget *gtk_file_chooser_get_extra_widget (GtkFileChooser *chooser);
## List of user selectable filters
##
void gtk_file_chooser_add_filter (GtkFileChooser *chooser, GtkFileFilter *filter);
void gtk_file_chooser_remove_filter (GtkFileChooser *chooser, GtkFileFilter *filter);
void gtk_file_chooser_list_filters (GtkFileChooser *chooser);
PREINIT:
GSList * filters, * i;
PPCODE:
filters = gtk_file_chooser_list_filters (chooser);
for (i = filters ; i != NULL ; i = i->next)
XPUSHs (sv_2mortal (newSVGtkFileFilter (i->data)));
g_slist_free (filters);
## Current filter
##
void gtk_file_chooser_set_filter (GtkFileChooser *chooser, GtkFileFilter *filter);
GtkFileFilter *gtk_file_chooser_get_filter (GtkFileChooser *chooser);
## Per-application shortcut folders
=for apidoc __gerror__
=cut
void
gtk_file_chooser_add_shortcut_folder (GtkFileChooser *chooser, const char *folder);
ALIAS:
add_shortcut_folder = 0
remove_shortcut_folder = 1
add_shortcut_folder_uri = 2
remove_shortcut_folder_uri = 3
PREINIT:
GError * error = NULL;
gboolean ret = FALSE;
CODE:
switch (ix) {
case 0: ret = gtk_file_chooser_add_shortcut_folder (chooser, folder, &error); break;
case 1: ret = gtk_file_chooser_remove_shortcut_folder (chooser, folder, &error); break;
case 2: ret = gtk_file_chooser_add_shortcut_folder_uri (chooser, folder, &error); break;
case 3: ret = gtk_file_chooser_remove_shortcut_folder_uri (chooser, folder, &error); break;
default:
g_assert_not_reached ();
}
if (!ret)
gperl_croak_gerror (NULL, error);
## GSList *gtk_file_chooser_list_shortcut_folders (GtkFileChooser *chooser);
## GSList *gtk_file_chooser_list_shortcut_folder_uris (GtkFileChooser *chooser);
void gtk_file_chooser_list_shortcut_folders (GtkFileChooser *chooser);
ALIAS:
list_shortcut_folders = 0
list_shortcut_folder_uris = 1
PREINIT:
GSList * slist, * i;
PPCODE:
if (ix == 0)
slist = gtk_file_chooser_list_shortcut_folders (chooser);
else
slist = gtk_file_chooser_list_shortcut_folder_uris (chooser);
for (i = slist ; i != NULL ; i = i->next) {
XPUSHs (sv_2mortal (newSVGChar (i->data)));
g_free (i->data);
}
g_slist_free (slist);
#if GTK_CHECK_VERSION (2, 6, 0)
void gtk_file_chooser_set_show_hidden (GtkFileChooser *chooser, gboolean show_hidden)
gboolean gtk_file_chooser_get_show_hidden (GtkFileChooser *chooser)
#endif
#if GTK_CHECK_VERSION (2, 8, 0)
void gtk_file_chooser_set_do_overwrite_confirmation (GtkFileChooser *chooser, gboolean do_overwrite_confirmation);
gboolean gtk_file_chooser_get_do_overwrite_confirmation (GtkFileChooser *chooser);
#endif
#if GTK_CHECK_VERSION (2, 18, 0)
void gtk_file_chooser_set_create_folders (GtkFileChooser *chooser, gboolean create_folders);
gboolean gtk_file_chooser_get_create_folders (GtkFileChooser *chooser);
#endif