1/*	SCCS Id: @(#)wintype.h	3.4	1996/02/18	*/
2/* Copyright (c) David Cohrs, 1991				  */
3/* NetHack may be freely redistributed.  See license for details. */
4
5#ifndef WINTYPE_H
6#define WINTYPE_H
7
8typedef int winid;		/* a window identifier */
9
10/* generic parameter - must not be any larger than a pointer */
11typedef union any {
12    genericptr_t a_void;
13    struct obj *a_obj;
14    int  a_int;
15    char a_char;
16    schar a_schar;
17    /* add types as needed */
18} anything;
19#define ANY_P union any /* avoid typedef in prototypes */
20			/* (buggy old Ultrix compiler) */
21
22/* menu return list */
23typedef struct mi {
24    anything item;		/* identifier */
25    long count;			/* count */
26} menu_item;
27#define MENU_ITEM_P struct mi
28
29/* select_menu() "how" argument types */
30#define PICK_NONE 0	/* user picks nothing (display only) */
31#define PICK_ONE  1	/* only pick one */
32#define PICK_ANY  2	/* can pick any amount */
33
34/* window types */
35/* any additional port specific types should be defined in win*.h */
36#define NHW_MESSAGE 1
37#define NHW_STATUS  2
38#define NHW_MAP     3
39#define NHW_MENU    4
40#define NHW_TEXT    5
41
42/* attribute types for putstr; the same as the ANSI value, for convenience */
43#define ATR_NONE    0
44#define ATR_BOLD    1
45#define ATR_DIM     2
46#define ATR_ULINE   4
47#define ATR_BLINK   5
48#define ATR_INVERSE 7
49
50/* nh_poskey() modifier types */
51#define CLICK_1     1
52#define CLICK_2     2
53
54/* invalid winid */
55#define WIN_ERR ((winid) -1)
56
57/* menu window keyboard commands (may be mapped) */
58#define MENU_FIRST_PAGE		'^'
59#define MENU_LAST_PAGE		'|'
60#define MENU_NEXT_PAGE		'>'
61#define MENU_PREVIOUS_PAGE	'<'
62#define MENU_SELECT_ALL		'.'
63#define MENU_UNSELECT_ALL	'-'
64#define MENU_INVERT_ALL		'@'
65#define MENU_SELECT_PAGE	','
66#define MENU_UNSELECT_PAGE	'\\'
67#define MENU_INVERT_PAGE	'~'
68#define MENU_SEARCH		':'
69
70
71#endif /* WINTYPE_H */
72