/*
* keys.h: header for keys.c
*
* Written By Michael Sandrof
*
* Copyright (c) 1990 Michael Sandrof.
* Copyright (c) 1991, 1992 Troy Rollo.
* Copyright (c) 1992-2005 Matthew R. Green.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. The name of the author may not be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
/*
* @(#)$eterna: keys.h,v 1.30 2006/07/25 11:11:06 mrg Exp $
*/
#ifndef __keys_h_
#define __keys_h_
/* KeyMap: the structure of the irc keymaps */
typedef struct
{
int index;
u_char changed;
int global;
u_char *stuff;
} KeyMap;
/* KeyMapNames: the structure of the keymap to realname array */
typedef struct
{
char *name;
void (*func)(u_int, u_char *);
} KeyMapNames;
extern KeyMap keys[],
meta1_keys[],
meta2_keys[],
meta3_keys[],
meta4_keys[],
meta5_keys[],
meta6_keys[],
meta7_keys[],
meta8_keys[];
extern KeyMapNames key_names[];
void (* get_send_line(void))(u_int, u_char *);
void save_bindings(FILE *, int);
void change_send_line(void (*)(u_int, u_char *));
void bindcmd(u_char *, u_char *, u_char *);
void rbindcmd(u_char *, u_char *, u_char *);
void parsekeycmd(u_char *, u_char *, u_char *);
void typecmd(u_char *, u_char *, u_char *);
enum {
BACKSPACE = 0,
BACKWARD_CHARACTER,
BACKWARD_HISTORY,
BACKWARD_WORD,
BEGINNING_OF_LINE,
CLEAR_SCREEN,
COMMAND_COMPLETION,
DELETE_CHARACTER,
DELETE_NEXT_WORD,
DELETE_PREVIOUS_WORD,
END_OF_LINE,
ENTER_DIGRAPH,
ENTER_MENU,
ERASE_LINE,
ERASE_TO_BEG_OF_LINE,
ERASE_TO_END_OF_LINE,
FORWARD_CHARACTER,
FORWARD_HISTORY,
FORWARD_WORD,
META1_CHARACTER,
META2_CHARACTER,
META3_CHARACTER,
META4_CHARACTER,
META5_CHARACTER,
META6_CHARACTER,
META7_CHARACTER,
META8_CHARACTER,
NEXT_WINDOW,
NOTHING,
PARSE_COMMAND,
PREVIOUS_WINDOW,
QUIT_IRC,
QUOTE_CHARACTER,
REFRESH_INPUTLINE,
REFRESH_SCREEN,
SCROLL_BACKWARD,
SCROLL_END,
SCROLL_FORWARD,
SCROLL_START,
SELF_INSERT,
SEND_LINE,
STOP_IRC,
SWAP_LAST_WINDOW,
SWAP_NEXT_WINDOW,
SWAP_PREVIOUS_WINDOW,
SWITCH_CHANNELS,
TOGGLE_INSERT_MODE,
TOGGLE_STOP_SCREEN,
TRANSPOSE_CHARACTERS,
TYPE_TEXT,
UNSTOP_ALL_WINDOWS,
YANK_FROM_CUTBUFFER,
NUMBER_OF_FUNCTIONS,
};
#endif /* __keys_h_ */
syntax highlighted by Code2HTML, v. 0.9.1