From bd55aae69926f73e98b8f8624ffea972cd8bfb41 Mon Sep 17 00:00:00 2001 From: rogerman Date: Sun, 5 May 2013 05:44:47 +0000 Subject: [PATCH] Cocoa Port: - Fix bug where using an input mapped Set Speed control did not properly reset the execution speed if the Set Speed Limit slider was previously used. - Move the display window related methods from the EmuControllerDelegate to DisplayWindowController. --- .../English.lproj/DisplayWindow.xib | 93 +- .../English.lproj/MainMenu.strings | Bin 289796 -> 285224 bytes .../translations/English.lproj/MainMenu.xib | 2605 +++++++++++++++-- .../userinterface/DisplayWindowController.h | 15 +- .../userinterface/DisplayWindowController.mm | 211 +- .../userinterface/EmuControllerDelegate.h | 19 - .../userinterface/EmuControllerDelegate.mm | 238 +- 7 files changed, 2614 insertions(+), 567 deletions(-) diff --git a/desmume/src/cocoa/translations/English.lproj/DisplayWindow.xib b/desmume/src/cocoa/translations/English.lproj/DisplayWindow.xib index 4456390a9..7ef3891d9 100644 --- a/desmume/src/cocoa/translations/English.lproj/DisplayWindow.xib +++ b/desmume/src/cocoa/translations/English.lproj/DisplayWindow.xib @@ -315,6 +315,7 @@ {{2, 3}, {16, 16}} + 28938 100 @@ -336,6 +337,7 @@ {{160, 1}, {20, 20}} + YES 134217728 @@ -358,6 +360,7 @@ {{17, 5}, {137, 14}} + YES 68157504 @@ -397,6 +400,7 @@ {{0, 24}, {256, 384}} + YES DisplayView @@ -427,6 +431,7 @@ {256, 408} + {{0, 0}, {1920, 1178}} {256, 477} @@ -566,14 +571,6 @@ YES - - - window - - - - 22 - changeCoreSpeed: @@ -646,6 +643,14 @@ 108 + + + window + + + + 109 + delegate @@ -1170,7 +1175,7 @@ - 108 + 109 @@ -1191,7 +1196,13 @@ YES changeCoreSpeed: + changeDisplayGap: + changeDisplayMode: + changeDisplayOrder: + changeDisplayOrientation: + changeRotation: changeRotationRelative: + changeScale: changeVolume: copy: openRom: @@ -1200,6 +1211,10 @@ toggleExecutePause: toggleKeepMinDisplaySizeAtNormal: toggleStatusBar: + writeDefaultsDisplayGap: + writeDefaultsDisplayRotation: + writeDefaultsDisplayVideoSettings: + writeDefaultsHUDSettings: YES @@ -1213,6 +1228,16 @@ id id id + id + id + id + id + id + id + id + id + id + id @@ -1220,7 +1245,13 @@ YES changeCoreSpeed: + changeDisplayGap: + changeDisplayMode: + changeDisplayOrder: + changeDisplayOrientation: + changeRotation: changeRotationRelative: + changeScale: changeVolume: copy: openRom: @@ -1229,6 +1260,10 @@ toggleExecutePause: toggleKeepMinDisplaySizeAtNormal: toggleStatusBar: + writeDefaultsDisplayGap: + writeDefaultsDisplayRotation: + writeDefaultsDisplayVideoSettings: + writeDefaultsHUDSettings: YES @@ -1236,10 +1271,34 @@ changeCoreSpeed: id + + changeDisplayGap: + id + + + changeDisplayMode: + id + + + changeDisplayOrder: + id + + + changeDisplayOrientation: + id + + + changeRotation: + id + changeRotationRelative: id + + changeScale: + id + changeVolume: id @@ -1272,6 +1331,22 @@ toggleStatusBar: id + + writeDefaultsDisplayGap: + id + + + writeDefaultsDisplayRotation: + id + + + writeDefaultsDisplayVideoSettings: + id + + + writeDefaultsHUDSettings: + id + diff --git a/desmume/src/cocoa/translations/English.lproj/MainMenu.strings b/desmume/src/cocoa/translations/English.lproj/MainMenu.strings index 11fa4d3e0d4260434c491fa6009e47c31041f87f..1a12bc4d637d846410069d2229615d1a6d0158ee 100644 GIT binary patch delta 4536 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 - + 256 {400, 100} + + {{0, 0}, {1920, 1178}} {10000000000000, 10000000000000} @@ -15729,7 +15731,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA - + 256 YES @@ -15962,6 +15964,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA {194, 241} + {{0, 0}, {1920, 1178}} {10000000000000, 10000000000000} @@ -15977,7 +15980,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA - + 256 YES @@ -16585,6 +16588,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA {204, 521} + {{0, 0}, {1920, 1178}} {10000000000000, 10000000000000} @@ -19789,7 +19793,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA - + 256 YES @@ -19798,6 +19802,8 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 268 {{30, 43}, {411, 26}} + + YES -2080112384 @@ -19820,6 +19826,8 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 268 {{20, 70}, {38, 17}} + + YES 68157504 @@ -19837,6 +19845,8 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 268 {{412, 70}, {38, 17}} + + YES 68157504 @@ -19854,6 +19864,8 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 268 {{98, 70}, {38, 17}} + + YES 68157504 @@ -19871,6 +19883,8 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 268 {{177, 70}, {38, 17}} + + YES 68157504 @@ -19888,6 +19902,8 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 268 {{255, 70}, {38, 17}} + + YES 68157504 @@ -19905,6 +19921,8 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 268 {{335, 70}, {38, 17}} + + YES 68157504 @@ -19922,6 +19940,8 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 268 {{32, 18}, {133, 19}} + + 100 YES @@ -19944,6 +19964,8 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 268 {{203, 21}, {156, 17}} + + YES 68157504 @@ -19961,6 +19983,8 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 268 {{361, 21}, {81, 17}} + + YES 68157504 @@ -20042,6 +20066,8 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 268 {{158, 93}, {154, 18}} + + YES -2080374784 @@ -20062,6 +20088,9 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA {467, 128} + + + {{0, 0}, {1920, 1178}} {10000000000000, 10000000000000} @@ -20072,13 +20101,13 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 279 2 {{162, 281}, {213, 198}} - -461897728 + -461896704 Set Rotation NSPanel - + 256 YES @@ -20317,6 +20346,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA {213, 198} + {{0, 0}, {1920, 1178}} {10000000000000, 10000000000000} @@ -20333,7 +20363,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA - + 256 YES @@ -20605,6 +20635,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA {441, 133} + {{0, 0}, {1920, 1178}} {10000000000000, 10000000000000} @@ -22969,6 +23000,302 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 7999 + + + changeDisplayMode: + + + + 8204 + + + + changeDisplayMode: + + + + 8205 + + + + changeDisplayMode: + + + + 8206 + + + + runToolbarCustomizationPalette: + + + + 8208 + + + + toggleToolbarShown: + + + + 8209 + + + + changeDisplayGap: + + + + 8210 + + + + changeDisplayGap: + + + + 8211 + + + + changeDisplayGap: + + + + 8212 + + + + changeDisplayGap: + + + + 8213 + + + + changeDisplayGap: + + + + 8214 + + + + changeDisplayGap: + + + + 8215 + + + + changeDisplayGap: + + + + 8216 + + + + changeDisplayOrder: + + + + 8217 + + + + changeDisplayOrder: + + + + 8218 + + + + changeDisplayOrientation: + + + + 8219 + + + + changeDisplayOrientation: + + + + 8220 + + + + changeScale: + + + + 8221 + + + + changeScale: + + + + 8222 + + + + changeScale: + + + + 8223 + + + + changeScale: + + + + 8224 + + + + changeScale: + + + + 8225 + + + + changeRotation: + + + + 8226 + + + + changeRotation: + + + + 8227 + + + + changeRotation: + + + + 8228 + + + + changeRotation: + + + + 8229 + + + + changeRotationRelative: + + + + 8230 + + + + changeRotationRelative: + + + + 8231 + + + + changeRotation: + + + + 8232 + + + + changeRotation: + + + + 8233 + + + + toggleStatusBar: + + + + 8234 + + + + toggleKeepMinDisplaySizeAtNormal: + + + + 8235 + + + + writeDefaultsDisplayGap: + + + + 8236 + + + + writeDefaultsDisplayRotation: + + + + 8237 + + + + writeDefaultsDisplayVideoSettings: + + + + 8238 + + + + writeDefaultsHUDSettings: + + + + 8239 + + + + performClose: + + + + 8240 + + + + saveScreenshotAs: + + + + 8241 + launchWebsite: @@ -30105,238 +30432,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 6940 - - - changeScale: - - - - 6941 - - - - changeScale: - - - - 6942 - - - - changeScale: - - - - 6943 - - - - changeScale: - - - - 6944 - - - - changeScale: - - - - 6945 - - - - toggleKeepMinDisplaySizeAtNormal: - - - - 6946 - - - - toggleStatusBar: - - - - 6947 - - - - runToolbarCustomizationPalette: - - - - 6948 - - - - toggleToolbarShown: - - - - 6949 - - - - changeDisplayMode: - - - - 6950 - - - - changeDisplayMode: - - - - 6951 - - - - changeDisplayMode: - - - - 6952 - - - - changeDisplayOrientation: - - - - 6953 - - - - changeDisplayOrientation: - - - - 6954 - - - - changeDisplayOrder: - - - - 6955 - - - - changeDisplayOrder: - - - - 6956 - - - - changeRotationRelative: - - - - 6957 - - - - changeRotationRelative: - - - - 6958 - - - - changeRotation: - - - - 6959 - - - - changeRotation: - - - - 6960 - - - - changeRotation: - - - - 6961 - - - - changeRotation: - - - - 6962 - - - - changeRotation: - - - - 6963 - - - - changeRotation: - - - - 6964 - - - - writeDefaultsDisplayRotation: - - - - 6992 - - - - writeDefaultsHUDSettings: - - - - 6993 - - - - writeDefaultsDisplayVideoSettings: - - - - 6994 - - - - saveScreenshotAs: - - - - 6997 - - - - closeWindow: - - - - 7000 - inputManager @@ -30377,70 +30472,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 7013 - - - changeDisplayGap: - - - - 7797 - - - - changeDisplayGap: - - - - 7798 - - - - changeDisplayGap: - - - - 7799 - - - - changeDisplayGap: - - - - 7800 - - - - changeDisplayGap: - - - - 7801 - - - - changeDisplayGap: - - - - 7851 - - - - changeDisplayGap: - - - - 7852 - - - - writeDefaultsDisplayGap: - - - - 7854 - slot1Eject: @@ -30521,6 +30552,14 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA 8168 + + + changeCoreSpeed: + + + + 8242 + content @@ -48745,9 +48784,1965 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA - 8200 + 8242 + + + + YES + + AppDelegate + NSObject + + YES + + YES + bugReport: + launchForums: + launchWebsite: + supportRequest: + + + YES + id + id + id + id + + + + YES + + YES + bugReport: + launchForums: + launchWebsite: + supportRequest: + + + YES + + bugReport: + id + + + launchForums: + id + + + launchWebsite: + id + + + supportRequest: + id + + + + + YES + + YES + aboutWindowController + boxARMBinaries + boxFileSystem + boxGeneralInfo + boxMisc + boxTitles + cdsCoreController + cdsSoundController + cheatListWindow + cheatWindowController + emuControlController + inputManager + inputPrefsView + mLoadStateSlot + mSaveStateSlot + migrationDelegate + prefGeneralView + prefWindow + prefWindowController + romInfoPanelController + troubleshootingWindow + + + YES + NSObjectController + NSBox + NSBox + NSBox + NSBox + NSBox + NSObjectController + NSObjectController + NSWindow + NSObjectController + NSObjectController + InputManager + InputPrefsView + NSMenu + NSMenu + FileMigrationDelegate + NSView + NSWindow + NSObjectController + NSObjectController + NSWindow + + + + YES + + YES + aboutWindowController + boxARMBinaries + boxFileSystem + boxGeneralInfo + boxMisc + boxTitles + cdsCoreController + cdsSoundController + cheatListWindow + cheatWindowController + emuControlController + inputManager + inputPrefsView + mLoadStateSlot + mSaveStateSlot + migrationDelegate + prefGeneralView + prefWindow + prefWindowController + romInfoPanelController + troubleshootingWindow + + + YES + + aboutWindowController + NSObjectController + + + boxARMBinaries + NSBox + + + boxFileSystem + NSBox + + + boxGeneralInfo + NSBox + + + boxMisc + NSBox + + + boxTitles + NSBox + + + cdsCoreController + NSObjectController + + + cdsSoundController + NSObjectController + + + cheatListWindow + NSWindow + + + cheatWindowController + NSObjectController + + + emuControlController + NSObjectController + + + inputManager + InputManager + + + inputPrefsView + InputPrefsView + + + mLoadStateSlot + NSMenu + + + mSaveStateSlot + NSMenu + + + migrationDelegate + FileMigrationDelegate + + + prefGeneralView + NSView + + + prefWindow + NSWindow + + + prefWindowController + NSObjectController + + + romInfoPanelController + NSObjectController + + + troubleshootingWindow + NSWindow + + + + + IBProjectSource + ./Classes/AppDelegate.h + + + + CheatWindowDelegate + NSObject + + YES + + YES + addToList: + applyConfiguration: + closeCheatDatabaseSheet: + removeFromList: + resetSearch: + runComparativeSearch: + runExactValueSearch: + selectAllCheatsInDatabase: + selectCheatSearchStyle: + selectCheatType: + selectNoneCheatsInDatabase: + setInternalCheatValue: + viewDatabase: + + + YES + id + id + id + id + id + id + id + id + id + id + id + id + id + + + + YES + + YES + addToList: + applyConfiguration: + closeCheatDatabaseSheet: + removeFromList: + resetSearch: + runComparativeSearch: + runExactValueSearch: + selectAllCheatsInDatabase: + selectCheatSearchStyle: + selectCheatType: + selectNoneCheatsInDatabase: + setInternalCheatValue: + viewDatabase: + + + YES + + addToList: + id + + + applyConfiguration: + id + + + closeCheatDatabaseSheet: + id + + + removeFromList: + id + + + resetSearch: + id + + + runComparativeSearch: + id + + + runExactValueSearch: + id + + + selectAllCheatsInDatabase: + id + + + selectCheatSearchStyle: + id + + + selectCheatType: + id + + + selectNoneCheatsInDatabase: + id + + + setInternalCheatValue: + id + + + viewDatabase: + id + + + + + YES + + YES + cheatConfigBox + cheatDatabaseController + cheatDatabaseSheet + cheatListController + cheatListTable + cheatSearchListController + cheatSearchListTable + cheatSearchView + cheatSelectedItemController + cheatWindowController + searchField + viewConfigureActionReplayCheat + viewConfigureCodeBreakerCheat + viewConfigureInternalCheat + viewConfigureNoSelection + viewSearchComparativeContinue + viewSearchComparativeStart + viewSearchExactValue + viewSearchNoSelection + window + + + YES + NSBox + NSArrayController + NSWindow + NSArrayController + NSTableView + NSArrayController + NSTableView + NSView + NSObjectController + NSObjectController + NSSearchField + NSView + NSView + NSView + NSView + NSView + NSView + NSView + NSView + NSWindow + + + + YES + + YES + cheatConfigBox + cheatDatabaseController + cheatDatabaseSheet + cheatListController + cheatListTable + cheatSearchListController + cheatSearchListTable + cheatSearchView + cheatSelectedItemController + cheatWindowController + searchField + viewConfigureActionReplayCheat + viewConfigureCodeBreakerCheat + viewConfigureInternalCheat + viewConfigureNoSelection + viewSearchComparativeContinue + viewSearchComparativeStart + viewSearchExactValue + viewSearchNoSelection + window + + + YES + + cheatConfigBox + NSBox + + + cheatDatabaseController + NSArrayController + + + cheatDatabaseSheet + NSWindow + + + cheatListController + NSArrayController + + + cheatListTable + NSTableView + + + cheatSearchListController + NSArrayController + + + cheatSearchListTable + NSTableView + + + cheatSearchView + NSView + + + cheatSelectedItemController + NSObjectController + + + cheatWindowController + NSObjectController + + + searchField + NSSearchField + + + viewConfigureActionReplayCheat + NSView + + + viewConfigureCodeBreakerCheat + NSView + + + viewConfigureInternalCheat + NSView + + + viewConfigureNoSelection + NSView + + + viewSearchComparativeContinue + NSView + + + viewSearchComparativeStart + NSView + + + viewSearchExactValue + NSView + + + viewSearchNoSelection + NSView + + + window + NSWindow + + + + + IBProjectSource + ./Classes/CheatWindowDelegate.h + + + + DisplayView + NSView + + IBProjectSource + ./Classes/DisplayView.h + + + + DisplayWindowController + NSWindowController + + YES + + YES + changeCoreSpeed: + changeDisplayGap: + changeDisplayMode: + changeDisplayOrder: + changeDisplayOrientation: + changeRotation: + changeRotationRelative: + changeScale: + changeVolume: + copy: + openRom: + reset: + saveScreenshotAs: + toggleExecutePause: + toggleKeepMinDisplaySizeAtNormal: + toggleStatusBar: + writeDefaultsDisplayGap: + writeDefaultsDisplayRotation: + writeDefaultsDisplayVideoSettings: + writeDefaultsHUDSettings: + + + YES + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + + + + YES + + YES + changeCoreSpeed: + changeDisplayGap: + changeDisplayMode: + changeDisplayOrder: + changeDisplayOrientation: + changeRotation: + changeRotationRelative: + changeScale: + changeVolume: + copy: + openRom: + reset: + saveScreenshotAs: + toggleExecutePause: + toggleKeepMinDisplaySizeAtNormal: + toggleStatusBar: + writeDefaultsDisplayGap: + writeDefaultsDisplayRotation: + writeDefaultsDisplayVideoSettings: + writeDefaultsHUDSettings: + + + YES + + changeCoreSpeed: + id + + + changeDisplayGap: + id + + + changeDisplayMode: + id + + + changeDisplayOrder: + id + + + changeDisplayOrientation: + id + + + changeRotation: + id + + + changeRotationRelative: + id + + + changeScale: + id + + + changeVolume: + id + + + copy: + id + + + openRom: + id + + + reset: + id + + + saveScreenshotAs: + id + + + toggleExecutePause: + id + + + toggleKeepMinDisplaySizeAtNormal: + id + + + toggleStatusBar: + id + + + writeDefaultsDisplayGap: + id + + + writeDefaultsDisplayRotation: + id + + + writeDefaultsDisplayVideoSettings: + id + + + writeDefaultsHUDSettings: + id + + + + + YES + + YES + saveScreenshotPanelAccessoryView + view + + + YES + NSView + DisplayView + + + + YES + + YES + saveScreenshotPanelAccessoryView + view + + + YES + + saveScreenshotPanelAccessoryView + NSView + + + view + DisplayView + + + + + IBProjectSource + ./Classes/DisplayWindowController.h + + + + EmuControllerDelegate + NSObject + + YES + + YES + changeAudioEngine: + changeCoreEmuFlags: + changeCoreSpeed: + changeFirmwareSettings: + changeRomSaveType: + changeSpuAdvancedLogic: + changeSpuInterpolationMode: + changeSpuSyncMethod: + changeSpuSyncMode: + changeVolume: + chooseSlot1R4Directory: + closeRom: + closeSheet: + exportRomSave: + importRomSave: + loadEmuSaveStateSlot: + loadRecentRom: + newDisplayWindow: + openEmuSaveState: + openRom: + reset: + revealGameDataFolderInFinder: + revealRomInFinder: + revertEmuSaveState: + saveEmuSaveState: + saveEmuSaveStateAs: + saveEmuSaveStateSlot: + slot1Eject: + toggleAutoFrameSkip: + toggleCheats: + toggleExecutePause: + toggleGPUState: + toggleSpeedLimiter: + writeDefaults3DRenderingSettings: + writeDefaultsEmulationSettings: + writeDefaultsSlot1Settings: + writeDefaultsSoundSettings: + + + YES + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + + + + YES + + YES + changeAudioEngine: + changeCoreEmuFlags: + changeCoreSpeed: + changeFirmwareSettings: + changeRomSaveType: + changeSpuAdvancedLogic: + changeSpuInterpolationMode: + changeSpuSyncMethod: + changeSpuSyncMode: + changeVolume: + chooseSlot1R4Directory: + closeRom: + closeSheet: + exportRomSave: + importRomSave: + loadEmuSaveStateSlot: + loadRecentRom: + newDisplayWindow: + openEmuSaveState: + openRom: + reset: + revealGameDataFolderInFinder: + revealRomInFinder: + revertEmuSaveState: + saveEmuSaveState: + saveEmuSaveStateAs: + saveEmuSaveStateSlot: + slot1Eject: + toggleAutoFrameSkip: + toggleCheats: + toggleExecutePause: + toggleGPUState: + toggleSpeedLimiter: + writeDefaults3DRenderingSettings: + writeDefaultsEmulationSettings: + writeDefaultsSlot1Settings: + writeDefaultsSoundSettings: + + + YES + + changeAudioEngine: + id + + + changeCoreEmuFlags: + id + + + changeCoreSpeed: + id + + + changeFirmwareSettings: + id + + + changeRomSaveType: + id + + + changeSpuAdvancedLogic: + id + + + changeSpuInterpolationMode: + id + + + changeSpuSyncMethod: + id + + + changeSpuSyncMode: + id + + + changeVolume: + id + + + chooseSlot1R4Directory: + id + + + closeRom: + id + + + closeSheet: + id + + + exportRomSave: + id + + + importRomSave: + id + + + loadEmuSaveStateSlot: + id + + + loadRecentRom: + id + + + newDisplayWindow: + id + + + openEmuSaveState: + id + + + openRom: + id + + + reset: + id + + + revealGameDataFolderInFinder: + id + + + revealRomInFinder: + id + + + revertEmuSaveState: + id + + + saveEmuSaveState: + id + + + saveEmuSaveStateAs: + id + + + saveEmuSaveStateSlot: + id + + + slot1Eject: + id + + + toggleAutoFrameSkip: + id + + + toggleCheats: + id + + + toggleExecutePause: + id + + + toggleGPUState: + id + + + toggleSpeedLimiter: + id + + + writeDefaults3DRenderingSettings: + id + + + writeDefaultsEmulationSettings: + id + + + writeDefaultsSlot1Settings: + id + + + writeDefaultsSoundSettings: + id + + + + + YES + + YES + cdsCoreController + cdsSoundController + cheatDatabaseController + cheatListController + cheatWindowController + cheatWindowDelegate + exportRomSavePanelAccessoryView + firmwarePanelController + inputManager + romInfoPanelController + saveFileMigrationSheet + saveStatePrecloseSheet + slot1ManagerWindow + + + YES + NSObjectController + NSObjectController + NSArrayController + NSArrayController + NSObjectController + CheatWindowDelegate + NSView + NSObjectController + InputManager + NSObjectController + NSWindow + NSWindow + NSWindow + + + + YES + + YES + cdsCoreController + cdsSoundController + cheatDatabaseController + cheatListController + cheatWindowController + cheatWindowDelegate + exportRomSavePanelAccessoryView + firmwarePanelController + inputManager + romInfoPanelController + saveFileMigrationSheet + saveStatePrecloseSheet + slot1ManagerWindow + + + YES + + cdsCoreController + NSObjectController + + + cdsSoundController + NSObjectController + + + cheatDatabaseController + NSArrayController + + + cheatListController + NSArrayController + + + cheatWindowController + NSObjectController + + + cheatWindowDelegate + CheatWindowDelegate + + + exportRomSavePanelAccessoryView + NSView + + + firmwarePanelController + NSObjectController + + + inputManager + InputManager + + + romInfoPanelController + NSObjectController + + + saveFileMigrationSheet + NSWindow + + + saveStatePrecloseSheet + NSWindow + + + slot1ManagerWindow + NSWindow + + + + + IBProjectSource + ./Classes/EmuControllerDelegate.h + + + + FileMigrationDelegate + NSObject + + YES + + YES + handleChoice: + selectAll: + selectNone: + updateAndShowWindow: + + + YES + id + id + id + id + + + + YES + + YES + handleChoice: + selectAll: + selectNone: + updateAndShowWindow: + + + YES + + handleChoice: + id + + + selectAll: + id + + + selectNone: + id + + + updateAndShowWindow: + id + + + + + YES + + YES + dummyObject + fileListController + window + + + YES + NSObject + NSArrayController + NSWindow + + + + YES + + YES + dummyObject + fileListController + window + + + YES + + dummyObject + NSObject + + + fileListController + NSArrayController + + + window + NSWindow + + + + + IBProjectSource + ./Classes/FileMigrationDelegate.h + + + + InputManager + NSObject + + emuControl + EmuControllerDelegate + + + emuControl + + emuControl + EmuControllerDelegate + + + + IBProjectSource + ./Classes/InputManager.h + + + + InputPrefsView + NSView + + YES + + YES + audioFileChoose: + audioFileChooseNone: + changeSpeed: + closeProfileRenameSheet: + closeProfileSheet: + closeSettingsSheet: + profileApply: + profileDelete: + profileNew: + profileRename: + profileSave: + profileSelect: + profileView: + removeInput: + setInputAdd: + showSettingsSheet: + + + YES + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + + + + YES + + YES + audioFileChoose: + audioFileChooseNone: + changeSpeed: + closeProfileRenameSheet: + closeProfileSheet: + closeSettingsSheet: + profileApply: + profileDelete: + profileNew: + profileRename: + profileSave: + profileSelect: + profileView: + removeInput: + setInputAdd: + showSettingsSheet: + + + YES + + audioFileChoose: + id + + + audioFileChooseNone: + id + + + changeSpeed: + id + + + closeProfileRenameSheet: + id + + + closeProfileSheet: + id + + + closeSettingsSheet: + id + + + profileApply: + id + + + profileDelete: + id + + + profileNew: + id + + + profileRename: + id + + + profileSave: + id + + + profileSelect: + id + + + profileView: + id + + + removeInput: + id + + + setInputAdd: + id + + + showSettingsSheet: + id + + + + + YES + + YES + inputManager + inputPrefOutlineView + inputProfileController + inputProfileMenu + inputProfileNextButton + inputProfilePreviousButton + inputProfileRenameSheet + inputProfileSheet + inputSettingsController + inputSettingsGPUState + inputSettingsLoadStateSlot + inputSettingsMicrophone + inputSettingsSaveStateSlot + inputSettingsSetSpeedLimit + inputSettingsTouch + prefWindow + + + YES + InputManager + NSOutlineView + InputProfileController + NSPopUpButton + NSButton + NSButton + NSWindow + NSWindow + NSObjectController + NSWindow + NSWindow + NSWindow + NSWindow + NSWindow + NSWindow + NSWindow + + + + YES + + YES + inputManager + inputPrefOutlineView + inputProfileController + inputProfileMenu + inputProfileNextButton + inputProfilePreviousButton + inputProfileRenameSheet + inputProfileSheet + inputSettingsController + inputSettingsGPUState + inputSettingsLoadStateSlot + inputSettingsMicrophone + inputSettingsSaveStateSlot + inputSettingsSetSpeedLimit + inputSettingsTouch + prefWindow + + + YES + + inputManager + InputManager + + + inputPrefOutlineView + NSOutlineView + + + inputProfileController + InputProfileController + + + inputProfileMenu + NSPopUpButton + + + inputProfileNextButton + NSButton + + + inputProfilePreviousButton + NSButton + + + inputProfileRenameSheet + NSWindow + + + inputProfileSheet + NSWindow + + + inputSettingsController + NSObjectController + + + inputSettingsGPUState + NSWindow + + + inputSettingsLoadStateSlot + NSWindow + + + inputSettingsMicrophone + NSWindow + + + inputSettingsSaveStateSlot + NSWindow + + + inputSettingsSetSpeedLimit + NSWindow + + + inputSettingsTouch + NSWindow + + + prefWindow + NSWindow + + + + + IBProjectSource + ./Classes/InputPrefsView.h + + + + InputProfileController + NSObjectController + + YES + + YES + inputManager + profileOutlineView + + + YES + InputManager + NSOutlineView + + + + YES + + YES + inputManager + profileOutlineView + + + YES + + inputManager + InputManager + + + profileOutlineView + NSOutlineView + + + + + IBProjectSource + ./Classes/InputProfileController.h + + + + PreferencesWindowDelegate + NSObject + + YES + + YES + chooseARM7BiosImage: + chooseARM9BiosImage: + chooseAdvansceneDatabase: + chooseCheatDatabase: + chooseFirmwareImage: + chooseRomForAutoload: + closeFirmwareConfigSheet: + configureInternalFirmware: + selectAutoloadRomOption: + selectDisplayMode: + selectDisplayRotation: + selectDisplaySize: + selectSPUSyncMethod: + selectSPUSyncMode: + selectVideoFilterType: + setUseBilinear: + showDisplayView: + showEmulationView: + showGeneralView: + showInputView: + showSoundView: + updateVolumeIcon: + + + YES + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + + + + YES + + YES + chooseARM7BiosImage: + chooseARM9BiosImage: + chooseAdvansceneDatabase: + chooseCheatDatabase: + chooseFirmwareImage: + chooseRomForAutoload: + closeFirmwareConfigSheet: + configureInternalFirmware: + selectAutoloadRomOption: + selectDisplayMode: + selectDisplayRotation: + selectDisplaySize: + selectSPUSyncMethod: + selectSPUSyncMode: + selectVideoFilterType: + setUseBilinear: + showDisplayView: + showEmulationView: + showGeneralView: + showInputView: + showSoundView: + updateVolumeIcon: + + + YES + + chooseARM7BiosImage: + id + + + chooseARM9BiosImage: + id + + + chooseAdvansceneDatabase: + id + + + chooseCheatDatabase: + id + + + chooseFirmwareImage: + id + + + chooseRomForAutoload: + id + + + closeFirmwareConfigSheet: + id + + + configureInternalFirmware: + id + + + selectAutoloadRomOption: + id + + + selectDisplayMode: + id + + + selectDisplayRotation: + id + + + selectDisplaySize: + id + + + selectSPUSyncMethod: + id + + + selectSPUSyncMode: + id + + + selectVideoFilterType: + id + + + setUseBilinear: + id + + + showDisplayView: + id + + + showEmulationView: + id + + + showGeneralView: + id + + + showInputView: + id + + + showSoundView: + id + + + updateVolumeIcon: + id + + + + + YES + + YES + cdsCoreController + cheatDatabaseController + cheatWindowController + displayRotationField + displayRotationMenu + displayRotationMenuCustomItem + emuController + firmwareConfigSheet + prefWindowController + previewImageView + spuSyncMethodMenu + viewDisplay + viewEmulation + viewGeneral + viewInput + viewSound + window + + + YES + NSObjectController + NSArrayController + NSObjectController + NSTextField + NSPopUpButton + NSMenuItem + NSObjectController + NSWindow + NSObjectController + NSImageView + NSPopUpButton + NSView + NSView + NSView + InputPrefsView + NSView + NSWindow + + + + YES + + YES + cdsCoreController + cheatDatabaseController + cheatWindowController + displayRotationField + displayRotationMenu + displayRotationMenuCustomItem + emuController + firmwareConfigSheet + prefWindowController + previewImageView + spuSyncMethodMenu + viewDisplay + viewEmulation + viewGeneral + viewInput + viewSound + window + + + YES + + cdsCoreController + NSObjectController + + + cheatDatabaseController + NSArrayController + + + cheatWindowController + NSObjectController + + + displayRotationField + NSTextField + + + displayRotationMenu + NSPopUpButton + + + displayRotationMenuCustomItem + NSMenuItem + + + emuController + NSObjectController + + + firmwareConfigSheet + NSWindow + + + prefWindowController + NSObjectController + + + previewImageView + NSImageView + + + spuSyncMethodMenu + NSPopUpButton + + + viewDisplay + NSView + + + viewEmulation + NSView + + + viewGeneral + NSView + + + viewInput + InputPrefsView + + + viewSound + NSView + + + window + NSWindow + + + + + IBProjectSource + ./Classes/PreferencesWindowDelegate.h + + + + TroubleshootingWindowDelegate + NSObject + + YES + + YES + backForm: + continueToFinalForm: + copyInfoToPasteboard: + copyRomInfoToTextFields: + goToWebpage: + + + YES + id + id + id + id + id + + + + YES + + YES + backForm: + continueToFinalForm: + copyInfoToPasteboard: + copyRomInfoToTextFields: + goToWebpage: + + + YES + + backForm: + id + + + continueToFinalForm: + id + + + copyInfoToPasteboard: + id + + + copyRomInfoToTextFields: + id + + + goToWebpage: + id + + + + + YES + + YES + romInfoController + troubleshootingWindowController + viewBugReport + viewFinishedForm + viewSupportRequest + window + + + YES + NSObjectController + NSObjectController + NSView + NSView + NSView + NSWindow + + + + YES + + YES + romInfoController + troubleshootingWindowController + viewBugReport + viewFinishedForm + viewSupportRequest + window + + + YES + + romInfoController + NSObjectController + + + troubleshootingWindowController + NSObjectController + + + viewBugReport + NSView + + + viewFinishedForm + NSView + + + viewSupportRequest + NSView + + + window + NSWindow + + + + + IBProjectSource + ./Classes/TroubleshootingWindowDelegate.h + + + - 0 IBCocoaFramework diff --git a/desmume/src/cocoa/userinterface/DisplayWindowController.h b/desmume/src/cocoa/userinterface/DisplayWindowController.h index 4d166a24c..3be12eb00 100644 --- a/desmume/src/cocoa/userinterface/DisplayWindowController.h +++ b/desmume/src/cocoa/userinterface/DisplayWindowController.h @@ -161,7 +161,20 @@ - (IBAction) reset:(id)sender; - (IBAction) changeCoreSpeed:(id)sender; - (IBAction) openRom:(id)sender; -- (IBAction) changeRotationRelative:(id)sender; - (IBAction) saveScreenshotAs:(id)sender; +// View Menu +- (IBAction) changeScale:(id)sender; +- (IBAction) changeRotation:(id)sender; +- (IBAction) changeRotationRelative:(id)sender; +- (IBAction) changeDisplayMode:(id)sender; +- (IBAction) changeDisplayOrientation:(id)sender; +- (IBAction) changeDisplayOrder:(id)sender; +- (IBAction) changeDisplayGap:(id)sender; + +- (IBAction) writeDefaultsDisplayRotation:(id)sender; +- (IBAction) writeDefaultsDisplayGap:(id)sender; +- (IBAction) writeDefaultsHUDSettings:(id)sender; +- (IBAction) writeDefaultsDisplayVideoSettings:(id)sender; + @end diff --git a/desmume/src/cocoa/userinterface/DisplayWindowController.mm b/desmume/src/cocoa/userinterface/DisplayWindowController.mm index 5ba69bd22..8878ed7e8 100644 --- a/desmume/src/cocoa/userinterface/DisplayWindowController.mm +++ b/desmume/src/cocoa/userinterface/DisplayWindowController.mm @@ -704,12 +704,6 @@ enum OGLVertexAttributeID [emuControl openRom:sender]; } -- (IBAction) changeRotationRelative:(id)sender -{ - const double angleDegrees = [self displayRotation] + (double)[CocoaDSUtil getIBActionSenderTag:sender]; - [self setDisplayRotation:angleDegrees]; -} - - (IBAction) saveScreenshotAs:(id)sender { [emuControl pauseCore]; @@ -730,6 +724,211 @@ enum OGLVertexAttributeID } } +- (IBAction) changeScale:(id)sender +{ + [self setDisplayScale:(double)[CocoaDSUtil getIBActionSenderTag:sender] / 100.0]; +} + +- (IBAction) changeRotation:(id)sender +{ + // Get the rotation value from the sender. + if ([sender isMemberOfClass:[NSSlider class]]) + { + [self setDisplayRotation:[(NSSlider *)sender doubleValue]]; + } + else + { + [self setDisplayRotation:(double)[CocoaDSUtil getIBActionSenderTag:sender]]; + } +} + +- (IBAction) changeRotationRelative:(id)sender +{ + const double angleDegrees = [self displayRotation] + (double)[CocoaDSUtil getIBActionSenderTag:sender]; + [self setDisplayRotation:angleDegrees]; +} + +- (IBAction) changeDisplayMode:(id)sender +{ + const NSInteger newDisplayModeID = [CocoaDSUtil getIBActionSenderTag:sender]; + + if (newDisplayModeID == [self displayMode]) + { + return; + } + + [self setDisplayMode:newDisplayModeID]; +} + +- (IBAction) changeDisplayOrientation:(id)sender +{ + const NSInteger newDisplayOrientation = [CocoaDSUtil getIBActionSenderTag:sender]; + + if (newDisplayOrientation == [self displayOrientation]) + { + return; + } + + [self setDisplayOrientation:newDisplayOrientation]; +} + +- (IBAction) changeDisplayOrder:(id)sender +{ + [self setDisplayOrder:[CocoaDSUtil getIBActionSenderTag:sender]]; +} + +- (IBAction) changeDisplayGap:(id)sender +{ + [self setDisplayGap:(double)[CocoaDSUtil getIBActionSenderTag:sender] / 100.0]; +} + +- (IBAction) writeDefaultsDisplayRotation:(id)sender +{ + [[NSUserDefaults standardUserDefaults] setDouble:[self displayRotation] forKey:@"DisplayView_Rotation"]; +} + +- (IBAction) writeDefaultsDisplayGap:(id)sender +{ + [[NSUserDefaults standardUserDefaults] setDouble:([self displayGap] * 100.0) forKey:@"DisplayViewCombo_Gap"]; +} + +- (IBAction) writeDefaultsHUDSettings:(id)sender +{ + // TODO: Not implemented. +} + +- (IBAction) writeDefaultsDisplayVideoSettings:(id)sender +{ + [[NSUserDefaults standardUserDefaults] setInteger:[self videoFilterType] forKey:@"DisplayView_VideoFilter"]; + [[NSUserDefaults standardUserDefaults] setBool:[self useBilinearOutput] forKey:@"DisplayView_UseBilinearOutput"]; + [[NSUserDefaults standardUserDefaults] setBool:[self useVerticalSync] forKey:@"DisplayView_UseVerticalSync"]; +} + +#pragma mark NSUserInterfaceValidations Protocol + +- (BOOL)validateUserInterfaceItem:(id )theItem +{ + BOOL enable = YES; + const SEL theAction = [theItem action]; + + if (theAction == @selector(changeScale:)) + { + const NSInteger viewScale = (NSInteger)([self displayScale] * 100.0); + + if ([(id)theItem isMemberOfClass:[NSMenuItem class]]) + { + [(NSMenuItem*)theItem setState:(viewScale == [theItem tag]) ? NSOnState : NSOffState]; + } + } + else if (theAction == @selector(changeRotation:)) + { + const NSInteger viewRotation = (NSInteger)[self displayRotation]; + + if ([(id)theItem isMemberOfClass:[NSMenuItem class]]) + { + if ([theItem tag] == -1) + { + if (viewRotation == 0 || + viewRotation == 90 || + viewRotation == 180 || + viewRotation == 270) + { + [(NSMenuItem*)theItem setState:NSOffState]; + } + else + { + [(NSMenuItem*)theItem setState:NSOnState]; + } + } + else + { + [(NSMenuItem*)theItem setState:(viewRotation == [theItem tag]) ? NSOnState : NSOffState]; + } + } + } + else if (theAction == @selector(changeDisplayMode:)) + { + if ([(id)theItem isMemberOfClass:[NSMenuItem class]]) + { + [(NSMenuItem*)theItem setState:([self displayMode] == [theItem tag]) ? NSOnState : NSOffState]; + } + } + else if (theAction == @selector(changeDisplayOrientation:)) + { + if ([(id)theItem isMemberOfClass:[NSMenuItem class]]) + { + [(NSMenuItem*)theItem setState:([self displayOrientation] == [theItem tag]) ? NSOnState : NSOffState]; + } + } + else if (theAction == @selector(changeDisplayOrder:)) + { + if ([(id)theItem isMemberOfClass:[NSMenuItem class]]) + { + [(NSMenuItem*)theItem setState:([self displayOrder] == [theItem tag]) ? NSOnState : NSOffState]; + } + } + else if (theAction == @selector(changeDisplayGap:)) + { + if ([(id)theItem isMemberOfClass:[NSMenuItem class]]) + { + const NSInteger gapScalar = (NSInteger)([self displayGap] * 100.0); + + if ([(id)theItem isMemberOfClass:[NSMenuItem class]]) + { + if ([theItem tag] == -1) + { + if (gapScalar == 0 || + gapScalar == 50 || + gapScalar == 100 || + gapScalar == 150 || + gapScalar == 200) + { + [(NSMenuItem*)theItem setState:NSOffState]; + } + else + { + [(NSMenuItem*)theItem setState:NSOnState]; + } + } + else + { + [(NSMenuItem*)theItem setState:(gapScalar == [theItem tag]) ? NSOnState : NSOffState]; + } + } + } + } + else if (theAction == @selector(hudDisable:)) + { + if ([(id)theItem isMemberOfClass:[NSMenuItem class]]) + { + [(NSMenuItem*)theItem setTitle:([[self view] isHudEnabled]) ? NSSTRING_TITLE_DISABLE_HUD : NSSTRING_TITLE_ENABLE_HUD]; + } + } + else if (theAction == @selector(toggleStatusBar:)) + { + if ([(id)theItem isMemberOfClass:[NSMenuItem class]]) + { + [(NSMenuItem*)theItem setTitle:([self isShowingStatusBar]) ? NSSTRING_TITLE_HIDE_STATUS_BAR : NSSTRING_TITLE_SHOW_STATUS_BAR]; + } + } + else if (theAction == @selector(toggleKeepMinDisplaySizeAtNormal:)) + { + if ([(id)theItem isMemberOfClass:[NSMenuItem class]]) + { + [(NSMenuItem*)theItem setState:([self isMinSizeNormal]) ? NSOnState : NSOffState]; + } + } + else if (theAction == @selector(toggleToolbarShown:)) + { + if ([(id)theItem isMemberOfClass:[NSMenuItem class]]) + { + [(NSMenuItem*)theItem setTitle:([[[self window] toolbar] isVisible]) ? NSSTRING_TITLE_HIDE_TOOLBAR : NSSTRING_TITLE_SHOW_TOOLBAR]; + } + } + + return enable; +} + #pragma mark NSWindowDelegate Protocol - (void)windowDidLoad diff --git a/desmume/src/cocoa/userinterface/EmuControllerDelegate.h b/desmume/src/cocoa/userinterface/EmuControllerDelegate.h index e97d76cfd..1d90183b2 100644 --- a/desmume/src/cocoa/userinterface/EmuControllerDelegate.h +++ b/desmume/src/cocoa/userinterface/EmuControllerDelegate.h @@ -145,7 +145,6 @@ class AudioSampleBlockGenerator; - (IBAction) newDisplayWindow:(id)sender; - (IBAction) openRom:(id)sender; - (IBAction) loadRecentRom:(id)sender; -- (IBAction) closeWindow:(id)sender; - (IBAction) closeRom:(id)sender; - (IBAction) revealRomInFinder:(id)sender; - (IBAction) revealGameDataFolderInFinder:(id)sender; @@ -166,22 +165,8 @@ class AudioSampleBlockGenerator; - (IBAction) reset:(id)sender; - (IBAction) changeRomSaveType:(id)sender; -// View Menu -- (IBAction) changeScale:(id)sender; -- (IBAction) changeRotation:(id)sender; -- (IBAction) changeRotationRelative:(id)sender; -- (IBAction) changeDisplayMode:(id)sender; -- (IBAction) changeDisplayOrientation:(id)sender; -- (IBAction) changeDisplayOrder:(id)sender; -- (IBAction) changeDisplayGap:(id)sender; -- (IBAction) toggleKeepMinDisplaySizeAtNormal:(id)sender; -- (IBAction) toggleStatusBar:(id)sender; -- (IBAction) toggleToolbarShown:(id)sender; -- (IBAction) runToolbarCustomizationPalette:(id)sender; - // Tools Menu - (IBAction) toggleGPUState:(id)sender; -- (IBAction) saveScreenshotAs:(id)sender; - (IBAction) changeCoreSpeed:(id)sender; - (IBAction) changeCoreEmuFlags:(id)sender; @@ -197,10 +182,6 @@ class AudioSampleBlockGenerator; - (IBAction) chooseSlot1R4Directory:(id)sender; - (IBAction) slot1Eject:(id)sender; -- (IBAction) writeDefaultsDisplayRotation:(id)sender; -- (IBAction) writeDefaultsDisplayGap:(id)sender; -- (IBAction) writeDefaultsHUDSettings:(id)sender; -- (IBAction) writeDefaultsDisplayVideoSettings:(id)sender; - (IBAction) writeDefaults3DRenderingSettings:(id)sender; - (IBAction) writeDefaultsEmulationSettings:(id)sender; - (IBAction) writeDefaultsSlot1Settings:(id)sender; diff --git a/desmume/src/cocoa/userinterface/EmuControllerDelegate.mm b/desmume/src/cocoa/userinterface/EmuControllerDelegate.mm index e47697d69..71feb4218 100644 --- a/desmume/src/cocoa/userinterface/EmuControllerDelegate.mm +++ b/desmume/src/cocoa/userinterface/EmuControllerDelegate.mm @@ -491,11 +491,6 @@ // Dummy selector, used for UI validation only. } -- (IBAction) closeWindow:(id)sender -{ - [[mainWindow window] performClose:sender]; -} - - (IBAction) closeRom:(id)sender { [self handleUnloadRom:REASONFORCLOSE_NORMAL romToLoad:nil]; @@ -756,31 +751,6 @@ [inputManager dispatchCommandUsingIBAction:_cmd sender:sender]; } -- (IBAction) toggleKeepMinDisplaySizeAtNormal:(id)sender -{ - [mainWindow toggleKeepMinDisplaySizeAtNormal:sender]; -} - -- (IBAction) toggleStatusBar:(id)sender -{ - [mainWindow toggleStatusBar:sender]; -} - -- (IBAction) toggleToolbarShown:(id)sender -{ - [[mainWindow window] toggleToolbarShown:sender]; -} - -- (IBAction) runToolbarCustomizationPalette:(id)sender -{ - [[mainWindow window] runToolbarCustomizationPalette:sender]; -} - -- (IBAction) saveScreenshotAs:(id)sender -{ - [mainWindow saveScreenshotAs:sender]; -} - - (IBAction) toggleGPUState:(id)sender { [inputManager dispatchCommandUsingIBAction:_cmd sender:sender]; @@ -802,10 +772,17 @@ - (IBAction) changeCoreSpeed:(id)sender { - CGFloat newSpeedScalar = (CGFloat)[CocoaDSUtil getIBActionSenderTag:sender] / 100.0f; - CocoaDSCore *cdsCore = (CocoaDSCore *)[cdsCoreController content]; - [cdsCore setSpeedScalar:newSpeedScalar]; - lastSetSpeedScalar = newSpeedScalar; + if ([sender isKindOfClass:[NSSlider class]]) + { + lastSetSpeedScalar = [(NSSlider *)sender floatValue]; + } + else + { + const CGFloat newSpeedScalar = (CGFloat)[CocoaDSUtil getIBActionSenderTag:sender] / 100.0f; + CocoaDSCore *cdsCore = (CocoaDSCore *)[cdsCoreController content]; + [cdsCore setSpeedScalar:newSpeedScalar]; + lastSetSpeedScalar = newSpeedScalar; + } } - (IBAction) changeCoreEmuFlags:(id)sender @@ -874,63 +851,6 @@ [CocoaDSUtil messageSendOneWayWithInteger:[cdsSpeaker receivePort] msgID:MESSAGE_SET_SPU_SYNC_METHOD integerValue:[CocoaDSUtil getIBActionSenderTag:sender]]; } -- (IBAction) changeScale:(id)sender -{ - [mainWindow setDisplayScale:(double)[CocoaDSUtil getIBActionSenderTag:sender] / 100.0]; -} - -- (IBAction) changeRotation:(id)sender -{ - // Get the rotation value from the sender. - if ([sender isMemberOfClass:[NSSlider class]]) - { - [mainWindow setDisplayRotation:[(NSSlider *)sender doubleValue]]; - } - else - { - [mainWindow setDisplayRotation:(double)[CocoaDSUtil getIBActionSenderTag:sender]]; - } -} - -- (IBAction) changeRotationRelative:(id)sender -{ - [inputManager dispatchCommandUsingIBAction:_cmd sender:sender]; -} - -- (IBAction) changeDisplayMode:(id)sender -{ - const NSInteger newDisplayModeID = [CocoaDSUtil getIBActionSenderTag:sender]; - - if (newDisplayModeID == [mainWindow displayMode]) - { - return; - } - - [mainWindow setDisplayMode:newDisplayModeID]; -} - -- (IBAction) changeDisplayOrientation:(id)sender -{ - const NSInteger newDisplayOrientation = [CocoaDSUtil getIBActionSenderTag:sender]; - - if (newDisplayOrientation == [mainWindow displayOrientation]) - { - return; - } - - [mainWindow setDisplayOrientation:newDisplayOrientation]; -} - -- (IBAction) changeDisplayOrder:(id)sender -{ - [mainWindow setDisplayOrder:[CocoaDSUtil getIBActionSenderTag:sender]]; -} - -- (IBAction) changeDisplayGap:(id)sender -{ - [mainWindow setDisplayGap:(double)[CocoaDSUtil getIBActionSenderTag:sender] / 100.0]; -} - - (IBAction) chooseSlot1R4Directory:(id)sender { NSOpenPanel *panel = [NSOpenPanel openPanel]; @@ -964,28 +884,6 @@ [cdsCore slot1Eject]; } -- (IBAction) writeDefaultsDisplayRotation:(id)sender -{ - [[NSUserDefaults standardUserDefaults] setDouble:[mainWindow displayRotation] forKey:@"DisplayView_Rotation"]; -} - -- (IBAction) writeDefaultsDisplayGap:(id)sender -{ - [[NSUserDefaults standardUserDefaults] setDouble:([mainWindow displayGap] * 100.0) forKey:@"DisplayViewCombo_Gap"]; -} - -- (IBAction) writeDefaultsHUDSettings:(id)sender -{ - // TODO: Not implemented. -} - -- (IBAction) writeDefaultsDisplayVideoSettings:(id)sender -{ - [[NSUserDefaults standardUserDefaults] setInteger:[mainWindow videoFilterType] forKey:@"DisplayView_VideoFilter"]; - [[NSUserDefaults standardUserDefaults] setBool:[mainWindow useBilinearOutput] forKey:@"DisplayView_UseBilinearOutput"]; - [[NSUserDefaults standardUserDefaults] setBool:[mainWindow useVerticalSync] forKey:@"DisplayView_UseVerticalSync"]; -} - - (IBAction) writeDefaults3DRenderingSettings:(id)sender { CocoaDSCore *cdsCore = (CocoaDSCore *)[cdsCoreController content]; @@ -2149,120 +2047,6 @@ [(NSMenuItem*)theItem setState:([cdsCore.cdsGPU gpuStateByBit:[theItem tag]]) ? NSOnState : NSOffState]; } } - else if (theAction == @selector(changeScale:)) - { - const NSInteger viewScale = (NSInteger)([mainWindow displayScale] * 100.0); - - if ([(id)theItem isMemberOfClass:[NSMenuItem class]]) - { - [(NSMenuItem*)theItem setState:(viewScale == [theItem tag]) ? NSOnState : NSOffState]; - } - } - else if (theAction == @selector(changeRotation:)) - { - const NSInteger viewRotation = (NSInteger)[mainWindow displayRotation]; - - if ([(id)theItem isMemberOfClass:[NSMenuItem class]]) - { - if ([theItem tag] == -1) - { - if (viewRotation == 0 || - viewRotation == 90 || - viewRotation == 180 || - viewRotation == 270) - { - [(NSMenuItem*)theItem setState:NSOffState]; - } - else - { - [(NSMenuItem*)theItem setState:NSOnState]; - } - } - else - { - [(NSMenuItem*)theItem setState:(viewRotation == [theItem tag]) ? NSOnState : NSOffState]; - } - } - } - else if (theAction == @selector(changeDisplayMode:)) - { - if ([(id)theItem isMemberOfClass:[NSMenuItem class]]) - { - [(NSMenuItem*)theItem setState:([mainWindow displayMode] == [theItem tag]) ? NSOnState : NSOffState]; - } - } - else if (theAction == @selector(changeDisplayOrientation:)) - { - if ([(id)theItem isMemberOfClass:[NSMenuItem class]]) - { - [(NSMenuItem*)theItem setState:([mainWindow displayOrientation] == [theItem tag]) ? NSOnState : NSOffState]; - } - } - else if (theAction == @selector(changeDisplayOrder:)) - { - if ([(id)theItem isMemberOfClass:[NSMenuItem class]]) - { - [(NSMenuItem*)theItem setState:([mainWindow displayOrder] == [theItem tag]) ? NSOnState : NSOffState]; - } - } - else if (theAction == @selector(changeDisplayGap:)) - { - if ([(id)theItem isMemberOfClass:[NSMenuItem class]]) - { - const NSInteger gapScalar = (NSInteger)([mainWindow displayGap] * 100.0); - - if ([(id)theItem isMemberOfClass:[NSMenuItem class]]) - { - if ([theItem tag] == -1) - { - if (gapScalar == 0 || - gapScalar == 50 || - gapScalar == 100 || - gapScalar == 150 || - gapScalar == 200) - { - [(NSMenuItem*)theItem setState:NSOffState]; - } - else - { - [(NSMenuItem*)theItem setState:NSOnState]; - } - } - else - { - [(NSMenuItem*)theItem setState:(gapScalar == [theItem tag]) ? NSOnState : NSOffState]; - } - } - } - } - else if (theAction == @selector(hudDisable:)) - { - if ([(id)theItem isMemberOfClass:[NSMenuItem class]]) - { - [(NSMenuItem*)theItem setTitle:([[mainWindow view] isHudEnabled]) ? NSSTRING_TITLE_DISABLE_HUD : NSSTRING_TITLE_ENABLE_HUD]; - } - } - else if (theAction == @selector(toggleStatusBar:)) - { - if ([(id)theItem isMemberOfClass:[NSMenuItem class]]) - { - [(NSMenuItem*)theItem setTitle:([mainWindow isShowingStatusBar]) ? NSSTRING_TITLE_HIDE_STATUS_BAR : NSSTRING_TITLE_SHOW_STATUS_BAR]; - } - } - else if (theAction == @selector(toggleKeepMinDisplaySizeAtNormal:)) - { - if ([(id)theItem isMemberOfClass:[NSMenuItem class]]) - { - [(NSMenuItem*)theItem setState:([mainWindow isMinSizeNormal]) ? NSOnState : NSOffState]; - } - } - else if (theAction == @selector(toggleToolbarShown:)) - { - if ([(id)theItem isMemberOfClass:[NSMenuItem class]]) - { - [(NSMenuItem*)theItem setTitle:([[[mainWindow window] toolbar] isVisible]) ? NSSTRING_TITLE_HIDE_TOOLBAR : NSSTRING_TITLE_SHOW_TOOLBAR]; - } - } return enable; }