Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
[geeqie.git] / src / gqview.h
1 /*
2  * GQview
3  * (C) 2006 John Ellis
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 GQVIEW_H
14 #define GQVIEW_H
15
16 #ifdef HAVE_CONFIG_H
17 #  include "config.h"
18 #endif
19
20 #ifdef HAVE_STRVERSCMP
21 #  define _GNU_SOURCE
22 #endif
23
24 #include "intl.h"
25
26 /*
27  *-------------------------------------
28  * Standard library includes
29  *-------------------------------------
30  */
31
32 #include <pwd.h>
33 #include <stdio.h>
34 #include <stdlib.h>
35 #include <string.h>
36 #include <time.h>
37 #include <unistd.h>
38 #include <sys/stat.h>
39 #include <sys/time.h>
40 #include <sys/types.h>
41 #include <dirent.h>
42 #include <fcntl.h>
43
44 /*
45  *-------------------------------------
46  * includes for glib / gtk / gdk-pixbuf
47  *-------------------------------------
48  */
49
50 #include <gdk/gdk.h>
51 #include <gtk/gtk.h>
52
53 #include <gdk-pixbuf/gdk-pixbuf.h>
54 #include <gdk-pixbuf/gdk-pixbuf-loader.h>
55
56 #include "typedefs.h"
57
58 /*
59  *----------------------------------------------------------------------------
60  * defines
61  *----------------------------------------------------------------------------
62  */
63
64 #define GQVIEW_RC_DIR             ".gqview"
65 #define GQVIEW_RC_DIR_COLLECTIONS GQVIEW_RC_DIR"/collections"
66 #define GQVIEW_RC_DIR_TRASH       GQVIEW_RC_DIR"/trash"
67
68 #define RC_FILE_NAME "gqviewrc"
69
70 #define ZOOM_RESET_ORIGINAL 0
71 #define ZOOM_RESET_FIT_WINDOW 1
72 #define ZOOM_RESET_NONE 2
73
74 #define SCROLL_RESET_TOPLEFT 0
75 #define SCROLL_RESET_CENTER 1
76 #define SCROLL_RESET_NOCHANGE 2
77
78 #define MOUSEWHEEL_SCROLL_SIZE 20
79
80 #define GQVIEW_EDITOR_SLOTS 10
81
82 #define COLOR_PROFILE_INPUTS 4
83
84 /*
85  *----------------------------------------------------------------------------
86  * globals
87  *----------------------------------------------------------------------------
88  */
89
90 /*
91  * Since globals are used everywhere,
92  * it is easier to define them here.
93  */
94
95 extern GList *filename_filter;
96
97 /* -- options -- */
98 extern gint main_window_w;
99 extern gint main_window_h;
100 extern gint main_window_x;
101 extern gint main_window_y;
102 extern gint main_window_maximized;
103
104 extern gint float_window_w;
105 extern gint float_window_h;
106 extern gint float_window_x;
107 extern gint float_window_y;
108 extern gint float_window_divider;
109
110 extern gint window_hdivider_pos;
111 extern gint window_vdivider_pos;
112
113 extern gint save_window_positions;
114 extern gint tools_float;
115 extern gint tools_hidden;
116 extern gint toolbar_hidden;
117 extern gint progressive_key_scrolling;
118
119 extern gint startup_path_enable;
120 extern gchar *startup_path;
121 extern gint confirm_delete;
122 extern gint enable_delete_key;
123 extern gint safe_delete_enable;
124 extern gchar *safe_delete_path;
125 extern gint safe_delete_size;
126 extern gint restore_tool;
127 extern gint zoom_mode;
128 extern gint two_pass_zoom;
129 extern gint scroll_reset_method;
130 extern gint fit_window;
131 extern gint limit_window_size;
132 extern gint zoom_to_fit_expands;
133 extern gint max_window_size;
134 extern gint thumb_max_width;
135 extern gint thumb_max_height;
136 extern gint enable_thumb_caching;
137 extern gint enable_thumb_dirs;
138 extern gint thumbnail_fast;
139 extern gint use_xvpics_thumbnails;
140 extern gint thumbnail_spec_standard;
141 extern gint enable_metadata_dirs;
142 extern gint show_dot_files;
143 extern gint file_filter_disable;
144 extern gchar *editor_name[];
145 extern gchar *editor_command[];
146
147 extern gint thumbnails_enabled;
148 extern SortType file_sort_method;
149 extern gint file_sort_ascending;
150
151 extern gint slideshow_delay;    /* in tenths of a second */
152 extern gint slideshow_random;
153 extern gint slideshow_repeat;
154
155 extern gint mousewheel_scrolls;
156 extern gint enable_in_place_rename;
157
158 extern gint black_window_background;
159
160 extern gint fullscreen_screen;
161 extern gint fullscreen_clean_flip;
162 extern gint fullscreen_disable_saver;
163 extern gint fullscreen_above;
164
165 extern gint dupe_custom_threshold;
166
167 extern gint debug;
168
169 extern gint recent_list_max;
170
171 extern gint collection_rectangular_selection;
172
173 extern gint tile_cache_max;     /* in megabytes */
174 extern gint thumbnail_quality;
175 extern gint zoom_quality;
176 extern gint dither_quality;
177
178 extern gint zoom_increment;     /* 10 is 1.0, 5 is 0.05, 20 is 2.0, etc. */
179
180 extern gint enable_read_ahead;
181
182 extern gint place_dialogs_under_mouse;
183
184 /* layout */
185 extern gchar *layout_order;
186 extern gint layout_style;
187
188 extern gint layout_view_icons;
189 extern gint layout_view_tree;
190
191 extern gint show_icon_names;
192
193 extern gint tree_descend_subdirs;
194
195 extern gint lazy_image_sync;
196 extern gint update_on_time_change;
197 extern gint exif_rotate_enable;
198
199 extern gint color_profile_enabled;
200 extern gint color_profile_input_type;
201 extern gchar *color_profile_input_file[];
202 extern gchar *color_profile_input_name[];
203 extern gint color_profile_screen_type;
204 extern gchar *color_profile_screen_file;
205 extern gint color_profile_use_image;
206
207 /*
208  *----------------------------------------------------------------------------
209  * main.c
210  *----------------------------------------------------------------------------
211  */
212
213 /*
214  * This also doubles as the main.c header.
215  */
216
217 void window_set_icon(GtkWidget *window, const gchar *icon, const gchar *file);
218 gint window_maximized(GtkWidget *window);
219
220 gdouble get_zoom_increment(void);
221
222 void help_window_show(const gchar *key);
223
224 void keyboard_scroll_calc(gint *x, gint *y, GdkEventKey *event);
225 gint key_press_cb(GtkWidget *widget, GdkEventKey *event, gpointer data);
226 void exit_gqview(void);
227
228
229 #endif
230
231
232