1 /* GTK - The GIMP Toolkit 2 * gtkfilechooserprivate.h: Interface definition 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, see <http://www.gnu.org/licenses/>. 17 */ 18 19 #ifndef __GTK_FILE_CHOOSER_PRIVATE_H__ 20 #define __GTK_FILE_CHOOSER_PRIVATE_H__ 21 22 #include "gtkbookmarksmanager.h" 23 #include "gtkfilechooser.h" 24 #include "gtkfilesystem.h" 25 #include "gtkfilesystemmodel.h" 26 #include "gtkliststore.h" 27 #include "gtkrecentmanager.h" 28 #include "gtksearchengine.h" 29 #include "gtkquery.h" 30 #include "gtksizegroup.h" 31 #include "gtktreemodelsort.h" 32 #include "gtktreestore.h" 33 #include "gtktreeview.h" 34 #include "gtkbox.h" 35 36 G_BEGIN_DECLS 37 38 #define SETTINGS_KEY_LOCATION_MODE "location-mode" 39 #define SETTINGS_KEY_SHOW_HIDDEN "show-hidden" 40 #define SETTINGS_KEY_SHOW_SIZE_COLUMN "show-size-column" 41 #define SETTINGS_KEY_SHOW_TYPE_COLUMN "show-type-column" 42 #define SETTINGS_KEY_SORT_COLUMN "sort-column" 43 #define SETTINGS_KEY_SORT_ORDER "sort-order" 44 #define SETTINGS_KEY_WINDOW_POSITION "window-position" 45 #define SETTINGS_KEY_WINDOW_SIZE "window-size" 46 #define SETTINGS_KEY_SIDEBAR_WIDTH "sidebar-width" 47 #define SETTINGS_KEY_STARTUP_MODE "startup-mode" 48 #define SETTINGS_KEY_SORT_DIRECTORIES_FIRST "sort-directories-first" 49 #define SETTINGS_KEY_CLOCK_FORMAT "clock-format" 50 #define SETTINGS_KEY_DATE_FORMAT "date-format" 51 #define SETTINGS_KEY_TYPE_FORMAT "type-format" 52 53 #define GTK_FILE_CHOOSER_GET_IFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), GTK_TYPE_FILE_CHOOSER, GtkFileChooserIface)) 54 55 typedef struct _GtkFileChooserIface GtkFileChooserIface; 56 57 struct _GtkFileChooserIface 58 { 59 GTypeInterface base_iface; 60 61 /* Methods 62 */ 63 gboolean (*set_current_folder) (GtkFileChooser *chooser, 64 GFile *file, 65 GError **error); 66 GFile * (*get_current_folder) (GtkFileChooser *chooser); 67 void (*set_current_name) (GtkFileChooser *chooser, 68 const gchar *name); 69 gchar * (*get_current_name) (GtkFileChooser *chooser); 70 gboolean (*select_file) (GtkFileChooser *chooser, 71 GFile *file, 72 GError **error); 73 void (*unselect_file) (GtkFileChooser *chooser, 74 GFile *file); 75 void (*select_all) (GtkFileChooser *chooser); 76 void (*unselect_all) (GtkFileChooser *chooser); 77 GSList * (*get_files) (GtkFileChooser *chooser); 78 GFile * (*get_preview_file) (GtkFileChooser *chooser); 79 GtkFileSystem *(*get_file_system) (GtkFileChooser *chooser); 80 void (*add_filter) (GtkFileChooser *chooser, 81 GtkFileFilter *filter); 82 void (*remove_filter) (GtkFileChooser *chooser, 83 GtkFileFilter *filter); 84 GSList * (*list_filters) (GtkFileChooser *chooser); 85 gboolean (*add_shortcut_folder) (GtkFileChooser *chooser, 86 GFile *file, 87 GError **error); 88 gboolean (*remove_shortcut_folder) (GtkFileChooser *chooser, 89 GFile *file, 90 GError **error); 91 GSList * (*list_shortcut_folders) (GtkFileChooser *chooser); 92 93 /* Signals 94 */ 95 void (*current_folder_changed) (GtkFileChooser *chooser); 96 void (*selection_changed) (GtkFileChooser *chooser); 97 void (*update_preview) (GtkFileChooser *chooser); 98 void (*file_activated) (GtkFileChooser *chooser); 99 GtkFileChooserConfirmation (*confirm_overwrite) (GtkFileChooser *chooser); 100 101 /* 3.22 additions */ 102 void (*add_choice) (GtkFileChooser *chooser, 103 const char *id, 104 const char *label, 105 const char **options, 106 const char **option_labels); 107 void (*remove_choice) (GtkFileChooser *chooser, 108 const char *id); 109 void (*set_choice) (GtkFileChooser *chooser, 110 const char *id, 111 const char *option); 112 const char * (*get_choice) (GtkFileChooser *chooser, 113 const char *id); 114 }; 115 116 GtkFileSystem *_gtk_file_chooser_get_file_system (GtkFileChooser *chooser); 117 gboolean _gtk_file_chooser_add_shortcut_folder (GtkFileChooser *chooser, 118 GFile *folder, 119 GError **error); 120 gboolean _gtk_file_chooser_remove_shortcut_folder (GtkFileChooser *chooser, 121 GFile *folder, 122 GError **error); 123 GSList * _gtk_file_chooser_list_shortcut_folder_files (GtkFileChooser *chooser); 124 125 126 G_END_DECLS 127 128 #endif /* __GTK_FILE_CHOOSER_PRIVATE_H__ */ 129