Wikia

Wikihack

Source:Winprocs.h

2,032pages on
this wiki
Talk0

Below is the full text to include/winprocs.h from NetHack 3.4.3. To link to a particular line, write [[winprocs.h#line123]], for example.

1.    /*	SCCS Id: @(#)winprocs.h 3.4	2003/01/08	*/
2.    /* Copyright (c) David Cohrs, 1992				  */
3.    /* NetHack may be freely redistributed.  See license for details. */
4.    
The NetHack General Public License applies to screenshots, source code and other content from NetHack.
5.    #ifndef WINPROCS_H
6.    #define WINPROCS_H
7.    
8.    struct window_procs {
9.        const char *name;
10.       unsigned long wincap;	/* window port capability options supported */
11.       unsigned long wincap2;	/* additional window port capability options supported */
12.       void FDECL((*win_init_nhwindows), (int *, char **));
13.       void NDECL((*win_player_selection));
14.       void NDECL((*win_askname));
15.       void NDECL((*win_get_nh_event)) ;
16.       void FDECL((*win_exit_nhwindows), (const char *));
17.       void FDECL((*win_suspend_nhwindows), (const char *));
18.       void NDECL((*win_resume_nhwindows));
19.       winid FDECL((*win_create_nhwindow), (int));
20.       void FDECL((*win_clear_nhwindow), (winid));
21.       void FDECL((*win_display_nhwindow), (winid, BOOLEAN_P));
22.       void FDECL((*win_destroy_nhwindow), (winid));
23.       void FDECL((*win_curs), (winid,int,int));
24.       void FDECL((*win_putstr), (winid, int, const char *));
25.       void FDECL((*win_display_file), (const char *, BOOLEAN_P));
26.       void FDECL((*win_start_menu), (winid));
27.       void FDECL((*win_add_menu), (winid,int,const ANY_P *,
28.   		CHAR_P,CHAR_P,int,const char *, BOOLEAN_P));
29.       void FDECL((*win_end_menu), (winid, const char *));
30.       int FDECL((*win_select_menu), (winid, int, MENU_ITEM_P **));
31.       char FDECL((*win_message_menu), (CHAR_P,int,const char *));
32.       void NDECL((*win_update_inventory));
33.       void NDECL((*win_mark_synch));
34.       void NDECL((*win_wait_synch));
35.   #ifdef CLIPPING
36.       void FDECL((*win_cliparound), (int, int));
37.   #endif
38.   #ifdef POSITIONBAR
39.       void FDECL((*win_update_positionbar), (char *));
40.   #endif
41.       void FDECL((*win_print_glyph), (winid,XCHAR_P,XCHAR_P,int));
42.       void FDECL((*win_raw_print), (const char *));
43.       void FDECL((*win_raw_print_bold), (const char *));
44.       int NDECL((*win_nhgetch));
45.       int FDECL((*win_nh_poskey), (int *, int *, int *));
46.       void NDECL((*win_nhbell));
47.       int NDECL((*win_doprev_message));
48.       char FDECL((*win_yn_function), (const char *, const char *, CHAR_P));
49.       void FDECL((*win_getlin), (const char *,char *));
50.       int NDECL((*win_get_ext_cmd));
51.       void FDECL((*win_number_pad), (int));
52.       void NDECL((*win_delay_output));
53.   #ifdef CHANGE_COLOR
54.       void FDECL((*win_change_color), (int,long,int));
55.   #ifdef MAC
56.       void FDECL((*win_change_background), (int));
57.       short FDECL((*win_set_font_name), (winid, char *));
58.   #endif
59.       char * NDECL((*win_get_color_string));
60.   #endif
61.   
62.       /* other defs that really should go away (they're tty specific) */
63.       void NDECL((*win_start_screen));
64.       void NDECL((*win_end_screen));
65.   
66.       void FDECL((*win_outrip), (winid,int));
67.       void FDECL((*win_preference_update), (const char *));
68.   };
69.   
70.   extern NEARDATA struct window_procs windowprocs;
71.   
72.   /*
73.    * If you wish to only support one window system and not use procedure
74.    * pointers, add the appropriate #ifdef below.
75.    */
76.   
77.   #define init_nhwindows (*windowprocs.win_init_nhwindows)
78.   #define player_selection (*windowprocs.win_player_selection)
79.   #define askname (*windowprocs.win_askname)
80.   #define get_nh_event (*windowprocs.win_get_nh_event)
81.   #define exit_nhwindows (*windowprocs.win_exit_nhwindows)
82.   #define suspend_nhwindows (*windowprocs.win_suspend_nhwindows)
83.   #define resume_nhwindows (*windowprocs.win_resume_nhwindows)
84.   #define create_nhwindow (*windowprocs.win_create_nhwindow)
85.   #define clear_nhwindow (*windowprocs.win_clear_nhwindow)
86.   #define display_nhwindow (*windowprocs.win_display_nhwindow)
87.   #define destroy_nhwindow (*windowprocs.win_destroy_nhwindow)
88.   #define curs (*windowprocs.win_curs)
89.   #define putstr (*windowprocs.win_putstr)
90.   #define display_file (*windowprocs.win_display_file)
91.   #define start_menu (*windowprocs.win_start_menu)
92.   #define add_menu (*windowprocs.win_add_menu)
93.   #define end_menu (*windowprocs.win_end_menu)
94.   #define select_menu (*windowprocs.win_select_menu)
95.   #define message_menu (*windowprocs.win_message_menu)
96.   #define update_inventory (*windowprocs.win_update_inventory)
97.   #define mark_synch (*windowprocs.win_mark_synch)
98.   #define wait_synch (*windowprocs.win_wait_synch)
99.   #ifdef CLIPPING
100.  #define cliparound (*windowprocs.win_cliparound)
101.  #endif
102.  #ifdef POSITIONBAR
103.  #define update_positionbar (*windowprocs.win_update_positionbar)
104.  #endif
105.  #define print_glyph (*windowprocs.win_print_glyph)
106.  #define raw_print (*windowprocs.win_raw_print)
107.  #define raw_print_bold (*windowprocs.win_raw_print_bold)
108.  #define nhgetch (*windowprocs.win_nhgetch)
109.  #define nh_poskey (*windowprocs.win_nh_poskey)
110.  #define nhbell (*windowprocs.win_nhbell)
111.  #define nh_doprev_message (*windowprocs.win_doprev_message)
112.  #define getlin (*windowprocs.win_getlin)
113.  #define get_ext_cmd (*windowprocs.win_get_ext_cmd)
114.  #define number_pad (*windowprocs.win_number_pad)
115.  #define delay_output (*windowprocs.win_delay_output)
116.  #ifdef CHANGE_COLOR
117.  #define change_color (*windowprocs.win_change_color)
118.  #ifdef MAC
119.  #define change_background (*windowprocs.win_change_background)
120.  #define set_font_name (*windowprocs.win_set_font_name)
121.  #endif
122.  #define get_color_string (*windowprocs.win_get_color_string)
123.  #endif
124.  
125.  /* 3.4.2: There is a real yn_function() in the core now, which does
126.   *        some buffer length validation on the parameters prior to
127.   *        invoking the window port routine. yn_function() is in cmd.c
128.   */
129.  /* #define yn_function (*windowprocs.win_yn_function) */
130.  
131.  /* other defs that really should go away (they're tty specific) */
132.  #define start_screen (*windowprocs.win_start_screen)
133.  #define end_screen (*windowprocs.win_end_screen)
134.  
135.  #define outrip (*windowprocs.win_outrip)
136.  #define preference_update (*windowprocs.win_preference_update)
137.  
138.  /*
139.   * WINCAP
140.   * Window port preference capability bits.
141.   * Some day this might be better in its own wincap.h file.
142.   */
143.  #define WC_COLOR	 0x01L		/* 01 Port can display things in color       */
144.  #define WC_HILITE_PET	 0x02L		/* 02 supports hilite pet                    */
145.  #define WC_ASCII_MAP	 0x04L		/* 03 supports an ascii map                  */
146.  #define WC_TILED_MAP	 0x08L		/* 04 supports a tiled map                   */
147.  #define WC_PRELOAD_TILES 0x10L		/* 05 supports pre-loading tiles             */
148.  #define WC_TILE_WIDTH	 0x20L		/* 06 prefer this width of tile              */
149.  #define WC_TILE_HEIGHT	 0x40L		/* 07 prefer this height of tile             */
150.  #define WC_TILE_FILE	 0x80L		/* 08 alternative tile file name             */
151.  #define WC_INVERSE	 0x100L		/* 09 Port supports inverse video            */
152.  #define WC_ALIGN_MESSAGE 0x200L		/* 10 supports message alignmt top|b|l|r     */
153.  #define WC_ALIGN_STATUS	 0x400L		/* 11 supports status alignmt top|b|l|r      */
154.  #define WC_VARY_MSGCOUNT 0x800L		/* 12 supports varying message window        */
155.  #define WC_FONT_MAP	 0x1000L	/* 13 supports specification of map win font */
156.  #define WC_FONT_MESSAGE	 0x2000L	/* 14 supports specification of msg win font */
157.  #define WC_FONT_STATUS	 0x4000L	/* 15 supports specification of sts win font */
158.  #define WC_FONT_MENU	 0x8000L	/* 16 supports specification of mnu win font */
159.  #define WC_FONT_TEXT	 0x10000L	/* 17 supports specification of txt win font */
160.  #define WC_FONTSIZ_MAP	 0x20000L	/* 18 supports specification of map win font */
161.  #define WC_FONTSIZ_MESSAGE 0x40000L	/* 19 supports specification of msg win font */
162.  #define WC_FONTSIZ_STATUS 0x80000L	/* 20 supports specification of sts win font */
163.  #define WC_FONTSIZ_MENU	 0x100000L	/* 21 supports specification of mnu win font */
164.  #define WC_FONTSIZ_TEXT	 0x200000L	/* 22 supports specification of txt win font */
165.  #define WC_SCROLL_MARGIN 0x400000L	/* 23 supports setting scroll margin for map */
166.  #define WC_SPLASH_SCREEN 0x800000L	/* 24 supports display of splash screen      */
167.  #define WC_POPUP_DIALOG	 0x1000000L	/* 25 supports queries in pop dialogs        */
168.  #define WC_SCROLL_AMOUNT 0x2000000L	/* 26 scroll this amount at scroll margin    */
169.  #define WC_EIGHT_BIT_IN	 0x4000000L	/* 27 8-bit character input                  */
170.  #define WC_PERM_INVENT	 0x8000000L	/* 28 8-bit character input                  */
171.  #define WC_MAP_MODE	 0x10000000L	/* 29 map_mode option                        */
172.  #define WC_WINDOWCOLORS  0x20000000L	/* 30 background color for message window    */
173.  #define WC_PLAYER_SELECTION  0x40000000L /* 31 background color for message window    */
174.  #define WC_MOUSE_SUPPORT 0x80000000L	/* 32 mouse support                          */
175.  					/* no free bits */
176.  
177.  #define WC2_FULLSCREEN		0x01L	/* 01 display full screen                    */
178.  #define WC2_SOFTKEYBOARD	0x02L	/* 02 software keyboard                      */
179.  #define WC2_WRAPTEXT		0x04L	/* 04 wrap long lines of text                */
180.  					/* 29 free bits */
181.  
182.  #define ALIGN_LEFT	1
183.  #define ALIGN_RIGHT	2
184.  #define ALIGN_TOP	3
185.  #define ALIGN_BOTTOM	4
186.  
187.  /* player_selection */
188.  #define VIA_DIALOG	0
189.  #define VIA_PROMPTS	1
190.  
191.  /* map_mode settings - deprecated */
192.  #define MAP_MODE_TILES		0
193.  #define MAP_MODE_ASCII4x6	1
194.  #define MAP_MODE_ASCII6x8	2
195.  #define MAP_MODE_ASCII8x8	3
196.  #define MAP_MODE_ASCII16x8	4
197.  #define MAP_MODE_ASCII7x12	5
198.  #define MAP_MODE_ASCII8x12	6
199.  #define MAP_MODE_ASCII16x12	7
200.  #define MAP_MODE_ASCII12x16	8
201.  #define MAP_MODE_ASCII10x18	9
202.  #define MAP_MODE_ASCII_FIT_TO_SCREEN 10
203.  #define MAP_MODE_TILES_FIT_TO_SCREEN 11
204.  
205.  #if 0
206.  #define WC_SND_SOUND	 0x01L		/* 01 Port has some sound capabilities       */
207.  #define WC_SND_SPEAKER	 0x02L		/* 02 Sound supported via built-in speaker   */
208.  #define WC_SND_STEREO	 0x04L		/* 03 Stereo sound supported                 */
209.  #define WC_SND_RAW	 0x08L		/* 04 Raw sound supported                    */
210.  #define WC_SND_WAVE	 0x10L		/* 05 Wave support                           */
211.  #define WC_SND_MIDI	 0x20L		/* 06 Midi support                           */
212.  					/* 26 free bits */
213.  #endif
214.  
215.  struct wc_Opt {
216.  	const char *wc_name;
217.  	unsigned long wc_bit;
218.  };
219.  
220.  #endif /* WINPROCS_H */

Around Wikia's network

Random Wiki