diff options
Diffstat (limited to 'src/options.h')
-rw-r--r-- | src/options.h | 418 |
1 files changed, 316 insertions, 102 deletions
diff --git a/src/options.h b/src/options.h index 0c60c9b..74c12cd 100644 --- a/src/options.h +++ b/src/options.h @@ -1,6 +1,7 @@ /* options.h Copyright (C) 1999-2003 Tom Gilbert. +Copyright (C) 2010-2024 Birte Kristina Friesel. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to @@ -26,112 +27,325 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #ifndef OPTIONS_H #define OPTIONS_H -struct __fehoptions -{ - unsigned char multiwindow; - unsigned char montage; - unsigned char collage; - unsigned char index; - unsigned char index_show_name; - unsigned char index_show_dim; - unsigned char index_show_size; - unsigned char thumbs; - unsigned char slideshow; - unsigned char recursive; - unsigned char output; - unsigned char verbose; - unsigned char display; - unsigned char bg; - unsigned char alpha; - unsigned char alpha_level; - unsigned char aspect; - unsigned char stretch; - unsigned char keep_http; - unsigned char borderless; - unsigned char randomize; - unsigned char no_jump_on_resort; - unsigned char full_screen; - unsigned char auto_zoom; - unsigned char draw_filename; - unsigned char list; - unsigned char quiet; - unsigned char preload; - unsigned char loadables; - unsigned char unloadables; - unsigned char reverse; - unsigned char no_menus; - unsigned char scale_down; - unsigned char builtin_http; - unsigned char wget_timestamp; - unsigned char bgmode; - unsigned char xinerama; - unsigned char screen_clip; - unsigned char hide_pointer; - unsigned char fmmode; - unsigned char draw_actions; - unsigned char cache_thumbnails; - unsigned char cycle_once; - - char *output_file; - char *output_dir; - char *bg_file; - char *font; - char *title_font; - char *title; - char *thumb_title; - char *actions[10]; - char *fontpath; - char *filelistfile; - char *menu_font; - char *customlist; - char *menu_bg; - char *image_bg; - char *rcfile; - char *menu_style; - char *caption_path; - - gib_style *menu_style_l; - - unsigned char next_button; - unsigned char zoom_button; - unsigned char menu_button; - unsigned char menu_ctrl_mask; - - unsigned char rotate_button; - unsigned char blur_button; - unsigned char reload_button; - unsigned char no_rotate_ctrl_mask; - unsigned char no_blur_ctrl_mask; - unsigned char no_pan_ctrl_mask; - - int thumb_w; - int thumb_h; - int limit_w; - int limit_h; - int reload; - int sort; - int debug_level; - int geom_flags; - int geom_x; - int geom_y; - int geom_w; - int geom_h; - int default_zoom; - int menu_border; - unsigned char adjust_reload; - unsigned int start_list_at; - - unsigned char mode; - unsigned char paused; - - double slideshow_delay; - - Imlib_Font menu_fn; +enum on_last_slide_action { + ON_LAST_SLIDE_RESUME = 0, + ON_LAST_SLIDE_QUIT, + ON_LAST_SLIDE_HOLD +}; + +struct __fehoptions { + unsigned char multiwindow; + unsigned char montage; + unsigned char index; + unsigned char thumbs; + unsigned char slideshow; + unsigned char recursive; + unsigned char output; + unsigned char verbose; + unsigned char display; + unsigned char bg; + unsigned char alpha; + unsigned char alpha_level; + unsigned char aspect; + unsigned char stretch; + unsigned char keep_http; + unsigned char use_conversion_cache; + unsigned char borderless; + unsigned char randomize; + unsigned char jump_on_resort; + unsigned char full_screen; + unsigned char draw_filename; +#ifdef HAVE_LIBEXIF + unsigned char draw_exif; + unsigned char auto_rotate; +#endif +#ifdef HAVE_INOTIFY + unsigned char auto_reload; + int inotify_fd; +#endif + unsigned char list; + unsigned char quiet; + unsigned char preload; + unsigned char loadables; + unsigned char unloadables; + unsigned char reverse; + unsigned char no_menus; + unsigned char scale_down; + unsigned char bgmode; + unsigned char xinerama; + unsigned char screen_clip; + unsigned char hide_pointer; + unsigned char draw_actions; + unsigned char draw_info; + unsigned char cache_thumbnails; + unsigned char on_last_slide; + unsigned char hold_actions[10]; + unsigned char text_bg; + unsigned char no_fehbg; + unsigned char keep_zoom_vp; + unsigned char insecure_ssl; + unsigned char filter_by_dimensions; + unsigned char edit; + + char *output_file; + char *output_dir; + char *bg_file; + char *image_bg; + char *font; + char *title_font; + char *title; + char *thumb_title; + char *actions[10]; + char *action_titles[10]; + char *fontpath; + char *filelistfile; + char *menu_font; + char *customlist; + char *caption_path; + char *start_list_at; + char *info_cmd; + char *index_info; + + int force_aliasing; + int tap_zones; + int thumb_w; + int thumb_h; + int limit_w; + int limit_h; + unsigned int thumb_redraw; + double reload; + int sort; + int version_sort; + int debug; + int geom_enabled; + int geom_flags; + int geom_x; + int geom_y; + unsigned int geom_w; + unsigned int geom_h; + int offset_flags; + int offset_x; + int offset_y; + int default_zoom; + int zoom_mode; + double zoom_rate; + unsigned char adjust_reload; + int xinerama_index; + char *x11_class; + unsigned long int x11_windowid; + + /* signed in case someone wants to invert scrolling real quick */ + int scroll_step; + + // imlib cache size in mebibytes + int cache_size; + + unsigned int min_width, min_height, max_width, max_height; + + unsigned char mode; + unsigned char paused; + + double slideshow_delay; + + signed int conversion_timeout; + + Imlib_Font menu_fn; +}; + +enum __feh_option { +OPTION_debug = '+', +OPTION_scale_down = '.', +OPTION_max_dimension = '<', +OPTION_min_dimension = '>', +OPTION_title_font = '@', +OPTION_action = 'A', +OPTION_image_bg = 'B', +OPTION_fontpath = 'C', +OPTION_slideshow_delay = 'D', +OPTION_thumb_height = 'E', +OPTION_fullscreen = 'F', +OPTION_draw_actions = 'G', +OPTION_limit_height = 'H', +OPTION_fullindex = 'I', +OPTION_thumb_redraw = 'J', +OPTION_caption_path = 'K', +OPTION_customlist = 'L', +OPTION_menu_font = 'M', +OPTION_no_menus = 'N', +OPTION_output_only = 'O', +OPTION_cache_thumbnails = 'P', +OPTION_reload = 'R', +OPTION_sort = 'S', +OPTION_theme = 'T', +OPTION_loadable = 'U', +OPTION_verbose = 'V', +OPTION_limit_width = 'W', +OPTION_ignore_aspect = 'X', +OPTION_hide_pointer = 'Y', +OPTION_auto_zoom = 'Z', +OPTION_title = '^', +OPTION_alpha = 'a', +OPTION_bg = 'b', +OPTION_draw_filename = 'd', +OPTION_font = 'e', +OPTION_filelist = 'f', +OPTION_geometry = 'g', +OPTION_help = 'h', +OPTION_index = 'i', +OPTION_output_dir = 'j', +OPTION_keep_http = 'k', +OPTION_list = 'l', +OPTION_montage = 'm', +OPTION_reverse = 'n', +OPTION_output = 'o', +OPTION_preload = 'p', +OPTION_quiet = 'q', +OPTION_recursive = 'r', +OPTION_stretch = 's', +OPTION_thumbnails = 't', +OPTION_unloadable = 'u', +OPTION_version = 'v', +OPTION_multiwindow = 'w', +OPTION_borderless = 'x', +OPTION_thumb_width = 'y', +OPTION_randomize = 'z', +OPTION_start_at = '|', +OPTION_thumb_title = '~', +OPTION_bg_title, +OPTION_bg_center, +OPTION_bg_scale, +OPTION_bg_fill, +OPTION_bg_max, +OPTION_zoom, +OPTION_zoom_step, +OPTION_zoom_in_rate, +OPTION_zoom_out_rate, +OPTION_keep_zoom_vp, +OPTION_no_screen_clip, +OPTION_index_info, +OPTION_magick_timeout, +OPTION_action1, +OPTION_action2, +OPTION_action3, +OPTION_action4, +OPTION_action5, +OPTION_action6, +OPTION_action7, +OPTION_action8, +OPTION_action9, +OPTION_no_jump_on_resort, +OPTION_edit, +OPTION_draw_exif, +OPTION_auto_rotate, +OPTION_no_xinerama, +OPTION_draw_tinted, +OPTION_info, +OPTION_tap_zones, +OPTION_force_aliasing, +OPTION_no_fehbg, +OPTION_scroll_step, +OPTION_xinerama_index, +OPTION_insecure, +OPTION_no_recursive, +OPTION_cache_size, +OPTION_on_last_slide, +OPTION_conversion_timeout, +OPTION_version_sort, +OPTION_offset, +OPTION_auto_reload, +OPTION_class, +OPTION_no_conversion_cache, +OPTION_window_id, +}; + +//typedef enum __fehoption fehoption; + +struct __fehkey { + unsigned int keysyms[3]; + unsigned int keystates[3]; + unsigned int state; + unsigned int button; + char *name; +}; + +enum key_action { + EVENT_menu_close = 0, + EVENT_menu_parent, + EVENT_menu_down, + EVENT_menu_up, + EVENT_menu_child, + EVENT_menu_select, + EVENT_scroll_left, + EVENT_scroll_right, + EVENT_scroll_down, + EVENT_scroll_up, + EVENT_scroll_left_page, + EVENT_scroll_right_page, + EVENT_scroll_down_page, + EVENT_scroll_up_page, + EVENT_prev_img, + EVENT_next_img, + EVENT_jump_back, + EVENT_jump_fwd, + EVENT_prev_dir, + EVENT_next_dir, + EVENT_jump_random, + EVENT_quit, + EVENT_close, + EVENT_remove, + EVENT_delete, + EVENT_jump_first, + EVENT_jump_last, + EVENT_action_0, + EVENT_action_1, + EVENT_action_2, + EVENT_action_3, + EVENT_action_4, + EVENT_action_5, + EVENT_action_6, + EVENT_action_7, + EVENT_action_8, + EVENT_action_9, + EVENT_zoom_in, + EVENT_zoom_out, + EVENT_zoom_default, + EVENT_zoom_fit, + EVENT_zoom_fill, + EVENT_size_to_image, + EVENT_render, + EVENT_toggle_actions, + EVENT_toggle_aliasing, + EVENT_toggle_auto_zoom, +#ifdef HAVE_LIBEXIF + EVENT_toggle_exif, +#endif + EVENT_toggle_filenames, + EVENT_toggle_info, + EVENT_toggle_pointer, + EVENT_toggle_caption, + EVENT_toggle_pause, + EVENT_toggle_menu, + EVENT_toggle_fullscreen, + EVENT_reload_image, + EVENT_save_image, + EVENT_save_filelist, + EVENT_orient_1, + EVENT_orient_3, + EVENT_flip, + EVENT_mirror, + EVENT_reload_minus, + EVENT_reload_plus, + EVENT_toggle_keep_vp, + EVENT_toggle_fixed_geometry, + EVENT_pan, + EVENT_zoom, + EVENT_blur, + EVENT_rotate, + EVENT_LIST_END }; void init_parse_options(int argc, char **argv); char *feh_string_normalize(char *str); -void feh_create_default_config(char *rcfile); extern fehoptions opt; |