From: Philip K. <pa...@us...> - 2004-08-16 22:11:32
|
Update of /cvsroot/fuse-emulator/fuse In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13338 Modified Files: ui.c Log Message: (De)activate widget menu items where appropriate (mostly Darren). Index: ui.c =================================================================== RCS file: /cvsroot/fuse-emulator/fuse/ui.c,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** ui.c 7 Aug 2004 23:12:02 -0000 1.13 --- ui.c 16 Aug 2004 22:08:54 -0000 1.14 *************** *** 176,177 **** --- 176,275 ---- mouse_grab_suspended = 0; } + + struct menu_item_entries { + ui_menu_item item; + const char *string1; + const char *string2; int string2_inverted; + const char *string3; int string3_inverted; + const char *string4; int string4_inverted; + }; + + static const struct menu_item_entries menu_item_lookup[] = { + + { UI_MENU_ITEM_MEDIA_CARTRIDGE_DOCK, "/Media/Cartridge/Timex Dock" }, + + { UI_MENU_ITEM_MEDIA_CARTRIDGE_DOCK_EJECT, + "/Media/Cartridge/Timex Dock/Eject" }, + + { UI_MENU_ITEM_MEDIA_CARTRIDGE_IF2, "/Media/Cartridge/Interface II" }, + + { UI_MENU_ITEM_MEDIA_CARTRIDGE_IF2_EJECT, + "/Media/Cartridge/Interface II/Eject" }, + + { UI_MENU_ITEM_MEDIA_DISK, "/Media/Disk" }, + + { UI_MENU_ITEM_MEDIA_DISK_A_EJECT, + "/Media/Disk/Drive A:/Eject", + "/Media/Disk/Drive A:/Eject and write...", 0 }, + + { UI_MENU_ITEM_MEDIA_DISK_B_EJECT, + "/Media/Disk/Drive B:/Eject", + "/Media/Disk/Drive B:/Eject and write...", 0 }, + + { UI_MENU_ITEM_MEDIA_IDE, "/Media/IDE" }, + + { UI_MENU_ITEM_MEDIA_IDE_SIMPLE8BIT, "/Media/IDE/Simple 8-bit" }, + + { UI_MENU_ITEM_MEDIA_IDE_SIMPLE8BIT_MASTER_EJECT, + "/Media/IDE/Simple 8-bit/Master/Commit", + "/Media/IDE/Simple 8-bit/Master/Eject", 0 }, + + { UI_MENU_ITEM_MEDIA_IDE_SIMPLE8BIT_SLAVE_EJECT, + "/Media/IDE/Simple 8-bit/Slave/Commit", + "/Media/IDE/Simple 8-bit/Slave/Eject", 0 }, + + { UI_MENU_ITEM_MEDIA_IDE_ZXATASP, "/Media/IDE/ZXATASP" }, + + { UI_MENU_ITEM_MEDIA_IDE_ZXATASP_MASTER_EJECT, + "/Media/IDE/ZXATASP/Master/Commit", + "/Media/IDE/ZXATASP/Master/Eject", 0 }, + + { UI_MENU_ITEM_MEDIA_IDE_ZXATASP_SLAVE_EJECT, + "/Media/IDE/ZXATASP/Slave/Commit", + "/Media/IDE/ZXATASP/Slave/Eject", 0 }, + + { UI_MENU_ITEM_MEDIA_IDE_ZXCF, "/Media/IDE/ZXCF CompactFlash" }, + + { UI_MENU_ITEM_MEDIA_IDE_ZXCF_EJECT, + "/Media/IDE/ZXCF CompactFlash/Commit", + "/Media/IDE/ZXCF CompactFlash/Eject", 0 }, + + { UI_MENU_ITEM_RECORDING, + "/File/Recording/Stop", + "/File/Recording/Record...", 1, + "/File/Recording/Record from snapshot...", 1, + "/File/Recording/Play...", 1 }, + + { UI_MENU_ITEM_AY_LOGGING, + "/File/AY Logging/Stop", + "/File/AY Logging/Record...", 1, }, + + { UI_MENU_ITEM_AY_LOGGING, NULL }, /* End marker */ + }; + + int + ui_menu_activate( ui_menu_item item, int active ) + { + const struct menu_item_entries *ptr; + + for( ptr = menu_item_lookup; ptr->string1; ptr++ ) { + + if( item == ptr->item ) { + ui_menu_item_set_active( ptr->string1, active ); + if( ptr->string2 ) + ui_menu_item_set_active( ptr->string2, + ptr->string2_inverted ? !active : active ); + if( ptr->string3 ) + ui_menu_item_set_active( ptr->string3, + ptr->string3_inverted ? !active : active ); + if( ptr->string4 ) + ui_menu_item_set_active( ptr->string4, + ptr->string4_inverted ? !active : active ); + return 0; + } + + } + + ui_error( UI_ERROR_ERROR, "ui_menu_activate: unknown item %d\n", item ); + return 1; + } |