]> Pileus Git - ~andy/gtk/blob - gtk/gtkfilechoosersettings.h
Merge branch 'master' into toolpalette
[~andy/gtk] / gtk / gtkfilechoosersettings.h
1 /* GTK - The GIMP Toolkit
2  * gtkfilechoosersettings.h: Internal settings for the GtkFileChooser widget
3  * Copyright (C) 2006, Novell, Inc.
4  *
5  * Authors: Federico Mena-Quintero <federico@novell.com>
6  *
7  * This library is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU Lesser General Public
9  * License as published by the Free Software Foundation; either
10  * version 2 of the License, or (at your option) any later version.
11  *
12  * This library is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15  * Lesser General Public License for more details.
16  *
17  * You should have received a copy of the GNU Lesser General Public
18  * License along with this library; if not, write to the
19  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
20  * Boston, MA 02111-1307, USA.
21  */
22
23 #ifndef __GTK_FILE_CHOOSER_SETTINGS_H__
24 #define __GTK_FILE_CHOOSER_SETTINGS_H__
25
26 #include "gtkfilechooserprivate.h"
27
28 G_BEGIN_DECLS
29
30 #define GTK_FILE_CHOOSER_SETTINGS_TYPE (_gtk_file_chooser_settings_get_type ())
31
32 /* Column numbers for the file list */
33 enum {
34   FILE_LIST_COL_NAME,
35   FILE_LIST_COL_SIZE,
36   FILE_LIST_COL_MTIME,
37   FILE_LIST_COL_NUM_COLUMNS
38 };
39
40 typedef struct _GtkFileChooserSettings GtkFileChooserSettings;
41 typedef struct _GtkFileChooserSettingsClass GtkFileChooserSettingsClass;
42
43 struct _GtkFileChooserSettings
44 {
45   GObject object;
46
47   LocationMode location_mode;
48
49   GtkSortType sort_order;
50   gint sort_column;
51
52   int geometry_x;
53   int geometry_y;
54   int geometry_width;
55   int geometry_height;
56
57   guint settings_read    : 1;
58   guint show_hidden      : 1;
59   guint show_size_column : 1;
60   guint expand_folders   : 1;
61 };
62
63 struct _GtkFileChooserSettingsClass
64 {
65   GObjectClass parent_class;
66 };
67
68 GType _gtk_file_chooser_settings_get_type (void) G_GNUC_CONST;
69
70 GtkFileChooserSettings *_gtk_file_chooser_settings_new (void);
71
72 LocationMode _gtk_file_chooser_settings_get_location_mode (GtkFileChooserSettings *settings);
73 void         _gtk_file_chooser_settings_set_location_mode (GtkFileChooserSettings *settings,
74                                                            LocationMode            location_mode);
75
76 gboolean _gtk_file_chooser_settings_get_show_hidden (GtkFileChooserSettings *settings);
77 void     _gtk_file_chooser_settings_set_show_hidden (GtkFileChooserSettings *settings,
78                                                      gboolean                show_hidden);
79
80 gboolean _gtk_file_chooser_settings_get_expand_folders (GtkFileChooserSettings *settings);
81 void     _gtk_file_chooser_settings_set_expand_folders (GtkFileChooserSettings *settings,
82                                                         gboolean                expand_folders);
83
84 gboolean _gtk_file_chooser_settings_get_show_size_column (GtkFileChooserSettings *settings);
85 void     _gtk_file_chooser_settings_set_show_size_column (GtkFileChooserSettings *settings,
86                                                           gboolean                show_column);
87
88 gint _gtk_file_chooser_settings_get_sort_column (GtkFileChooserSettings *settings);
89 void _gtk_file_chooser_settings_set_sort_column (GtkFileChooserSettings *settings,
90                                                  gint sort_column);
91
92 GtkSortType _gtk_file_chooser_settings_get_sort_order (GtkFileChooserSettings *settings);
93 void        _gtk_file_chooser_settings_set_sort_order (GtkFileChooserSettings *settings,
94                                                        GtkSortType sort_order);
95
96 void _gtk_file_chooser_settings_get_geometry (GtkFileChooserSettings *settings,
97                                               int                    *out_x,
98                                               int                    *out_y,
99                                               int                    *out_width,
100                                               int                    *out_heigth);
101 void _gtk_file_chooser_settings_set_geometry (GtkFileChooserSettings *settings,
102                                               int                     x,
103                                               int                     y,
104                                               int                     width,
105                                               int                     heigth);
106
107 gboolean _gtk_file_chooser_settings_save (GtkFileChooserSettings *settings,
108                                           GError                **error);
109
110 /* FIXME: persist these options:
111  *
112  * - paned width
113  * - show_hidden
114  */
115
116 G_END_DECLS
117
118 #endif