Split file src/keybind.[ch] to lib/keybind.[ch] and src/keybind-defaults.[ch].
[midnight-commander.git] / src / main.h
blob7437430980bb7ec85d9fd7b6793513bc4dc81127
1 /** \file main.h
2 * \brief Header: this is a main module header
3 */
5 #ifndef MC__MAIN_H
6 #define MC__MAIN_H
8 #include "lib/global.h"
9 #include "keybind-defaults.h"
11 /*** typedefs(not structures) and defined constants **********************************************/
13 #define MENU_PANEL (is_right ? right_panel : left_panel)
14 #define MENU_PANEL_IDX (is_right ? 1 : 0)
15 #define SELECTED_IS_PANEL (get_display_type (is_right ? 1 : 0) == view_listing)
17 /*** enums ***************************************************************************************/
19 /* run mode and params */
20 typedef enum
22 MC_RUN_FULL = 0,
23 MC_RUN_EDITOR,
24 MC_RUN_VIEWER,
25 MC_RUN_DIFFVIEWER
26 } mc_run_mode_t;
28 /* If true, after executing a command, wait for a keystroke */
29 enum
30 { pause_never, pause_on_dumb_terminals, pause_always };
32 enum cd_enum
34 cd_parse_command,
35 cd_exact
39 /*** structures declarations (and typedefs of structures)*****************************************/
41 struct WButtonBar;
43 struct mc_fhl_struct;
45 /*** global variables defined in .c file *********************************************************/
47 extern mc_run_mode_t mc_run_mode;
49 * MC_RUN_FULL: dir for left panel
50 * MC_RUN_EDITOR: file to edit
51 * MC_RUN_VIEWER: file to view
52 * MC_RUN_DIFFVIEWER: first file to compare
54 extern char *mc_run_param0;
56 * MC_RUN_FULL: dir for right panel
57 * MC_RUN_EDITOR: unused
58 * MC_RUN_VIEWER: unused
59 * MC_RUN_DIFFVIEWER: second file to compare
61 extern char *mc_run_param1;
63 extern int quote;
64 extern volatile int quit;
66 /* See main.c for details on these variables */
67 extern int auto_menu;
68 extern int pause_after_run;
69 extern int auto_save_setup;
70 extern int use_internal_view;
71 extern int use_internal_edit;
72 extern int clear_before_exec;
74 #ifdef HAVE_CHARSET
75 extern int source_codepage;
76 extern int default_source_codepage;
77 extern int display_codepage;
78 extern char *autodetect_codeset;
79 extern gboolean is_autodetect_codeset_enabled;
80 #else
81 extern int eight_bit_clean;
82 extern int full_eight_bits;
83 #endif /* !HAVE_CHARSET */
85 extern char *clipboard_store_path;
86 extern char *clipboard_paste_path;
88 extern int utf8_display;
90 extern int fast_refresh;
91 extern int drop_menus;
92 extern int cd_symlinks;
93 extern int show_all_if_ambiguous;
94 extern int update_prompt; /* To comunicate with subshell */
95 extern int safe_delete;
96 extern int confirm_delete;
97 extern int confirm_directory_hotlist_delete;
98 extern int confirm_execute;
99 extern int confirm_exit;
100 extern int confirm_overwrite;
101 extern int confirm_history_cleanup;
102 extern int confirm_view_dir;
103 extern int boot_current_is_left;
104 extern int use_file_to_check_type;
105 extern int vfs_use_limit;
106 extern int only_leading_plus_minus;
107 extern int output_starts_shell;
108 extern int midnight_shutdown;
109 extern char *shell;
110 extern int auto_fill_mkdir_name;
111 /* Ugly hack in order to distinguish between left and right panel in menubar */
112 extern int is_right; /* If the selected menu was the right */
114 extern const char *mc_prompt;
115 extern char *mc_home;
116 extern char *mc_home_alt;
118 extern struct mc_fhl_struct *mc_filehighlight;
120 /*** declarations of public functions ************************************************************/
122 void toggle_show_hidden (void);
124 void subshell_chdir (const char *command);
126 void midnight_set_buttonbar (struct WButtonBar *b);
128 #ifdef HAVE_SUBSHELL_SUPPORT
129 void do_update_prompt (void);
130 int load_prompt (int fd, void *unused);
131 #endif
133 int do_cd (const char *new_dir, enum cd_enum cd_type);
134 void sort_cmd (void);
135 void change_panel (void);
136 void save_cwds_stat (void);
137 gboolean quiet_quit_cmd (void); /* For cmd.c and command.c */
139 void touch_bar (void);
140 void update_xterm_title_path (void);
141 void load_hint (int force);
143 void print_vfs_message (const char *msg, ...) __attribute__ ((format (__printf__, 1, 2)));
145 char *get_mc_lib_dir (void);
147 void update_menu (void);
149 char *remove_encoding_from_path (const char *);
151 /*** inline functions ****************************************************************************/
152 #endif /* MC__MAIN_H */