Minor optimization of tty_draw_box() function.
[midnight-commander.git] / src / main.h
blob63aab246135dc18dfd090fd846936e76c2472d59
2 /** \file main.h
3 * \brief Header: this is a main module header
4 */
6 #ifndef MC_MAIN_H
7 #define MC_MAIN_H
9 #include "lib/global.h"
10 #include "keybind.h"
12 /* run mode and params */
13 typedef enum
15 MC_RUN_FULL = 0,
16 MC_RUN_EDITOR,
17 MC_RUN_VIEWER,
18 MC_RUN_DIFFVIEWER
19 } mc_run_mode_t;
21 extern mc_run_mode_t mc_run_mode;
23 * MC_RUN_FULL: dir for left panel
24 * MC_RUN_EDITOR: file to edit
25 * MC_RUN_VIEWER: file to view
26 * MC_RUN_DIFFVIEWER: first file to compare
28 extern char *mc_run_param0;
30 * MC_RUN_FULL: dir for right panel
31 * MC_RUN_EDITOR: unused
32 * MC_RUN_VIEWER: unused
33 * MC_RUN_DIFFVIEWER: second file to compare
35 extern char *mc_run_param1;
37 /* Toggling functions */
38 void toggle_fast_reload (void);
39 void toggle_mix_all_files (void);
40 void toggle_show_backup (void);
41 void toggle_show_hidden (void);
42 void toggle_kilobyte_si (void);
44 extern int quote;
45 extern volatile int quit;
47 /* If true, after executing a command, wait for a keystroke */
48 enum { pause_never, pause_on_dumb_terminals, pause_always };
50 void subshell_chdir (const char *command);
52 struct WButtonBar;
54 void midnight_set_buttonbar (struct WButtonBar *b);
56 /* See main.c for details on these variables */
57 extern int mark_moves_down;
58 extern int auto_menu;
59 extern int pause_after_run;
60 extern int auto_save_setup;
61 extern int use_internal_view;
62 extern int use_internal_edit;
63 extern int fast_reload_w;
64 extern int clear_before_exec;
65 extern int mouse_move_pages;
67 extern int option_tab_spacing;
69 extern int quick_search_case_sensitive;
71 #ifdef HAVE_CHARSET
72 extern int source_codepage;
73 extern int default_source_codepage;
74 extern int display_codepage;
75 extern char* autodetect_codeset;
76 extern gboolean is_autodetect_codeset_enabled;
77 #else
78 extern int eight_bit_clean;
79 extern int full_eight_bits;
80 #endif /* !HAVE_CHARSET */
82 extern int utf8_display;
84 extern int fast_refresh;
85 extern int navigate_with_arrows;
86 extern int drop_menus;
87 extern int cd_symlinks;
88 extern int show_all_if_ambiguous;
89 extern int update_prompt; /* To comunicate with subshell */
90 extern int safe_delete;
91 extern int confirm_delete;
92 extern int confirm_directory_hotlist_delete;
93 extern int confirm_execute;
94 extern int confirm_exit;
95 extern int confirm_overwrite;
96 extern int confirm_history_cleanup;
97 extern int confirm_view_dir;
98 extern int boot_current_is_left;
99 extern int use_file_to_check_type;
100 extern int vfs_use_limit;
101 extern int only_leading_plus_minus;
102 extern int output_starts_shell;
103 extern int midnight_shutdown;
104 extern char *shell;
105 extern int auto_fill_mkdir_name;
106 /* Ugly hack in order to distinguish between left and right panel in menubar */
107 extern int is_right; /* If the selected menu was the right */
108 #define MENU_PANEL (is_right ? right_panel : left_panel)
109 #define MENU_PANEL_IDX (is_right ? 1 : 0)
110 #define SELECTED_IS_PANEL (get_display_type (is_right ? 1 : 0) == view_listing)
112 #ifdef USE_INTERNAL_EDIT
113 extern GArray *editor_keymap;
114 extern GArray *editor_x_keymap;
115 #endif
116 extern GArray *viewer_keymap;
117 extern GArray *viewer_hex_keymap;
118 extern GArray *main_keymap;
119 extern GArray *main_x_keymap;
120 extern GArray *panel_keymap;
121 extern GArray *input_keymap;
122 extern GArray *tree_keymap;
123 extern GArray *help_keymap;
124 #ifdef USE_DIFF_VIEW
125 extern GArray *diff_keymap;
126 #endif
128 extern const global_keymap_t *panel_map;
129 extern const global_keymap_t *input_map;
130 extern const global_keymap_t *tree_map;
131 extern const global_keymap_t *help_map;
133 #ifdef USE_DIFF_VIEW
134 extern const global_keymap_t *diff_map;
135 #endif
137 #ifdef HAVE_SUBSHELL_SUPPORT
138 void do_update_prompt (void);
139 int load_prompt (int fd, void *unused);
140 #endif
142 enum cd_enum {
143 cd_parse_command,
144 cd_exact
147 int do_cd (const char *new_dir, enum cd_enum cd_type); /* For find.c */
148 void sort_cmd (void);
149 void change_panel (void);
150 void save_cwds_stat (void);
151 void quiet_quit_cmd (void); /* For cmd.c and command.c */
153 void touch_bar (void);
154 void update_xterm_title_path (void);
155 void load_hint (int force);
157 void print_vfs_message(const char *msg, ...)
158 __attribute__ ((format (__printf__, 1, 2)));
160 extern const char *mc_prompt;
161 extern char *mc_home;
162 extern char *mc_home_alt;
164 struct mc_fhl_struct;
165 extern struct mc_fhl_struct *mc_filehighlight;
167 char *get_mc_lib_dir (void);
169 void done_menu (void);
170 void init_menu (void);
172 char *remove_encoding_from_path (const char *);
174 struct WPanel;
176 void directory_history_add (struct WPanel *panel, const char *dir);
177 int do_panel_cd (struct WPanel *panel, const char *new_dir, enum cd_enum cd_type);
179 #endif /* MC_MAIN_H */