Mercurial > geeqie.yaz
annotate src/typedefs.h @ 273:e0e2c2b72c5a
reworked the histogram patch by Uwe Ohse, most of the code is in
separate files
author | nadvornik |
---|---|
date | Tue, 08 Apr 2008 20:56:50 +0000 |
parents | c7021159079d |
children | 4f526d436873 |
rev | line source |
---|---|
9 | 1 /* |
196 | 2 * Geeqie |
115
53b2bfdcff69
Tue Nov 28 11:54:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
113
diff
changeset
|
3 * (C) 2006 John Ellis |
9 | 4 * |
5 * Author: John Ellis | |
6 * | |
7 * This software is released under the GNU General Public License (GNU GPL). | |
8 * Please read the included file COPYING for more information. | |
9 * This software comes with no warranty of any kind, use at your own risk! | |
10 */ | |
11 | |
12 | |
13 #ifndef TYPEDEFS_H | |
14 #define TYPEDEFS_H | |
15 | |
134
9009856628f7
started implementation of external commands; external Delete should work
nadvornik
parents:
132
diff
changeset
|
16 typedef enum { |
9009856628f7
started implementation of external commands; external Delete should work
nadvornik
parents:
132
diff
changeset
|
17 CMD_COPY = GQVIEW_EDITOR_GENERIC_SLOTS, |
9009856628f7
started implementation of external commands; external Delete should work
nadvornik
parents:
132
diff
changeset
|
18 CMD_MOVE, |
9009856628f7
started implementation of external commands; external Delete should work
nadvornik
parents:
132
diff
changeset
|
19 CMD_RENAME, |
9009856628f7
started implementation of external commands; external Delete should work
nadvornik
parents:
132
diff
changeset
|
20 CMD_DELETE, |
9009856628f7
started implementation of external commands; external Delete should work
nadvornik
parents:
132
diff
changeset
|
21 CMD_FOLDER, |
9009856628f7
started implementation of external commands; external Delete should work
nadvornik
parents:
132
diff
changeset
|
22 GQVIEW_EDITOR_SLOTS |
9009856628f7
started implementation of external commands; external Delete should work
nadvornik
parents:
132
diff
changeset
|
23 } SpecialEditor; |
9 | 24 |
25 typedef enum { | |
26 SORT_NONE, | |
27 SORT_NAME, | |
28 SORT_SIZE, | |
29 SORT_TIME, | |
30 SORT_PATH, | |
31 SORT_NUMBER | |
32 } SortType; | |
33 | |
34 typedef enum { | |
35 ALTER_NONE, /* do nothing */ | |
36 ALTER_ROTATE_90, | |
37 ALTER_ROTATE_90_CC, /* counterclockwise */ | |
38 ALTER_ROTATE_180, | |
39 ALTER_MIRROR, | |
82
a4c1b7014e6e
Thu Oct 19 15:20:51 2006 John Ellis <johne@verizon.net>
gqview
parents:
41
diff
changeset
|
40 ALTER_FLIP, |
a4c1b7014e6e
Thu Oct 19 15:20:51 2006 John Ellis <johne@verizon.net>
gqview
parents:
41
diff
changeset
|
41 ALTER_DESATURATE |
9 | 42 } AlterType; |
43 | |
44 typedef enum { | |
45 LAYOUT_HIDE = 0, | |
46 LAYOUT_LEFT = 1 << 0, | |
47 LAYOUT_RIGHT = 1 << 1, | |
48 LAYOUT_TOP = 1 << 2, | |
49 LAYOUT_BOTTOM = 1 << 3 | |
50 } LayoutLocation; | |
51 | |
52 | |
113
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
82
diff
changeset
|
53 typedef enum { |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
82
diff
changeset
|
54 IMAGE_STATE_NONE = 0, |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
82
diff
changeset
|
55 IMAGE_STATE_IMAGE = 1 << 0, |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
82
diff
changeset
|
56 IMAGE_STATE_LOADING = 1 << 1, |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
82
diff
changeset
|
57 IMAGE_STATE_ERROR = 1 << 2, |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
82
diff
changeset
|
58 IMAGE_STATE_COLOR_ADJ = 1 << 3, |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
82
diff
changeset
|
59 IMAGE_STATE_ROTATE_AUTO = 1 << 4, |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
82
diff
changeset
|
60 IMAGE_STATE_ROTATE_USER = 1 << 5, |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
82
diff
changeset
|
61 IMAGE_STATE_DELAY_FLIP = 1 << 6 |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
82
diff
changeset
|
62 } ImageState; |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
82
diff
changeset
|
63 |
127 | 64 typedef enum { |
65 SPLIT_NONE = 0, | |
66 SPLIT_VERT, | |
67 SPLIT_HOR, | |
68 SPLIT_QUAD, | |
69 } ImageSplitMode; | |
70 | |
143
0d1bf3ac6cd8
improved FileDataChangeInfo structure, check for another file operation in progress
nadvornik
parents:
141
diff
changeset
|
71 typedef enum { |
0d1bf3ac6cd8
improved FileDataChangeInfo structure, check for another file operation in progress
nadvornik
parents:
141
diff
changeset
|
72 FILEDATA_CHANGE_DELETE, |
0d1bf3ac6cd8
improved FileDataChangeInfo structure, check for another file operation in progress
nadvornik
parents:
141
diff
changeset
|
73 FILEDATA_CHANGE_MOVE, |
0d1bf3ac6cd8
improved FileDataChangeInfo structure, check for another file operation in progress
nadvornik
parents:
141
diff
changeset
|
74 FILEDATA_CHANGE_RENAME, |
0d1bf3ac6cd8
improved FileDataChangeInfo structure, check for another file operation in progress
nadvornik
parents:
141
diff
changeset
|
75 FILEDATA_CHANGE_COPY |
0d1bf3ac6cd8
improved FileDataChangeInfo structure, check for another file operation in progress
nadvornik
parents:
141
diff
changeset
|
76 } FileDataChangeType; |
0d1bf3ac6cd8
improved FileDataChangeInfo structure, check for another file operation in progress
nadvornik
parents:
141
diff
changeset
|
77 |
161 | 78 typedef enum { |
79 MTS_MODE_MINUS, | |
80 MTS_MODE_SET, | |
81 MTS_MODE_OR, | |
82 MTS_MODE_AND | |
83 } MarkToSelectionMode; | |
84 | |
85 typedef enum { | |
86 STM_MODE_RESET, | |
87 STM_MODE_SET, | |
88 STM_MODE_TOGGLE | |
89 } SelectionToMarkMode; | |
90 | |
212
c7021159079d
differentiate among normal image, raw image and metadata
nadvornik
parents:
196
diff
changeset
|
91 typedef enum { |
c7021159079d
differentiate among normal image, raw image and metadata
nadvornik
parents:
196
diff
changeset
|
92 FORMAT_CLASS_UNKNOWN, |
c7021159079d
differentiate among normal image, raw image and metadata
nadvornik
parents:
196
diff
changeset
|
93 FORMAT_CLASS_IMAGE, |
c7021159079d
differentiate among normal image, raw image and metadata
nadvornik
parents:
196
diff
changeset
|
94 FORMAT_CLASS_RAWIMAGE, |
c7021159079d
differentiate among normal image, raw image and metadata
nadvornik
parents:
196
diff
changeset
|
95 FORMAT_CLASS_META, |
c7021159079d
differentiate among normal image, raw image and metadata
nadvornik
parents:
196
diff
changeset
|
96 FILE_FORMAT_CLASSES |
c7021159079d
differentiate among normal image, raw image and metadata
nadvornik
parents:
196
diff
changeset
|
97 } FileFormatClass; |
c7021159079d
differentiate among normal image, raw image and metadata
nadvornik
parents:
196
diff
changeset
|
98 |
143
0d1bf3ac6cd8
improved FileDataChangeInfo structure, check for another file operation in progress
nadvornik
parents:
141
diff
changeset
|
99 |
127 | 100 #define MAX_SPLIT_IMAGES 4 |
101 | |
9 | 102 typedef struct _ImageLoader ImageLoader; |
103 typedef struct _ThumbLoader ThumbLoader; | |
104 | |
105 typedef struct _CollectInfo CollectInfo; | |
106 typedef struct _CollectionData CollectionData; | |
107 typedef struct _CollectTable CollectTable; | |
108 typedef struct _CollectWindow CollectWindow; | |
109 | |
110 typedef struct _ImageWindow ImageWindow; | |
111 | |
112 typedef struct _FileData FileData; | |
138 | 113 typedef struct _FileDataChangeInfo FileDataChangeInfo; |
9 | 114 |
115 typedef struct _LayoutWindow LayoutWindow; | |
116 typedef struct _ViewDirList ViewDirList; | |
117 typedef struct _ViewDirTree ViewDirTree; | |
118 typedef struct _ViewFileList ViewFileList; | |
119 typedef struct _ViewFileIcon ViewFileIcon; | |
120 | |
121 typedef struct _SlideShowData SlideShowData; | |
122 typedef struct _FullScreenData FullScreenData; | |
123 | |
124 typedef struct _PixmapFolders PixmapFolders; | |
273
e0e2c2b72c5a
reworked the histogram patch by Uwe Ohse, most of the code is in
nadvornik
parents:
212
diff
changeset
|
125 typedef struct _Histogram Histogram; |
e0e2c2b72c5a
reworked the histogram patch by Uwe Ohse, most of the code is in
nadvornik
parents:
212
diff
changeset
|
126 |
9 | 127 |
128 | |
129 struct _ImageLoader | |
130 { | |
131 GdkPixbuf *pixbuf; | |
138 | 132 FileData *fd; |
9 | 133 gchar *path; |
134 | |
135 gint bytes_read; | |
136 gint bytes_total; | |
137 | |
138 guint buffer_size; | |
139 | |
140 gint requested_width; | |
141 gint requested_height; | |
14
25335c62cd9b
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents:
12
diff
changeset
|
142 gint shrunk; |
9 | 143 |
144 gint done; | |
145 gint idle_id; | |
146 gint idle_priority; | |
147 | |
148 GdkPixbufLoader *loader; | |
149 gint load_fd; | |
150 | |
151 void (*func_area_ready)(ImageLoader *, guint x, guint y, guint w, guint h, gpointer); | |
152 void (*func_error)(ImageLoader *, gpointer); | |
153 void (*func_done)(ImageLoader *, gpointer); | |
154 void (*func_percent)(ImageLoader *, gdouble, gpointer); | |
155 | |
156 gpointer data_area_ready; | |
157 gpointer data_error; | |
158 gpointer data_done; | |
159 gpointer data_percent; | |
160 | |
161 gint idle_done_id; | |
162 }; | |
163 | |
164 typedef void (* ThumbLoaderFunc)(ThumbLoader *tl, gpointer data); | |
165 | |
166 struct _ThumbLoader | |
167 { | |
168 gint standard_loader; | |
169 | |
170 GdkPixbuf *pixbuf; /* contains final (scaled) image when done */ | |
171 ImageLoader *il; | |
172 gchar *path; | |
173 | |
174 gint cache_enable; | |
175 gint cache_hit; | |
176 gdouble percent_done; | |
177 | |
178 gint max_w; | |
179 gint max_h; | |
180 | |
181 ThumbLoaderFunc func_done; | |
182 ThumbLoaderFunc func_error; | |
183 ThumbLoaderFunc func_progress; | |
184 | |
185 gpointer data; | |
186 | |
187 gint idle_done_id; | |
188 }; | |
189 | |
190 struct _CollectInfo | |
191 { | |
138 | 192 FileData *fd; |
9 | 193 GdkPixbuf *pixbuf; |
194 gint flag_mask; | |
195 }; | |
196 | |
197 struct _CollectionData | |
198 { | |
199 gchar *path; | |
200 gchar *name; | |
201 GList *list; | |
202 SortType sort_method; | |
203 | |
204 ThumbLoader *thumb_loader; | |
205 CollectInfo *thumb_info; | |
206 | |
207 void (*info_updated_func)(CollectionData *, CollectInfo *, gpointer); | |
208 gpointer info_updated_data; | |
209 | |
210 gint ref; | |
211 | |
212 /* geometry */ | |
213 gint window_read; | |
214 gint window_x; | |
215 gint window_y; | |
216 gint window_w; | |
217 gint window_h; | |
218 | |
219 /* contents changed since save flag */ | |
220 gint changed; | |
221 }; | |
222 | |
223 struct _CollectTable | |
224 { | |
225 GtkWidget *scrolled; | |
226 GtkWidget *listview; | |
227 gint columns; | |
228 gint rows; | |
229 | |
230 CollectionData *cd; | |
231 | |
232 GList *selection; | |
233 CollectInfo *prev_selection; | |
234 | |
235 CollectInfo *click_info; | |
236 | |
237 GtkWidget *tip_window; | |
238 gint tip_delay_id; | |
239 CollectInfo *tip_info; | |
240 | |
241 GdkWindow *marker_window; | |
242 CollectInfo *marker_info; | |
243 | |
244 GtkWidget *status_label; | |
245 GtkWidget *extra_label; | |
246 | |
247 gint focus_row; | |
248 gint focus_column; | |
249 CollectInfo *focus_info; | |
250 | |
251 GtkWidget *popup; | |
252 CollectInfo *drop_info; | |
253 GList *drop_list; | |
254 | |
255 gint sync_idle_id; | |
256 gint drop_idle_id; | |
257 | |
258 gint show_text; | |
259 }; | |
260 | |
261 struct _CollectWindow | |
262 { | |
263 GtkWidget *window; | |
264 CollectTable *table; | |
265 GtkWidget *status_box; | |
266 GList *list; | |
267 | |
268 GtkWidget *close_dialog; | |
269 | |
270 CollectionData *cd; | |
271 }; | |
272 | |
12
147f4c4b9025
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents:
9
diff
changeset
|
273 typedef gint (* ImageTileRequestFunc)(ImageWindow *imd, gint x, gint y, |
147f4c4b9025
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents:
9
diff
changeset
|
274 gint width, gint height, GdkPixbuf *pixbuf, gpointer); |
147f4c4b9025
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents:
9
diff
changeset
|
275 typedef void (* ImageTileDisposeFunc)(ImageWindow *imd, gint x, gint y, |
147f4c4b9025
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents:
9
diff
changeset
|
276 gint width, gint height, GdkPixbuf *pixbuf, gpointer); |
147f4c4b9025
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents:
9
diff
changeset
|
277 |
9 | 278 struct _ImageWindow |
279 { | |
280 GtkWidget *widget; /* use this to add it and show it */ | |
23
17acca639a86
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents:
14
diff
changeset
|
281 GtkWidget *pr; |
17acca639a86
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents:
14
diff
changeset
|
282 GtkWidget *frame; |
9 | 283 |
138 | 284 FileData *image_fd; |
9 | 285 |
286 gint64 size; /* file size (bytes) */ | |
287 time_t mtime; /* file modified time stamp */ | |
288 gint unknown; /* failed to load image */ | |
289 | |
290 ImageLoader *il; | |
291 | |
292 gint has_frame; | |
293 | |
294 /* top level (not necessarily parent) window */ | |
23
17acca639a86
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents:
14
diff
changeset
|
295 gint top_window_sync; /* resize top_window when image dimensions change */ |
9 | 296 GtkWidget *top_window; /* window that gets title, and window to resize when 'fitting' */ |
297 gchar *title; /* window title to display left of file name */ | |
298 gchar *title_right; /* window title to display right of file name */ | |
299 gint title_show_zoom; /* option to include zoom in window title */ | |
300 | |
301 gint completed; | |
113
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
82
diff
changeset
|
302 ImageState state; /* mask of IMAGE_STATE_* flags about current image */ |
9 | 303 |
117
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
115
diff
changeset
|
304 void (*func_update)(ImageWindow *imd, gpointer data); |
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
115
diff
changeset
|
305 void (*func_complete)(ImageWindow *imd, gint preload, gpointer data); |
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
115
diff
changeset
|
306 void (*func_state)(ImageWindow *imd, ImageState state, gpointer data); |
12
147f4c4b9025
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents:
9
diff
changeset
|
307 ImageTileRequestFunc func_tile_request; |
147f4c4b9025
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents:
9
diff
changeset
|
308 ImageTileDisposeFunc func_tile_dispose; |
9 | 309 |
310 gpointer data_update; | |
311 gpointer data_complete; | |
117
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
115
diff
changeset
|
312 gpointer data_state; |
12
147f4c4b9025
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents:
9
diff
changeset
|
313 gpointer data_tile; |
9 | 314 |
315 /* button, scroll functions */ | |
316 void (*func_button)(ImageWindow *, gint button, | |
317 guint32 time, gdouble x, gdouble y, guint state, gpointer); | |
128
98e2632b5d3d
improved connected scroll and active image switching
nadvornik
parents:
127
diff
changeset
|
318 void (*func_drag)(ImageWindow *, gint button, |
98e2632b5d3d
improved connected scroll and active image switching
nadvornik
parents:
127
diff
changeset
|
319 guint32 time, gdouble x, gdouble y, guint state, gdouble dx, gdouble dy,gpointer); |
9 | 320 void (*func_scroll)(ImageWindow *, GdkScrollDirection direction, |
321 guint32 time, gdouble x, gdouble y, guint state, gpointer); | |
322 | |
323 gpointer data_button; | |
128
98e2632b5d3d
improved connected scroll and active image switching
nadvornik
parents:
127
diff
changeset
|
324 gpointer data_drag; |
9 | 325 gpointer data_scroll; |
326 | |
12
147f4c4b9025
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents:
9
diff
changeset
|
327 /* scroll notification (for scroll bar implementation) */ |
147f4c4b9025
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents:
9
diff
changeset
|
328 void (*func_scroll_notify)(ImageWindow *, gint x, gint y, gint width, gint height, gpointer); |
147f4c4b9025
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents:
9
diff
changeset
|
329 |
147f4c4b9025
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents:
9
diff
changeset
|
330 gpointer data_scroll_notify; |
147f4c4b9025
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents:
9
diff
changeset
|
331 |
9 | 332 /* collection info */ |
333 CollectionData *collection; | |
334 CollectInfo *collection_info; | |
335 | |
113
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
82
diff
changeset
|
336 /* color profiles */ |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
82
diff
changeset
|
337 gint color_profile_enable; |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
82
diff
changeset
|
338 gint color_profile_input; |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
82
diff
changeset
|
339 gint color_profile_screen; |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
82
diff
changeset
|
340 gint color_profile_use_image; |
115
53b2bfdcff69
Tue Nov 28 11:54:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
113
diff
changeset
|
341 gpointer cm; |
113
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
82
diff
changeset
|
342 |
9 | 343 AlterType delay_alter_type; |
344 | |
345 ImageLoader *read_ahead_il; | |
346 GdkPixbuf *read_ahead_pixbuf; | |
138 | 347 FileData *read_ahead_fd; |
9 | 348 |
349 GdkPixbuf *prev_pixbuf; | |
138 | 350 FileData *prev_fd; |
113
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
82
diff
changeset
|
351 gint prev_color_row; |
9 | 352 |
353 gint auto_refresh_id; | |
354 gint auto_refresh_interval; | |
355 | |
356 gint delay_flip; | |
357 }; | |
358 | |
149 | 359 #define FILEDATA_MARKS_SIZE 6 |
132 | 360 |
138 | 361 struct _FileDataChangeInfo { |
143
0d1bf3ac6cd8
improved FileDataChangeInfo structure, check for another file operation in progress
nadvornik
parents:
141
diff
changeset
|
362 FileDataChangeType type; |
138 | 363 gchar *source; |
364 gchar *dest; | |
365 }; | |
137
be3328a58875
started support for sidecar files like xmp, raw+jpeg etc.
nadvornik
parents:
134
diff
changeset
|
366 |
be3328a58875
started support for sidecar files like xmp, raw+jpeg etc.
nadvornik
parents:
134
diff
changeset
|
367 struct _FileData { |
138 | 368 gint magick; |
137
be3328a58875
started support for sidecar files like xmp, raw+jpeg etc.
nadvornik
parents:
134
diff
changeset
|
369 gint type; |
138 | 370 gchar *original_path; /* key to file_data_pool hash table */ |
137
be3328a58875
started support for sidecar files like xmp, raw+jpeg etc.
nadvornik
parents:
134
diff
changeset
|
371 gchar *path; |
be3328a58875
started support for sidecar files like xmp, raw+jpeg etc.
nadvornik
parents:
134
diff
changeset
|
372 const gchar *name; |
be3328a58875
started support for sidecar files like xmp, raw+jpeg etc.
nadvornik
parents:
134
diff
changeset
|
373 const gchar *extension; |
be3328a58875
started support for sidecar files like xmp, raw+jpeg etc.
nadvornik
parents:
134
diff
changeset
|
374 gint64 size; |
be3328a58875
started support for sidecar files like xmp, raw+jpeg etc.
nadvornik
parents:
134
diff
changeset
|
375 time_t date; |
be3328a58875
started support for sidecar files like xmp, raw+jpeg etc.
nadvornik
parents:
134
diff
changeset
|
376 gboolean marks[FILEDATA_MARKS_SIZE]; |
be3328a58875
started support for sidecar files like xmp, raw+jpeg etc.
nadvornik
parents:
134
diff
changeset
|
377 GList *sidecar_files; |
141 | 378 FileData *parent; /* parent file if this is a sidecar file, NULL otherwise */ |
138 | 379 FileDataChangeInfo *change; /* for rename, move ... */ |
9 | 380 GdkPixbuf *pixbuf; |
138 | 381 gint ref; |
9 | 382 }; |
383 | |
273
e0e2c2b72c5a
reworked the histogram patch by Uwe Ohse, most of the code is in
nadvornik
parents:
212
diff
changeset
|
384 struct _Histogram { |
e0e2c2b72c5a
reworked the histogram patch by Uwe Ohse, most of the code is in
nadvornik
parents:
212
diff
changeset
|
385 gulong histmap[256*4]; |
e0e2c2b72c5a
reworked the histogram patch by Uwe Ohse, most of the code is in
nadvornik
parents:
212
diff
changeset
|
386 gint histogram_chan; |
e0e2c2b72c5a
reworked the histogram patch by Uwe Ohse, most of the code is in
nadvornik
parents:
212
diff
changeset
|
387 gint histogram_logmode; |
e0e2c2b72c5a
reworked the histogram patch by Uwe Ohse, most of the code is in
nadvornik
parents:
212
diff
changeset
|
388 }; |
e0e2c2b72c5a
reworked the histogram patch by Uwe Ohse, most of the code is in
nadvornik
parents:
212
diff
changeset
|
389 |
e0e2c2b72c5a
reworked the histogram patch by Uwe Ohse, most of the code is in
nadvornik
parents:
212
diff
changeset
|
390 |
9 | 391 struct _LayoutWindow |
392 { | |
393 gchar *path; | |
394 | |
395 /* base */ | |
396 | |
397 GtkWidget *window; | |
398 | |
399 GtkWidget *main_box; | |
400 | |
401 GtkWidget *group_box; | |
402 GtkWidget *h_pane; | |
403 GtkWidget *v_pane; | |
404 | |
405 /* menus, path selector */ | |
406 | |
407 GtkActionGroup *action_group; | |
408 GtkUIManager *ui_manager; | |
409 | |
410 GtkWidget *path_entry; | |
411 | |
412 /* image */ | |
413 | |
414 LayoutLocation image_location; | |
415 | |
416 ImageWindow *image; | |
417 | |
127 | 418 ImageWindow *split_images[MAX_SPLIT_IMAGES]; |
419 ImageSplitMode split_mode; | |
420 gint active_split_image; | |
421 | |
422 GtkWidget *split_image_widget; | |
423 | |
424 gint connect_zoom, connect_scroll; | |
425 | |
9 | 426 /* tools window (float) */ |
427 | |
428 GtkWidget *tools; | |
429 GtkWidget *tools_pane; | |
430 | |
431 gint tools_float; | |
432 gint tools_hidden; | |
433 | |
434 /* toolbar */ | |
435 | |
436 GtkWidget *toolbar; | |
437 gint toolbar_hidden; | |
438 | |
439 GtkWidget *thumb_button; | |
440 gint thumbs_enabled; | |
137
be3328a58875
started support for sidecar files like xmp, raw+jpeg etc.
nadvornik
parents:
134
diff
changeset
|
441 gint marks_enabled; |
132 | 442 |
9 | 443 /* dir view */ |
444 | |
445 LayoutLocation dir_location; | |
446 | |
447 ViewDirList *vdl; | |
448 ViewDirTree *vdt; | |
449 GtkWidget *dir_view; | |
450 | |
451 gint tree_view; | |
452 | |
453 /* file view */ | |
454 | |
455 LayoutLocation file_location; | |
456 | |
457 ViewFileList *vfl; | |
458 ViewFileIcon *vfi; | |
459 GtkWidget *file_view; | |
460 | |
461 gint icon_view; | |
462 SortType sort_method; | |
463 gint sort_ascend; | |
464 | |
465 /* status bar */ | |
466 | |
467 GtkWidget *info_box; | |
468 GtkWidget *info_progress_bar; | |
469 GtkWidget *info_sort; | |
113
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
82
diff
changeset
|
470 GtkWidget *info_color; |
9 | 471 GtkWidget *info_status; |
472 GtkWidget *info_details; | |
473 GtkWidget *info_zoom; | |
474 | |
475 /* slide show */ | |
476 | |
477 SlideShowData *slideshow; | |
478 | |
479 /* full screen */ | |
480 | |
481 FullScreenData *full_screen; | |
482 | |
483 /* dividers */ | |
484 | |
485 gint div_h; | |
486 gint div_v; | |
487 gint div_float; | |
488 | |
489 /* directory update check */ | |
490 | |
491 gint last_time_id; | |
492 time_t last_time; | |
493 | |
494 /* misc */ | |
495 | |
496 GtkWidget *utility_box; | |
497 GtkWidget *bar_sort; | |
498 GtkWidget *bar_exif; | |
499 GtkWidget *bar_info; | |
500 | |
273
e0e2c2b72c5a
reworked the histogram patch by Uwe Ohse, most of the code is in
nadvornik
parents:
212
diff
changeset
|
501 gint histogram_enabled; |
e0e2c2b72c5a
reworked the histogram patch by Uwe Ohse, most of the code is in
nadvornik
parents:
212
diff
changeset
|
502 Histogram *histogram; |
e0e2c2b72c5a
reworked the histogram patch by Uwe Ohse, most of the code is in
nadvornik
parents:
212
diff
changeset
|
503 |
9 | 504 gint bar_sort_enabled; |
505 gint bar_exif_enabled; | |
506 gint bar_info_enabled; | |
507 | |
508 gint bar_exif_size; | |
509 gint bar_exif_advanced; | |
510 }; | |
511 | |
512 struct _ViewDirList | |
513 { | |
514 GtkWidget *widget; | |
515 GtkWidget *listview; | |
516 | |
517 gchar *path; | |
518 GList *list; | |
519 | |
520 FileData *click_fd; | |
521 | |
522 FileData *drop_fd; | |
523 GList *drop_list; | |
524 | |
525 gint drop_scroll_id; | |
526 | |
527 /* func list */ | |
528 void (*select_func)(ViewDirList *vdl, const gchar *path, gpointer data); | |
529 gpointer select_data; | |
530 | |
531 LayoutWindow *layout; | |
532 | |
533 GtkWidget *popup; | |
534 | |
535 PixmapFolders *pf; | |
536 }; | |
537 | |
538 struct _ViewDirTree | |
539 { | |
540 GtkWidget *widget; | |
541 GtkWidget *treeview; | |
542 | |
543 gchar *path; | |
544 | |
545 FileData *click_fd; | |
546 | |
547 FileData *drop_fd; | |
548 GList *drop_list; | |
549 | |
550 gint drop_scroll_id; | |
551 gint drop_expand_id; | |
552 | |
553 /* func list */ | |
554 void (*select_func)(ViewDirTree *vdt, const gchar *path, gpointer data); | |
555 gpointer select_data; | |
556 | |
557 LayoutWindow *layout; | |
558 | |
559 GtkWidget *popup; | |
560 | |
561 PixmapFolders *pf; | |
562 | |
563 gint busy_ref; | |
564 }; | |
565 | |
566 struct _ViewFileList | |
567 { | |
568 GtkWidget *widget; | |
569 GtkWidget *listview; | |
570 | |
571 gchar *path; | |
572 GList *list; | |
573 | |
574 SortType sort_method; | |
575 gint sort_ascend; | |
576 | |
577 FileData *click_fd; | |
578 FileData *select_fd; | |
579 | |
580 gint thumbs_enabled; | |
138 | 581 gint marks_enabled; |
150 | 582 gint active_mark; |
132 | 583 |
9 | 584 /* thumb updates */ |
585 gint thumbs_running; | |
586 gint thumbs_count; | |
587 ThumbLoader *thumbs_loader; | |
588 FileData *thumbs_filedata; | |
589 | |
590 /* func list */ | |
591 void (*func_thumb_status)(ViewFileList *vfl, gdouble val, const gchar *text, gpointer data); | |
592 gpointer data_thumb_status; | |
593 | |
594 void (*func_status)(ViewFileList *vfl, gpointer data); | |
595 gpointer data_status; | |
596 | |
597 gint select_idle_id; | |
598 LayoutWindow *layout; | |
599 | |
600 GtkWidget *popup; | |
601 }; | |
602 | |
138 | 603 struct _IconData; |
604 | |
9 | 605 struct _ViewFileIcon |
606 { | |
607 GtkWidget *widget; | |
608 GtkWidget *listview; | |
609 | |
610 gchar *path; | |
611 GList *list; | |
612 | |
613 /* table stuff */ | |
614 | |
615 gint columns; | |
616 gint rows; | |
617 | |
618 GList *selection; | |
138 | 619 struct _IconData *prev_selection; |
9 | 620 |
621 GtkWidget *tip_window; | |
622 gint tip_delay_id; | |
138 | 623 struct _IconData *tip_id; |
9 | 624 |
138 | 625 struct _IconData *click_id; |
9 | 626 |
138 | 627 struct _IconData *focus_id; |
9 | 628 gint focus_row; |
629 gint focus_column; | |
630 | |
631 SortType sort_method; | |
632 gint sort_ascend; | |
633 | |
634 gint show_text; | |
635 | |
636 gint sync_idle_id; | |
637 | |
638 /* thumbs */ | |
639 | |
640 gint thumbs_running; | |
641 GList *thumbs_list; | |
642 gint thumbs_count; | |
643 ThumbLoader *thumbs_loader; | |
644 FileData *thumbs_fd; | |
645 | |
646 /* func list */ | |
647 void (*func_thumb_status)(ViewFileIcon *vfi, gdouble val, const gchar *text, gpointer data); | |
648 gpointer data_thumb_status; | |
649 | |
650 void (*func_status)(ViewFileIcon *vfi, gpointer data); | |
651 gpointer data_status; | |
652 | |
653 LayoutWindow *layout; | |
654 | |
655 GtkWidget *popup; | |
656 }; | |
657 | |
658 struct _SlideShowData | |
659 { | |
660 ImageWindow *imd; | |
661 | |
138 | 662 GList *filelist; |
9 | 663 CollectionData *cd; |
664 gchar *layout_path; | |
665 LayoutWindow *layout; | |
666 | |
667 GList *list; | |
668 GList *list_done; | |
669 | |
138 | 670 FileData *slide_fd; |
9 | 671 |
672 gint slide_count; | |
673 gint timeout_id; | |
674 | |
675 gint from_selection; | |
676 | |
677 void (*stop_func)(SlideShowData *, gpointer); | |
678 gpointer stop_data; | |
679 | |
680 gint paused; | |
681 }; | |
682 | |
683 struct _FullScreenData | |
684 { | |
685 GtkWidget *window; | |
686 ImageWindow *imd; | |
687 | |
688 GtkWidget *normal_window; | |
689 ImageWindow *normal_imd; | |
690 | |
691 gint hide_mouse_id; | |
692 gint busy_mouse_id; | |
693 gint cursor_state; | |
694 | |
695 gint saver_block_id; | |
696 | |
697 void (*stop_func)(FullScreenData *, gpointer); | |
698 gpointer stop_data; | |
699 }; | |
700 | |
701 struct _PixmapFolders | |
702 { | |
703 GdkPixbuf *close; | |
704 GdkPixbuf *open; | |
705 GdkPixbuf *deny; | |
706 GdkPixbuf *parent; | |
707 }; | |
708 | |
709 | |
710 #endif | |
711 | |
712 |