|
|
1.1.1.2 ! root 1: /* 1.1 root 2: * UAE - The Un*x Amiga Emulator 1.1.1.2 ! root 3: * 1.1 root 4: * Interface to the Tcl/Tk GUI 1.1.1.2 ! root 5: * 1.1 root 6: * Copyright 1996 Bernd Schmidt 7: */ 8: 9: #include <stdio.h> 10: #include <stdlib.h> 11: #include <string.h> 12: #ifdef __unix 13: #include <sys/types.h> 14: #include <sys/stat.h> 15: #include <sys/time.h> 16: #endif 17: #include <fcntl.h> 18: #include <unistd.h> 19: #include <signal.h> 20: #include <SIOUX.h> 21: 22: #include "config.h" 23: #include "amiga.h" 24: #include "options.h" 25: #include "memory.h" 26: #include "custom.h" 27: #include "newcpu.h" 28: #include "disk.h" 29: #include "gui.h" 30: 31: #define kAppleMenuID 128 32: #define kFileMenuID 129 33: #define kEditMenuID 130 34: #define kDrivesMenuID 131 35: #define kMemoryMenuID 132 36: #define kResMenuID 135 37: #define kRateMenuID 134 38: #define kVideoMenuID 133 39: 40: MenuHandle resMenu,rateMenu; 41: static int macLedState[5]; 42: extern int use_quickdraw; 43: static Rect powerRect, driveDf0Rect, driveDf1Rect, driveDf2Rect, driveDf3Rect; 44: 45: static void sigchldhandler(int foo) 46: { 47: } 48: 49: static void InitToolbox(void) 50: { 51: InitGraf (&qd.thePort); 52: InitFonts (); 53: FlushEvents (everyEvent,0); 54: InitWindows (); 55: InitMenus (); 56: TEInit (); 57: InitDialogs (nil); 58: InitCursor (); 59: } 60: 61: #define kPrefStrRsrc 130 62: 63: int gui_init(void) 64: { char pathString[1024]; 65: Handle menuBar; 1.1.1.2 ! root 66: 1.1 root 67: InitToolbox(); 68: 69: SIOUXSettings.initializeTB=false; 70: SIOUXSettings.standalone=false; 71: SIOUXSettings.setupmenus=false; 72: SIOUXSettings.autocloseonquit=true; 73: SIOUXSettings.asktosaveonclose=false; 74: SIOUXSettings.showstatusline=false; 75: SIOUXSettings.rows=11; 76: SIOUXSettings.toppixel=350; 77: SIOUXSettings.leftpixel=0; 78: fprintf(stderr,"Starting up the GUI�\n"); 79: SIOUXSetTitle("\pInfo Window"); 1.1.1.2 ! root 80: 1.1 root 81: if (ReadPrefs(pathString)) 82: { if (*pathString != 0) add_filesys_unit("HD0", (char *)pathString, false); 83: } 84: else 85: { if (*pathString == 0) 86: { CreatePrefs(); 87: WritePrefs(0); 88: } 89: } 1.1.1.2 ! root 90: 1.1 root 91: menuBar=GetNewMBar(128); 92: SetMenuBar(menuBar); 93: DisposeHandle(menuBar); 1.1.1.2 ! root 94: 1.1 root 95: AddResMenu(GetMenuHandle(kAppleMenuID), 'DRVR'); 96: 97: if (screen_res != 4) DisableItem (GetMenuHandle(kFileMenuID), 3); 98: if (use_quickdraw) CheckItem(GetMenuHandle(kVideoMenuID),5,true); 99: if (use_gfxlib) CheckItem(GetMenuHandle(kVideoMenuID),7,true); 100: if (use_slow_mem) SetMenuItemText(GetMenuHandle(kMemoryMenuID), 1, "\pDisable 1 Mb (SlowMem)" ); 101: if (!automount_uaedev) CheckItem(GetMenuHandle(kDrivesMenuID),7,true); 102: if (produce_sound) SetMenuItemText(GetMenuHandle(kFileMenuID), 9, "\pTurn Sound Off"); 103: else SetMenuItemText(GetMenuHandle(kFileMenuID), 9, "\pTurn Sound On"); 104: if (fake_joystick) SetMenuItemText(GetMenuHandle(kFileMenuID), 11, "\pTurn Joystick Off"); 105: else SetMenuItemText(GetMenuHandle(kFileMenuID), 11, "\pTurn Joystick On"); 1.1.1.2 ! root 106: 1.1 root 107: rateMenu=GetMenu(kRateMenuID); 108: InsertMenu(rateMenu, -1); 109: if (framerate == 1) CheckItem(rateMenu,1,true); 110: if (framerate == 3) CheckItem(rateMenu,2,true); 111: if (framerate == 5) CheckItem(rateMenu,3,true); 112: if (framerate == 7) CheckItem(rateMenu,4,true); 1.1.1.2 ! root 113: 1.1 root 114: resMenu=GetMenu(kResMenuID); 115: InsertMenu(resMenu, -1); 116: CheckItem(resMenu,(unsigned char)screen_res+1,true); 1.1.1.2 ! root 117: 1.1 root 118: DrawMenuBar(); 1.1.1.2 ! root 119: 1.1 root 120: macLedState[0]=false; 121: macLedState[1]=false; 122: macLedState[2]=false; 123: macLedState[3]=false; 124: macLedState[4]=false; 1.1.1.2 ! root 125: 1.1 root 126: quit_program = 0; 127: } 128: 129: int gui_update(void) 130: { 131: return 0; 132: } 133: 134: void gui_exit(void) 135: { 136: DeleteMenu(kAppleMenuID); 137: DeleteMenu(kFileMenuID); 138: DeleteMenu(kEditMenuID); 139: DeleteMenu(kDrivesMenuID); 140: DeleteMenu(kMemoryMenuID); 141: DeleteMenu(kResMenuID); 142: DeleteMenu(kRateMenuID); 143: DeleteMenu(kVideoMenuID); 144: } 145: 146: void gui_prepare_leds(long screenV) 1.1.1.2 ! root 147: { 1.1 root 148: if (screen_res >= 3) 149: { SetRect(&powerRect,70,(short)screenV+1,110,(short)screenV+11); 150: SetRect(&driveDf0Rect,220,(short)screenV+1,260,(short)screenV+11); 151: SetRect(&driveDf1Rect,292,(short)screenV+1,332,(short)screenV+11); 152: SetRect(&driveDf2Rect,365,(short)screenV+1,405,(short)screenV+11); 153: SetRect(&driveDf3Rect,436,(short)screenV+1,476,(short)screenV+11); 154: } 155: else 156: { SetRect(&powerRect,46,(short)screenV+1,76,(short)screenV+11); 157: SetRect(&driveDf0Rect,106,(short)screenV+1,136,(short)screenV+11); 158: SetRect(&driveDf1Rect,166,(short)screenV+1,196,(short)screenV+11); 159: SetRect(&driveDf2Rect,226,(short)screenV+1,256,(short)screenV+11); 160: SetRect(&driveDf3Rect,286,(short)screenV+1,316,(short)screenV+11); 161: } 162: } 163: 164: void gui_update_leds(void) 165: { int i; 166: 167: for(i=0;i<=4;i++) gui_led(i,macLedState[i]); 168: } 169: 170: void gui_led(int led, int on) 1.1.1.2 ! root 171: { 1.1 root 172: macLedState[led]=on; 173: if (dont_want_aspect || screen_res == 2) 174: { if (led == 0) 175: { if (on) 176: { ForeColor(redColor); 177: PaintRect(&powerRect); 178: } 179: else 180: { ForeColor(whiteColor); 181: PaintRect(&powerRect); 182: } 183: } 184: else 185: { switch (led) 186: { case 1: 187: if (on) 188: { ForeColor(greenColor); 189: PaintRect(&driveDf0Rect); 190: } 191: else 192: { ForeColor(whiteColor); 193: PaintRect(&driveDf0Rect); 194: } 195: break; 1.1.1.2 ! root 196: 1.1 root 197: case 2: 198: if (on) 199: { ForeColor(greenColor); 200: PaintRect(&driveDf1Rect); 201: } 202: else 203: { ForeColor(whiteColor); 204: PaintRect(&driveDf1Rect); 205: } 206: break; 1.1.1.2 ! root 207: 1.1 root 208: case 3: 209: if (on) 210: { ForeColor(greenColor); 211: PaintRect(&driveDf2Rect); 212: } 213: else 214: { ForeColor(whiteColor); 215: PaintRect(&driveDf2Rect); 216: } 217: break; 1.1.1.2 ! root 218: 1.1 root 219: case 4: 220: if (on) 221: { ForeColor(greenColor); 222: PaintRect(&driveDf3Rect); 223: } 224: else 225: { ForeColor(whiteColor); 226: PaintRect(&driveDf3Rect); 227: } 228: break; 229: } 230: } 231: ForeColor(blackColor); 232: } 233: } 234: 235: void gui_filename(int num, char *name) 236: { 237: } 238: 239: static void getline(char *p) 240: { 241: } 242: 243: void gui_handle_events(void) 1.1.1.2 ! root 244: { 1.1 root 245: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.