Additional debug features
[geeqie.git] / src / options.h
index 4ac6572..9d8e4ab 100644 (file)
@@ -1,12 +1,21 @@
 /*
- * Geeqie
- * Copyright (C) 2008 - 2009 The Geeqie Team
+ * Copyright (C) 2008 - 2016 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!
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  */
 
 #ifndef OPTIONS_H
@@ -18,29 +27,51 @@ struct _ConfOptions
 {
        /* ui */
        gboolean progressive_key_scrolling;
+       guint keyboard_scroll_step;
        gboolean place_dialogs_under_mouse;
        gboolean mousewheel_scrolls;
+       gboolean image_lm_click_nav;
        gboolean show_icon_names;
-       gboolean show_copy_path;
 
        /* various */
        gboolean tree_descend_subdirs;
+       gboolean view_dir_list_single_click_enter;
 
        gboolean lazy_image_sync;
        gboolean update_on_time_change;
 
        guint duplicates_similarity_threshold;
+       guint duplicates_match;
+       gboolean duplicates_thumbnails;
+       guint duplicates_select_type;
+       gboolean rot_invariant_sim;
+       gboolean sort_totals;
 
        gint open_recent_list_maxsize;
        gint dnd_icon_size;
 
+       gboolean save_window_positions;
+       gboolean use_saved_window_positions_for_new_windows;
+       gboolean tools_restore_state;
+
+       guint log_window_lines;
 
-       /* start up */
+       /* info sidebar component heights */
        struct {
-               gboolean restore_path;
-               gboolean use_last_path;
-               gchar *path;
-       } startup;
+               gint height;
+       } info_comment;
+
+       struct {
+               gint height;
+       } info_keywords;
+
+       struct {
+               gint height;
+       } info_title;
+
+       struct {
+               gint height;
+       } info_rating;
 
        /* file ops */
        struct {
@@ -56,29 +87,31 @@ struct _ConfOptions
        /* image */
        struct {
                gboolean exif_rotate_enable;
+               gboolean exif_proof_rotate_enable;
                guint scroll_reset_method;
                gboolean fit_window_to_image;
                gboolean limit_window_size;
                gint max_window_size;
                gboolean limit_autofit_size;
                gint max_autofit_size;
+               gint max_enlargement_size;
 
                gint tile_cache_max;    /* in megabytes */
                gint image_cache_max;   /* in megabytes */
-               guint dither_quality;
                gboolean enable_read_ahead;
 
                ZoomMode zoom_mode;
                gboolean zoom_2pass;
                gboolean zoom_to_fit_allow_expand;
                guint zoom_quality;
-               gint zoom_increment;    /* 10 is 1.0, 5 is 0.05, 20 is 2.0, etc. */
+               gint zoom_increment;    /* 100 is 1.0, 5 is 0.05, 200 is 2.0, etc. */
+               gboolean use_clutter_renderer;
 
-               gint use_custom_border_color;
+               gboolean use_custom_border_color_in_fullscreen;
+               gboolean 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) */
+               GdkColor alpha_color_1;
+               GdkColor alpha_color_2;
        } image;
 
        /* thumbnails */
@@ -87,7 +120,6 @@ struct _ConfOptions
                gint max_height;
                gboolean enable_caching;
                gboolean cache_into_dirs;
-               gboolean fast;
                gboolean use_xvpics;
                gboolean spec_standard;
                guint quality;
@@ -97,14 +129,16 @@ struct _ConfOptions
        /* file filtering */
        struct {
                gboolean show_hidden_files;
+               gboolean show_parent_directory;
                gboolean show_dot_directory;
+               gboolean disable_file_extension_checks;
                gboolean disable;
        } file_filter;
 
        struct {
                gchar *ext;
        } sidecar;
-       
+
        /* collections */
        struct {
                gboolean rectangular_selection;
@@ -115,12 +149,13 @@ struct _ConfOptions
                gchar *path;
                gchar *options;
        } shell;
-       
+
        /* file sorting */
        struct {
                SortType method;
                gboolean ascending;
                gboolean case_sensitive; /* file sorting method (case) */
+               gboolean natural;
        } file_sort;
 
        /* slideshow */
@@ -138,30 +173,22 @@ struct _ConfOptions
                gboolean above;
        } fullscreen;
 
-       /* histogram */
-       struct {
-               guint last_channel_mode;
-               guint last_log_mode;
-       } histogram;
-       
        /* image overlay */
        struct {
-               struct {
-                       guint state;
-                       gboolean show_at_startup;
-                       gchar *template_string;
-                       gint x;
-                       gint y;
-               } common;
+               gchar *template_string;
+               gint x;
+               gint y;
+               guint16 text_red;
+               guint16 text_green;
+               guint16 text_blue;
+               guint16 text_alpha;
+               guint16 background_red;
+               guint16 background_green;
+               guint16 background_blue;
+               guint16 background_alpha;
+               gchar *font;
        } image_overlay;
 
-       /* layout */
-       /* FIXME: this is here for 2 reasons:
-          - I don't want to break preferences dialog now
-          - it might be useful as defaults for new windows (I am not sure about this)
-       */
-       LayoutOptions layout;
-
        /* properties dialog */
        struct {
                gchar *tabs_order;
@@ -173,10 +200,10 @@ struct _ConfOptions
                gint input_type;
                gchar *input_file[COLOR_PROFILE_INPUTS];
                gchar *input_name[COLOR_PROFILE_INPUTS];
-               gint screen_type;
                gchar *screen_file;
                gboolean use_image;
-
+               gboolean use_x11_screen_profile;
+               gint render_intent;
        } color_profile;
 
        /* Helpers programs */
@@ -196,16 +223,56 @@ struct _ConfOptions
                gboolean warn_on_write_problems;
 
                gboolean save_legacy_format;
-               
+
                gboolean sync_grouped_files;
-               
+
                gboolean confirm_write;
                gint confirm_timeout;
                gboolean confirm_after_timeout;
                gboolean confirm_on_image_change;
                gboolean confirm_on_dir_change;
+               gboolean keywords_case_sensitive;
+               gboolean write_orientation;
+               gboolean sidecar_extended_name;
        } metadata;
 
+       /* Stereo */
+       struct {
+               gint mode;;
+               gint fsmode;
+               gboolean enable_fsmode;
+               gint fixed_w, fixed_h;
+               gint fixed_x1, fixed_y1;
+               gint fixed_x2, fixed_y2;
+               struct { /* options in this struct are packed to mode and fsmode entries */
+                       gboolean mirror_right;
+                       gboolean mirror_left;
+                       gboolean flip_right;
+                       gboolean flip_left;
+                       gboolean swap;
+                       gboolean temp_disable;
+                       gboolean fs_mirror_right;
+                       gboolean fs_mirror_left;
+                       gboolean fs_flip_right;
+                       gboolean fs_flip_left;
+                       gboolean fs_swap;
+                       gboolean fs_temp_disable;
+               } tmp;
+       } stereo;
+
+       /* copy move rename */
+       struct {
+               gint auto_start;
+               gchar *auto_end;
+               gint auto_padding;
+               gint formatted_start;
+       } cp_mv_rn;
+
+       /* log window */
+       struct {
+               gboolean paused;
+               gboolean line_wrap;
+       } log_window;
 };
 
 ConfOptions *options;
@@ -218,7 +285,7 @@ gboolean load_options(ConfOptions *options);
 
 void copy_layout_options(LayoutOptions *dest, const LayoutOptions *src);
 void free_layout_options_content(LayoutOptions *dest);
-
+LayoutOptions *init_layout_options(LayoutOptions *options);
 
 #endif /* OPTIONS_H */
 /* vim: set shiftwidth=8 softtabstop=0 cindent cinoptions={1s: */