00001
00002
00003
00004
00005 #ifndef MACWIN_H
00006 # define MACWIN_H
00007 #undef red
00008 #undef green
00009 #undef blue
00010
00011 #ifndef __MACH__
00012 #include <windows.h>
00013 #include <dialogs.h>
00014 #endif
00015
00016
00017 #ifdef THINK_C
00018 #include <pascal.h>
00019 #endif
00020
00021
00022 #define PLAYER_NAME_RES_ID 1001
00023
00024
00025 #if 0
00026 typedef pascal void (*UserItemProcPtr)(WindowPtr theWindow, short itemNo);
00027 typedef UserItemProcPtr UserItemUPP;
00028 #define NewUserItemProc(p) (UserItemUPP)(p)
00029
00030 typedef pascal void (*ControlActionProcPtr)(ControlHandle theControl, short partCode);
00031 typedef ControlActionProcPtr ControlActionUPP;
00032 #define NewControlActionProc(p) (ControlActionUPP)(p)
00033
00034 typedef ModalFilterProcPtr ModalFilterUPP;
00035 #define DisposeRoutineDescriptor(p)
00036 #endif
00037
00038
00039 #ifdef __MWERKS__
00040 # define ResumeProcPtr long
00041 #endif
00042
00043
00044 typedef struct macdirs {
00045 Str32 dataName;
00046 short dataRefNum;
00047 long dataDirID;
00048
00049 Str32 saveName;
00050 short saveRefNum;
00051 long saveDirID;
00052
00053 Str32 levelName;
00054 short levelRefNum;
00055 long levelDirID;
00056 } MacDirs;
00057
00058 typedef struct macflags {
00059 Bitfield (processes, 1);
00060 Bitfield (color, 1);
00061 Bitfield (folders, 1);
00062 Bitfield (tempMem, 1);
00063 Bitfield (help, 1);
00064 Bitfield (fsSpec, 1);
00065 Bitfield (trueType, 1);
00066 Bitfield (aux, 1);
00067 Bitfield (alias, 1);
00068 Bitfield (standardFile, 1);
00069 Bitfield (hasDebugger, 1);
00070 Bitfield (hasAE, 1);
00071 Bitfield (gotOpen, 1);
00072 } MacFlags;
00073
00074 extern MacDirs theDirs;
00075 extern MacFlags macFlags;
00076
00077
00078
00079
00080 #define NUM_MACWINDOWS 15
00081 #define TEXT_BLOCK 512L
00082
00083
00084 #define kMapWindow 0
00085 #define kStatusWindow 1
00086 #define kMessageWindow 2
00087 #define kTextWindow 3
00088 #define kMenuWindow 4
00089 #define kLastWindowKind kMenuWindow
00090
00091
00092
00093
00094
00095
00096
00097 #define MIN_RIGHT 350
00098
00099 typedef struct {
00100 anything id;
00101 char accelerator;
00102 char groupAcc;
00103 short line;
00104 } MacMHMenuItem;
00105
00106 typedef struct NhWindow {
00107 WindowPtr its_window;
00108
00109 short font_number;
00110 short font_size;
00111 short char_width;
00112 short row_height;
00113 short ascent_height;
00114
00115 short x_size;
00116 short y_size;
00117 short x_curs;
00118 short y_curs;
00119
00120 short last_more_lin;
00121 short save_lin;
00122
00123 short miSize;
00124 short miLen;
00125 MacMHMenuItem **menuInfo;
00126 char menuChar;
00127 short **menuSelected;
00128 short miSelLen;
00129 short how;
00130
00131 char drawn;
00132 Handle windowText;
00133 long windowTextLen;
00134 short scrollPos;
00135 ControlHandle scrollBar;
00136 } NhWindow;
00137
00138 extern Boolean CheckNhWin(WindowPtr mac_win);
00139
00140
00141 #define NUM_STAT_ROWS 2
00142 #define NUM_ROWS 22
00143 #define NUM_COLS 80
00144 #define QUEUE_LEN 24
00145
00146 extern NhWindow * theWindows;
00147
00148 extern struct window_procs mac_procs;
00149
00150 #define NHW_BASE 0
00151 extern winid BASE_WINDOW, WIN_MAP, WIN_MESSAGE, WIN_INVEN, WIN_STATUS;
00152
00153
00154
00155
00156
00157
00158 #define E extern
00159
00160
00161
00162 extern void dprintf (char *, ...);
00163
00164
00165
00166 extern Boolean RetrievePosition (short, short *, short *);
00167 extern Boolean RetrieveSize (short, short, short, short *, short *);
00168 extern void SaveWindowPos (WindowPtr);
00169 extern void SaveWindowSize (WindowPtr);
00170 extern Boolean FDECL(RetrieveWinPos, (WindowPtr,short *,short *));
00171
00172
00173
00174 extern void showerror(char *,const char *);
00175 extern Boolean itworked(short);
00176 extern void mustwork(short);
00177 extern void attemptingto(char *);
00178
00179
00180
00181
00182
00183
00184
00185
00186 extern void FDECL(C2P,(const char *c, unsigned char *p));
00187 extern void FDECL(P2C,(const unsigned char *p, char *c));
00188
00189
00190
00191 extern void DoMenuEvt (long);
00192 extern void InitMenuRes(void);
00193 extern void AdjustMenus(short);
00194 #define DimMenuBar() AdjustMenus(1)
00195 #define UndimMenuBar() AdjustMenus(0)
00196
00197
00198
00199 extern void FDECL (process_openfile, (short s_vol, long s_dir, Str255 fNm, OSType ft));
00200
00201
00202
00203 extern void AddToKeyQueue(unsigned char, Boolean);
00204 extern unsigned char GetFromKeyQueue (void);
00205 void trans_num_keys (EventRecord *);
00206 extern void NDECL (InitMac);
00207 int FDECL (try_key_queue, (char *));
00208 void FDECL (enter_topl_mode, (char *));
00209 void FDECL (leave_topl_mode, (char *));
00210 void FDECL (topl_set_resp, (char *, char));
00211 Boolean FDECL (topl_key, (unsigned char, Boolean));
00212 E void FDECL(HandleEvent, (EventRecord *));
00213 extern void NDECL(port_help);
00214
00215 extern Boolean small_screen;
00216
00217 E void FDECL(mac_init_nhwindows, (int *, char **));
00218 E void NDECL(mac_askname);
00219 E void NDECL(mac_get_nh_event);
00220 E void FDECL(mac_exit_nhwindows, (const char *));
00221 E winid FDECL(mac_create_nhwindow, (int));
00222 E void FDECL(mac_clear_nhwindow, (winid));
00223 E void FDECL(mac_display_nhwindow, (winid, BOOLEAN_P));
00224 E void FDECL(mac_destroy_nhwindow, (winid));
00225 E void FDECL(mac_curs, (winid,int,int));
00226 E void FDECL(mac_putstr, (winid, int, const char *));
00227 E void FDECL(mac_start_menu, (winid));
00228 E void FDECL(mac_add_menu, (winid,int,const anything *,
00229 CHAR_P,CHAR_P,int,const char *, BOOLEAN_P));
00230 E void FDECL(mac_end_menu, (winid, const char *));
00231 E int FDECL(mac_select_menu, (winid, int, menu_item **));
00232 #ifdef CLIPPING
00233 E void FDECL(mac_cliparound, (int, int));
00234 #endif
00235 E int NDECL(mac_nhgetch);
00236 E int FDECL(mac_nh_poskey, (int *, int *, int *));
00237 E int NDECL(mac_doprev_message);
00238 E char FDECL(mac_yn_function, (const char *, const char *, CHAR_P));
00239 E void FDECL(mac_getlin, (const char *,char *));
00240 E int NDECL(mac_get_ext_cmd);
00241 E void FDECL(mac_number_pad, (int));
00242 E void NDECL(mac_delay_output);
00243
00244 #undef E
00245
00246 #endif