Cleanup main.h header
[geeqie.git] / src / typedefs.h
1 /*
2  * Copyright (C) 2006 John Ellis
3  * Copyright (C) 2008 - 2016 The Geeqie Team
4  *
5  * Author: John Ellis
6  *
7  * This program is free software; you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation; either version 2 of the License, or
10  * (at your option) any later version.
11  *
12  * This program 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
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License along
18  * with this program; if not, write to the Free Software Foundation, Inc.,
19  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
20  */
21
22 #ifndef TYPEDEFS_H
23 #define TYPEDEFS_H
24
25 #include <glib.h>
26
27 enum ZoomMode {
28         ZOOM_RESET_ORIGINAL     = 0,
29         ZOOM_RESET_FIT_WINDOW   = 1,
30         ZOOM_RESET_NONE         = 2
31 };
32
33 enum ClipboardSelection {
34         CLIPBOARD_PRIMARY       = 0,
35         CLIPBOARD_CLIPBOARD = 1,
36         CLIPBOARD_BOTH = 2
37 };
38
39 enum MouseButton {
40         MOUSE_BUTTON_LEFT       = 1,
41         MOUSE_BUTTON_MIDDLE     = 2,
42         MOUSE_BUTTON_RIGHT      = 3,
43         MOUSE_BUTTON_WHEEL_UP   = 4,
44         MOUSE_BUTTON_WHEEL_DOWN = 5,
45         MOUSE_BUTTON_8  = 8,
46         MOUSE_BUTTON_9  = 9
47 };
48
49 enum DirViewType {
50         DIRVIEW_LIST,
51         DIRVIEW_TREE,
52
53         DIRVIEW_LAST = DIRVIEW_TREE /**< Keep this up to date! */
54 };
55
56 enum FileViewType {
57         FILEVIEW_LIST,
58         FILEVIEW_ICON,
59
60         FILEVIEW_LAST = FILEVIEW_ICON /**< Keep this up to date! */
61 };
62
63 #define CMD_COPY     "geeqie-copy-command.desktop"
64 #define CMD_MOVE     "geeqie-move-command.desktop"
65 #define CMD_RENAME   "geeqie-rename-command.desktop"
66 #define CMD_DELETE   "geeqie-delete-command.desktop"
67 #define CMD_FOLDER   "geeqie-folder-command.desktop"
68
69 enum SortType {
70         SORT_NONE,
71         SORT_NAME,
72         SORT_SIZE,
73         SORT_TIME,
74         SORT_CTIME,
75         SORT_PATH,
76         SORT_NUMBER,
77         SORT_EXIFTIME,
78         SORT_EXIFTIMEDIGITIZED,
79         SORT_RATING,
80         SORT_CLASS
81 };
82
83 enum AlterType {
84         ALTER_NONE,             /**< do nothing */
85         ALTER_ROTATE_90,
86         ALTER_ROTATE_90_CC,     /**< counterclockwise */
87         ALTER_ROTATE_180,
88         ALTER_MIRROR,
89         ALTER_FLIP,
90 };
91
92 enum ImageSplitMode {
93         SPLIT_NONE = 0,
94         SPLIT_VERT,
95         SPLIT_HOR,
96         SPLIT_TRIPLE,
97         SPLIT_QUAD,
98 };
99
100 enum MarkToSelectionMode {
101         MTS_MODE_MINUS,
102         MTS_MODE_SET,
103         MTS_MODE_OR,
104         MTS_MODE_AND
105 };
106
107 enum SelectionToMarkMode {
108         STM_MODE_RESET,
109         STM_MODE_SET,
110         STM_MODE_TOGGLE
111 };
112
113 enum FileFormatClass {
114         FORMAT_CLASS_UNKNOWN,
115         FORMAT_CLASS_IMAGE,
116         FORMAT_CLASS_RAWIMAGE,
117         FORMAT_CLASS_META,
118         FORMAT_CLASS_VIDEO,
119         FORMAT_CLASS_COLLECTION,
120         FORMAT_CLASS_DOCUMENT,
121         FORMAT_CLASS_ARCHIVE,
122         FILE_FORMAT_CLASSES
123 };
124
125 extern const gchar *format_class_list[]; /**< defined in preferences.cc */
126
127 enum NotifyType {
128         NOTIFY_MARKS            = 1 << 1, /**< changed marks */
129         NOTIFY_PIXBUF           = 1 << 2, /**< image was read into fd->pixbuf */
130         NOTIFY_HISTMAP          = 1 << 3, /**< histmap was read into fd->histmap */
131         NOTIFY_ORIENTATION      = 1 << 4, /**< image was rotated */
132         NOTIFY_METADATA         = 1 << 5, /**< changed image metadata, not yet written */
133         NOTIFY_GROUPING         = 1 << 6, /**< change in fd->sidecar_files or fd->parent */
134         NOTIFY_REREAD           = 1 << 7, /**< changed file size, date, etc., file name remains unchanged */
135         NOTIFY_CHANGE           = 1 << 8  /**< generic change described by fd->change */
136 };
137
138 enum ChangeError {
139         CHANGE_OK                      = 0,
140         CHANGE_WARN_DEST_EXISTS        = 1 << 0,
141         CHANGE_WARN_NO_WRITE_PERM      = 1 << 1,
142         CHANGE_WARN_SAME               = 1 << 2,
143         CHANGE_WARN_CHANGED_EXT        = 1 << 3,
144         CHANGE_WARN_UNSAVED_META       = 1 << 4,
145         CHANGE_WARN_NO_WRITE_PERM_DEST_DIR  = 1 << 5,
146         CHANGE_ERROR_MASK              = ~0xff, /**< the values below are fatal errors */
147         CHANGE_NO_READ_PERM            = 1 << 8,
148         CHANGE_NO_WRITE_PERM_DIR       = 1 << 9,
149         CHANGE_NO_DEST_DIR             = 1 << 10,
150         CHANGE_DUPLICATE_DEST          = 1 << 11,
151         CHANGE_NO_WRITE_PERM_DEST      = 1 << 12,
152         CHANGE_DEST_EXISTS             = 1 << 13,
153         CHANGE_NO_SRC                  = 1 << 14,
154         CHANGE_GENERIC_ERROR           = 1 << 16
155 };
156
157 enum MetadataFormat {
158         METADATA_PLAIN          = 0, /**< format that can be edited and written back */
159         METADATA_FORMATTED      = 1  /**< for display only */
160 };
161
162 enum ToolbarType {
163         TOOLBAR_MAIN,
164         TOOLBAR_STATUS,
165         TOOLBAR_COUNT
166 };
167
168 enum PixbufRendererStereoMode {
169         PR_STEREO_NONE             = 0,   /**< do nothing */
170         PR_STEREO_DUAL             = 1 << 0, /**< independent stereo buffers, for example nvidia opengl */
171         PR_STEREO_FIXED            = 1 << 1,  /**< custom position */
172         PR_STEREO_HORIZ            = 1 << 2,  /**< side by side */
173         PR_STEREO_VERT             = 1 << 3,  /**< above below */
174         PR_STEREO_RIGHT            = 1 << 4,  /**< render right buffer */
175         PR_STEREO_ANAGLYPH_RC      = 1 << 5,  /**< anaglyph red-cyan */
176         PR_STEREO_ANAGLYPH_GM      = 1 << 6,  /**< anaglyph green-magenta */
177         PR_STEREO_ANAGLYPH_YB      = 1 << 7,  /**< anaglyph yellow-blue */
178         PR_STEREO_ANAGLYPH_GRAY_RC = 1 << 8,  /**< anaglyph gray red-cyan*/
179         PR_STEREO_ANAGLYPH_GRAY_GM = 1 << 9,  /**< anaglyph gray green-magenta */
180         PR_STEREO_ANAGLYPH_GRAY_YB = 1 << 10, /**< anaglyph gray yellow-blue */
181         PR_STEREO_ANAGLYPH_DB_RC   = 1 << 11, /**< anaglyph dubois red-cyan */
182         PR_STEREO_ANAGLYPH_DB_GM   = 1 << 12, /**< anaglyph dubois green-magenta */
183         PR_STEREO_ANAGLYPH_DB_YB   = 1 << 13, /**< anaglyph dubois yellow-blue */
184         PR_STEREO_ANAGLYPH         = PR_STEREO_ANAGLYPH_RC |
185                                      PR_STEREO_ANAGLYPH_GM |
186                                      PR_STEREO_ANAGLYPH_YB |
187                                      PR_STEREO_ANAGLYPH_GRAY_RC |
188                                      PR_STEREO_ANAGLYPH_GRAY_GM |
189                                      PR_STEREO_ANAGLYPH_GRAY_YB |
190                                      PR_STEREO_ANAGLYPH_DB_RC |
191                                      PR_STEREO_ANAGLYPH_DB_GM |
192                                      PR_STEREO_ANAGLYPH_DB_YB, /**< anaglyph mask */
193
194         PR_STEREO_MIRROR_LEFT      = 1 << 14, /**< mirror */
195         PR_STEREO_FLIP_LEFT        = 1 << 15, /**< flip */
196
197         PR_STEREO_MIRROR_RIGHT     = 1 << 16, /**< mirror */
198         PR_STEREO_FLIP_RIGHT       = 1 << 17, /**< flip */
199
200         PR_STEREO_MIRROR           = PR_STEREO_MIRROR_LEFT | PR_STEREO_MIRROR_RIGHT, /**< mirror mask*/
201         PR_STEREO_FLIP             = PR_STEREO_FLIP_LEFT | PR_STEREO_FLIP_RIGHT, /**< flip mask*/
202         PR_STEREO_SWAP             = 1 << 18,  /**< swap left and right buffers */
203         PR_STEREO_TEMP_DISABLE     = 1 << 19,  /**< temporarily disable stereo mode if source image is not stereo */
204         PR_STEREO_HALF             = 1 << 20
205 };
206
207 enum StereoPixbufData {
208         STEREO_PIXBUF_DEFAULT  = 0,
209         STEREO_PIXBUF_SBS      = 1,
210         STEREO_PIXBUF_CROSS    = 2,
211         STEREO_PIXBUF_NONE     = 3
212 };
213
214 using FileUtilDoneFunc = void (*)(gboolean, const gchar *, gpointer);
215
216 #define FILEDATA_MARKS_SIZE 10
217
218 #endif
219 /* vim: set shiftwidth=8 softtabstop=0 cindent cinoptions={1s: */