#ifndef OPTIONS_H
#define OPTIONS_H
+#include <cairo.h>
+#include <gdk/gdk.h>
+#include <glib.h>
+
+#include "typedefs.h"
+
+struct SecureSaveInfo;
+
+#define COLOR_PROFILE_INPUTS 4
+
+/**
+ * @enum DnDAction
+ * drag and drop default action
+ */
+enum DnDAction {
+ DND_ACTION_ASK,
+ DND_ACTION_COPY,
+ DND_ACTION_MOVE
+};
+
+enum ZoomStyle {
+ ZOOM_GEOMETRIC = 0,
+ ZOOM_ARITHMETIC = 1
+};
+
struct ConfOptions
{
/* ui */
gboolean show_predefined_keyword_tree;
gboolean overunderexposed;
gboolean expand_menu_toolbar;
+ gboolean hamburger_menu;
/* various */
gboolean tree_descend_subdirs;
gboolean save_window_workspace;
gboolean tools_restore_state;
gboolean save_dialog_window_positions;
+ gboolean hide_window_decorations;
gboolean show_window_ids;
gint log_window_lines;
gboolean appimage_notifications;
gboolean with_rename;
+ gboolean collections_duplicates;
gboolean collections_on_top;
gboolean hide_window_in_fullscreen;
+ gboolean hide_osd_in_fullscreen;
gchar *help_search_engine;
/* image */
struct {
gboolean exif_rotate_enable;
- guint scroll_reset_method;
+ ScrollReset scroll_reset_method;
gboolean fit_window_to_image;
gboolean limit_window_size;
gint max_window_size;
guint zoom_quality;
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;
+ GdkRGBA border_color;
+ GdkRGBA alpha_color_1;
+ GdkRGBA alpha_color_2;
gint tile_size;
} image;
gboolean use_color_management;
gboolean use_ft_metadata;
gint collection_preview;
-// gboolean use_ft_metadata_small;
} thumbnails;
/* file filtering */
/* file sorting */
struct {
- SortType method;
- gboolean ascending;
gboolean case_sensitive; /**< file sorting method (case) */
- gboolean natural;
} file_sort;
/* slideshow */
gint duplicates;
} threads;
+ /* Selectable bars */
+ struct {
+ gboolean menu_bar;
+ gboolean tool_bar;
+ gboolean status_bar;
+ } selectable_bars;
+
+ /* Alternate similarity algorithm */
+ struct {
+ gboolean enabled;
+ gboolean grayscale; /**< convert fingerprint to greyscale */
+ } alternate_similarity_algorithm;
+
gchar *mouse_button_8; /**< user-definable mouse buttons */
gchar *mouse_button_9; /**< user-definable mouse buttons */
GList *disabled_plugins;
};
+struct CommandLine
+{
+ int argc;
+ gchar **argv;
+ gboolean startup_blank;
+ gboolean startup_full_screen;
+ gboolean startup_in_slideshow;
+ gboolean startup_command_line_collection;
+ gboolean tools_hide;
+ gboolean tools_show;
+ gboolean log_window_show;
+ gchar *path;
+ gchar *file;
+ GList *cmd_list;
+ GList *collection_list;
+ gchar *geometry;
+ gchar *regexp;
+ gchar *log_file;
+ SecureSaveInfo *ssi;
+ gboolean new_instance;
+};
+
extern ConfOptions *options;
extern CommandLine *command_line;
void save_options(ConfOptions *options);
gboolean load_options(ConfOptions *options);
+
+enum StartUpPath {
+ STARTUP_PATH_CURRENT = 0,
+ STARTUP_PATH_LAST,
+ STARTUP_PATH_HOME,
+};
+
+enum SortActionType {
+ BAR_SORT_COPY = 0,
+ BAR_SORT_MOVE,
+ BAR_SORT_FILTER,
+ BAR_SORT_ACTION_COUNT
+};
+
+enum SortModeType {
+ BAR_SORT_MODE_FOLDER = 0,
+ BAR_SORT_MODE_COLLECTION,
+ BAR_SORT_MODE_COUNT
+};
+
+enum SortSelectionType {
+ BAR_SORT_SELECTION_IMAGE = 0,
+ BAR_SORT_SELECTION_SELECTED,
+ BAR_SORT_SELECTION_COUNT
+};
+
+struct LayoutOptions
+{
+ gchar *id;
+
+ gchar *order;
+ gint style;
+
+ DirViewType dir_view_type;
+ FileViewType file_view_type;
+
+ struct {
+ SortType method;
+ gboolean ascend;
+ gboolean case_sensitive;
+ } dir_view_list_sort;
+
+ struct {
+ SortType method;
+ gboolean ascend;
+ gboolean case_sensitive;
+ } file_view_list_sort;
+
+ gboolean show_thumbnails;
+ gboolean show_marks;
+ gboolean show_file_filter;
+ gboolean show_directory_date;
+ gboolean show_info_pixel;
+ gboolean split_pane_sync;
+ gboolean ignore_alpha;
+
+ struct {
+ gint w;
+ gint h;
+ gint x;
+ gint y;
+ gboolean maximized;
+ gint hdivider_pos;
+ gint vdivider_pos;
+ } main_window;
+
+ struct {
+ gint w;
+ gint h;
+ gint x;
+ gint y;
+ gint vdivider_pos;
+ } float_window;
+
+ struct {
+ gint vdivider_pos;
+ } folder_window;
+
+ struct {
+ gint w;
+ gint h;
+ } properties_window;
+
+ struct {
+ guint state;
+ gint histogram_channel;
+ gint histogram_mode;
+ } image_overlay;
+
+ GdkRectangle log_window;
+
+ struct {
+ gint w;
+ gint h;
+ gint x;
+ gint y;
+ gint page_number;
+ } preferences_window;
+
+ struct {
+ gint w;
+ gint h;
+ gint x;
+ gint y;
+ } search_window;
+
+ struct {
+ gint w;
+ gint h;
+ gint x;
+ gint y;
+ } dupe_window;
+
+ struct {
+ gint w;
+ gint h;
+ gint x;
+ gint y;
+ } advanced_exif_window;
+
+ gboolean tools_float;
+ gboolean tools_hidden;
+ gboolean selectable_toolbars_hidden;
+
+ struct {
+ gboolean info;
+ gboolean sort;
+ gboolean tools_float;
+ gboolean tools_hidden;
+ gboolean hidden;
+ } bars_state;
+
+ gchar *home_path;
+ gchar *last_path;
+
+ StartUpPath startup_path;
+
+ gboolean animate;
+ gint workspace;
+
+ SortActionType action;
+ SortModeType mode;
+ SortSelectionType selection;
+ gchar *filter_key;
+};
+
void copy_layout_options(LayoutOptions *dest, const LayoutOptions *src);
void free_layout_options_content(LayoutOptions *dest);
LayoutOptions *init_layout_options(LayoutOptions *options);