1 /* 2 * AcornGUI.h 3 * 4 * Defines variables for the WIMP interface 5 * (C) 1997 Andreas Dehmel 6 * 7 */ 8 9 10 11 #ifndef _ACORN_GUI_H_ 12 #define _ACORN_GUI_H_ 13 14 15 // Determine which paths to load from 16 #ifdef FRODO_SC 17 # define DEFAULT_PREFS "FrodoSC:Prefs" 18 # define DEFAULT_SYSCONF "FrodoSC:SysConf" 19 #else 20 # ifdef FRODO_PC 21 # define DEFAULT_PREFS "FrodoPC:Prefs" 22 # define DEFAULT_SYSCONF "FrodoPC:SysConf" 23 # else 24 # define DEFAULT_PREFS "Frodo:Prefs" 25 # define DEFAULT_SYSCONF "Frodo:SysConf" 26 # endif 27 #endif 28 29 30 // Text written in pane icons: 31 #define PANE_TEXT_PAUSE "Pause" 32 #define PANE_TEXT_RESUME "Cont" 33 #define PANE_TEXT_ZOOM1 "1 x" 34 #define PANE_TEXT_ZOOM2 "2 x" 35 36 37 // OS units of extra space between EmuWindow and Pane 38 #define EmuPaneSpace 2 39 // OS units of the (volume) well's border 40 #define WellBorder 12 41 // Height of title bar in OS units 42 #define TitleBarHeight 44 43 // Maximum volume of the Sound system 44 #define MaximumVolume 127 45 46 47 48 49 // Message Block indices 50 #define MsgB_Size 0 51 #define MsgB_Sender 1 52 #define MsgB_MyRef 2 53 #define MsgB_YourRef 3 54 #define MsgB_Action 4 55 56 57 // Messages 58 #define Message_Quit 0x00000 59 #define Message_DataSave 0x00001 60 #define Message_DataSaveAck 0x00002 61 #define Message_DataLoad 0x00003 62 #define Message_DataLoadAck 0x00004 63 #define Message_DataOpen 0x00005 64 #define Message_RAMFetch 0x00006 65 #define Message_RAMTransmit 0x00007 66 #define Message_PreQuit 0x00008 67 #define Message_PaletteChange 0x00009 68 #define Message_MenuWarning 0x400c0 69 #define Message_ModeChange 0x400c1 70 71 72 // Redraw Window Block 73 #define RedrawB_Handle 0 74 #define RedrawB_VMinX 1 75 #define RedrawB_VMinY 2 76 #define RedrawB_VMaxX 3 77 #define RedrawB_VMaxY 4 78 #define RedrawB_ScrollX 5 79 #define RedrawB_ScrollY 6 80 #define RedrawB_CMinX 7 81 #define RedrawB_CMinY 8 82 #define RedrawB_CMaxX 9 83 #define RedrawB_CMaxY 10 84 85 86 // Window block (e.g. open, getstate.... For create: subtract -1 (no handle)) 87 #define WindowB_Handle 0 88 #define WindowB_VMinX 1 89 #define WindowB_VMinY 2 90 #define WindowB_VMaxX 3 91 #define WindowB_VMaxY 4 92 #define WindowB_ScrollX 5 93 #define WindowB_ScrollY 6 94 #define WindowB_Stackpos 7 95 #define WindowB_WFlags 8 96 #define WindowB_Colours1 9 97 #define WindowB_Colours2 10 98 #define WindowB_WMinX 11 99 #define WindowB_WMinY 12 100 #define WindowB_WMaxX 13 101 #define WindowB_WMaxY 14 102 #define WindowB_TFlags 15 103 #define WindowB_WAFlags 16 104 #define WindowB_SpriteArea 17 105 #define WindowB_MinDims 18 106 #define WindowB_Data 19 107 #define WindowB_Icons 22 108 109 110 // Raw icon block 111 #define RawIB_MinX 0 112 #define RawIB_MinY 1 113 #define RawIB_MaxX 2 114 #define RawIB_MaxY 3 115 #define RawIB_Flags 4 116 #define RawIB_Data0 5 117 #define RawIB_Data1 6 118 #define RawIB_Data2 7 119 120 121 // Icon block (as in GetIconState) 122 #define IconB_Handle 0 123 #define IconB_Number 1 124 #define IconB_MinX 2 125 #define IconB_MinY 3 126 #define IconB_MaxX 4 127 #define IconB_MaxY 5 128 #define IconB_Flags 6 129 #define IconB_Data0 7 130 #define IconB_Data1 8 131 #define IconB_Data2 9 132 133 134 // Mouse click block (also: get pointer info): 135 #define MouseB_PosX 0 136 #define MouseB_PosY 1 137 #define MouseB_Buttons 2 138 #define MouseB_Window 3 139 #define MouseB_Icon 4 140 141 142 // Key pressed block 143 #define KeyPB_Window 0 144 #define KeyPB_Icon 1 145 #define KeyPB_PosX 2 146 #define KeyPB_PosY 3 147 #define KeyPB_CHeight 4 148 #define KeyPB_Index 5 149 #define KeyPB_Key 6 150 151 152 // Drag Block 153 #define DragB_Handle 0 154 #define DragB_Type 1 155 #define DragB_IMinX 2 156 #define DragB_IMinY 3 157 #define DragB_IMaxX 4 158 #define DragB_IMaxY 5 159 #define DragB_BBMinX 6 160 #define DragB_BBMinY 7 161 #define DragB_BBMaxX 8 162 #define DragB_BBMaxY 9 163 #define DragB_R12 10 164 #define DragB_DrawCode 11 165 #define DragB_RemoveCode 12 166 #define DragB_MoveCode 13 167 168 169 // Drag A Sprite Block 170 #define DASB_MinX 0 171 #define DASB_MinY 1 172 #define DASB_MaxX 2 173 #define DASB_MaxY 3 174 175 176 177 178 179 // Menu definitions 180 #define Menu_IBar 1 181 #define Menu_Emulator 2 182 183 #define Menu_Height 44 184 #define Menu_Flags 0x07003011 185 186 #define Menu_IBar_Items 5 187 #define Menu_IBar_Width 256 188 #define Menu_IBar_Info 0 189 #define Menu_IBar_Prefs 1 190 #define Menu_IBar_Config 2 191 #define Menu_IBar_Sound 3 192 #define Menu_IBar_Quit 4 193 194 #define Menu_EWind_Items 4 195 #define Menu_EWind_Width 200 196 #define Menu_EWind_Info 0 197 #define Menu_EWind_Sound 1 198 #define Menu_EWind_SaveRAM 2 199 #define Menu_EWind_Snapshot 3 200 201 202 203 204 205 // Icons used in window definitions: 206 #define Icon_Pane_LED0 1 207 #define Icon_Pane_LED1 3 208 #define Icon_Pane_LED2 5 209 #define Icon_Pane_LED3 7 210 #define Icon_Pane_Drive0 0 211 #define Icon_Pane_Drive1 2 212 #define Icon_Pane_Drive2 4 213 #define Icon_Pane_Drive3 6 214 #define Icon_Pane_Reset 8 215 #define Icon_Pane_Pause 9 216 #define Icon_Pane_Speed 10 217 #define Icon_Pane_Toggle 11 218 219 #define Icon_Prefs_Dr8DIR 6 220 #define Icon_Prefs_Dr8D64 7 221 #define Icon_Prefs_Dr8T64 8 222 #define Icon_Prefs_Dr8Path 9 223 #define Icon_Prefs_Dr9DIR 11 224 #define Icon_Prefs_Dr9D64 12 225 #define Icon_Prefs_Dr9T64 13 226 #define Icon_Prefs_Dr9Path 14 227 #define Icon_Prefs_Dr10DIR 16 228 #define Icon_Prefs_Dr10D64 17 229 #define Icon_Prefs_Dr10T64 18 230 #define Icon_Prefs_Dr10Path 19 231 #define Icon_Prefs_Dr11DIR 21 232 #define Icon_Prefs_Dr11D64 22 233 #define Icon_Prefs_Dr11T64 23 234 #define Icon_Prefs_Dr11Path 24 235 #define Icon_Prefs_Emul1541 25 236 #define Icon_Prefs_MapSlash 26 237 #define Icon_Prefs_SIDNone 29 238 #define Icon_Prefs_SIDDigi 30 239 #define Icon_Prefs_SIDCard 31 240 #define Icon_Prefs_SIDFilter 32 241 #define Icon_Prefs_REUNone 35 242 #define Icon_Prefs_REU128 36 243 #define Icon_Prefs_REU256 37 244 #define Icon_Prefs_REU512 38 245 #define Icon_Prefs_SkipFLeft 41 246 #define Icon_Prefs_SkipFRight 42 247 #define Icon_Prefs_SkipFText 43 248 #define Icon_Prefs_SprOn 47 249 #define Icon_Prefs_SprColl 48 250 #define Icon_Prefs_Joy1On 50 251 #define Icon_Prefs_Joy2On 51 252 #define Icon_Prefs_JoySwap 52 253 #define Icon_Prefs_LimSpeed 55 254 #define Icon_Prefs_FastReset 56 255 #define Icon_Prefs_CIAHack 57 256 #define Icon_Prefs_CycleNorm 64 257 #define Icon_Prefs_CycleBad 65 258 #define Icon_Prefs_CycleCIA 66 259 #define Icon_Prefs_CycleFloppy 67 260 #define Icon_Prefs_Cancel 68 261 #define Icon_Prefs_OK 69 262 #define Icon_Prefs_PrefPath 70 263 #define Icon_Prefs_Save 71 264 #define Icon_Prefs_PrefSprite 72 265 266 #define Icon_Conf_PollAfter 3 267 #define Icon_Conf_SpeedAfter 5 268 #define Icon_Conf_Joy1Up 15 269 #define Icon_Conf_Joy1Down 16 270 #define Icon_Conf_Joy1Left 17 271 #define Icon_Conf_Joy1Right 18 272 #define Icon_Conf_Joy1Fire 19 273 #define Icon_Conf_Joy2Up 27 274 #define Icon_Conf_Joy2Down 28 275 #define Icon_Conf_Joy2Left 29 276 #define Icon_Conf_Joy2Right 30 277 #define Icon_Conf_Joy2Fire 31 278 #define Icon_Conf_OK 32 279 #define Icon_Conf_Save 33 280 #define Icon_Conf_ConfPath 34 281 #define Icon_Conf_ConfSprite 35 282 #define Icon_Conf_SoundAfter 37 283 284 #define Icon_Info_Name 4 285 #define Icon_Info_Purpose 5 286 #define Icon_Info_Author 6 287 #define Icon_Info_AuthorPort 7 288 #define Icon_Info_Version 8 289 290 #define Icon_Sound_Volume 0 291 #define Icon_Sound_Notes 1 292 293 #define Icon_Save_Sprite 0 294 #define Icon_Save_Path 1 295 #define Icon_Save_OK 2 296 297 298 299 300 // Drag types 301 #define DRAG_PrefsSprite 1 302 #define DRAG_ConfSprite 2 303 #define DRAG_SaveSprite 3 304 #define DRAG_VolumeWell 16 305 306 307 308 // Save types 309 #define SAVE_RAM 1 310 #define SAVE_Snapshot 2 311 312 313 314 315 // variables 316 317 extern char LEDtoIcon[4]; 318 extern char DriveToIcon[16]; 319 extern char SIDtoIcon[3]; 320 extern char REUtoIcon[4]; 321 322 323 324 325 326 // Plotter structs and variables 327 typedef struct { 328 int x, y, dimx, dimy; 329 } graph_env; 330 331 #define PLOTTER_ARGS const graph_env *GraphEnv, const int *Clipwindow,\ 332 const uint8 *Bitmap, const unsigned int *TransTab 333 334 // Plotters provided in Plotters.s -- declare as C-functions ! 335 extern "C" 336 { 337 extern void PlotZoom1(PLOTTER_ARGS); 338 extern void PlotZoom2(PLOTTER_ARGS); 339 } 340 341 #endif 342