1 /* vi:set et ai sw=2 sts=2 ts=2: */
2 /*-
3  * Copyright (c) 2006-2007 Benedikt Meurer <benny@xfce.org>
4  * Copyright (c) 2009 Jannis Pohlmann <jannis@xfce.org>
5  *
6  * This program is free software; you can redistribute it and/or modify it
7  * under the terms of the GNU General Public License as published by the Free
8  * Software Foundation; either version 2 of the License, or (at your option)
9  * any later version.
10  *
11  * This program is distributed in the hope that it will be useful, but WITHOUT
12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
14  * more details.
15  *
16  * You should have received a copy of the GNU General Public License along with
17  * this program; if not, write to the Free Software Foundation, Inc., 59 Temple
18  * Place, Suite 330, Boston, MA  02111-1307  USA
19  */
20 
21 #ifndef __THUNAR_ENUM_TYPES_H__
22 #define __THUNAR_ENUM_TYPES_H__
23 
24 #include <exo/exo.h>
25 
26 G_BEGIN_DECLS;
27 
28 #define THUNAR_TYPE_RENAMER_MODE (thunar_renamer_mode_get_type ())
29 
30 /**
31  * ThunarRenamerMode:
32  * @THUNAR_RENAMER_MODE_NAME   : only the name should be renamed.
33  * @THUNAR_RENAMER_MODE_SUFFIX : only the suffix should be renamed.
34  * @THUNAR_RENAMER_MODE_BOTH   : the name and the suffix should be renamed.
35  *
36  * The rename mode for a #ThunarRenamerModel instance.
37  **/
38 typedef enum
39 {
40   THUNAR_RENAMER_MODE_NAME,
41   THUNAR_RENAMER_MODE_SUFFIX,
42   THUNAR_RENAMER_MODE_BOTH,
43 } ThunarRenamerMode;
44 
45 GType thunar_renamer_mode_get_type (void) G_GNUC_CONST;
46 
47 
48 
49 #define THUNAR_TYPE_DATE_STYLE (thunar_date_style_get_type ())
50 
51 /**
52  * ThunarDateStyle:
53  * @THUNAR_DATE_STYLE_SIMPLE : display only the date.
54  * @THUNAR_DATE_STYLE_SHORT  : display date and time in a short manner.
55  * @THUNAR_DATE_STYLE_LONG   : display date and time in a long manner.
56  * @THUNAR_DATE_STYLE_ISO    : display date and time in ISO standard form.
57  *
58  * The style used to display dates (e.g. modification dates) to the user.
59  **/
60 typedef enum
61 {
62   THUNAR_DATE_STYLE_SIMPLE,
63   THUNAR_DATE_STYLE_SHORT,
64   THUNAR_DATE_STYLE_LONG,
65   THUNAR_DATE_STYLE_YYYYMMDD,
66   THUNAR_DATE_STYLE_MMDDYYYY,
67   THUNAR_DATE_STYLE_DDMMYYYY,
68   THUNAR_DATE_STYLE_CUSTOM,
69 } ThunarDateStyle;
70 
71 GType thunar_date_style_get_type (void) G_GNUC_CONST;
72 
73 
74 #define THUNAR_TYPE_COLUMN (thunar_column_get_type ())
75 
76 /**
77  * ThunarColumn:
78  * @THUNAR_COLUMN_DATE_ACCESSED : last access time.
79  * @THUNAR_COLUMN_DATE_MODIFIED : last modification time.
80  * @THUNAR_COLUMN_GROUP         : group's name.
81  * @THUNAR_COLUMN_MIME_TYPE     : mime type (e.g. "text/plain").
82  * @THUNAR_COLUMN_NAME          : display name.
83  * @THUNAR_COLUMN_OWNER         : owner's name.
84  * @THUNAR_COLUMN_PERMISSIONS   : permissions bits.
85  * @THUNAR_COLUMN_SIZE          : file size.
86  * @THUNAR_COLUMN_SIZE_IN_BYTES : file size in bytes.
87  * @THUNAR_COLUMN_TYPE          : file type (e.g. 'plain text document').
88  * @THUNAR_COLUMN_FILE          : #ThunarFile object.
89  * @THUNAR_COLUMN_FILE_NAME     : real file name.
90  *
91  * Columns exported by #ThunarListModel using the #GtkTreeModel
92  * interface.
93  **/
94 typedef enum
95 {
96   /* visible columns */
97   THUNAR_COLUMN_DATE_ACCESSED,
98   THUNAR_COLUMN_DATE_MODIFIED,
99   THUNAR_COLUMN_GROUP,
100   THUNAR_COLUMN_MIME_TYPE,
101   THUNAR_COLUMN_NAME,
102   THUNAR_COLUMN_OWNER,
103   THUNAR_COLUMN_PERMISSIONS,
104   THUNAR_COLUMN_SIZE,
105   THUNAR_COLUMN_SIZE_IN_BYTES,
106   THUNAR_COLUMN_TYPE,
107 
108   /* special internal columns */
109   THUNAR_COLUMN_FILE,
110   THUNAR_COLUMN_FILE_NAME,
111 
112   /* number of columns */
113   THUNAR_N_COLUMNS,
114 
115   /* number of visible columns */
116   THUNAR_N_VISIBLE_COLUMNS = THUNAR_COLUMN_FILE,
117 } ThunarColumn;
118 
119 GType        thunar_column_get_type          (void)                      G_GNUC_CONST;
120 const gchar* thunar_column_string_from_value (ThunarColumn  value);
121 gboolean     thunar_column_value_from_string (const gchar  *value_string,
122                                               gint         *value);
123 
124 
125 #define THUNAR_TYPE_ICON_SIZE (thunar_icon_size_get_type ())
126 
127 /**
128  * ThunarIconSize:
129  * Icon sizes matching the various #ThunarZoomLevel<!---->s.
130  **/
131 typedef enum
132 {
133   THUNAR_ICON_SIZE_16   =  16,
134   THUNAR_ICON_SIZE_24   =  24,
135   THUNAR_ICON_SIZE_32   =  32,
136   THUNAR_ICON_SIZE_48   =  48,
137   THUNAR_ICON_SIZE_64   =  64,
138   THUNAR_ICON_SIZE_96   =  96,
139   THUNAR_ICON_SIZE_128  = 128,
140   THUNAR_ICON_SIZE_160  = 160,
141   THUNAR_ICON_SIZE_192  = 192,
142   THUNAR_ICON_SIZE_256  = 256,
143 } ThunarIconSize;
144 
145 GType thunar_icon_size_get_type (void) G_GNUC_CONST;
146 
147 
148 #define THUNAR_TYPE_THUMBNAIL_MODE (thunar_thumbnail_mode_get_type ())
149 
150 /**
151  * ThunarThumbnailMode:
152  * @THUNAR_THUMBNAIL_MODE_NEVER      : never show thumbnails.
153  * @THUNAR_THUMBNAIL_MODE_ONLY_LOCAL : only show thumbnails on local filesystems.
154  * @THUNAR_THUMBNAIL_MODE_ALWAYS     : always show thumbnails (everywhere).
155  **/
156 typedef enum
157 {
158   THUNAR_THUMBNAIL_MODE_NEVER,
159   THUNAR_THUMBNAIL_MODE_ONLY_LOCAL,
160   THUNAR_THUMBNAIL_MODE_ALWAYS
161 } ThunarThumbnailMode;
162 
163 GType thunar_thumbnail_mode_get_type (void) G_GNUC_CONST;
164 
165 
166 #define THUNAR_TYPE_THUMBNAIL_SIZE (thunar_thumbnail_size_get_type ())
167 
168 /**
169  * ThunarThumbnailSize:
170  * @THUNAR_THUMBNAIL_NORMAL      : max 128px x 128px
171  * @THUNAR_THUMBNAIL_LARGE       : max 256px x 256px
172  **/
173 typedef enum
174 {
175   THUNAR_THUMBNAIL_SIZE_NORMAL,
176   THUNAR_THUMBNAIL_SIZE_LARGE
177 } ThunarThumbnailSize;
178 
179 GType       thunar_thumbnail_size_get_type (void)                               G_GNUC_CONST;
180 const char* thunar_thumbnail_size_get_nick (ThunarThumbnailSize thumbnail_size) G_GNUC_CONST;
181 
182 
183 #define THUNAR_TYPE_PARALLEL_COPY_MODE (thunar_parallel_copy_mode_get_type ())
184 
185 /**
186  * ThunarParallelCopyMode:
187  * @THUNAR_PARALLEL_COPY_MODE_NEVER                   : copies will be done consecutively, one after another.
188  * @THUNAR_PARALLEL_COPY_MODE_ONLY_LOCAL              : only do parallel copies when source and destination are local files.
189  * @THUNAR_PARALLEL_COPY_MODE_ONLY_LOCAL_SAME_DEVICES : same as only local, but only if source and destination devices are the same.
190  * @THUNAR_PARALLEL_COPY_MODE_ALWAYS                  : all copies will be started immediately.
191  **/
192 typedef enum
193 {
194   THUNAR_PARALLEL_COPY_MODE_NEVER,
195   THUNAR_PARALLEL_COPY_MODE_ONLY_LOCAL,
196   THUNAR_PARALLEL_COPY_MODE_ONLY_LOCAL_SAME_DEVICES,
197   THUNAR_PARALLEL_COPY_MODE_ALWAYS
198 } ThunarParallelCopyMode;
199 
200 GType thunar_parallel_copy_mode_get_type (void) G_GNUC_CONST;
201 
202 
203 #define THUNAR_TYPE_RECURSIVE_PERMISSIONS (thunar_recursive_permissions_get_type ())
204 
205 /**
206  * ThunarRecursivePermissionsMode:
207  * @THUNAR_RECURSIVE_PERMISSIONS_ASK    : ask the user every time permissions are changed.
208  * @THUNAR_RECURSIVE_PERMISSIONS_ALWAYS : always apply the change recursively.
209  * @THUNAR_RECURSIVE_PERMISSIONS_NEVER  : never apply the change recursively.
210  *
211  * Modus operandi when changing permissions.
212  **/
213 typedef enum
214 {
215   THUNAR_RECURSIVE_PERMISSIONS_ASK,
216   THUNAR_RECURSIVE_PERMISSIONS_ALWAYS,
217   THUNAR_RECURSIVE_PERMISSIONS_NEVER,
218 } ThunarRecursivePermissionsMode;
219 
220 GType thunar_recursive_permissions_get_type (void) G_GNUC_CONST;
221 
222 
223 #define THUNAR_TYPE_ZOOM_LEVEL (thunar_zoom_level_get_type ())
224 
225 /**
226  * ThunarZoomLevel:
227  * Lists the various zoom levels supported by Thunar's
228  * folder views.
229  **/
230 typedef enum
231 {
232   THUNAR_ZOOM_LEVEL_25_PERCENT,
233   THUNAR_ZOOM_LEVEL_38_PERCENT,
234   THUNAR_ZOOM_LEVEL_50_PERCENT,
235   THUNAR_ZOOM_LEVEL_75_PERCENT,
236   THUNAR_ZOOM_LEVEL_100_PERCENT,
237   THUNAR_ZOOM_LEVEL_150_PERCENT,
238   THUNAR_ZOOM_LEVEL_200_PERCENT,
239   THUNAR_ZOOM_LEVEL_250_PERCENT,
240   THUNAR_ZOOM_LEVEL_300_PERCENT,
241   THUNAR_ZOOM_LEVEL_400_PERCENT,
242 
243   /*< private >*/
244   THUNAR_ZOOM_N_LEVELS,
245 } ThunarZoomLevel;
246 
247 GType               thunar_zoom_level_get_type            (void)                       G_GNUC_CONST;
248 ThunarThumbnailSize thunar_zoom_level_to_thumbnail_size   (ThunarZoomLevel zoom_level) G_GNUC_CONST;
249 
250 
251 #define THUNAR_TYPE_JOB_RESPONSE (thunar_job_response_get_type ())
252 
253 /**
254  * ThunarJobResponse:
255  * @THUNAR_JOB_RESPONSE_YES         :
256  * @THUNAR_JOB_RESPONSE_YES_ALL     :
257  * @THUNAR_JOB_RESPONSE_NO          :
258  * @THUNAR_JOB_RESPONSE_NO_ALL      :
259  * @THUNAR_JOB_RESPONSE_CANCEL      :
260  * @THUNAR_JOB_RESPONSE_RETRY       :
261  * @THUNAR_JOB_RESPONSE_FORCE       :
262  * @THUNAR_JOB_RESPONSE_REPLACE     :
263  * @THUNAR_JOB_RESPONSE_REPLACE_ALL :
264  * @THUNAR_JOB_RESPONSE_SKIP        :
265  * @THUNAR_JOB_RESPONSE_SKIP_ALL    :
266  * @THUNAR_JOB_RESPONSE_RENAME      :
267  * @THUNAR_JOB_RESPONSE_RENAME_ALL  :
268  *
269  * Possible responses for the ThunarJob::ask signal.
270  **/
271 typedef enum /*< flags >*/
272 {
273   THUNAR_JOB_RESPONSE_YES         = 1 << 0,
274   THUNAR_JOB_RESPONSE_YES_ALL     = 1 << 1,
275   THUNAR_JOB_RESPONSE_NO          = 1 << 2,
276   THUNAR_JOB_RESPONSE_CANCEL      = 1 << 3,
277   THUNAR_JOB_RESPONSE_NO_ALL      = 1 << 4,
278   THUNAR_JOB_RESPONSE_RETRY       = 1 << 5,
279   THUNAR_JOB_RESPONSE_FORCE       = 1 << 6,
280   THUNAR_JOB_RESPONSE_REPLACE     = 1 << 7,
281   THUNAR_JOB_RESPONSE_REPLACE_ALL = 1 << 8,
282   THUNAR_JOB_RESPONSE_SKIP        = 1 << 9,
283   THUNAR_JOB_RESPONSE_SKIP_ALL    = 1 << 10,
284   THUNAR_JOB_RESPONSE_RENAME      = 1 << 11,
285   THUNAR_JOB_RESPONSE_RENAME_ALL  = 1 << 12,
286 } ThunarJobResponse;
287 #define THUNAR_JOB_RESPONSE_MAX_INT 12
288 
289 GType thunar_job_response_get_type (void) G_GNUC_CONST;
290 
291 
292 #define THUNAR_TYPE_FILE_MODE (thunar_file_mode_get_type ())
293 
294 /**
295  * ThunarFileMode:
296  *
297  * Special flags and permissions of a filesystem entity.
298  **/
299 typedef enum /*< flags >*/
300 {
301   THUNAR_FILE_MODE_SUID       = 04000,
302   THUNAR_FILE_MODE_SGID       = 02000,
303   THUNAR_FILE_MODE_STICKY     = 01000,
304   THUNAR_FILE_MODE_USR_ALL    = 00700,
305   THUNAR_FILE_MODE_USR_READ   = 00400,
306   THUNAR_FILE_MODE_USR_WRITE  = 00200,
307   THUNAR_FILE_MODE_USR_EXEC   = 00100,
308   THUNAR_FILE_MODE_GRP_ALL    = 00070,
309   THUNAR_FILE_MODE_GRP_READ   = 00040,
310   THUNAR_FILE_MODE_GRP_WRITE  = 00020,
311   THUNAR_FILE_MODE_GRP_EXEC   = 00010,
312   THUNAR_FILE_MODE_OTH_ALL    = 00007,
313   THUNAR_FILE_MODE_OTH_READ   = 00004,
314   THUNAR_FILE_MODE_OTH_WRITE  = 00002,
315   THUNAR_FILE_MODE_OTH_EXEC   = 00001,
316 } ThunarFileMode;
317 
318 GType thunar_file_mode_get_type (void) G_GNUC_CONST;
319 
320 G_END_DECLS;
321 
322 #endif /* !__THUNAR_ENUM_TYPES_H__ */
323