Ticket #391 (history is broken).
[midnight-commander.git] / src / main.h
blob588ec5b97c990c9f2276af1c78d8d2b17b83220d
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 "menu.h"
10 #include "panel.h"
11 #include "widget.h"
13 /* Toggling functions */
14 void toggle_fast_reload (void);
15 void toggle_mix_all_files (void);
16 void toggle_show_backup (void);
17 void toggle_show_hidden (void);
19 #define UP_OPTIMIZE 0
20 #define UP_RELOAD 1
21 #define UP_ONLY_CURRENT 2
23 #define UP_KEEPSEL ((char *) -1)
25 extern int quote;
26 extern volatile int quit;
28 /* If true, after executing a command, wait for a keystroke */
29 enum { pause_never, pause_on_dumb_terminals, pause_always };
31 void subshell_chdir (const char *command);
33 /* See main.c for details on these variables */
34 extern int mark_moves_down;
35 extern int auto_menu;
36 extern int pause_after_run;
37 extern int auto_save_setup;
38 extern int use_internal_view;
39 extern int use_internal_edit;
40 extern int fast_reload_w;
41 extern int clear_before_exec;
42 extern int mou_auto_repeat;
43 extern char *other_dir;
44 extern int mouse_move_pages;
46 #ifdef HAVE_CHARSET
47 extern int source_codepage;
48 extern int display_codepage;
49 #else
50 extern int eight_bit_clean;
51 extern int full_eight_bits;
52 #endif /* !HAVE_CHARSET */
54 extern int utf8_display;
56 extern int confirm_view_dir;
57 extern int fast_refresh;
58 extern int navigate_with_arrows;
59 extern int force_ugly_line_drawing;
60 extern int drop_menus;
61 extern int cd_symlinks;
62 extern int show_all_if_ambiguous;
63 extern int slow_terminal;
64 extern int update_prompt; /* To comunicate with subshell */
65 extern int safe_delete;
66 extern int confirm_delete;
67 extern int confirm_directory_hotlist_delete;
68 extern int confirm_execute;
69 extern int confirm_exit;
70 extern int confirm_overwrite;
71 extern int force_colors;
72 extern int boot_current_is_left;
73 extern int use_file_to_check_type;
74 extern int vfs_use_limit;
75 extern int alternate_plus_minus;
76 extern int only_leading_plus_minus;
77 extern int output_starts_shell;
78 extern int midnight_shutdown;
79 extern char cmd_buf [512];
80 extern const char *shell;
81 extern int auto_fill_mkdir_name;
82 extern int skip_check_codeset;
83 /* Ugly hack in order to distinguish between left and right panel in menubar */
84 extern int is_right; /* If the selected menu was the right */
85 #define MENU_PANEL (is_right ? right_panel : left_panel)
86 #define MENU_PANEL_IDX (is_right ? 1 : 0)
87 #define SELECTED_IS_PANEL (get_display_type (is_right ? 1 : 0) == view_listing)
89 typedef void (*key_callback) (void);
91 /* The keymaps are of this type */
92 typedef struct {
93 int key_code;
94 key_callback fn;
95 } key_map;
97 void update_panels (int force_update, const char *current_file);
98 void repaint_screen (void);
99 void do_update_prompt (void);
101 enum cd_enum {
102 cd_parse_command,
103 cd_exact
106 int do_cd (const char *new_dir, enum cd_enum cd_type); /* For find.c */
107 void change_panel (void);
108 int load_prompt (int, void *);
109 void save_cwds_stat (void);
110 void quiet_quit_cmd (void); /* For cmd.c and command.c */
112 void touch_bar (void);
113 void update_xterm_title_path (void);
114 void load_hint (int force);
116 void print_vfs_message(const char *msg, ...)
117 __attribute__ ((format (__printf__, 1, 2)));
119 extern const char *prompt;
120 extern const char *edit_one_file;
121 extern char *mc_home;
122 extern char *mc_home_alt;
123 char *get_mc_lib_dir (void);
125 int maybe_cd (int move_up_dir);
126 void do_possible_cd (const char *dir);
128 void done_menu (void);
129 void init_menu (void);
131 char *remove_encoding_from_path (const char *);
133 #define MC_BASE "/.mc/"
135 void directory_history_add (struct WPanel *panel, const char *dir);
136 int do_panel_cd (struct WPanel *panel, const char *new_dir, enum cd_enum cd_type);
138 #endif