From 8e387dd05abbb3139c976556e48e0820bc293ca6 Mon Sep 17 00:00:00 2001 From: Martin Plicht Date: Mon, 2 Sep 2013 20:47:44 +0200 Subject: [PATCH] mac: Make Screenshot (of whole map) in main menu --- src/platform/C4AppDelegate+MainMenuActions.h | 2 + src/platform/C4AppDelegate+MainMenuActions.mm | 30 +++- src/res/MainMenu.xib | 158 +++++++++++------- 3 files changed, 120 insertions(+), 70 deletions(-) diff --git a/src/platform/C4AppDelegate+MainMenuActions.h b/src/platform/C4AppDelegate+MainMenuActions.h index 720e056df..03392020a 100644 --- a/src/platform/C4AppDelegate+MainMenuActions.h +++ b/src/platform/C4AppDelegate+MainMenuActions.h @@ -21,4 +21,6 @@ - (IBAction) suggestQuitting:(id)sender; - (IBAction) simulateKeyPressed:(C4KeyCode)key; - (IBAction) visitWebsite:(id)sender; +- (IBAction) makeScreenshot:(id)sender; +- (IBAction) makeScreenshotOfWholeMap:(id)sender; @end diff --git a/src/platform/C4AppDelegate+MainMenuActions.mm b/src/platform/C4AppDelegate+MainMenuActions.mm index e6943cf6d..7da5662a6 100644 --- a/src/platform/C4AppDelegate+MainMenuActions.mm +++ b/src/platform/C4AppDelegate+MainMenuActions.mm @@ -142,9 +142,19 @@ if ([item action] == @selector(toggleFullScreen:)) return !Application.isEditor; - // game running no matter whether console or fullscreen - if ([item action] == @selector(togglePause:)) - return Game.IsRunning; + SEL s; + int i; + + SEL gameRunningSelectors[] = + { + @selector(togglePause:), + @selector(makeScreenshot:), + @selector(makeScreenshotOfWholeMap:), + nil + }; + for (i = 0; (s = gameRunningSelectors[i]) != nil; i++) + if ([item action] == s) + return Game.IsRunning; // enabled when game running and console mode SEL gameRunningInConsoleModeSelectors[] = @@ -162,9 +172,7 @@ @selector(setDrawingTool:), nil }; - int i = 0; - SEL s; - while ((s = gameRunningInConsoleModeSelectors[i++]) != nil) + for (i = 0; (s = gameRunningInConsoleModeSelectors[i]) != nil; i++) { if (s == [item action]) return Application.isEditor && Game.IsRunning; @@ -185,4 +193,14 @@ Game.DoKeyboardInput(key, KEYEV_Up, false, false, false, false, NULL); } +- (IBAction) makeScreenshot:(id)sender; +{ + ::GraphicsSystem.SaveScreenshot(false); +} + +- (IBAction) makeScreenshotOfWholeMap:(id)sender; +{ + ::GraphicsSystem.SaveScreenshot(true); +} + @end diff --git a/src/res/MainMenu.xib b/src/res/MainMenu.xib index b1b93ed2b..c29f590e4 100644 --- a/src/res/MainMenu.xib +++ b/src/res/MainMenu.xib @@ -2,20 +2,20 @@ 1060 - 11D50 - 2182 - 1138.32 - 568.00 + 12E55 + 3084 + 1187.39 + 626.00 com.apple.InterfaceBuilder.CocoaPlugin - 2182 + 3084 YES - NSUserDefaultsController + NSCustomObject NSMenu NSMenuItem - NSCustomObject + NSUserDefaultsController YES @@ -879,6 +879,35 @@ + + + YES + YES + + + 2147483647 + + + + + + Make Screenshot + s + 1310720 + 2147483647 + + + + + + YES + Make Screenshot of whole map + s + 1835008 + 2147483647 + + + @@ -1564,6 +1593,22 @@ 718 + + + makeScreenshotOfWholeMap: + + + + 722 + + + + makeScreenshot: + + + + 723 + @@ -1947,6 +1992,9 @@ YES + + + @@ -2378,6 +2426,21 @@ + + 719 + + + + + 720 + + + + + 721 + + + @@ -2501,6 +2564,9 @@ 703.IBPluginDependency 704.IBPluginDependency 716.IBPluginDependency + 719.IBPluginDependency + 720.IBPluginDependency + 721.IBPluginDependency YES @@ -2621,6 +2687,9 @@ com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin @@ -2635,7 +2704,7 @@ - 718 + 723 @@ -2649,6 +2718,8 @@ YES closeScenario: joinPlayer: + makeScreenshot: + makeScreenshotOfWholeMap: newViewport: newViewportForPlayer: openPropTools: @@ -2662,7 +2733,7 @@ setDrawingTool: showAbout: suggestQuitting: - toggleFullscreen: + toggleFullScreen: togglePause: visitWebsite: @@ -2686,6 +2757,8 @@ id id id + id + id @@ -2694,6 +2767,8 @@ YES closeScenario: joinPlayer: + makeScreenshot: + makeScreenshotOfWholeMap: newViewport: newViewportForPlayer: openPropTools: @@ -2707,7 +2782,7 @@ setDrawingTool: showAbout: suggestQuitting: - toggleFullscreen: + toggleFullScreen: togglePause: visitWebsite: @@ -2721,6 +2796,14 @@ joinPlayer: id + + makeScreenshot: + id + + + makeScreenshotOfWholeMap: + id + newViewport: id @@ -2774,7 +2857,7 @@ id - toggleFullscreen: + toggleFullScreen: id @@ -2787,59 +2870,6 @@ - - YES - - YES - addViewportForPlayerMenuItem - kickPlayerMenuItem - netMenu - recordMenuItem - toggleFullScreen - - - YES - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - NSMenuItem - - - - YES - - YES - addViewportForPlayerMenuItem - kickPlayerMenuItem - netMenu - recordMenuItem - toggleFullScreen - - - YES - - addViewportForPlayerMenuItem - NSMenuItem - - - kickPlayerMenuItem - NSMenuItem - - - netMenu - NSMenuItem - - - recordMenuItem - NSMenuItem - - - toggleFullScreen - NSMenuItem - - - IBProjectSource ./Classes/C4AppDelegate.h