]> Pileus Git - ~andy/gtk/blob - gtk/gtkfilechooser.h
Added methods for ::get_supports_bookmarks(), ::set_bookmarks(),
[~andy/gtk] / gtk / gtkfilechooser.h
1 /* GTK - The GIMP Toolkit
2  * gtkfilechooser.h: Abstract interface for file selector GUIs
3  * Copyright (C) 2003, Red Hat, Inc.
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Lesser General Public
7  * License as published by the Free Software Foundation; either
8  * version 2 of the License, or (at your option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13  * Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public
16  * License along with this library; if not, write to the
17  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18  * Boston, MA 02111-1307, USA.
19  */
20
21 #ifndef __GTK_FILE_CHOOSER_H__
22 #define __GTK_FILE_CHOOSER_H__
23
24 #include "gtkfilefilter.h"
25 #include <gtk/gtkwidget.h>
26
27 G_BEGIN_DECLS
28
29 #define GTK_TYPE_FILE_CHOOSER             (gtk_file_chooser_get_type ())
30 #define GTK_FILE_CHOOSER(obj)             (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_FILE_CHOOSER, GtkFileChooser))
31 #define GTK_IS_FILE_CHOOSER(obj)          (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_FILE_CHOOSER))
32
33 typedef struct _GtkFileChooser      GtkFileChooser;
34
35 typedef enum
36 {
37   GTK_FILE_CHOOSER_ACTION_OPEN,
38   GTK_FILE_CHOOSER_ACTION_SAVE
39 } GtkFileChooserAction;
40
41 GType gtk_file_chooser_get_type (void);
42
43 /* Configuration
44  */
45 void                 gtk_file_chooser_set_action          (GtkFileChooser       *chooser,
46                                                            GtkFileChooserAction  action);
47 GtkFileChooserAction gtk_file_chooser_get_action          (GtkFileChooser       *chooser);
48 void                 gtk_file_chooser_set_folder_mode     (GtkFileChooser       *chooser,
49                                                            gboolean              folder_mode);
50 gboolean             gtk_file_chooser_get_folder_mode     (GtkFileChooser       *chooser);
51 void                 gtk_file_chooser_set_local_only      (GtkFileChooser       *chooser,
52                                                            gboolean              files_only);
53 gboolean             gtk_file_chooser_get_local_only      (GtkFileChooser       *chooser);
54 void                 gtk_file_chooser_set_select_multiple (GtkFileChooser       *chooser,
55                                                            gboolean              select_multiple);
56 gboolean             gtk_file_chooser_get_select_multiple (GtkFileChooser       *chooser);
57
58 /* Filename manipulation
59  */
60 void    gtk_file_chooser_set_current_name  (GtkFileChooser *chooser,
61                                             const gchar    *name);
62 gchar * gtk_file_chooser_get_filename      (GtkFileChooser *chooser);
63 void    gtk_file_chooser_set_filename      (GtkFileChooser *chooser,
64                                             const char     *filename);
65 void    gtk_file_chooser_select_filename   (GtkFileChooser *chooser,
66                                             const char     *filename);
67 void    gtk_file_chooser_unselect_filename (GtkFileChooser *chooser,
68                                             const char     *filename);
69 void    gtk_file_chooser_select_all        (GtkFileChooser *chooser);
70 void    gtk_file_chooser_unselect_all      (GtkFileChooser *chooser);
71 GSList *gtk_file_chooser_get_filenames     (GtkFileChooser *chooser);
72 void   gtk_file_chooser_set_current_folder (GtkFileChooser *chooser,
73                                             const gchar    *filename);
74 gchar *gtk_file_chooser_get_current_folder (GtkFileChooser *chooser);
75
76
77 /* URI manipulation
78  */
79 gchar * gtk_file_chooser_get_uri      (GtkFileChooser *chooser);
80 void    gtk_file_chooser_set_uri      (GtkFileChooser *chooser,
81                                        const char     *uri);
82 void    gtk_file_chooser_select_uri   (GtkFileChooser *chooser,
83                                        const char     *uri);
84 void    gtk_file_chooser_unselect_uri (GtkFileChooser *chooser,
85                                        const char     *uri);
86 GSList *gtk_file_chooser_get_uris     (GtkFileChooser *chooser);
87
88 void   gtk_file_chooser_set_current_folder_uri (GtkFileChooser *chooser,
89                                                 const gchar    *uri);
90 gchar *gtk_file_chooser_get_current_folder_uri (GtkFileChooser *chooser);
91
92 /* Preview widget
93  */
94 void       gtk_file_chooser_set_preview_widget        (GtkFileChooser *chooser,
95                                                        GtkWidget      *preview_widget);
96 GtkWidget *gtk_file_chooser_get_preview_widget        (GtkFileChooser *chooser);
97 void       gtk_file_chooser_set_preview_widget_active (GtkFileChooser *chooser,
98                                                        gboolean        active);
99 gboolean   gtk_file_chooser_get_preview_widget_active (GtkFileChooser *chooser);
100
101 char *gtk_file_chooser_get_preview_filename (GtkFileChooser *file_chooser);
102 char *gtk_file_chooser_get_preview_uri      (GtkFileChooser *file_chooser);
103
104 /* Extra widget
105  */
106 void       gtk_file_chooser_set_extra_widget (GtkFileChooser *chooser,
107                                               GtkWidget      *extra_widget);
108 GtkWidget *gtk_file_chooser_get_extra_widget (GtkFileChooser *chooser);
109
110 /* List of user selectable filters
111  */
112 void    gtk_file_chooser_add_filter    (GtkFileChooser *chooser,
113                                         GtkFileFilter  *filter);
114 void    gtk_file_chooser_remove_filter (GtkFileChooser *chooser,
115                                         GtkFileFilter  *filter);
116 GSList *gtk_file_chooser_list_filters  (GtkFileChooser *chooser);
117
118 /* Current filter
119  */
120 void           gtk_file_chooser_set_filter (GtkFileChooser *chooser,
121                                            GtkFileFilter  *filter);
122 GtkFileFilter *gtk_file_chooser_get_filter (GtkFileChooser *chooser);
123
124 /* Per-application shortcut folders */
125
126 void    gtk_file_chooser_set_shortcut_folders  (GtkFileChooser *chooser,
127                                                 GSList         *shortcut_directories);
128 GSList *gtk_file_chooser_list_shortcut_folders (GtkFileChooser *chooser);
129
130 G_END_DECLS
131
132 #endif /* __GTK_FILE_CHOOSER_H__ */