1/*	SCCS Id: @(#)wingem.h	3.4	1999/12/10	*/
2/* Copyright (c) Christian Bressler, 1999				  */
3/* NetHack may be freely redistributed.  See license for details. */
4
5#ifndef WINGEM_H
6#define WINGEM_H
7
8#define E extern
9
10/* menu structure */
11typedef struct Gmi{
12	struct Gmi *Gmi_next;
13	int Gmi_glyph;
14	long Gmi_identifier;
15	char Gmi_accelerator, Gmi_groupacc;
16	int Gmi_attr;
17	char *Gmi_str;
18	long Gmi_count;
19	int Gmi_selected;
20} Gem_menu_item;
21
22#define MAXWIN 20		/* maximum number of windows, cop-out */
23
24extern struct window_procs Gem_procs;
25
26/* ### wingem1.c ### */
27#ifdef CLIPPING
28E void NDECL(setclipped);
29#endif
30E void FDECL(docorner, (int, int));
31E void NDECL(end_glyphout);
32E void FDECL(g_putch, (int));
33E void NDECL(win_Gem_init);
34E int NDECL(mar_gem_init);
35E char NDECL(mar_ask_class);
36E char * NDECL(mar_ask_name);
37E int FDECL(mar_create_window, (int));
38E void FDECL(mar_destroy_nhwindow, (int));
39E void FDECL(mar_print_glyph, (int, int, int, int));
40E void FDECL(mar_print_line, (int, int, int, char *));
41E void FDECL(mar_set_message, (char *, char *, char *));
42E Gem_menu_item *NDECL(mar_hol_inv);
43E void FDECL(mar_set_menu_type,(int));
44E void NDECL(mar_reverse_menu);
45E void FDECL(mar_set_menu_title, (const char *));
46E void NDECL(mar_set_accelerators);
47E void FDECL(mar_add_menu, (winid, Gem_menu_item *));
48E void FDECL(mar_change_menu_2_text, (winid));
49E void FDECL(mar_add_message, (const char *));
50E void NDECL(mar_status_dirty);
51E int FDECL(mar_hol_win_type, (int));
52E void NDECL(mar_clear_messagewin);
53E void FDECL(mar_set_no_glyph, (int));
54E void NDECL(mar_map_curs_weiter);
55
56/* external declarations */
57E void FDECL(Gem_init_nhwindows, (int *, char **));
58E void NDECL(Gem_player_selection);
59E void NDECL(Gem_askname);
60E void NDECL(Gem_get_nh_event) ;
61E void FDECL(Gem_exit_nhwindows, (const char *));
62E void FDECL(Gem_suspend_nhwindows, (const char *));
63E void NDECL(Gem_resume_nhwindows);
64E winid FDECL(Gem_create_nhwindow, (int));
65E void FDECL(Gem_clear_nhwindow, (winid));
66E void FDECL(Gem_display_nhwindow, (winid, BOOLEAN_P));
67E void FDECL(Gem_dismiss_nhwindow, (winid));
68E void FDECL(Gem_destroy_nhwindow, (winid));
69E void FDECL(Gem_curs, (winid,int,int));
70E void FDECL(Gem_putstr, (winid, int, const char *));
71E void FDECL(Gem_display_file, (const char *, BOOLEAN_P));
72E void FDECL(Gem_start_menu, (winid));
73E void FDECL(Gem_add_menu, (winid,int,const ANY_P *,
74			CHAR_P,CHAR_P,int,const char *, BOOLEAN_P));
75E void FDECL(Gem_end_menu, (winid, const char *));
76E int FDECL(Gem_select_menu, (winid, int, MENU_ITEM_P **));
77E char FDECL(Gem_message_menu, (CHAR_P,int,const char *));
78E void NDECL(Gem_update_inventory);
79E void NDECL(Gem_mark_synch);
80E void NDECL(Gem_wait_synch);
81#ifdef CLIPPING
82E void FDECL(Gem_cliparound, (int, int));
83#endif
84#ifdef POSITIONBAR
85E void FDECL(Gem_update_positionbar, (char *));
86#endif
87E void FDECL(Gem_print_glyph, (winid,XCHAR_P,XCHAR_P,int));
88E void FDECL(Gem_raw_print, (const char *));
89E void FDECL(Gem_raw_print_bold, (const char *));
90E int NDECL(Gem_nhgetch);
91E int FDECL(Gem_nh_poskey, (int *, int *, int *));
92E void NDECL(Gem_nhbell);
93E int NDECL(Gem_doprev_message);
94E char FDECL(Gem_yn_function, (const char *, const char *, CHAR_P));
95E void FDECL(Gem_getlin, (const char *,char *));
96E int NDECL(Gem_get_ext_cmd);
97E void FDECL(Gem_number_pad, (int));
98E void NDECL(Gem_delay_output);
99#ifdef CHANGE_COLOR
100E void FDECL(Gem_change_color,(int color,long rgb,int reverse));
101E char * NDECL(Gem_get_color_string);
102#endif
103
104/* other defs that really should go away (they're tty specific) */
105E void NDECL(Gem_start_screen);
106E void NDECL(Gem_end_screen);
107
108E void FDECL(genl_outrip, (winid,int));
109
110#undef E
111
112#endif /* WINGEM_H */
113