2 * \brief Header: setup loading/saving
10 #include "lib/global.h" /* GError */
12 #include "filemanager/layout.h" /* panel_view_mode_t */
13 #include "filemanager/panel.h" /* WPanel */
15 /*** typedefs(not structures) and defined constants **********************************************/
17 /* TAB length for editor and viewer */
18 #define DEFAULT_TAB_SPACING 8
20 #define MAX_MACRO_LENGTH 1024
22 /*** enums ***************************************************************************************/
26 QSEARCH_CASE_INSENSITIVE
= 0, /* quick search in case insensitive mode */
27 QSEARCH_CASE_SENSITIVE
= 1, /* quick search in case sensitive mode */
28 QSEARCH_PANEL_CASE
= 2, /* quick search get value from panel case_sensitive */
32 /*** structures declarations (and typedefs of structures)*****************************************/
34 /* panels ini options; [Panels] section */
37 gboolean show_mini_info
; /* If true, show the mini-info on the panel */
38 gboolean kilobyte_si
; /* If TRUE, SI units (1000 based) will be used for larger units
39 * (kilobyte, megabyte, ...). If FALSE, binary units (1024 based) will be used */
40 gboolean mix_all_files
; /* If FALSE then directories are shown separately from files */
41 gboolean show_backups
; /* If TRUE, show files ending in ~ */
42 gboolean show_dot_files
; /* If TRUE, show files starting with a dot */
43 gboolean fast_reload
; /* If TRUE then use stat() on the cwd to determine directory changes */
44 gboolean fast_reload_msg_shown
; /* Have we shown the fast-reload warning in the past? */
45 gboolean mark_moves_down
; /* If TRUE, marking a files moves the cursor down */
46 gboolean reverse_files_only
; /* If TRUE, only selection of files is inverted */
47 gboolean auto_save_setup
;
48 gboolean navigate_with_arrows
; /* If TRUE: l&r arrows are used to chdir if the input line is empty */
49 gboolean scroll_pages
; /* If TRUE, panel is scrolled by half the display when the cursor reaches
50 the end or the beginning of the panel */
51 gboolean scroll_center
; /* If TRUE, scroll when the cursor hits the middle of the panel */
52 gboolean mouse_move_pages
; /* Scroll page/item using mouse wheel */
53 gboolean filetype_mode
; /* If TRUE then add per file type hilighting */
54 gboolean permission_mode
; /* If TRUE, we use permission hilighting */
55 qsearch_mode_t qsearch_mode
; /* Quick search mode */
56 gboolean torben_fj_mode
; /* If TRUE, use some usability hacks by Torben */
57 panel_select_flags_t select_flags
; /* Select/unselect file flags */
60 typedef struct macro_action_t
66 typedef struct macros_t
74 /*** global variables defined in .c file *********************************************************/
76 /* global paremeters */
77 extern char *global_profile_name
;
78 extern int confirm_delete
;
79 extern int confirm_directory_hotlist_delete
;
80 extern int confirm_execute
;
81 extern int confirm_exit
;
82 extern int confirm_overwrite
;
83 extern int confirm_view_dir
;
84 extern int safe_delete
;
85 extern int clear_before_exec
;
87 extern int drop_menus
;
89 extern int setup_copymove_persistent_attr
;
90 extern int classic_progressbar
;
91 extern int easy_patterns
;
92 extern int option_tab_spacing
;
93 extern int auto_save_setup
;
94 extern int only_leading_plus_minus
;
95 extern int cd_symlinks
;
96 extern int auto_fill_mkdir_name
;
97 extern int output_starts_shell
;
98 extern int use_file_to_check_type
;
99 extern int file_op_compute_totals
;
100 extern int editor_ask_filename_before_edit
;
102 extern panels_options_t panels_options
;
104 extern panel_view_mode_t startup_left_mode
;
105 extern panel_view_mode_t startup_right_mode
;
106 extern gboolean boot_current_is_left
;
107 extern int use_internal_view
;
108 extern int use_internal_edit
;
111 extern int default_source_codepage
;
112 extern char *autodetect_codeset
;
113 extern gboolean is_autodetect_codeset_enabled
;
114 #endif /* !HAVE_CHARSET */
117 extern char *spell_language
;
120 /* Value of "other_dir" key in ini file */
121 extern char *saved_other_dir
;
123 /* If set, then print to the given file the last directory we were at */
124 extern char *last_wd_string
;
127 /* Set to TRUE to suppress printing the last directory */
128 extern gboolean print_last_revert
;
130 #ifdef USE_INTERNAL_EDIT
131 /* index to record_macro_buf[], -1 if not recording a macro */
132 extern int macro_index
;
135 extern struct macro_action_t record_macro_buf
[MAX_MACRO_LENGTH
];
137 extern GArray
*macros_list
;
138 #endif /* USE_INTERNAL_EDIT */
140 extern int saving_setup
;
142 /*** declarations of public functions ************************************************************/
144 const char *setup_init (void);
145 void load_setup (void);
146 gboolean
save_setup (gboolean save_options
, gboolean save_panel_options
);
147 void done_setup (void);
148 void setup_save_config_show_error (const char *filename
, GError
** mcerror
);
150 void load_key_defs (void);
151 #ifdef ENABLE_VFS_FTP
152 char *load_anon_passwd (void);
153 #endif /* ENABLE_VFS_FTP */
155 void load_keymap_defs (gboolean load_from_file
);
156 void free_keymap_defs (void);
158 void panel_load_setup (WPanel
* panel
, const char *section
);
159 void panel_save_setup (WPanel
* panel
, const char *section
);
161 /*** inline functions ****************************************************************************/
163 #endif /* MC__SETUP_H */