Mercurial > geeqie.yaz
annotate src/preferences.c @ 276:4f526d436873
Implement secure rc file saving.
First data is written to a temporary file, then if nothing
was wrong, this file is renamed to the final name.
This way the risk of corrupted rc file is greatly reduced.
The code is borrowed from ELinks (http://elinks.cz).
author | zas_ |
---|---|
date | Tue, 08 Apr 2008 21:55:58 +0000 |
parents | a9adf9e1a746 |
children | 9995c5fb202a |
rev | line source |
---|---|
9 | 1 /* |
196 | 2 * Geeqie |
67
f63ecca6c087
Fri Oct 13 05:22:43 2006 John Ellis <johne@verizon.net>
gqview
parents:
26
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 #include "gqview.h" | |
14 #include "preferences.h" | |
15 | |
16 #include "cache_maint.h" | |
17 #include "editors.h" | |
18 #include "filelist.h" | |
19 #include "fullscreen.h" | |
26
acd9885ebd78
Mon Mar 28 20:23:34 2005 John Ellis <johne@verizon.net>
gqview
parents:
15
diff
changeset
|
20 #include "image.h" |
9 | 21 #include "img-view.h" |
22 #include "layout_config.h" | |
23 #include "layout_util.h" | |
24 #include "pixbuf_util.h" | |
25 #include "slideshow.h" | |
26 #include "utilops.h" | |
27 #include "ui_fileops.h" | |
28 #include "ui_misc.h" | |
29 #include "ui_tabcomp.h" | |
30 #include "ui_utildlg.h" | |
222
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
31 #include "bar_exif.h" |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
32 #include "exif.h" |
9 | 33 |
34 #include <math.h> | |
35 | |
36 | |
37 #define EDITOR_NAME_MAX_LENGTH 32 | |
38 #define EDITOR_COMMAND_MAX_LENGTH 1024 | |
39 | |
40 | |
41 typedef struct _ThumbSize ThumbSize; | |
42 struct _ThumbSize | |
43 { | |
44 gint w; | |
45 gint h; | |
46 }; | |
47 | |
48 static ThumbSize thumb_size_list[] = | |
49 { | |
50 { 24, 24 }, | |
51 { 32, 32 }, | |
52 { 48, 48 }, | |
53 { 64, 64 }, | |
54 { 96, 72 }, | |
55 { 96, 96 }, | |
56 { 128, 96 }, | |
57 { 128, 128 }, | |
58 { 160, 120 }, | |
59 { 160, 160 }, | |
60 { 192, 144 }, | |
61 { 192, 192 }, | |
62 { 256, 192 }, | |
63 { 256, 256 } | |
64 }; | |
65 | |
66 enum { | |
67 FE_ENABLE, | |
68 FE_EXTENSION, | |
69 FE_DESCRIPTION | |
70 }; | |
71 | |
72 /* config memory values */ | |
73 static gint startup_path_enable_c; | |
74 static gint confirm_delete_c; | |
75 static gint enable_delete_key_c; | |
76 static gint safe_delete_enable_c; | |
77 static gint safe_delete_size_c; | |
78 static gint restore_tool_c; | |
79 static gint save_window_positions_c; | |
80 static gint zoom_mode_c; | |
81 static gint two_pass_zoom_c; | |
82 static gint fit_window_c; | |
83 static gint limit_window_size_c; | |
84 static gint zoom_to_fit_expands_c; | |
85 static gint max_window_size_c; | |
209
ad78ad18523a
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
nadvornik
parents:
208
diff
changeset
|
86 static gint limit_autofit_size_c; |
ad78ad18523a
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
nadvornik
parents:
208
diff
changeset
|
87 static gint max_autofit_size_c; |
9 | 88 static gint progressive_key_scrolling_c; |
89 static gint thumb_max_width_c; | |
90 static gint thumb_max_height_c; | |
91 static gint enable_thumb_caching_c; | |
92 static gint enable_thumb_dirs_c; | |
14
25335c62cd9b
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents:
9
diff
changeset
|
93 static gint thumbnail_fast_c; |
25335c62cd9b
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents:
9
diff
changeset
|
94 #if 0 |
9 | 95 static gint use_xvpics_thumbnails_c; |
14
25335c62cd9b
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents:
9
diff
changeset
|
96 #endif |
9 | 97 static gint thumbnail_spec_standard_c; |
98 static gint enable_metadata_dirs_c; | |
99 static gint show_dot_files_c; | |
100 static gint file_filter_disable_c; | |
101 static gint file_sort_case_sensitive_c; | |
102 static gint slideshow_delay_c; | |
103 static gint slideshow_random_c; | |
104 static gint slideshow_repeat_c; | |
105 | |
106 static gint mousewheel_scrolls_c; | |
107 | |
108 static gint enable_in_place_rename_c; | |
109 | |
110 static gint collection_rectangular_selection_c; | |
111 | |
112 static gint tile_cache_max_c; | |
113 | |
114 static gint thumbnail_quality_c; | |
115 static gint zoom_quality_c; | |
116 | |
117 static gint zoom_increment_c; | |
118 | |
119 static gint enable_read_ahead_c; | |
120 | |
208
fa0e05f985c3
set user-defined color as image background - patch by Laurent MONIN
nadvornik
parents:
199
diff
changeset
|
121 static gint user_specified_window_background_c; |
fa0e05f985c3
set user-defined color as image background - patch by Laurent MONIN
nadvornik
parents:
199
diff
changeset
|
122 static GdkColor window_background_color_c; |
9 | 123 |
124 static gint fullscreen_screen_c; | |
125 static gint fullscreen_clean_flip_c; | |
126 static gint fullscreen_disable_saver_c; | |
127 static gint fullscreen_above_c; | |
218
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
128 static gint show_fullscreen_info_c; |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
129 static gchar *fullscreen_info_c = NULL; |
9 | 130 |
131 static gint dupe_custom_threshold_c; | |
132 | |
227
41fc4bfc8b25
Add a debug level spinner at the end of Preferences > Advanced.
zas_
parents:
226
diff
changeset
|
133 #ifdef DEBUG |
41fc4bfc8b25
Add a debug level spinner at the end of Preferences > Advanced.
zas_
parents:
226
diff
changeset
|
134 static gint debug_c; |
41fc4bfc8b25
Add a debug level spinner at the end of Preferences > Advanced.
zas_
parents:
226
diff
changeset
|
135 #endif |
41fc4bfc8b25
Add a debug level spinner at the end of Preferences > Advanced.
zas_
parents:
226
diff
changeset
|
136 |
9 | 137 static GtkWidget *configwindow = NULL; |
138 static GtkWidget *startup_path_entry; | |
139 static GtkListStore *filter_store = NULL; | |
140 static GtkWidget *editor_name_entry[GQVIEW_EDITOR_SLOTS]; | |
141 static GtkWidget *editor_command_entry[GQVIEW_EDITOR_SLOTS]; | |
142 | |
143 static GtkWidget *layout_widget; | |
144 | |
145 static GtkWidget *safe_delete_path_entry; | |
146 | |
147 static gint tree_descend_subdirs_c; | |
148 | |
149 static gint update_on_time_change_c; | |
150 static gint exif_rotate_enable_c; | |
151 | |
113
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
152 static GtkWidget *color_profile_input_file_entry[COLOR_PROFILE_INPUTS]; |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
153 static GtkWidget *color_profile_input_name_entry[COLOR_PROFILE_INPUTS]; |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
154 static GtkWidget *color_profile_screen_file_entry; |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
155 |
170
9a56e3d13e67
basic sidecar files configuration via preferences dialog
nadvornik
parents:
134
diff
changeset
|
156 static GtkWidget *sidecar_ext_entry; |
225
649f7cb544e0
Make the preferences window resizeable, and try to improve
zas_
parents:
224
diff
changeset
|
157 |
649f7cb544e0
Make the preferences window resizeable, and try to improve
zas_
parents:
224
diff
changeset
|
158 |
649f7cb544e0
Make the preferences window resizeable, and try to improve
zas_
parents:
224
diff
changeset
|
159 #define CONFIG_WINDOW_DEF_WIDTH 700 |
649f7cb544e0
Make the preferences window resizeable, and try to improve
zas_
parents:
224
diff
changeset
|
160 #define CONFIG_WINDOW_DEF_HEIGHT 500 |
649f7cb544e0
Make the preferences window resizeable, and try to improve
zas_
parents:
224
diff
changeset
|
161 |
9 | 162 /* |
163 *----------------------------------------------------------------------------- | |
164 * option widget callbacks (private) | |
165 *----------------------------------------------------------------------------- | |
166 */ | |
167 | |
168 static void startup_path_set_current(GtkWidget *widget, gpointer data) | |
169 { | |
170 gtk_entry_set_text(GTK_ENTRY(startup_path_entry), layout_get_path(NULL)); | |
171 } | |
172 | |
173 static void zoom_mode_original_cb(GtkWidget *widget, gpointer data) | |
174 { | |
175 if (GTK_TOGGLE_BUTTON (widget)->active) | |
176 zoom_mode_c = ZOOM_RESET_ORIGINAL; | |
177 } | |
178 | |
179 static void zoom_mode_fit_cb(GtkWidget *widget, gpointer data) | |
180 { | |
181 if (GTK_TOGGLE_BUTTON (widget)->active) | |
182 zoom_mode_c = ZOOM_RESET_FIT_WINDOW; | |
183 } | |
184 | |
185 static void zoom_mode_none_cb(GtkWidget *widget, gpointer data) | |
186 { | |
187 if (GTK_TOGGLE_BUTTON (widget)->active) | |
188 zoom_mode_c = ZOOM_RESET_NONE; | |
189 } | |
190 | |
191 static void zoom_increment_cb(GtkWidget *spin, gpointer data) | |
192 { | |
193 zoom_increment_c = (gint)(gtk_spin_button_get_value(GTK_SPIN_BUTTON(spin)) * 10.0 + 0.01); | |
194 } | |
195 | |
196 static void slideshow_delay_cb(GtkWidget *spin, gpointer data) | |
197 { | |
198 slideshow_delay_c = (gint)(gtk_spin_button_get_value(GTK_SPIN_BUTTON(spin)) * | |
199 (double)SLIDESHOW_SUBSECOND_PRECISION + 0.01); | |
200 } | |
201 | |
202 /* | |
203 *----------------------------------------------------------------------------- | |
204 * sync progam to config window routine (private) | |
205 *----------------------------------------------------------------------------- | |
206 */ | |
207 | |
208 static void config_window_apply(void) | |
209 { | |
210 const gchar *buf; | |
211 gchar *l_conf; | |
212 gint new_style; | |
213 gint i; | |
214 gint refresh = FALSE; | |
215 | |
216 for(i = 0; i < GQVIEW_EDITOR_SLOTS; i++) | |
217 { | |
134
9009856628f7
started implementation of external commands; external Delete should work
nadvornik
parents:
113
diff
changeset
|
218 if (i < GQVIEW_EDITOR_GENERIC_SLOTS) |
9009856628f7
started implementation of external commands; external Delete should work
nadvornik
parents:
113
diff
changeset
|
219 { |
9009856628f7
started implementation of external commands; external Delete should work
nadvornik
parents:
113
diff
changeset
|
220 g_free(editor_name[i]); |
9009856628f7
started implementation of external commands; external Delete should work
nadvornik
parents:
113
diff
changeset
|
221 editor_name[i] = NULL; |
9009856628f7
started implementation of external commands; external Delete should work
nadvornik
parents:
113
diff
changeset
|
222 buf = gtk_entry_get_text(GTK_ENTRY(editor_name_entry[i])); |
9009856628f7
started implementation of external commands; external Delete should work
nadvornik
parents:
113
diff
changeset
|
223 if (buf && strlen(buf) > 0) editor_name[i] = g_strdup(buf); |
9009856628f7
started implementation of external commands; external Delete should work
nadvornik
parents:
113
diff
changeset
|
224 } |
9 | 225 |
226 g_free(editor_command[i]); | |
227 editor_command[i] = NULL; | |
228 buf = gtk_entry_get_text(GTK_ENTRY(editor_command_entry[i])); | |
229 if (buf && strlen(buf) > 0) editor_command[i] = g_strdup(buf); | |
230 } | |
231 layout_edit_update_all(); | |
232 | |
233 g_free(startup_path); | |
234 startup_path = NULL; | |
235 buf = gtk_entry_get_text(GTK_ENTRY(startup_path_entry)); | |
236 if (buf && strlen(buf) > 0) startup_path = remove_trailing_slash(buf); | |
237 | |
238 g_free(safe_delete_path); | |
239 safe_delete_path = NULL; | |
240 buf = gtk_entry_get_text(GTK_ENTRY(safe_delete_path_entry)); | |
241 if (buf && strlen(buf) > 0) safe_delete_path = remove_trailing_slash(buf); | |
242 | |
243 if (show_dot_files != show_dot_files_c) refresh = TRUE; | |
244 if (file_sort_case_sensitive != file_sort_case_sensitive_c) refresh = TRUE; | |
245 if (file_filter_disable != file_filter_disable_c) refresh = TRUE; | |
246 | |
247 startup_path_enable = startup_path_enable_c; | |
248 confirm_delete = confirm_delete_c; | |
249 enable_delete_key = enable_delete_key_c; | |
250 safe_delete_enable = safe_delete_enable_c; | |
251 safe_delete_size = safe_delete_size_c; | |
252 restore_tool = restore_tool_c; | |
253 save_window_positions = save_window_positions_c; | |
254 zoom_mode = zoom_mode_c; | |
255 two_pass_zoom = two_pass_zoom_c; | |
256 fit_window = fit_window_c; | |
257 limit_window_size = limit_window_size_c; | |
258 zoom_to_fit_expands = zoom_to_fit_expands_c; | |
259 max_window_size = max_window_size_c; | |
209
ad78ad18523a
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
nadvornik
parents:
208
diff
changeset
|
260 limit_autofit_size = limit_autofit_size_c; |
ad78ad18523a
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
nadvornik
parents:
208
diff
changeset
|
261 max_autofit_size = max_autofit_size_c; |
9 | 262 progressive_key_scrolling = progressive_key_scrolling_c; |
263 thumb_max_width = thumb_max_width_c; | |
264 thumb_max_height = thumb_max_height_c; | |
265 enable_thumb_caching = enable_thumb_caching_c; | |
266 enable_thumb_dirs = enable_thumb_dirs_c; | |
14
25335c62cd9b
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents:
9
diff
changeset
|
267 thumbnail_fast = thumbnail_fast_c; |
25335c62cd9b
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents:
9
diff
changeset
|
268 #if 0 |
9 | 269 use_xvpics_thumbnails = use_xvpics_thumbnails_c; |
14
25335c62cd9b
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents:
9
diff
changeset
|
270 #endif |
9 | 271 thumbnail_spec_standard = thumbnail_spec_standard_c; |
272 enable_metadata_dirs = enable_metadata_dirs_c; | |
273 show_dot_files = show_dot_files_c; | |
274 file_sort_case_sensitive = file_sort_case_sensitive_c; | |
275 file_filter_disable = file_filter_disable_c; | |
276 | |
170
9a56e3d13e67
basic sidecar files configuration via preferences dialog
nadvornik
parents:
134
diff
changeset
|
277 sidecar_ext_parse(gtk_entry_get_text(GTK_ENTRY(sidecar_ext_entry)), FALSE); |
9a56e3d13e67
basic sidecar files configuration via preferences dialog
nadvornik
parents:
134
diff
changeset
|
278 |
9 | 279 slideshow_random = slideshow_random_c; |
280 slideshow_repeat = slideshow_repeat_c; | |
281 slideshow_delay = slideshow_delay_c; | |
282 | |
283 mousewheel_scrolls = mousewheel_scrolls_c; | |
284 | |
285 enable_in_place_rename = enable_in_place_rename_c; | |
286 | |
287 collection_rectangular_selection = collection_rectangular_selection_c; | |
288 | |
289 tile_cache_max = tile_cache_max_c; | |
290 | |
291 thumbnail_quality = thumbnail_quality_c; | |
292 zoom_quality = zoom_quality_c; | |
293 | |
294 zoom_increment = zoom_increment_c; | |
295 | |
296 enable_read_ahead = enable_read_ahead_c; | |
297 | |
208
fa0e05f985c3
set user-defined color as image background - patch by Laurent MONIN
nadvornik
parents:
199
diff
changeset
|
298 if (user_specified_window_background != user_specified_window_background_c |
fa0e05f985c3
set user-defined color as image background - patch by Laurent MONIN
nadvornik
parents:
199
diff
changeset
|
299 || !gdk_color_equal(&window_background_color, &window_background_color_c)) |
9 | 300 { |
208
fa0e05f985c3
set user-defined color as image background - patch by Laurent MONIN
nadvornik
parents:
199
diff
changeset
|
301 user_specified_window_background = user_specified_window_background_c; |
fa0e05f985c3
set user-defined color as image background - patch by Laurent MONIN
nadvornik
parents:
199
diff
changeset
|
302 window_background_color = window_background_color_c; |
9 | 303 layout_colors_update(); |
304 view_window_colors_update(); | |
305 } | |
306 | |
307 fullscreen_screen = fullscreen_screen_c; | |
308 fullscreen_clean_flip = fullscreen_clean_flip_c; | |
309 fullscreen_disable_saver = fullscreen_disable_saver_c; | |
310 fullscreen_above = fullscreen_above_c; | |
218
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
311 show_fullscreen_info = show_fullscreen_info_c; |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
312 if (fullscreen_info_c) |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
313 { |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
314 g_free(fullscreen_info); |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
315 fullscreen_info = g_strdup(fullscreen_info_c); |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
316 } |
9 | 317 |
318 update_on_time_change = update_on_time_change_c; | |
319 exif_rotate_enable = exif_rotate_enable_c; | |
320 | |
321 dupe_custom_threshold = dupe_custom_threshold_c; | |
322 | |
323 tree_descend_subdirs = tree_descend_subdirs_c; | |
227
41fc4bfc8b25
Add a debug level spinner at the end of Preferences > Advanced.
zas_
parents:
226
diff
changeset
|
324 #ifdef DEBUG |
41fc4bfc8b25
Add a debug level spinner at the end of Preferences > Advanced.
zas_
parents:
226
diff
changeset
|
325 debug = debug_c; |
41fc4bfc8b25
Add a debug level spinner at the end of Preferences > Advanced.
zas_
parents:
226
diff
changeset
|
326 #endif |
9 | 327 |
113
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
328 #ifdef HAVE_LCMS |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
329 for (i = 0; i < COLOR_PROFILE_INPUTS; i++) |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
330 { |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
331 g_free(color_profile_input_name[i]); |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
332 color_profile_input_name[i] = NULL; |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
333 buf = gtk_entry_get_text(GTK_ENTRY(color_profile_input_name_entry[i])); |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
334 if (buf && strlen(buf) > 0) color_profile_input_name[i] = g_strdup(buf); |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
335 |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
336 g_free(color_profile_input_file[i]); |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
337 color_profile_input_file[i] = NULL; |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
338 buf = gtk_entry_get_text(GTK_ENTRY(color_profile_input_file_entry[i])); |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
339 if (buf && strlen(buf) > 0) color_profile_input_file[i] = g_strdup(buf); |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
340 } |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
341 g_free(color_profile_screen_file); |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
342 color_profile_screen_file = NULL; |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
343 buf = gtk_entry_get_text(GTK_ENTRY(color_profile_screen_file_entry)); |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
344 if (buf && strlen(buf) > 0) color_profile_screen_file = g_strdup(buf); |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
345 #endif |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
346 |
222
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
347 for (i=0; ExifUIList[i].key; i++) |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
348 { |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
349 ExifUIList[i].current = ExifUIList[i].temp; |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
350 } |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
351 |
9 | 352 l_conf = layout_config_get(layout_widget, &new_style); |
353 | |
354 if (new_style != layout_style || | |
355 (l_conf == NULL) != (layout_order == NULL) || | |
356 !layout_order || | |
357 strcmp(buf, layout_order) != 0) | |
358 { | |
359 if (refresh) filter_rebuild(); | |
360 refresh = FALSE; | |
361 | |
362 g_free(layout_order); | |
363 layout_order = l_conf; | |
364 l_conf = NULL; | |
365 | |
366 layout_style = new_style; | |
367 | |
368 layout_styles_update(); | |
369 } | |
370 | |
371 g_free(l_conf); | |
372 | |
26
acd9885ebd78
Mon Mar 28 20:23:34 2005 John Ellis <johne@verizon.net>
gqview
parents:
15
diff
changeset
|
373 image_options_sync(); |
acd9885ebd78
Mon Mar 28 20:23:34 2005 John Ellis <johne@verizon.net>
gqview
parents:
15
diff
changeset
|
374 |
9 | 375 if (refresh) |
376 { | |
377 filter_rebuild(); | |
378 layout_refresh(NULL); | |
379 } | |
380 } | |
381 | |
382 /* | |
383 *----------------------------------------------------------------------------- | |
384 * config window main button callbacks (private) | |
385 *----------------------------------------------------------------------------- | |
386 */ | |
387 | |
388 static void config_window_close_cb(GtkWidget *widget, gpointer data) | |
389 { | |
390 gtk_widget_destroy(configwindow); | |
391 configwindow = NULL; | |
392 filter_store = NULL; | |
393 } | |
394 | |
395 static gint config_window_delete(GtkWidget *w, GdkEventAny *event, gpointer data) | |
396 { | |
397 config_window_close_cb(NULL, NULL); | |
398 return TRUE; | |
399 } | |
400 | |
401 static void config_window_ok_cb(GtkWidget *widget, gpointer data) | |
402 { | |
403 config_window_apply(); | |
404 config_window_close_cb(NULL, NULL); | |
405 } | |
406 | |
407 static void config_window_apply_cb(GtkWidget *widget, gpointer data) | |
408 { | |
409 config_window_apply(); | |
410 } | |
411 | |
412 /* | |
413 *----------------------------------------------------------------------------- | |
414 * config window setup (private) | |
415 *----------------------------------------------------------------------------- | |
416 */ | |
417 | |
222
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
418 static void exif_item_cb(GtkWidget *combo, gpointer data) |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
419 { |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
420 gint *option = data; |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
421 *option = gtk_combo_box_get_active(GTK_COMBO_BOX(combo)); |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
422 } |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
423 |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
424 static void exif_item(GtkWidget *table, gint column, gint row, |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
425 const gchar *text, gint option, gint *option_c) |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
426 { |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
427 GtkWidget *combo; |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
428 |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
429 *option_c = option; |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
430 |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
431 pref_table_label(table, column, row, text, 0.0); |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
432 |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
433 combo = gtk_combo_box_new_text(); |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
434 |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
435 /* note: the order is important, it must match the values of |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
436 * EXIF_UI_OFF, _IFSET, _ON */ |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
437 gtk_combo_box_append_text(GTK_COMBO_BOX(combo), _("Never")); |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
438 gtk_combo_box_append_text(GTK_COMBO_BOX(combo), _("If set")); |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
439 gtk_combo_box_append_text(GTK_COMBO_BOX(combo), _("Always")); |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
440 |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
441 gtk_combo_box_set_active(GTK_COMBO_BOX(combo), option); |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
442 |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
443 g_signal_connect(G_OBJECT(combo), "changed", |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
444 G_CALLBACK(exif_item_cb), option_c); |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
445 |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
446 gtk_table_attach(GTK_TABLE(table), combo, |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
447 column + 1, column + 2, row, row + 1, |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
448 GTK_EXPAND | GTK_FILL, 0, 0, 0); |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
449 gtk_widget_show(combo); |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
450 } |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
451 |
9 | 452 static void quality_menu_cb(GtkWidget *combo, gpointer data) |
453 { | |
454 gint *option = data; | |
455 | |
456 switch (gtk_combo_box_get_active(GTK_COMBO_BOX(combo))) | |
457 { | |
458 case 0: | |
459 default: | |
460 *option = GDK_INTERP_NEAREST; | |
461 break; | |
462 case 1: | |
463 *option = GDK_INTERP_TILES; | |
464 break; | |
465 case 2: | |
466 *option = GDK_INTERP_BILINEAR; | |
467 break; | |
468 case 3: | |
469 *option = GDK_INTERP_HYPER; | |
470 break; | |
471 } | |
472 } | |
473 | |
474 static void add_quality_menu(GtkWidget *table, gint column, gint row, const gchar *text, | |
475 gint option, gint *option_c) | |
476 { | |
477 GtkWidget *combo; | |
478 gint current = 0; | |
479 | |
480 *option_c = option; | |
481 | |
482 pref_table_label(table, column, row, text, 0.0); | |
483 | |
484 combo = gtk_combo_box_new_text(); | |
485 | |
486 gtk_combo_box_append_text(GTK_COMBO_BOX(combo), _("Nearest (worst, but fastest)")); | |
487 if (option == GDK_INTERP_NEAREST) current = 0; | |
488 gtk_combo_box_append_text(GTK_COMBO_BOX(combo), _("Tiles")); | |
489 if (option == GDK_INTERP_TILES) current = 1; | |
490 gtk_combo_box_append_text(GTK_COMBO_BOX(combo), _("Bilinear")); | |
491 if (option == GDK_INTERP_BILINEAR) current = 2; | |
492 gtk_combo_box_append_text(GTK_COMBO_BOX(combo), _("Hyper (best, but slowest)")); | |
493 if (option == GDK_INTERP_HYPER) current = 3; | |
494 | |
495 gtk_combo_box_set_active(GTK_COMBO_BOX(combo), current); | |
496 | |
497 g_signal_connect(G_OBJECT(combo), "changed", | |
498 G_CALLBACK(quality_menu_cb), option_c); | |
499 | |
500 gtk_table_attach(GTK_TABLE(table), combo, column + 1, column + 2, row, row + 1, | |
113
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
501 GTK_EXPAND | GTK_FILL, 0, 0, 0); |
9 | 502 gtk_widget_show(combo); |
503 } | |
504 | |
505 #if 0 | |
506 static void add_dither_menu(gint option, gint *option_c, gchar *text, GtkWidget *box) | |
507 { | |
508 GtkWidget *hbox; | |
509 GtkWidget *omenu; | |
510 GtkWidget *menu; | |
511 | |
512 *option_c = option; | |
513 | |
514 hbox = pref_box_new(box, FALSE, GTK_ORIENTATION_HORIZONTAL, PREF_PAD_SPACE); | |
515 pref_label_new(hbox, text); | |
516 | |
517 omenu = gtk_option_menu_new(); | |
518 menu = gtk_menu_new(); | |
519 | |
520 add_menu_item(menu, _("None"), option_c, (gint)GDK_RGB_DITHER_NONE); | |
521 add_menu_item(menu, _("Normal"), option_c, (gint)GDK_RGB_DITHER_NORMAL); | |
522 add_menu_item(menu, _("Best"), option_c, (gint)GDK_RGB_DITHER_MAX); | |
523 | |
524 gtk_option_menu_set_menu(GTK_OPTION_MENU(omenu), menu); | |
525 gtk_option_menu_set_history(GTK_OPTION_MENU(omenu), *option_c); | |
526 | |
527 gtk_box_pack_start(GTK_BOX(hbox), omenu, FALSE, FALSE, 0); | |
528 gtk_widget_show(omenu); | |
529 } | |
530 #endif | |
531 | |
532 static void thumb_size_menu_cb(GtkWidget *combo, gpointer data) | |
533 { | |
534 gint n; | |
535 | |
536 n = gtk_combo_box_get_active(GTK_COMBO_BOX(combo)); | |
537 | |
538 if (n >= 0 && n < sizeof(thumb_size_list) / sizeof(ThumbSize)) | |
539 { | |
540 thumb_max_width_c = thumb_size_list[n].w; | |
541 thumb_max_height_c = thumb_size_list[n].h; | |
542 } | |
543 else if (n > 0) | |
544 { | |
545 thumb_max_width_c = thumb_max_width; | |
546 thumb_max_height_c = thumb_max_height; | |
547 } | |
548 } | |
549 | |
550 static void add_thumb_size_menu(GtkWidget *table, gint column, gint row, gchar *text) | |
551 { | |
552 GtkWidget *combo; | |
553 gint current; | |
554 gint i; | |
555 | |
556 thumb_max_width_c = thumb_max_width; | |
557 thumb_max_height_c = thumb_max_height; | |
558 | |
559 pref_table_label(table, column, row, text, 0.0); | |
560 | |
561 combo = gtk_combo_box_new_text(); | |
562 | |
563 current = -1; | |
226
3c89da4aef95
Fix and simplify thumbnails size combo box related code.
zas_
parents:
225
diff
changeset
|
564 for (i = 0; i < sizeof(thumb_size_list) / sizeof(ThumbSize); i++) |
9 | 565 { |
566 gint w, h; | |
226
3c89da4aef95
Fix and simplify thumbnails size combo box related code.
zas_
parents:
225
diff
changeset
|
567 gchar *buf; |
9 | 568 |
569 w = thumb_size_list[i].w; | |
570 h = thumb_size_list[i].h; | |
571 | |
226
3c89da4aef95
Fix and simplify thumbnails size combo box related code.
zas_
parents:
225
diff
changeset
|
572 buf = g_strdup_printf("%d x %d", w, h); |
3c89da4aef95
Fix and simplify thumbnails size combo box related code.
zas_
parents:
225
diff
changeset
|
573 gtk_combo_box_append_text(GTK_COMBO_BOX(combo), buf); |
3c89da4aef95
Fix and simplify thumbnails size combo box related code.
zas_
parents:
225
diff
changeset
|
574 g_free(buf); |
3c89da4aef95
Fix and simplify thumbnails size combo box related code.
zas_
parents:
225
diff
changeset
|
575 |
3c89da4aef95
Fix and simplify thumbnails size combo box related code.
zas_
parents:
225
diff
changeset
|
576 if (w == thumb_max_width && h == thumb_max_height) current = i; |
9 | 577 } |
578 | |
579 if (current == -1) | |
580 { | |
581 gchar *buf; | |
582 | |
583 buf = g_strdup_printf("%s %d x %d", _("Custom"), thumb_max_width, thumb_max_height); | |
584 gtk_combo_box_append_text(GTK_COMBO_BOX(combo), buf); | |
585 g_free(buf); | |
586 | |
226
3c89da4aef95
Fix and simplify thumbnails size combo box related code.
zas_
parents:
225
diff
changeset
|
587 current = i; |
9 | 588 } |
589 | |
590 gtk_combo_box_set_active(GTK_COMBO_BOX(combo), current); | |
591 g_signal_connect(G_OBJECT(combo), "changed", | |
592 G_CALLBACK(thumb_size_menu_cb), NULL); | |
593 | |
594 gtk_table_attach(GTK_TABLE(table), combo, column + 1, column + 2, row, row + 1, | |
113
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
595 GTK_EXPAND | GTK_FILL, 0, 0, 0); |
9 | 596 gtk_widget_show(combo); |
597 } | |
598 | |
599 static void filter_store_populate(void) | |
600 { | |
601 GList *work; | |
602 | |
603 if (!filter_store) return; | |
604 | |
605 gtk_list_store_clear(filter_store); | |
606 | |
607 work = filter_get_list(); | |
608 while (work) | |
609 { | |
610 FilterEntry *fe; | |
611 GtkTreeIter iter; | |
612 | |
613 fe = work->data; | |
614 work = work->next; | |
615 | |
616 gtk_list_store_append(filter_store, &iter); | |
617 gtk_list_store_set(filter_store, &iter, 0, fe, -1); | |
618 } | |
619 } | |
620 | |
621 static void filter_store_ext_edit_cb(GtkCellRendererText *cell, gchar *path_str, | |
622 gchar *new_text, gpointer data) | |
623 { | |
624 GtkWidget *model = data; | |
625 FilterEntry *fe = data; | |
626 GtkTreePath *tpath; | |
627 GtkTreeIter iter; | |
628 | |
629 if (!new_text || strlen(new_text) < 1) return; | |
630 | |
631 tpath = gtk_tree_path_new_from_string(path_str); | |
632 gtk_tree_model_get_iter(GTK_TREE_MODEL(model), &iter, tpath); | |
633 gtk_tree_model_get(GTK_TREE_MODEL(model), &iter, 0, &fe, -1); | |
634 | |
635 g_free(fe->extensions); | |
636 fe->extensions = g_strdup(new_text); | |
637 | |
638 gtk_tree_path_free(tpath); | |
639 filter_rebuild(); | |
640 } | |
641 | |
642 static void filter_store_desc_edit_cb(GtkCellRendererText *cell, gchar *path_str, | |
643 gchar *new_text, gpointer data) | |
644 { | |
645 GtkWidget *model = data; | |
646 FilterEntry *fe; | |
647 GtkTreePath *tpath; | |
648 GtkTreeIter iter; | |
649 | |
650 if (!new_text || strlen(new_text) < 1) return; | |
651 | |
652 tpath = gtk_tree_path_new_from_string(path_str); | |
653 gtk_tree_model_get_iter(GTK_TREE_MODEL(model), &iter, tpath); | |
654 gtk_tree_model_get(GTK_TREE_MODEL(model), &iter, 0, &fe, -1); | |
655 | |
656 g_free(fe->description); | |
657 fe->description = g_strdup(new_text); | |
658 | |
659 gtk_tree_path_free(tpath); | |
660 } | |
661 | |
662 static void filter_store_enable_cb(GtkCellRendererToggle *renderer, | |
663 gchar *path_str, gpointer data) | |
664 { | |
665 GtkWidget *model = data; | |
666 FilterEntry *fe; | |
667 GtkTreePath *tpath; | |
668 GtkTreeIter iter; | |
669 | |
670 tpath = gtk_tree_path_new_from_string(path_str); | |
671 gtk_tree_model_get_iter(GTK_TREE_MODEL(model), &iter, tpath); | |
672 gtk_tree_model_get(GTK_TREE_MODEL(model), &iter, 0, &fe, -1); | |
673 | |
674 fe->enabled = !fe->enabled; | |
675 | |
676 gtk_tree_path_free(tpath); | |
677 filter_rebuild(); | |
678 } | |
679 | |
680 static void filter_set_func(GtkTreeViewColumn *tree_column, GtkCellRenderer *cell, | |
681 GtkTreeModel *tree_model, GtkTreeIter *iter, gpointer data) | |
682 { | |
683 FilterEntry *fe; | |
684 | |
685 gtk_tree_model_get(tree_model, iter, 0, &fe, -1); | |
686 | |
687 switch(GPOINTER_TO_INT(data)) | |
688 { | |
689 case FE_ENABLE: | |
690 g_object_set(GTK_CELL_RENDERER(cell), | |
691 "active", fe->enabled, NULL); | |
692 break; | |
693 case FE_EXTENSION: | |
694 g_object_set(GTK_CELL_RENDERER(cell), | |
695 "text", fe->extensions, NULL); | |
696 break; | |
697 case FE_DESCRIPTION: | |
698 g_object_set(GTK_CELL_RENDERER(cell), | |
699 "text", fe->description, NULL); | |
700 break; | |
701 } | |
702 } | |
703 | |
704 static void filter_add_cb(GtkWidget *widget, gpointer data) | |
705 { | |
212
c7021159079d
differentiate among normal image, raw image and metadata
nadvornik
parents:
211
diff
changeset
|
706 filter_add_unique("description", ".new", FORMAT_CLASS_IMAGE, TRUE); |
9 | 707 filter_store_populate(); |
708 | |
709 /* FIXME: implement the scroll to/select row stuff for tree view */ | |
710 } | |
711 | |
712 static void filter_remove_cb(GtkWidget *widget, gpointer data) | |
713 { | |
714 GtkWidget *filter_view = data; | |
715 GtkTreeSelection *selection; | |
716 GtkTreeIter iter; | |
717 FilterEntry *fe; | |
718 | |
719 if (!filter_store) return; | |
720 selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(filter_view)); | |
721 if (!gtk_tree_selection_get_selected(selection, NULL, &iter)) return; | |
722 gtk_tree_model_get(GTK_TREE_MODEL(filter_store), &iter, 0, &fe, -1); | |
723 if (!fe) return; | |
724 | |
725 filter_remove_entry(fe); | |
726 filter_rebuild(); | |
727 filter_store_populate(); | |
728 } | |
729 | |
730 static void filter_default_ok_cb(GenericDialog *gd, gpointer data) | |
731 { | |
732 filter_reset(); | |
733 filter_add_defaults(); | |
734 filter_rebuild(); | |
735 filter_store_populate(); | |
736 } | |
737 | |
738 static void dummy_cancel_cb(GenericDialog *gd, gpointer data) | |
739 { | |
740 /* no op, only so cancel button appears */ | |
741 } | |
742 | |
743 static void filter_default_cb(GtkWidget *widget, gpointer data) | |
744 { | |
745 GenericDialog *gd; | |
746 | |
747 gd = generic_dialog_new(_("Reset filters"), | |
254
9faf34f047b1
Make the wmclass value unique among the code by defining
zas_
parents:
231
diff
changeset
|
748 GQ_WMCLASS, "reset_filter", widget, TRUE, |
9 | 749 dummy_cancel_cb, NULL); |
750 generic_dialog_add_message(gd, GTK_STOCK_DIALOG_QUESTION, _("Reset filters"), | |
751 _("This will reset the file filters to the defaults.\nContinue?")); | |
752 generic_dialog_add_button(gd, GTK_STOCK_OK, NULL, filter_default_ok_cb, TRUE); | |
753 gtk_widget_show(gd->dialog); | |
754 } | |
755 | |
756 static void filter_disable_cb(GtkWidget* widget, gpointer data) | |
757 { | |
758 GtkWidget *frame = data; | |
759 | |
760 gtk_widget_set_sensitive(frame, | |
761 !gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget))); | |
762 } | |
763 | |
764 static void editor_default_ok_cb(GenericDialog *gd, gpointer data) | |
765 { | |
766 gint i; | |
767 | |
768 editor_reset_defaults(); | |
769 if (!configwindow) return; | |
770 | |
771 for (i = 0; i < GQVIEW_EDITOR_SLOTS; i++) | |
772 { | |
134
9009856628f7
started implementation of external commands; external Delete should work
nadvornik
parents:
113
diff
changeset
|
773 if (i < GQVIEW_EDITOR_GENERIC_SLOTS) |
9009856628f7
started implementation of external commands; external Delete should work
nadvornik
parents:
113
diff
changeset
|
774 gtk_entry_set_text(GTK_ENTRY(editor_name_entry[i]), |
9 | 775 (editor_name[i]) ? editor_name[i] : ""); |
776 gtk_entry_set_text(GTK_ENTRY(editor_command_entry[i]), | |
777 (editor_command[i]) ? editor_command[i] : ""); | |
778 } | |
779 } | |
780 | |
781 static void editor_default_cb(GtkWidget *widget, gpointer data) | |
782 { | |
783 GenericDialog *gd; | |
784 | |
785 gd = generic_dialog_new(_("Reset editors"), | |
254
9faf34f047b1
Make the wmclass value unique among the code by defining
zas_
parents:
231
diff
changeset
|
786 GQ_WMCLASS, "reset_filter", widget, TRUE, |
9 | 787 dummy_cancel_cb, NULL); |
788 generic_dialog_add_message(gd, GTK_STOCK_DIALOG_QUESTION, _("Reset editors"), | |
789 _("This will reset the edit commands to the defaults.\nContinue?")); | |
790 generic_dialog_add_button(gd, GTK_STOCK_OK, NULL, editor_default_ok_cb, TRUE); | |
791 gtk_widget_show(gd->dialog); | |
792 } | |
793 | |
794 static void editor_help_cb(GtkWidget *widget, gpointer data) | |
795 { | |
796 help_window_show("editors"); | |
797 } | |
798 | |
799 static void safe_delete_view_cb(GtkWidget* widget, gpointer data) | |
800 { | |
801 layout_set_path(NULL, gtk_entry_get_text(GTK_ENTRY(safe_delete_path_entry))); | |
802 } | |
803 | |
804 static void safe_delete_clear_ok_cb(GenericDialog *gd, gpointer data) | |
805 { | |
806 file_util_trash_clear(); | |
807 } | |
808 | |
809 static void safe_delete_clear_cb(GtkWidget* widget, gpointer data) | |
810 { | |
811 GenericDialog *gd; | |
812 GtkWidget *entry; | |
813 gd = generic_dialog_new(_("Clear trash"), | |
254
9faf34f047b1
Make the wmclass value unique among the code by defining
zas_
parents:
231
diff
changeset
|
814 GQ_WMCLASS, "clear_trash", widget, TRUE, |
9 | 815 dummy_cancel_cb, NULL); |
816 generic_dialog_add_message(gd, GTK_STOCK_DIALOG_QUESTION, _("Clear trash"), | |
817 _("This will remove the trash contents.")); | |
818 generic_dialog_add_button(gd, GTK_STOCK_OK, NULL, safe_delete_clear_ok_cb, TRUE); | |
819 entry = gtk_entry_new(); | |
820 GTK_WIDGET_UNSET_FLAGS(entry, GTK_CAN_FOCUS); | |
821 gtk_editable_set_editable(GTK_EDITABLE(entry), FALSE); | |
822 if (safe_delete_path) gtk_entry_set_text(GTK_ENTRY(entry), safe_delete_path); | |
823 gtk_box_pack_start(GTK_BOX(gd->vbox), entry, FALSE, FALSE, 0); | |
824 gtk_widget_show(entry); | |
825 gtk_widget_show(gd->dialog); | |
826 } | |
827 | |
218
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
828 static void fullscreen_info_view_changed_cb(GtkWidget* widget, gpointer data) |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
829 { |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
830 GtkWidget *pTextView; |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
831 GtkTextBuffer* pTextBuffer; |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
832 GtkTextIter iStart; |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
833 GtkTextIter iEnd; |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
834 |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
835 pTextView = GTK_WIDGET(data); |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
836 |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
837 pTextBuffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(pTextView)); |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
838 gtk_text_buffer_get_start_iter(pTextBuffer, &iStart); |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
839 gtk_text_buffer_get_end_iter(pTextBuffer, &iEnd); |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
840 |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
841 if (fullscreen_info_c) g_free(fullscreen_info_c); |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
842 fullscreen_info_c = gtk_text_buffer_get_text(pTextBuffer, &iStart, &iEnd, TRUE); |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
843 } |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
844 |
230
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
845 /* general options tab */ |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
846 static void config_tab_general(GtkWidget *notebook) |
9 | 847 { |
230
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
848 GtkWidget *label; |
9 | 849 GtkWidget *hbox; |
850 GtkWidget *vbox; | |
851 GtkWidget *group; | |
852 GtkWidget *subgroup; | |
853 GtkWidget *button; | |
854 GtkWidget *tabcomp; | |
855 GtkWidget *ct_button; | |
856 GtkWidget *table; | |
857 GtkWidget *spin; | |
858 | |
859 vbox = gtk_vbox_new(FALSE, 0); | |
860 gtk_container_set_border_width(GTK_CONTAINER(vbox), PREF_PAD_BORDER); | |
861 gtk_widget_show(vbox); | |
862 label = gtk_label_new(_("General")); | |
863 gtk_notebook_append_page (GTK_NOTEBOOK(notebook), vbox, label); | |
864 | |
865 group = pref_group_new(vbox, FALSE, _("Startup"), GTK_ORIENTATION_VERTICAL); | |
866 | |
867 button = pref_checkbox_new_int(group, _("Change to folder:"), | |
868 startup_path_enable, &startup_path_enable_c); | |
869 | |
870 hbox = pref_box_new(group, FALSE, GTK_ORIENTATION_HORIZONTAL, PREF_PAD_SPACE); | |
871 pref_checkbox_link_sensitivity(button, hbox); | |
872 | |
873 tabcomp = tab_completion_new(&startup_path_entry, startup_path, NULL, NULL); | |
874 tab_completion_add_select_button(startup_path_entry, NULL, TRUE); | |
875 gtk_box_pack_start(GTK_BOX(hbox), tabcomp, TRUE, TRUE, 0); | |
876 gtk_widget_show(tabcomp); | |
877 | |
878 button = pref_button_new(hbox, NULL, _("Use current"), FALSE, | |
879 G_CALLBACK(startup_path_set_current), NULL); | |
880 | |
881 group = pref_group_new(vbox, FALSE, _("Thumbnails"), GTK_ORIENTATION_VERTICAL); | |
882 | |
883 table = pref_table_new(group, 2, 2, FALSE, FALSE); | |
884 add_thumb_size_menu(table, 0, 0, _("Size:")); | |
885 add_quality_menu(table, 0, 1, _("Quality:"), thumbnail_quality, &thumbnail_quality_c); | |
886 | |
887 ct_button = pref_checkbox_new_int(group, _("Cache thumbnails"), | |
888 enable_thumb_caching, &enable_thumb_caching_c); | |
889 | |
890 subgroup = pref_box_new(group, FALSE, GTK_ORIENTATION_VERTICAL, PREF_PAD_GAP); | |
891 pref_checkbox_link_sensitivity(ct_button, subgroup); | |
892 | |
893 button = pref_checkbox_new_int(subgroup, _("Use shared thumbnail cache"), | |
894 thumbnail_spec_standard, &thumbnail_spec_standard_c); | |
895 | |
896 subgroup = pref_box_new(subgroup, FALSE, GTK_ORIENTATION_VERTICAL, PREF_PAD_GAP); | |
897 pref_checkbox_link_sensitivity_swap(button, subgroup); | |
898 | |
14
25335c62cd9b
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents:
9
diff
changeset
|
899 pref_checkbox_new_int(subgroup, _("Cache thumbnails into .thumbnails"), |
25335c62cd9b
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents:
9
diff
changeset
|
900 enable_thumb_dirs, &enable_thumb_dirs_c); |
9 | 901 |
14
25335c62cd9b
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents:
9
diff
changeset
|
902 #if 0 |
25335c62cd9b
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents:
9
diff
changeset
|
903 pref_checkbox_new_int(subgroup, _("Use xvpics thumbnails when found (read only)"), |
25335c62cd9b
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents:
9
diff
changeset
|
904 use_xvpics_thumbnails, &use_xvpics_thumbnails_c); |
25335c62cd9b
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents:
9
diff
changeset
|
905 #endif |
25335c62cd9b
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents:
9
diff
changeset
|
906 |
25335c62cd9b
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents:
9
diff
changeset
|
907 pref_checkbox_new_int(group, _("Faster jpeg thumbnailing (may reduce quality)"), |
25335c62cd9b
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents:
9
diff
changeset
|
908 thumbnail_fast, &thumbnail_fast_c); |
9 | 909 |
910 group = pref_group_new(vbox, FALSE, _("Slide show"), GTK_ORIENTATION_VERTICAL); | |
911 | |
912 slideshow_delay_c = slideshow_delay; | |
913 spin = pref_spin_new(group, _("Delay between image change:"), _("seconds"), | |
914 SLIDESHOW_MIN_SECONDS, SLIDESHOW_MAX_SECONDS, 1.0, 1, | |
915 slideshow_delay ? (double)slideshow_delay / SLIDESHOW_SUBSECOND_PRECISION : 10.0, | |
916 G_CALLBACK(slideshow_delay_cb), NULL); | |
917 gtk_spin_button_set_update_policy(GTK_SPIN_BUTTON(spin), GTK_UPDATE_ALWAYS); | |
918 | |
919 pref_checkbox_new_int(group, _("Random"), slideshow_random, &slideshow_random_c); | |
920 pref_checkbox_new_int(group, _("Repeat"), slideshow_repeat, &slideshow_repeat_c); | |
230
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
921 } |
9 | 922 |
230
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
923 /* image tab */ |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
924 static void config_tab_image(GtkWidget *notebook) |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
925 { |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
926 GtkWidget *label; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
927 GtkWidget *hbox; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
928 GtkWidget *vbox; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
929 GtkWidget *group; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
930 GtkWidget *button; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
931 GtkWidget *ct_button; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
932 GtkWidget *table; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
933 GtkWidget *spin; |
9 | 934 |
935 vbox = gtk_vbox_new(FALSE, 0); | |
936 gtk_container_set_border_width(GTK_CONTAINER(vbox), PREF_PAD_BORDER); | |
937 gtk_widget_show(vbox); | |
938 label = gtk_label_new(_("Image")); | |
230
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
939 gtk_notebook_append_page (GTK_NOTEBOOK(notebook), vbox, label); |
9 | 940 |
941 group = pref_group_new(vbox, FALSE, _("Zoom"), GTK_ORIENTATION_VERTICAL); | |
942 | |
943 #if 0 | |
944 add_dither_menu(dither_quality, &dither_quality_c, _("Dithering method:"), group); | |
945 #endif | |
946 table = pref_table_new(group, 2, 1, FALSE, FALSE); | |
947 add_quality_menu(table, 0, 0, _("Quality:"), zoom_quality, &zoom_quality_c); | |
948 | |
949 pref_checkbox_new_int(group, _("Two pass zooming"), | |
950 two_pass_zoom, &two_pass_zoom_c); | |
951 | |
67
f63ecca6c087
Fri Oct 13 05:22:43 2006 John Ellis <johne@verizon.net>
gqview
parents:
26
diff
changeset
|
952 pref_checkbox_new_int(group, _("Allow enlargement of image for zoom to fit"), |
9 | 953 zoom_to_fit_expands, &zoom_to_fit_expands_c); |
954 | |
209
ad78ad18523a
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
nadvornik
parents:
208
diff
changeset
|
955 hbox = pref_box_new(group, FALSE, GTK_ORIENTATION_HORIZONTAL, PREF_PAD_SPACE); |
ad78ad18523a
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
nadvornik
parents:
208
diff
changeset
|
956 ct_button = pref_checkbox_new_int(hbox, _("Limit image size when autofitting (%):"), |
ad78ad18523a
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
nadvornik
parents:
208
diff
changeset
|
957 limit_autofit_size, &limit_autofit_size_c); |
ad78ad18523a
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
nadvornik
parents:
208
diff
changeset
|
958 spin = pref_spin_new_int(hbox, NULL, NULL, |
ad78ad18523a
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
nadvornik
parents:
208
diff
changeset
|
959 10, 150, 1, |
ad78ad18523a
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
nadvornik
parents:
208
diff
changeset
|
960 max_autofit_size, &max_autofit_size_c); |
ad78ad18523a
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
nadvornik
parents:
208
diff
changeset
|
961 pref_checkbox_link_sensitivity(ct_button, spin); |
ad78ad18523a
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
nadvornik
parents:
208
diff
changeset
|
962 |
9 | 963 zoom_increment_c = zoom_increment; |
964 spin = pref_spin_new(group, _("Zoom increment:"), NULL, | |
211
d43153435be4
Make the zoom increment spinner more precise, step is now 0.1 instead of 1.
zas_
parents:
209
diff
changeset
|
965 0.1, 4.0, 0.1, 1, (double)zoom_increment / 10.0, |
9 | 966 G_CALLBACK(zoom_increment_cb), NULL); |
967 gtk_spin_button_set_update_policy(GTK_SPIN_BUTTON(spin), GTK_UPDATE_ALWAYS); | |
968 | |
969 group = pref_group_new(vbox, FALSE, _("When new image is selected:"), GTK_ORIENTATION_VERTICAL); | |
970 | |
971 zoom_mode_c = zoom_mode; | |
972 button = pref_radiobutton_new(group, NULL, _("Zoom to original size"), | |
973 (zoom_mode == ZOOM_RESET_ORIGINAL), | |
974 G_CALLBACK(zoom_mode_original_cb), NULL); | |
975 button = pref_radiobutton_new(group, button, _("Fit image to window"), | |
976 (zoom_mode == ZOOM_RESET_FIT_WINDOW), | |
977 G_CALLBACK(zoom_mode_fit_cb), NULL); | |
978 button = pref_radiobutton_new(group, button, _("Leave Zoom at previous setting"), | |
979 (zoom_mode == ZOOM_RESET_NONE), | |
980 G_CALLBACK(zoom_mode_none_cb), NULL); | |
981 | |
982 group = pref_group_new(vbox, FALSE, _("Appearance"), GTK_ORIENTATION_VERTICAL); | |
983 | |
208
fa0e05f985c3
set user-defined color as image background - patch by Laurent MONIN
nadvornik
parents:
199
diff
changeset
|
984 pref_checkbox_new_int(group, _("User specified background color"), |
fa0e05f985c3
set user-defined color as image background - patch by Laurent MONIN
nadvornik
parents:
199
diff
changeset
|
985 user_specified_window_background, &user_specified_window_background_c); |
fa0e05f985c3
set user-defined color as image background - patch by Laurent MONIN
nadvornik
parents:
199
diff
changeset
|
986 |
fa0e05f985c3
set user-defined color as image background - patch by Laurent MONIN
nadvornik
parents:
199
diff
changeset
|
987 pref_colorbutton_new(group, _("Background color"), &window_background_color, |
fa0e05f985c3
set user-defined color as image background - patch by Laurent MONIN
nadvornik
parents:
199
diff
changeset
|
988 G_CALLBACK(pref_background_color_set_cb), &window_background_color_c); |
9 | 989 |
990 group = pref_group_new(vbox, FALSE, _("Convenience"), GTK_ORIENTATION_VERTICAL); | |
991 | |
992 pref_checkbox_new_int(group, _("Refresh on file change"), | |
993 update_on_time_change, &update_on_time_change_c); | |
994 pref_checkbox_new_int(group, _("Preload next image"), | |
995 enable_read_ahead, &enable_read_ahead_c); | |
996 pref_checkbox_new_int(group, _("Auto rotate image using Exif information"), | |
997 exif_rotate_enable, &exif_rotate_enable_c); | |
230
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
998 } |
9 | 999 |
230
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1000 /* windows tab */ |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1001 static void config_tab_windows(GtkWidget *notebook) |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1002 { |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1003 GtkWidget *label; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1004 GtkWidget *hbox; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1005 GtkWidget *vbox; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1006 GtkWidget *group; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1007 GtkWidget *ct_button; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1008 GtkWidget *spin; |
9 | 1009 |
1010 vbox = gtk_vbox_new(FALSE, 0); | |
1011 gtk_container_set_border_width(GTK_CONTAINER(vbox), PREF_PAD_BORDER); | |
1012 gtk_widget_show(vbox); | |
1013 label = gtk_label_new(_("Windows")); | |
1014 gtk_notebook_append_page(GTK_NOTEBOOK(notebook), vbox, label); | |
1015 | |
1016 group = pref_group_new(vbox, FALSE, _("State"), GTK_ORIENTATION_VERTICAL); | |
1017 | |
1018 pref_checkbox_new_int(group, _("Remember window positions"), | |
1019 save_window_positions, &save_window_positions_c); | |
1020 pref_checkbox_new_int(group, _("Remember tool state (float/hidden)"), | |
1021 restore_tool, &restore_tool_c); | |
1022 | |
1023 group = pref_group_new(vbox, FALSE, _("Size"), GTK_ORIENTATION_VERTICAL); | |
1024 | |
1025 pref_checkbox_new_int(group, _("Fit window to image when tools are hidden/floating"), | |
1026 fit_window, &fit_window_c); | |
1027 | |
1028 hbox = pref_box_new(group, FALSE, GTK_ORIENTATION_HORIZONTAL, PREF_PAD_SPACE); | |
1029 ct_button = pref_checkbox_new_int(hbox, _("Limit size when auto-sizing window (%):"), | |
1030 limit_window_size, &limit_window_size_c); | |
1031 spin = pref_spin_new_int(hbox, NULL, NULL, | |
1032 10, 150, 1, | |
1033 max_window_size, &max_window_size_c); | |
1034 pref_checkbox_link_sensitivity(ct_button, spin); | |
1035 | |
1036 group = pref_group_new(vbox, FALSE, _("Layout"), GTK_ORIENTATION_VERTICAL); | |
1037 | |
1038 layout_widget = layout_config_new(); | |
1039 layout_config_set(layout_widget, layout_style, layout_order); | |
1040 gtk_box_pack_start(GTK_BOX(group), layout_widget, FALSE, FALSE, 0); | |
1041 gtk_widget_show(layout_widget); | |
230
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1042 } |
9 | 1043 |
230
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1044 /* filtering tab */ |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1045 static void config_tab_filtering(GtkWidget *notebook) |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1046 { |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1047 GtkWidget *hbox; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1048 GtkWidget *frame; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1049 GtkWidget *label; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1050 GtkWidget *vbox; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1051 GtkWidget *group; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1052 GtkWidget *button; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1053 GtkWidget *ct_button; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1054 GtkWidget *scrolled; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1055 GtkWidget *filter_view; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1056 GtkCellRenderer *renderer; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1057 GtkTreeSelection *selection; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1058 GtkTreeViewColumn *column; |
9 | 1059 |
1060 vbox = gtk_vbox_new(FALSE, 0); | |
1061 gtk_container_set_border_width(GTK_CONTAINER (vbox), PREF_PAD_BORDER); | |
1062 gtk_widget_show(vbox); | |
1063 label = gtk_label_new(_("Filtering")); | |
1064 gtk_notebook_append_page(GTK_NOTEBOOK(notebook), vbox, label); | |
1065 | |
1066 group = pref_box_new(vbox, FALSE, GTK_ORIENTATION_VERTICAL, PREF_PAD_GAP); | |
1067 | |
1068 pref_checkbox_new_int(group, _("Show entries that begin with a dot"), | |
1069 show_dot_files, &show_dot_files_c); | |
1070 pref_checkbox_new_int(group, _("Case sensitive sort"), | |
1071 file_sort_case_sensitive, &file_sort_case_sensitive_c); | |
1072 | |
1073 ct_button = pref_checkbox_new_int(group, _("Disable File Filtering"), | |
1074 file_filter_disable, &file_filter_disable_c); | |
1075 | |
170
9a56e3d13e67
basic sidecar files configuration via preferences dialog
nadvornik
parents:
134
diff
changeset
|
1076 |
9a56e3d13e67
basic sidecar files configuration via preferences dialog
nadvornik
parents:
134
diff
changeset
|
1077 group = pref_group_new(vbox, FALSE, _("Grouping sidecar extensions"), GTK_ORIENTATION_VERTICAL); |
9a56e3d13e67
basic sidecar files configuration via preferences dialog
nadvornik
parents:
134
diff
changeset
|
1078 |
9a56e3d13e67
basic sidecar files configuration via preferences dialog
nadvornik
parents:
134
diff
changeset
|
1079 sidecar_ext_entry = gtk_entry_new(); |
9a56e3d13e67
basic sidecar files configuration via preferences dialog
nadvornik
parents:
134
diff
changeset
|
1080 gtk_entry_set_text(GTK_ENTRY(sidecar_ext_entry), sidecar_ext_to_string()); |
9a56e3d13e67
basic sidecar files configuration via preferences dialog
nadvornik
parents:
134
diff
changeset
|
1081 gtk_box_pack_start(GTK_BOX(group), sidecar_ext_entry, FALSE, FALSE, 0); |
9a56e3d13e67
basic sidecar files configuration via preferences dialog
nadvornik
parents:
134
diff
changeset
|
1082 gtk_widget_show(sidecar_ext_entry); |
9a56e3d13e67
basic sidecar files configuration via preferences dialog
nadvornik
parents:
134
diff
changeset
|
1083 |
9 | 1084 group = pref_group_new(vbox, TRUE, _("File types"), GTK_ORIENTATION_VERTICAL); |
1085 | |
1086 frame = pref_group_parent(group); | |
1087 g_signal_connect(G_OBJECT(ct_button), "toggled", | |
1088 G_CALLBACK(filter_disable_cb), frame); | |
1089 gtk_widget_set_sensitive(frame, !file_filter_disable); | |
1090 | |
1091 scrolled = gtk_scrolled_window_new(NULL, NULL); | |
1092 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scrolled), GTK_SHADOW_IN); | |
1093 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW (scrolled), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); | |
1094 gtk_box_pack_start(GTK_BOX(group), scrolled, TRUE, TRUE, 0); | |
1095 gtk_widget_show(scrolled); | |
1096 | |
1097 filter_store = gtk_list_store_new(1, G_TYPE_POINTER); | |
1098 filter_view = gtk_tree_view_new_with_model(GTK_TREE_MODEL(filter_store)); | |
1099 g_object_unref(filter_store); | |
1100 selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(filter_view)); | |
1101 gtk_tree_selection_set_mode(GTK_TREE_SELECTION(selection), GTK_SELECTION_SINGLE); | |
1102 | |
1103 gtk_tree_view_set_enable_search(GTK_TREE_VIEW(filter_view), FALSE); | |
1104 | |
1105 column = gtk_tree_view_column_new(); | |
1106 gtk_tree_view_column_set_title(column, _("Filter")); | |
1107 gtk_tree_view_column_set_resizable(column, TRUE); | |
1108 | |
1109 renderer = gtk_cell_renderer_toggle_new(); | |
1110 g_signal_connect(G_OBJECT(renderer), "toggled", | |
1111 G_CALLBACK(filter_store_enable_cb), filter_store); | |
1112 gtk_tree_view_column_pack_start(column, renderer, FALSE); | |
1113 gtk_tree_view_column_set_cell_data_func(column, renderer, filter_set_func, | |
1114 GINT_TO_POINTER(FE_ENABLE), NULL); | |
1115 | |
1116 renderer = gtk_cell_renderer_text_new(); | |
1117 g_signal_connect(G_OBJECT(renderer), "edited", | |
1118 G_CALLBACK(filter_store_ext_edit_cb), filter_store); | |
1119 gtk_tree_view_column_pack_start(column, renderer, TRUE); | |
1120 g_object_set(G_OBJECT(renderer), "editable", (gboolean)TRUE, NULL); | |
1121 gtk_tree_view_column_set_cell_data_func(column, renderer, filter_set_func, | |
1122 GINT_TO_POINTER(FE_EXTENSION), NULL); | |
1123 gtk_tree_view_append_column(GTK_TREE_VIEW(filter_view), column); | |
1124 | |
1125 column = gtk_tree_view_column_new(); | |
1126 gtk_tree_view_column_set_title(column, _("Description")); | |
1127 gtk_tree_view_column_set_resizable(column, TRUE); | |
1128 renderer = gtk_cell_renderer_text_new(); | |
1129 g_signal_connect(G_OBJECT(renderer), "edited", | |
1130 G_CALLBACK(filter_store_desc_edit_cb), filter_store); | |
1131 g_object_set(G_OBJECT(renderer), "editable", (gboolean)TRUE, NULL); | |
1132 gtk_tree_view_column_pack_start(column, renderer, FALSE); | |
1133 gtk_tree_view_column_set_cell_data_func(column, renderer, filter_set_func, | |
1134 GINT_TO_POINTER(FE_DESCRIPTION), NULL); | |
1135 gtk_tree_view_append_column(GTK_TREE_VIEW(filter_view), column); | |
1136 | |
1137 filter_store_populate(); | |
1138 gtk_container_add(GTK_CONTAINER(scrolled), filter_view); | |
1139 gtk_widget_show(filter_view); | |
1140 | |
1141 hbox = pref_box_new(group, FALSE, GTK_ORIENTATION_HORIZONTAL, PREF_PAD_BUTTON_GAP); | |
1142 | |
1143 button = pref_button_new(NULL, NULL, _("Defaults"), FALSE, | |
1144 G_CALLBACK(filter_default_cb), NULL); | |
1145 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0); | |
1146 gtk_widget_show(button); | |
1147 | |
1148 button = pref_button_new(NULL, GTK_STOCK_REMOVE, NULL, FALSE, | |
1149 G_CALLBACK(filter_remove_cb), filter_view); | |
1150 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0); | |
1151 gtk_widget_show(button); | |
1152 | |
1153 button = pref_button_new(NULL, GTK_STOCK_ADD, NULL, FALSE, | |
1154 G_CALLBACK(filter_add_cb), NULL); | |
1155 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0); | |
1156 gtk_widget_show(button); | |
230
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1157 } |
9 | 1158 |
230
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1159 /* editors tab */ |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1160 static void config_tab_editors(GtkWidget *notebook) |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1161 { |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1162 GtkWidget *hbox; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1163 GtkWidget *label; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1164 GtkWidget *vbox; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1165 GtkWidget *button; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1166 GtkWidget *table; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1167 gint i; |
9 | 1168 |
1169 vbox = gtk_vbox_new(FALSE, PREF_PAD_GAP); | |
1170 gtk_container_set_border_width(GTK_CONTAINER(vbox), PREF_PAD_BORDER); | |
1171 gtk_widget_show(vbox); | |
1172 label = gtk_label_new(_("Editors")); | |
1173 gtk_notebook_append_page(GTK_NOTEBOOK(notebook), vbox, label); | |
1174 | |
1175 table = pref_table_new(vbox, 3, 9, FALSE, FALSE); | |
1176 gtk_table_set_col_spacings(GTK_TABLE(table), PREF_PAD_GAP); | |
1177 | |
1178 label = pref_table_label(table, 0, 0, _("#"), 1.0); | |
1179 pref_label_bold(label, TRUE, FALSE); | |
1180 | |
1181 label = pref_table_label(table, 1, 0, _("Menu name"), 0.0); | |
1182 pref_label_bold(label, TRUE, FALSE); | |
1183 | |
67
f63ecca6c087
Fri Oct 13 05:22:43 2006 John Ellis <johne@verizon.net>
gqview
parents:
26
diff
changeset
|
1184 label = pref_table_label(table, 2, 0, _("Command Line"), 0.0); |
9 | 1185 pref_label_bold(label, TRUE, FALSE); |
1186 | |
1187 for (i = 0; i < GQVIEW_EDITOR_SLOTS; i++) | |
1188 { | |
224 | 1189 GtkWidget *entry; |
9 | 1190 |
134
9009856628f7
started implementation of external commands; external Delete should work
nadvornik
parents:
113
diff
changeset
|
1191 if (i < GQVIEW_EDITOR_GENERIC_SLOTS) |
9009856628f7
started implementation of external commands; external Delete should work
nadvornik
parents:
113
diff
changeset
|
1192 { |
224 | 1193 gchar *buf; |
1194 | |
134
9009856628f7
started implementation of external commands; external Delete should work
nadvornik
parents:
113
diff
changeset
|
1195 buf = g_strdup_printf("%d", i+1); |
9009856628f7
started implementation of external commands; external Delete should work
nadvornik
parents:
113
diff
changeset
|
1196 pref_table_label(table, 0, i+1, buf, 1.0); |
9009856628f7
started implementation of external commands; external Delete should work
nadvornik
parents:
113
diff
changeset
|
1197 g_free(buf); |
224 | 1198 entry = gtk_entry_new(); |
1199 gtk_entry_set_max_length(GTK_ENTRY(entry), EDITOR_NAME_MAX_LENGTH); | |
1200 gtk_widget_set_size_request(entry, 80, -1); | |
1201 if (editor_name[i]) | |
1202 gtk_entry_set_text(GTK_ENTRY(entry), editor_name[i]); | |
134
9009856628f7
started implementation of external commands; external Delete should work
nadvornik
parents:
113
diff
changeset
|
1203 } |
9009856628f7
started implementation of external commands; external Delete should work
nadvornik
parents:
113
diff
changeset
|
1204 else |
9009856628f7
started implementation of external commands; external Delete should work
nadvornik
parents:
113
diff
changeset
|
1205 { |
224 | 1206 entry = gtk_label_new(editor_name[i]); |
225
649f7cb544e0
Make the preferences window resizeable, and try to improve
zas_
parents:
224
diff
changeset
|
1207 gtk_misc_set_alignment(GTK_MISC(entry), 0.0, 0.5); |
134
9009856628f7
started implementation of external commands; external Delete should work
nadvornik
parents:
113
diff
changeset
|
1208 } |
9009856628f7
started implementation of external commands; external Delete should work
nadvornik
parents:
113
diff
changeset
|
1209 |
224 | 1210 gtk_table_attach(GTK_TABLE (table), entry, 1, 2, i+1, i+2, |
225
649f7cb544e0
Make the preferences window resizeable, and try to improve
zas_
parents:
224
diff
changeset
|
1211 GTK_FILL | GTK_SHRINK, 0, 0, 0); |
224 | 1212 gtk_widget_show(entry); |
1213 editor_name_entry[i] = entry; | |
9 | 1214 |
224 | 1215 entry = gtk_entry_new(); |
1216 gtk_entry_set_max_length(GTK_ENTRY(entry), EDITOR_COMMAND_MAX_LENGTH); | |
1217 gtk_widget_set_size_request(entry, 160, -1); | |
1218 tab_completion_add_to_entry(entry, NULL, NULL); | |
1219 if (editor_command[i]) | |
1220 gtk_entry_set_text(GTK_ENTRY(entry), editor_command[i]); | |
1221 gtk_table_attach(GTK_TABLE (table), entry, 2, 3, i+1, i+2, | |
113
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
1222 GTK_FILL | GTK_EXPAND, 0, 0, 0); |
224 | 1223 gtk_widget_show(entry); |
1224 editor_command_entry[i] = entry; | |
9 | 1225 } |
1226 | |
1227 hbox = pref_box_new(vbox, FALSE, GTK_ORIENTATION_HORIZONTAL, PREF_PAD_BUTTON_GAP); | |
1228 | |
1229 button = pref_button_new(NULL, NULL, _("Defaults"), FALSE, | |
1230 G_CALLBACK(editor_default_cb), NULL); | |
1231 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0); | |
1232 gtk_widget_show(button); | |
1233 | |
1234 button = pref_button_new(NULL, GTK_STOCK_HELP, NULL, FALSE, | |
1235 G_CALLBACK(editor_help_cb), NULL); | |
1236 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0); | |
1237 gtk_widget_show(button); | |
230
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1238 } |
9 | 1239 |
256
088b335f2d67
Rename exif preferences tab to "Properties", and name the
zas_
parents:
254
diff
changeset
|
1240 /* properties tab */ |
088b335f2d67
Rename exif preferences tab to "Properties", and name the
zas_
parents:
254
diff
changeset
|
1241 static void config_tab_properties(GtkWidget *notebook) |
230
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1242 { |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1243 GtkWidget *label; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1244 GtkWidget *vbox; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1245 GtkWidget *group; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1246 GtkWidget *table; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1247 GtkWidget *scrolled; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1248 GtkWidget *viewport; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1249 gint i; |
222
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
1250 |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
1251 scrolled = gtk_scrolled_window_new(NULL, NULL); |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
1252 gtk_container_set_border_width(GTK_CONTAINER(scrolled), PREF_PAD_BORDER); |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
1253 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled), |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
1254 GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
1255 |
256
088b335f2d67
Rename exif preferences tab to "Properties", and name the
zas_
parents:
254
diff
changeset
|
1256 label = gtk_label_new(_("Properties")); |
222
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
1257 gtk_notebook_append_page(GTK_NOTEBOOK(notebook), scrolled, label); |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
1258 gtk_widget_show(scrolled); |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
1259 |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
1260 viewport = gtk_viewport_new(NULL, NULL); |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
1261 gtk_viewport_set_shadow_type(GTK_VIEWPORT(viewport), GTK_SHADOW_NONE); |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
1262 gtk_container_add(GTK_CONTAINER(scrolled), viewport); |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
1263 gtk_widget_show(viewport); |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
1264 |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
1265 vbox = gtk_vbox_new(FALSE, 0); |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
1266 gtk_container_add(GTK_CONTAINER(viewport), vbox); |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
1267 gtk_widget_show(vbox); |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
1268 |
256
088b335f2d67
Rename exif preferences tab to "Properties", and name the
zas_
parents:
254
diff
changeset
|
1269 group = pref_group_new(vbox, FALSE, _("Exif"), |
222
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
1270 GTK_ORIENTATION_VERTICAL); |
257
c5422b69b40e
Re-add "What to show in properties dialog:" label before the table.
zas_
parents:
256
diff
changeset
|
1271 |
c5422b69b40e
Re-add "What to show in properties dialog:" label before the table.
zas_
parents:
256
diff
changeset
|
1272 |
c5422b69b40e
Re-add "What to show in properties dialog:" label before the table.
zas_
parents:
256
diff
changeset
|
1273 pref_spacer(group, PREF_PAD_INDENT - PREF_PAD_SPACE); |
c5422b69b40e
Re-add "What to show in properties dialog:" label before the table.
zas_
parents:
256
diff
changeset
|
1274 label = pref_label_new(group, _("What to show in properties dialog:")); |
c5422b69b40e
Re-add "What to show in properties dialog:" label before the table.
zas_
parents:
256
diff
changeset
|
1275 gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5); |
c5422b69b40e
Re-add "What to show in properties dialog:" label before the table.
zas_
parents:
256
diff
changeset
|
1276 |
222
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
1277 table = pref_table_new(group, 2, 2, FALSE, FALSE); |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
1278 |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
1279 for (i = 0; ExifUIList[i].key; i++) |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
1280 { |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
1281 const gchar *title; |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
1282 |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
1283 title = exif_get_description_by_key(ExifUIList[i].key); |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
1284 exif_item(table, 0, i, title, ExifUIList[i].current, |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
1285 &ExifUIList[i].temp); |
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
1286 } |
230
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1287 } |
222
77f1bcc6c161
various exif improvements based on patch by Uwe Ohse
nadvornik
parents:
218
diff
changeset
|
1288 |
230
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1289 /* advanced entry tab */ |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1290 static void config_tab_advanced(GtkWidget *notebook) |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1291 { |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1292 GtkWidget *label; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1293 GtkWidget *hbox; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1294 GtkWidget *vbox; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1295 GtkWidget *group; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1296 GtkWidget *button; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1297 GtkWidget *tabcomp; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1298 GtkWidget *ct_button; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1299 GtkWidget *table; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1300 GtkWidget *spin; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1301 GtkWidget *scrolled; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1302 GtkWidget *viewport; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1303 GtkWidget *fullscreen_info_view; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1304 GtkTextBuffer *buffer; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1305 gint i; |
9 | 1306 |
1307 scrolled = gtk_scrolled_window_new(NULL, NULL); | |
1308 gtk_container_set_border_width(GTK_CONTAINER(scrolled), PREF_PAD_BORDER); | |
1309 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled), | |
1310 GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); | |
1311 label = gtk_label_new(_("Advanced")); | |
1312 gtk_notebook_append_page(GTK_NOTEBOOK(notebook), scrolled, label); | |
1313 gtk_widget_show(scrolled); | |
1314 | |
1315 viewport = gtk_viewport_new(NULL, NULL); | |
1316 gtk_viewport_set_shadow_type(GTK_VIEWPORT(viewport), GTK_SHADOW_NONE); | |
1317 gtk_container_add(GTK_CONTAINER(scrolled), viewport); | |
1318 gtk_widget_show(viewport); | |
1319 | |
1320 vbox = gtk_vbox_new(FALSE, 0); | |
1321 gtk_container_add(GTK_CONTAINER(viewport), vbox); | |
1322 gtk_widget_show(vbox); | |
1323 | |
1324 group = pref_group_new(vbox, FALSE, _("Full screen"), GTK_ORIENTATION_VERTICAL); | |
1325 | |
1326 fullscreen_screen_c = fullscreen_screen; | |
1327 fullscreen_above_c = fullscreen_above; | |
1328 hbox = fullscreen_prefs_selection_new(_("Location:"), &fullscreen_screen_c, &fullscreen_above_c); | |
1329 gtk_box_pack_start(GTK_BOX(group), hbox, FALSE, FALSE, 0); | |
1330 gtk_widget_show(hbox); | |
1331 | |
1332 pref_checkbox_new_int(group, _("Smooth image flip"), | |
1333 fullscreen_clean_flip, &fullscreen_clean_flip_c); | |
1334 pref_checkbox_new_int(group, _("Disable screen saver"), | |
1335 fullscreen_disable_saver, &fullscreen_disable_saver_c); | |
218
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
1336 pref_checkbox_new_int(group, _("Always show fullscreen info"), |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
1337 show_fullscreen_info, &show_fullscreen_info_c); |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
1338 pref_label_new(group, _("Fullscreen info string")); |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
1339 |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
1340 scrolled = gtk_scrolled_window_new(NULL, NULL); |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
1341 gtk_widget_set_size_request(scrolled, 200, 150); |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
1342 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scrolled), GTK_SHADOW_IN); |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
1343 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled), |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
1344 GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
1345 gtk_box_pack_start(GTK_BOX(group), scrolled, TRUE, TRUE, 5); |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
1346 gtk_widget_show(scrolled); |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
1347 |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
1348 fullscreen_info_view = gtk_text_view_new(); |
267
a9adf9e1a746
Remove dependency on GTK 2.12, reported by John Vodden and Vladimir
zas_
parents:
257
diff
changeset
|
1349 |
a9adf9e1a746
Remove dependency on GTK 2.12, reported by John Vodden and Vladimir
zas_
parents:
257
diff
changeset
|
1350 #if GTK_CHECK_VERSION(2,12,0) |
218
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
1351 gtk_widget_set_tooltip_markup(fullscreen_info_view, |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
1352 _("<i>%name%</i> results in the filename of the picture.\n" |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
1353 "Also available: <i>%collection%</i>, <i>%number%</i>, <i>%total%</i>, <i>%date%</i>,\n" |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
1354 "<i>%size%</i> (filesize), <i>%width%</i>, <i>%height%</i>, <i>%res%</i> (resolution)\n" |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
1355 "To access exif data use the exif name, e. g. <i>%fCamera%</i> is the formatted camera name,\n" |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
1356 "<i>%Exif.Photo.DateTimeOriginal%</i> the date of the original shot.\n" |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
1357 "If two or more variables are connected with the |-sign, it prints available variables with a separator.\n" |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
1358 "<i>%fShutterSpeed%</i>|<i>%fISOSpeedRating%</i>|<i>%fFocalLength%</i> could show \"1/20s - 400 - 80 mm\" or \"1/200 - 80 mm\",\n" |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
1359 "if there's no ISO information in the Exif data.\n" |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
1360 "If a line is empty, it is removed. This allows to add lines that totally disappear when no data is available.\n" |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
1361 )); |
267
a9adf9e1a746
Remove dependency on GTK 2.12, reported by John Vodden and Vladimir
zas_
parents:
257
diff
changeset
|
1362 #endif |
224 | 1363 gtk_container_add(GTK_CONTAINER(scrolled), fullscreen_info_view); |
218
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
1364 gtk_widget_show(fullscreen_info_view); |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
1365 |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
1366 buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(fullscreen_info_view)); |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
1367 gtk_text_buffer_set_text(buffer, fullscreen_info, -1); |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
1368 g_signal_connect(G_OBJECT(buffer), "changed", |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
1369 G_CALLBACK(fullscreen_info_view_changed_cb), fullscreen_info_view); |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
212
diff
changeset
|
1370 |
9 | 1371 group = pref_group_new(vbox, FALSE, _("Delete"), GTK_ORIENTATION_VERTICAL); |
1372 | |
1373 pref_checkbox_new_int(group, _("Confirm file delete"), | |
1374 confirm_delete, &confirm_delete_c); | |
1375 pref_checkbox_new_int(group, _("Enable Delete key"), | |
1376 enable_delete_key, &enable_delete_key_c); | |
1377 | |
1378 ct_button = pref_checkbox_new_int(group, _("Safe delete"), | |
1379 safe_delete_enable, &safe_delete_enable_c); | |
1380 | |
1381 hbox = pref_box_new(group, FALSE, GTK_ORIENTATION_HORIZONTAL, PREF_PAD_SPACE); | |
1382 pref_checkbox_link_sensitivity(ct_button, hbox); | |
1383 | |
1384 pref_spacer(hbox, PREF_PAD_INDENT - PREF_PAD_SPACE); | |
1385 pref_label_new(hbox, _("Folder:")); | |
1386 | |
1387 tabcomp = tab_completion_new(&safe_delete_path_entry, safe_delete_path, NULL, NULL); | |
1388 tab_completion_add_select_button(safe_delete_path_entry, NULL, TRUE); | |
1389 gtk_box_pack_start(GTK_BOX(hbox), tabcomp, TRUE, TRUE, 0); | |
1390 gtk_widget_show(tabcomp); | |
1391 | |
1392 hbox = pref_box_new(group, FALSE, GTK_ORIENTATION_HORIZONTAL, PREF_PAD_BUTTON_GAP); | |
1393 pref_checkbox_link_sensitivity(ct_button, hbox); | |
1394 | |
1395 pref_spacer(hbox, PREF_PAD_INDENT - PREF_PAD_GAP); | |
223
73efc1ba150f
Setting no limit size to trash directory is now possible using zero as value.
zas_
parents:
222
diff
changeset
|
1396 spin = pref_spin_new_int(hbox, _("Maximum size:"), _("MB"), |
73efc1ba150f
Setting no limit size to trash directory is now possible using zero as value.
zas_
parents:
222
diff
changeset
|
1397 0, 2048, 1, safe_delete_size, &safe_delete_size_c); |
267
a9adf9e1a746
Remove dependency on GTK 2.12, reported by John Vodden and Vladimir
zas_
parents:
257
diff
changeset
|
1398 #if GTK_CHECK_VERSION(2,12,0) |
223
73efc1ba150f
Setting no limit size to trash directory is now possible using zero as value.
zas_
parents:
222
diff
changeset
|
1399 gtk_widget_set_tooltip_markup(spin, _("Set to 0 for unlimited size")); |
267
a9adf9e1a746
Remove dependency on GTK 2.12, reported by John Vodden and Vladimir
zas_
parents:
257
diff
changeset
|
1400 #endif |
9 | 1401 button = pref_button_new(NULL, NULL, _("View"), FALSE, |
1402 G_CALLBACK(safe_delete_view_cb), NULL); | |
1403 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0); | |
1404 gtk_widget_show(button); | |
1405 | |
1406 button = pref_button_new(NULL, GTK_STOCK_CLEAR, NULL, FALSE, | |
1407 G_CALLBACK(safe_delete_clear_cb), NULL); | |
1408 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0); | |
1409 gtk_widget_show(button); | |
1410 | |
1411 group = pref_group_new(vbox, FALSE, _("Behavior"), GTK_ORIENTATION_VERTICAL); | |
1412 | |
1413 pref_checkbox_new_int(group, _("Rectangular selection in icon view"), | |
1414 collection_rectangular_selection, &collection_rectangular_selection_c); | |
1415 | |
1416 pref_checkbox_new_int(group, _("Descend folders in tree view"), | |
1417 tree_descend_subdirs, &tree_descend_subdirs_c); | |
1418 | |
1419 pref_checkbox_new_int(group, _("In place renaming"), | |
1420 enable_in_place_rename, &enable_in_place_rename_c); | |
1421 | |
1422 group = pref_group_new(vbox, FALSE, _("Navigation"), GTK_ORIENTATION_VERTICAL); | |
1423 | |
1424 pref_checkbox_new_int(group, _("Progressive keyboard scrolling"), | |
1425 progressive_key_scrolling, &progressive_key_scrolling_c); | |
1426 pref_checkbox_new_int(group, _("Mouse wheel scrolls image"), | |
1427 mousewheel_scrolls, &mousewheel_scrolls_c); | |
1428 | |
1429 group = pref_group_new(vbox, FALSE, _("Miscellaneous"), GTK_ORIENTATION_VERTICAL); | |
1430 | |
1431 pref_checkbox_new_int(group, _("Store keywords and comments local to source images"), | |
1432 enable_metadata_dirs, &enable_metadata_dirs_c); | |
1433 | |
1434 pref_spin_new_int(group, _("Custom similarity threshold:"), NULL, | |
1435 0, 100, 1, dupe_custom_threshold, &dupe_custom_threshold_c); | |
1436 | |
1437 pref_spin_new_int(group, _("Offscreen cache size (Mb per image):"), NULL, | |
1438 0, 128, 1, tile_cache_max, &tile_cache_max_c); | |
1439 | |
113
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
1440 group = pref_group_new(vbox, FALSE, _("Color profiles"), GTK_ORIENTATION_VERTICAL); |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
1441 #ifndef HAVE_LCMS |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
1442 gtk_widget_set_sensitive(pref_group_parent(group), FALSE); |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
1443 #endif |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
1444 |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
1445 table = pref_table_new(group, 3, COLOR_PROFILE_INPUTS + 2, FALSE, FALSE); |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
1446 gtk_table_set_col_spacings(GTK_TABLE(table), PREF_PAD_GAP); |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
1447 |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
1448 label = pref_table_label(table, 0, 0, _("Type"), 0.0); |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
1449 pref_label_bold(label, TRUE, FALSE); |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
1450 |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
1451 label = pref_table_label(table, 1, 0, _("Menu name"), 0.0); |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
1452 pref_label_bold(label, TRUE, FALSE); |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
1453 |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
1454 label = pref_table_label(table, 2, 0, _("File"), 0.0); |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
1455 pref_label_bold(label, TRUE, FALSE); |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
1456 |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
1457 for (i = 0; i < COLOR_PROFILE_INPUTS; i++) |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
1458 { |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
1459 GtkWidget *entry; |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
1460 gchar *buf; |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
1461 |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
1462 buf = g_strdup_printf("Input %d:", i + 1); |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
1463 pref_table_label(table, 0, i + 1, buf, 1.0); |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
1464 g_free(buf); |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
1465 |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
1466 entry = gtk_entry_new(); |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
1467 gtk_entry_set_max_length(GTK_ENTRY(entry), EDITOR_NAME_MAX_LENGTH); |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
1468 gtk_widget_set_size_request(editor_name_entry[i], 30, -1); |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
1469 if (color_profile_input_name[i]) gtk_entry_set_text(GTK_ENTRY(entry), color_profile_input_name[i]); |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
1470 gtk_table_attach(GTK_TABLE(table), entry, 1, 2, i + 1, i + 2, |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
1471 GTK_FILL | GTK_EXPAND, 0, 0, 0); |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
1472 gtk_widget_show(entry); |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
1473 color_profile_input_name_entry[i] = entry; |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
1474 |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
1475 tabcomp = tab_completion_new(&entry, color_profile_input_file[i], NULL, NULL); |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
1476 tab_completion_add_select_button(entry, _("Select color profile"), FALSE); |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
1477 gtk_widget_set_size_request(entry, 160, -1); |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
1478 gtk_table_attach(GTK_TABLE(table), tabcomp, 2, 3, i + 1, i + 2, |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
1479 GTK_FILL | GTK_EXPAND, 0, 0, 0); |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
1480 gtk_widget_show(tabcomp); |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
1481 color_profile_input_file_entry[i] = entry; |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
1482 } |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
1483 |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
1484 pref_table_label(table, 0, COLOR_PROFILE_INPUTS + 1, _("Screen:"), 1.0); |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
1485 tabcomp = tab_completion_new(&color_profile_screen_file_entry, |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
1486 color_profile_screen_file, NULL, NULL); |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
1487 tab_completion_add_select_button(color_profile_screen_file_entry, _("Select color profile"), FALSE); |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
1488 gtk_widget_set_size_request(color_profile_screen_file_entry, 160, -1); |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
1489 gtk_table_attach(GTK_TABLE(table), tabcomp, 2, 3, |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
1490 COLOR_PROFILE_INPUTS + 1, COLOR_PROFILE_INPUTS + 2, |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
1491 GTK_FILL | GTK_EXPAND, 0, 0, 0); |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
1492 gtk_widget_show(tabcomp); |
55166d93498d
Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents:
91
diff
changeset
|
1493 |
227
41fc4bfc8b25
Add a debug level spinner at the end of Preferences > Advanced.
zas_
parents:
226
diff
changeset
|
1494 #ifdef DEBUG |
41fc4bfc8b25
Add a debug level spinner at the end of Preferences > Advanced.
zas_
parents:
226
diff
changeset
|
1495 group = pref_group_new(vbox, FALSE, _("Debugging"), GTK_ORIENTATION_VERTICAL); |
41fc4bfc8b25
Add a debug level spinner at the end of Preferences > Advanced.
zas_
parents:
226
diff
changeset
|
1496 |
41fc4bfc8b25
Add a debug level spinner at the end of Preferences > Advanced.
zas_
parents:
226
diff
changeset
|
1497 pref_spin_new_int(group, _("Debug level:"), NULL, |
41fc4bfc8b25
Add a debug level spinner at the end of Preferences > Advanced.
zas_
parents:
226
diff
changeset
|
1498 0, 9, 1, debug, &debug_c); |
41fc4bfc8b25
Add a debug level spinner at the end of Preferences > Advanced.
zas_
parents:
226
diff
changeset
|
1499 #endif |
230
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1500 } |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1501 |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1502 /* Main preferences window */ |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1503 static void config_window_create(void) |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1504 { |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1505 GtkWidget *win_vbox; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1506 GtkWidget *hbox; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1507 GtkWidget *notebook; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1508 GtkWidget *button; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1509 GtkWidget *ct_button; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1510 |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1511 configwindow = gtk_window_new(GTK_WINDOW_TOPLEVEL); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1512 gtk_window_set_type_hint(GTK_WINDOW(configwindow), GDK_WINDOW_TYPE_HINT_DIALOG); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1513 g_signal_connect(G_OBJECT (configwindow), "delete_event", |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1514 G_CALLBACK(config_window_delete), NULL); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1515 gtk_window_set_default_size(GTK_WINDOW(configwindow), CONFIG_WINDOW_DEF_WIDTH, CONFIG_WINDOW_DEF_HEIGHT); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1516 gtk_window_set_resizable(GTK_WINDOW(configwindow), TRUE); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1517 gtk_window_set_title(GTK_WINDOW(configwindow), _("Geeqie Preferences")); |
254
9faf34f047b1
Make the wmclass value unique among the code by defining
zas_
parents:
231
diff
changeset
|
1518 gtk_window_set_wmclass(GTK_WINDOW(configwindow), "config", GQ_WMCLASS); |
230
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1519 gtk_container_set_border_width(GTK_CONTAINER(configwindow), PREF_PAD_BORDER); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1520 |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1521 window_set_icon(configwindow, PIXBUF_INLINE_ICON_CONFIG, NULL); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1522 |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1523 win_vbox = gtk_vbox_new(FALSE, PREF_PAD_SPACE); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1524 gtk_container_add(GTK_CONTAINER(configwindow), win_vbox); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1525 gtk_widget_show(win_vbox); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1526 |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1527 hbox = gtk_hbutton_box_new(); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1528 gtk_button_box_set_layout(GTK_BUTTON_BOX(hbox), GTK_BUTTONBOX_END); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1529 gtk_box_set_spacing(GTK_BOX(hbox), PREF_PAD_BUTTON_GAP); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1530 gtk_box_pack_end(GTK_BOX(win_vbox), hbox, FALSE, FALSE, 0); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1531 gtk_widget_show(hbox); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1532 |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1533 button = pref_button_new(NULL, GTK_STOCK_OK, NULL, FALSE, |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1534 G_CALLBACK(config_window_ok_cb), NULL); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1535 gtk_container_add(GTK_CONTAINER(hbox), button); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1536 GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1537 gtk_widget_grab_default(button); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1538 gtk_widget_show(button); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1539 |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1540 ct_button = button; |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1541 |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1542 button = pref_button_new(NULL, GTK_STOCK_APPLY, NULL, FALSE, |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1543 G_CALLBACK(config_window_apply_cb), NULL); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1544 gtk_container_add(GTK_CONTAINER(hbox), button); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1545 GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1546 gtk_widget_show(button); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1547 |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1548 button = pref_button_new(NULL, GTK_STOCK_CANCEL, NULL, FALSE, |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1549 G_CALLBACK(config_window_close_cb), NULL); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1550 gtk_container_add(GTK_CONTAINER(hbox), button); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1551 GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1552 gtk_widget_show(button); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1553 |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1554 if (!generic_dialog_get_alternative_button_order(configwindow)) |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1555 { |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1556 gtk_box_reorder_child(GTK_BOX(hbox), ct_button, -1); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1557 } |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1558 |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1559 notebook = gtk_notebook_new(); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1560 gtk_notebook_set_tab_pos (GTK_NOTEBOOK(notebook), GTK_POS_TOP); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1561 gtk_box_pack_start(GTK_BOX(win_vbox), notebook, TRUE, TRUE, 0); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1562 |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1563 config_tab_general(notebook); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1564 config_tab_image(notebook); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1565 config_tab_windows(notebook); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1566 config_tab_filtering(notebook); |
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1567 config_tab_editors(notebook); |
256
088b335f2d67
Rename exif preferences tab to "Properties", and name the
zas_
parents:
254
diff
changeset
|
1568 config_tab_properties(notebook); |
230
4b2fbfafa511
Move tabs code from config_window_create() to new smaller functions.
zas_
parents:
227
diff
changeset
|
1569 config_tab_advanced(notebook); |
227
41fc4bfc8b25
Add a debug level spinner at the end of Preferences > Advanced.
zas_
parents:
226
diff
changeset
|
1570 |
9 | 1571 gtk_widget_show(notebook); |
1572 | |
1573 gtk_widget_show(configwindow); | |
1574 } | |
1575 | |
1576 /* | |
1577 *----------------------------------------------------------------------------- | |
1578 * config window show (public) | |
1579 *----------------------------------------------------------------------------- | |
1580 */ | |
1581 | |
1582 void show_config_window(void) | |
1583 { | |
1584 if (configwindow) | |
1585 { | |
1586 gtk_window_present(GTK_WINDOW(configwindow)); | |
1587 return; | |
1588 } | |
1589 | |
1590 config_window_create(); | |
1591 } | |
1592 | |
1593 /* | |
1594 *----------------- | |
1595 * about window | |
1596 *----------------- | |
1597 */ | |
1598 | |
1599 static GtkWidget *about = NULL; | |
1600 | |
1601 static gint about_delete_cb(GtkWidget *widget, GdkEventAny *event, gpointer data) | |
1602 { | |
1603 gtk_widget_destroy(about); | |
1604 about = NULL; | |
1605 | |
1606 return TRUE; | |
1607 } | |
1608 | |
1609 static void about_window_close(GtkWidget *widget, gpointer data) | |
1610 { | |
1611 if (!about) return; | |
1612 | |
1613 gtk_widget_destroy(about); | |
1614 about = NULL; | |
1615 } | |
1616 | |
1617 static void about_credits_cb(GtkWidget *widget, gpointer data) | |
1618 { | |
1619 help_window_show("credits"); | |
1620 } | |
1621 | |
1622 void show_about_window(void) | |
1623 { | |
1624 GtkWidget *vbox; | |
1625 GtkWidget *hbox; | |
1626 GtkWidget *label; | |
1627 GtkWidget *button; | |
1628 GdkPixbuf *pixbuf; | |
1629 | |
1630 gchar *buf; | |
1631 | |
1632 if (about) | |
1633 { | |
1634 gtk_window_present(GTK_WINDOW(about)); | |
1635 return; | |
1636 } | |
1637 | |
1638 about = gtk_window_new(GTK_WINDOW_TOPLEVEL); | |
1639 gtk_window_set_type_hint(GTK_WINDOW(about), GDK_WINDOW_TYPE_HINT_DIALOG); | |
254
9faf34f047b1
Make the wmclass value unique among the code by defining
zas_
parents:
231
diff
changeset
|
1640 gtk_window_set_wmclass(GTK_WINDOW(about), "about", GQ_WMCLASS); |
9 | 1641 g_signal_connect(G_OBJECT(about), "delete_event", |
1642 G_CALLBACK(about_delete_cb), NULL); | |
1643 | |
196 | 1644 gtk_window_set_title(GTK_WINDOW(about), _("About - Geeqie")); |
9 | 1645 gtk_container_set_border_width(GTK_CONTAINER(about), PREF_PAD_BORDER); |
1646 | |
1647 vbox = gtk_vbox_new(FALSE, PREF_PAD_SPACE); | |
1648 gtk_container_add(GTK_CONTAINER(about), vbox); | |
1649 gtk_widget_show(vbox); | |
1650 | |
1651 pixbuf = pixbuf_inline(PIXBUF_INLINE_LOGO); | |
1652 button = gtk_image_new_from_pixbuf(pixbuf); | |
1653 g_object_unref(pixbuf); | |
1654 gtk_box_pack_start(GTK_BOX(vbox), button, TRUE, TRUE, 0); | |
1655 gtk_widget_show(button); | |
1656 | |
196 | 1657 buf = g_strdup_printf(_("Geeqie %s\n\nCopyright (c) %s John Ellis\nwebsite: %s\nemail: %s\n\nReleased under the GNU General Public License"), |
9 | 1658 VERSION, |
67
f63ecca6c087
Fri Oct 13 05:22:43 2006 John Ellis <johne@verizon.net>
gqview
parents:
26
diff
changeset
|
1659 "2006", |
199 | 1660 "geeqie.sourceforge.net", |
1661 "geeqie-devel@lists.sourceforge.net"); | |
9 | 1662 label = gtk_label_new(buf); |
1663 g_free(buf); | |
1664 | |
1665 gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_CENTER); | |
1666 gtk_box_pack_start(GTK_BOX(vbox), label, TRUE, TRUE, 0); | |
1667 gtk_widget_show(label); | |
1668 | |
1669 hbox = gtk_hbutton_box_new(); | |
1670 gtk_button_box_set_layout(GTK_BUTTON_BOX(hbox), GTK_BUTTONBOX_END); | |
1671 gtk_box_set_spacing(GTK_BOX(hbox), PREF_PAD_BUTTON_GAP); | |
1672 gtk_box_pack_end(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); | |
1673 gtk_widget_show(hbox); | |
1674 | |
1675 button = pref_button_new(NULL, NULL, _("Credits..."), FALSE, | |
1676 G_CALLBACK(about_credits_cb), NULL); | |
1677 gtk_container_add(GTK_CONTAINER(hbox), button); | |
1678 GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT); | |
1679 gtk_widget_show(button); | |
1680 | |
1681 button = pref_button_new(NULL, GTK_STOCK_CLOSE, NULL, FALSE, | |
1682 G_CALLBACK(about_window_close), NULL); | |
1683 gtk_container_add(GTK_CONTAINER(hbox), button); | |
1684 GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT); | |
1685 gtk_widget_grab_default(button); | |
1686 gtk_widget_show(button); | |
1687 | |
1688 window_set_icon(about, NULL, NULL); | |
1689 gtk_widget_show(about); | |
1690 } | |
1691 |