Wikihack
Advertisement

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

1.    /*	SCCS Id: @(#)macwin.h	3.4	1996/01/15	*/
2.    /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
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 MACWIN_H
6.    # define MACWIN_H
7.    #undef red			/* undef internal color const strings from decl */
8.    #undef green
9.    #undef blue
10.   
11.   #ifndef __MACH__
12.   #include <windows.h>
13.   #include <dialogs.h>
14.   #endif
15.   
16.   /* more headers */
17.   #ifdef THINK_C
18.   #include <pascal.h>	/* for CtoPStr and PtoCStr */
19.   #endif
20.   
21.   /* resources */
22.   #define PLAYER_NAME_RES_ID	1001
23.   
24.   /* fake some things if we don't have universal headers.. */
25.   #if 0  /*ndef NewUserItemProc*/
26.   typedef pascal void (*UserItemProcPtr)(WindowPtr theWindow, short itemNo);
27.   typedef UserItemProcPtr UserItemUPP;
28.   #define NewUserItemProc(p)	(UserItemUPP)(p)
29.   
30.   typedef pascal void (*ControlActionProcPtr)(ControlHandle theControl, short partCode);
31.   typedef ControlActionProcPtr ControlActionUPP;
32.   #define NewControlActionProc(p) (ControlActionUPP)(p)
33.   
34.   typedef ModalFilterProcPtr ModalFilterUPP;
35.   #define DisposeRoutineDescriptor(p)
36.   #endif
37.   
38.   /* misc */
39.   #ifdef __MWERKS__
40.   # define ResumeProcPtr long		/* for call to InitDialogs */
41.   #endif
42.   
43.   /* working dirs structure */
44.   typedef struct macdirs {
45.   	Str32		dataName;
46.   	short		dataRefNum;
47.   	long		dataDirID;
48.   
49.   	Str32		saveName;
50.   	short		saveRefNum;
51.   	long		saveDirID;
52.   
53.   	Str32		levelName;
54.   	short		levelRefNum;
55.   	long		levelDirID;
56.   } MacDirs;
57.   
58.   typedef struct macflags {
59.   	Bitfield (processes, 1);
60.   	Bitfield (color, 1);
61.   	Bitfield (folders, 1);
62.   	Bitfield (tempMem, 1);
63.   	Bitfield (help, 1);
64.   	Bitfield (fsSpec, 1);
65.   	Bitfield (trueType, 1);
66.   	Bitfield (aux, 1);
67.   	Bitfield (alias, 1);
68.   	Bitfield (standardFile, 1);
69.   	Bitfield (hasDebugger, 1);
70.   	Bitfield (hasAE, 1);
71.   	Bitfield (gotOpen, 1);
72.   } MacFlags;
73.   
74.   extern MacDirs theDirs;		/* used in macfile.c */
75.   extern MacFlags macFlags;
76.   
77.   /*
78.    * Mac windows
79.    */
80.   #define NUM_MACWINDOWS 15
81.   #define TEXT_BLOCK 512L
82.   
83.   /* Window constants */
84.   #define kMapWindow 0
85.   #define kStatusWindow 1
86.   #define kMessageWindow 2
87.   #define kTextWindow 3
88.   #define kMenuWindow 4
89.   #define kLastWindowKind kMenuWindow
90.   
91.   /*
92.    * This determines the minimum logical line length in text windows
93.    * That is; even if physical width is less, this is where line breaks
94.    * go at the minimum. 350 is about right for score lines with a
95.    * geneva 10 pt font.
96.    */
97.   #define MIN_RIGHT 350
98.   
99.   typedef struct {
100.  	anything id;
101.  	char accelerator;
102.  	char groupAcc;
103.  	short line;
104.  } MacMHMenuItem;
105.  
106.  typedef struct NhWindow {
107.  	WindowPtr		its_window;
108.  
109.  	short			font_number;
110.  	short			font_size;
111.  	short			char_width;
112.  	short			row_height;
113.  	short			ascent_height;
114.  	
115.  	short			x_size;
116.  	short			y_size;
117.  	short			x_curs;
118.  	short			y_curs;
119.  	
120.  	short		last_more_lin; /* Used by message window */
121.  	short		save_lin;		/* Used by message window */
122.  
123.  	short			miSize;		/* size of menu items arrays */
124.  	short			miLen;		/* number of menu items in array */
125.  	MacMHMenuItem	**menuInfo;		/* Used by menus (array handle) */
126.  	char		menuChar;		/* next menu accelerator to use */
127.  	short			**menuSelected;	/* list of selected elements from list */
128.  	short			miSelLen;	/* number of items selected */
129.  	short			how;		/* menu mode */
130.  
131.  	char			drawn;
132.  	Handle			windowText;
133.  	long			windowTextLen;
134.  	short		scrollPos;
135.  	ControlHandle	scrollBar;
136.  } NhWindow;
137.  
138.  extern Boolean CheckNhWin(WindowPtr mac_win);
139.  
140.  
141.  #define NUM_STAT_ROWS 2
142.  #define NUM_ROWS 22
143.  #define NUM_COLS 80 /* We shouldn't use column 0 */
144.  #define QUEUE_LEN 24
145.  
146.  extern NhWindow * theWindows;
147.  
148.  extern struct window_procs mac_procs;
149.  
150.  #define NHW_BASE 0
151.  extern winid BASE_WINDOW, WIN_MAP, WIN_MESSAGE, WIN_INVEN, WIN_STATUS;
152.  
153.  
154.  /*
155.   * External declarations for the window routines.
156.   */
157.  
158.  #define E extern
159.  
160.  /* ### dprintf.c ### */
161.  
162.  extern void dprintf (char *, ...);
163.  
164.  /* ### maccurs.c ### */
165.  
166.  extern Boolean RetrievePosition (short, short *, short *);
167.  extern Boolean RetrieveSize (short, short, short, short *, short *);
168.  extern void SaveWindowPos (WindowPtr);
169.  extern void SaveWindowSize (WindowPtr);
170.  extern Boolean FDECL(RetrieveWinPos, (WindowPtr,short *,short *));
171.  
172.  /* ### macerrs.c ### */
173.  
174.  extern void showerror(char *,const char *);
175.  extern Boolean itworked(short);
176.  extern void mustwork(short);
177.  extern void attemptingto(char *);
178.  /* appear to be unused 
179.  extern void comment(char *,long);
180.  extern void pushattemptingto(char *);
181.  extern void popattempt(void);
182.  */
183.  /* ### macfile.c ### */
184.  
185.  /* extern char *macgets(int fd, char *ptr, unsigned len); unused */
186.  extern void FDECL(C2P,(const char *c, unsigned char *p));
187.  extern void FDECL(P2C,(const unsigned char *p, char *c));
188.  
189.  /* ### macmenu.c ### */
190.  
191.  extern void DoMenuEvt (long);
192.  extern void InitMenuRes(void);
193.  extern void AdjustMenus(short);
194.  #define DimMenuBar() AdjustMenus(1)
195.  #define UndimMenuBar() AdjustMenus(0)
196.  
197.  /* ### macmain.c ### */
198.  
199.  extern void FDECL (process_openfile, (short s_vol, long s_dir, Str255 fNm, OSType ft));
200.  
201.  /* ### macwin.c ### */
202.  
203.  extern void AddToKeyQueue(unsigned char, Boolean);
204.  extern unsigned char GetFromKeyQueue (void);
205.  void trans_num_keys (EventRecord *);
206.  extern void NDECL (InitMac);
207.  int FDECL (try_key_queue, (char *));
208.  void FDECL (enter_topl_mode, (char *));
209.  void FDECL (leave_topl_mode, (char *));
210.  void FDECL (topl_set_resp, (char *, char));
211.  Boolean FDECL (topl_key, (unsigned char, Boolean));
212.  E void FDECL(HandleEvent, (EventRecord *));	/* used in mmodal.c */
213.  extern void NDECL(port_help);
214.  
215.  extern Boolean small_screen;
216.  
217.  E void FDECL(mac_init_nhwindows, (int *, char **));
218.  E void NDECL(mac_askname);
219.  E void NDECL(mac_get_nh_event);
220.  E void FDECL(mac_exit_nhwindows, (const char *));
221.  E winid FDECL(mac_create_nhwindow, (int));
222.  E void FDECL(mac_clear_nhwindow, (winid));
223.  E void FDECL(mac_display_nhwindow, (winid, BOOLEAN_P));
224.  E void FDECL(mac_destroy_nhwindow, (winid));
225.  E void FDECL(mac_curs, (winid,int,int));
226.  E void FDECL(mac_putstr, (winid, int, const char *));
227.  E void FDECL(mac_start_menu, (winid));
228.  E void FDECL(mac_add_menu, (winid,int,const anything *,
229.  		CHAR_P,CHAR_P,int,const char *, BOOLEAN_P));
230.  E void FDECL(mac_end_menu, (winid, const char *));
231.  E int FDECL(mac_select_menu, (winid, int, menu_item **));
232.  #ifdef CLIPPING
233.  E void FDECL(mac_cliparound, (int, int));
234.  #endif
235.  E int NDECL(mac_nhgetch);
236.  E int FDECL(mac_nh_poskey, (int *, int *, int *));
237.  E int NDECL(mac_doprev_message);
238.  E char FDECL(mac_yn_function, (const char *, const char *, CHAR_P));
239.  E void FDECL(mac_getlin, (const char *,char *));
240.  E int NDECL(mac_get_ext_cmd);
241.  E void FDECL(mac_number_pad, (int));
242.  E void NDECL(mac_delay_output);
243.  
244.  #undef E
245.  
246.  #endif /* ! MACWIN_H */
Advertisement