Addl fix #521: zoom increment is not multiplicative
[geeqie.git] / src / options.h
index 12633c6..668cf52 100644 (file)
@@ -1,12 +1,21 @@
 /*
- * Geeqie
- * Copyright (C) 2008 - 2012 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,34 +27,111 @@ 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 image_l_click_archive;
+       gboolean image_l_click_video;
+       gchar *image_l_click_video_editor;
        gboolean show_icon_names;
+       gboolean show_star_rating;
+       gboolean draw_rectangle;
+       gboolean show_predefined_keyword_tree;
+       gboolean overunderexposed;
+       gboolean expand_menu_toolbar;
 
        /* various */
        gboolean tree_descend_subdirs;
+       gboolean view_dir_list_single_click_enter;
+
+       gboolean circular_selection_lists;
 
        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;
+       DnDAction dnd_default_action;
+       gint clipboard_selection;
 
        gboolean save_window_positions;
+       gboolean use_saved_window_positions_for_new_windows;
+       gboolean save_window_workspace;
        gboolean tools_restore_state;
+       gboolean save_dialog_window_positions;
+       gboolean show_window_ids;
+
+       gint log_window_lines;
+
+       gboolean marks_save;            /**< save marks on exit */
+       gchar *marks_tooltips[FILEDATA_MARKS_SIZE];
+
+       gboolean with_rename;
+       gboolean collections_on_top;
+       gboolean hide_window_in_fullscreen;
+
+       gchar *help_search_engine;
+
+       /**
+        * @struct info_comment
+        * info sidebar component height
+        */
+       struct {
+               gint height;
+       } info_comment;
+
+       /**
+        * @struct info_keywords
+        * info sidebar component height
+        */
+       struct {
+               gint height;
+       } info_keywords;
+
+       /**
+        * @struct info_title
+        * info sidebar component height
+        */
+       struct {
+               gint height;
+       } info_title;
+
+       /**
+        * @struct info_rating
+        * info sidebar component height
+        */
+       struct {
+               gint height;
+       } info_rating;
+
+       /**
+        * @struct info_headline
+        * info sidebar component height
+        */
+       struct {
+               gint height;
+       } info_headline;
 
        /* file ops */
        struct {
                gboolean enable_in_place_rename;
 
                gboolean confirm_delete;
+               gboolean confirm_move_to_trash;
                gboolean enable_delete_key;
                gboolean safe_delete_enable;
+               gboolean use_system_trash;
                gchar *safe_delete_path;
                gint safe_delete_folder_maxsize;
+               gboolean no_trash;
        } file_ops;
 
        /* image */
@@ -58,21 +144,27 @@ struct _ConfOptions
                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 */
+               gint tile_cache_max;    /**< in megabytes */
+               gint image_cache_max;   /**< in megabytes */
                gboolean enable_read_ahead;
 
                ZoomMode zoom_mode;
                gboolean zoom_2pass;
                gboolean zoom_to_fit_allow_expand;
                guint zoom_quality;
-               gint zoom_increment;    /* 100 is 1.0, 5 is 0.05, 200 is 2.0, etc. */
+               gint zoom_increment;    /**< 100 is 1.0, 5 is 0.05, 200 is 2.0, etc. */
+               ZoomStyle zoom_style;
                gboolean use_clutter_renderer;
 
                gboolean use_custom_border_color_in_fullscreen;
                gboolean use_custom_border_color;
                GdkColor border_color;
+               GdkColor alpha_color_1;
+               GdkColor alpha_color_2;
+
+               gint tile_size;
        } image;
 
        /* thumbnails */
@@ -85,6 +177,10 @@ struct _ConfOptions
                gboolean spec_standard;
                guint quality;
                gboolean use_exif;
+               gboolean use_color_management;
+               gboolean use_ft_metadata;
+               gint collection_preview;
+//             gboolean use_ft_metadata_small;
        } thumbnails;
 
        /* file filtering */
@@ -115,12 +211,13 @@ struct _ConfOptions
        struct {
                SortType method;
                gboolean ascending;
-               gboolean case_sensitive; /* file sorting method (case) */
+               gboolean case_sensitive; /**< file sorting method (case) */
+               gboolean natural;
        } file_sort;
 
        /* slideshow */
        struct {
-               gint delay;     /* in tenths of a second */
+               gint delay;     /**< in tenths of a second */
                gboolean random;
                gboolean repeat;
        } slideshow;
@@ -163,7 +260,7 @@ struct _ConfOptions
                gchar *screen_file;
                gboolean use_image;
                gboolean use_x11_screen_profile;
-
+               gint render_intent;
        } color_profile;
 
        /* Helpers programs */
@@ -193,6 +290,7 @@ struct _ConfOptions
                gboolean confirm_on_dir_change;
                gboolean keywords_case_sensitive;
                gboolean write_orientation;
+               gboolean sidecar_extended_name;
        } metadata;
 
        /* Stereo */
@@ -203,7 +301,11 @@ struct _ConfOptions
                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 */
+               /**
+                * @struct tmp
+                * options in this struct are packed to mode and fsmode entries
+                */
+               struct {
                        gboolean mirror_right;
                        gboolean mirror_left;
                        gboolean flip_right;
@@ -218,10 +320,70 @@ struct _ConfOptions
                        gboolean fs_temp_disable;
                } tmp;
        } stereo;
+
+       /* External preview extraction */
+       struct {
+               gboolean enable;
+               gchar *select; /**< path to executable */
+               gchar *extract; /**< path to executable */
+       } external_preview;
+
+       /**
+        * @struct cp_mv_rn
+        * 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;
+               gboolean timer_data;
+       } log_window;
+
+       /* star rating */
+       struct {
+               gunichar star;
+               gunichar rejected;
+       } star_rating;
+
+       /* Printer */
+       struct {
+               gchar *image_font;
+               gchar *page_font;
+               gboolean show_image_text;
+               gboolean show_page_text;
+               gchar *page_text;
+               gint image_text_position;
+               gint page_text_position;
+               gchar *template_string;
+       } printer;
+
+       /* Threads */
+       struct {
+               gint duplicates;
+       } threads;
+
+       gchar *mouse_button_8; /**< user-definable mouse buttons */
+       gchar *mouse_button_9; /**< user-definable mouse buttons */
+
+       gboolean class_filter[FILE_FORMAT_CLASSES]; /**< class file filter */
+
+       gboolean read_metadata_in_idle;
+
+       gboolean disable_gpu; /**< GPU - see main.c */
+       gboolean override_disable_gpu; /**< GPU - see main.c */
+
+       GList *disabled_plugins;
 };
 
-ConfOptions *options;
-CommandLine *command_line;
+extern ConfOptions *options;
+extern CommandLine *command_line;
 
 ConfOptions *init_options(ConfOptions *options);
 void setup_default_options(ConfOptions *options);