diff src/options.h @ 508:011a6be611c8

Move options stuff to options.{c,h} and remove globals.c
author zas_
date Thu, 24 Apr 2008 09:09:48 +0000
parents
children fe675761d091
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/options.h	Thu Apr 24 09:09:48 2008 +0000
@@ -0,0 +1,217 @@
+/*
+ * Geeqie
+ * Copyright (C) 2008 The Geeqie Team
+ *
+ * Authors: Vladimir Nadvornik, Laurent Monin
+ *
+ * This software is released under the GNU General Public License (GNU GPL).
+ * Please read the included file COPYING for more information.
+ * This software comes with no warranty of any kind, use at your own risk!
+ */
+
+#ifndef OPTIONS_H
+#define OPTIONS_H
+
+typedef struct _ConfOptions ConfOptions;
+
+struct _ConfOptions
+{
+
+	/* ui */
+	gint progressive_key_scrolling;
+	gint place_dialogs_under_mouse;
+	gint mousewheel_scrolls;
+	gint show_icon_names;
+	gint show_copy_path;
+
+	/* various */
+	gint startup_path_enable;
+	gchar *startup_path;
+	gint enable_metadata_dirs;
+
+	gint tree_descend_subdirs;
+
+	gint lazy_image_sync;
+	gint update_on_time_change;
+
+	gint duplicates_similarity_threshold;
+
+	gint open_recent_list_maxsize;
+	gint dnd_icon_size;
+
+	/* file ops */
+	struct {
+		gint enable_in_place_rename;
+
+		gint confirm_delete;
+		gint enable_delete_key;
+		gint safe_delete_enable;
+		gchar *safe_delete_path;
+		gint safe_delete_folder_maxsize;
+	} file_ops;
+
+	/* image */
+	struct {
+		gint exif_rotate_enable;
+		gint scroll_reset_method;
+		gint fit_window_to_image;
+		gint limit_window_size;
+		gint max_window_size;
+		gint limit_autofit_size;
+		gint max_autofit_size;
+
+		gint tile_cache_max;	/* in megabytes */
+		gint dither_quality;
+		gint enable_read_ahead;
+
+		gint zoom_mode;
+		gint zoom_2pass;
+		gint zoom_to_fit_allow_expand;
+		gint zoom_quality;
+		gint zoom_increment;	/* 10 is 1.0, 5 is 0.05, 20 is 2.0, etc. */
+
+		gint use_custom_border_color;
+		GdkColor border_color;
+
+		gint read_buffer_size; /* bytes to read from file per read() */
+		gint idle_read_loop_count; /* the number of bytes to read per idle call (define x image.read_buffer_size) */
+	} image;
+
+	/* thumbnails */
+	struct {
+		gint max_width;
+		gint max_height;
+		gint enable_caching;
+		gint cache_into_dirs;
+		gint fast;
+		gint use_xvpics;
+		gint spec_standard;
+		gint quality;
+	} thumbnails;
+
+	/* file filtering */
+	struct {
+		gint show_hidden_files;
+		gint show_dot_directory;
+		gint disable;
+	} file_filter;
+
+	/* collections */
+	struct {
+		gint rectangular_selection;
+	} collections;
+
+	/* editors */
+	gchar *editor_name[GQ_EDITOR_SLOTS];
+	gchar *editor_command[GQ_EDITOR_SLOTS];
+
+	/* file sorting */
+	struct {
+		SortType method;
+		gint ascending;
+		gint case_sensitive; /* file sorting method (case) */
+	} file_sort;
+
+	/* slideshow */
+	struct {
+		gint delay;	/* in tenths of a second */
+		gint random;
+		gint repeat;
+	} slideshow;
+
+	/* fullscreen */
+	struct {
+		gint screen;
+		gint clean_flip;
+		gint disable_saver;
+		gint above;
+	} fullscreen;
+
+	/* image overlay */
+	struct {
+		struct {
+			gint enabled;
+			gint show_at_startup;
+			gchar *template_string;
+		} common;
+	} image_overlay;
+
+	/* layout */
+	struct {
+		gchar *order;
+		gint style;
+
+		gint view_as_icons;
+		DirViewType dir_view_type;
+
+		gint show_thumbnails;
+		gint show_marks;
+
+		struct {
+			gint w;
+			gint h;
+			gint x;
+			gint y;
+			gint maximized;
+			gint hdivider_pos;
+			gint vdivider_pos;
+		} main_window;
+
+		struct {
+			gint w;
+			gint h;
+			gint x;
+			gint y;
+			gint vdivider_pos;
+		} float_window;
+
+		gint save_window_positions;
+
+		gint tools_float;
+		gint tools_hidden;
+		gint tools_restore_state;
+
+		gint toolbar_hidden;
+
+	} layout;
+
+	/* panels */
+	struct {
+		struct {
+			gint enabled;
+			gint width;
+		} info;
+
+		struct {
+			gint enabled;
+			gint width;
+		} exif;
+
+		struct {
+			gint enabled;
+			gint mode_state;
+			gint action_state;
+			gint selection_state;
+		} sort;
+	} panels;
+
+
+	/* color profiles */
+	struct {
+		gint enabled;
+		gint input_type;
+		gchar *input_file[COLOR_PROFILE_INPUTS];
+		gchar *input_name[COLOR_PROFILE_INPUTS];
+		gint screen_type;
+		gchar *screen_file;
+		gint use_image;
+
+	} color_profile;
+
+};
+
+ConfOptions *options;
+
+ConfOptions *init_options(ConfOptions *options);
+
+#endif /* OPTIONS_H */