mc/src/key.h
Roland Illig e792cffb8d * *.h: Renamed multiple inclusion guards that started with a
double underscore. Added #includes for dependent files.
	* popt.c: Likewise.
	* popthelp.c: Likewise.
	* tree.c: Moved a macro from tree.h to here, as it is useless
	outside tree.c.
2004-12-03 19:17:46 +00:00

83 lines
1.9 KiB
C

#ifndef MC_KEY_H
#define MC_KEY_H
void init_key (void);
void init_key_input_fd (void);
void done_key (void);
struct Gpm_Event;
int get_event (struct Gpm_Event *event, int redo_event, int block);
int is_idle (void);
int mi_getch (void);
/* Possible return values from get_event: */
#define EV_MOUSE -2
#define EV_NONE -1
/*
* Internal representation of the key modifiers. It is used in the
* sequence tables and the keycodes in the mc sources.
*/
#define KEY_M_SHIFT 0x1000
#define KEY_M_ALT 0x2000
#define KEY_M_CTRL 0x4000
#define KEY_M_MASK 0x7000
extern int double_click_speed;
extern int old_esc_mode;
extern int irix_fn_keys;
extern int use_8th_bit_as_meta;
/* While waiting for input, the program can select on more than one file */
typedef int (*select_fn)(int fd, void *info);
/* Channel manipulation */
void add_select_channel (int fd, select_fn callback, void *info);
void delete_select_channel (int fd);
void remove_select_channel (int fd);
/* Activate/deactivate the channel checking */
void channels_up (void);
void channels_down (void);
/* Abort/Quit chars */
int is_abort_char (int c);
int is_quit_char (int c);
#define XCTRL(x) (KEY_M_CTRL | ((x) & 31))
#define ALT(x) (KEY_M_ALT | (unsigned int)(x))
/* To define sequences and return codes */
#define MCKEY_NOACTION 0
#define MCKEY_ESCAPE 1
/* Return code for the mouse sequence */
#define MCKEY_MOUSE -2
int define_sequence (int code, const char *seq, int action);
/* internally used in key.c, defined in keyxtra.c */
void load_xtra_key_defines (void);
/* Learn a single key */
char *learn_key (void);
/* Returns a key code (interpreted) */
int get_key_code (int nodelay);
typedef const struct {
int code;
const char *name;
const char *longname;
} key_code_name_t;
extern key_code_name_t key_name_conv_tab [];
/* Set keypad mode (xterm and linux console only) */
void numeric_keypad_mode (void);
void application_keypad_mode (void);
#endif