From 908a927929a0d86af4081102e187356318d3b226 Mon Sep 17 00:00:00 2001 From: Paul Chote Date: Wed, 19 Jan 2011 23:24:13 +1300 Subject: [PATCH] Add "Install from web" "Install from CD" and "Quit" buttons to the install menu. "From CD" prompts a system file picker (osx only). --- OpenRA.Game/Game.cs | 2 +- OpenRA.Launcher.Mac/Controller.m | 20 +++++++++-- .../OpenRA.xcodeproj/project.pbxproj | 2 ++ .../Release/OpenRA.app/Contents/MacOS/OpenRA | Bin 68504 -> 72772 bytes OpenRA.Launcher.Mac/main.m | 16 ++++++--- mods/ra/chrome/mainmenu.yaml | 32 +++++++++++++++--- 6 files changed, 60 insertions(+), 12 deletions(-) diff --git a/OpenRA.Game/Game.cs b/OpenRA.Game/Game.cs index e675ed267d..6311862a97 100755 --- a/OpenRA.Game/Game.cs +++ b/OpenRA.Game/Game.cs @@ -254,7 +254,7 @@ namespace OpenRA viewport = new Viewport(new int2(Renderer.Resolution), Rectangle.Empty, Renderer); modData.WidgetLoader.LoadWidget( new Dictionary(), Widget.RootWidget, "PERF_BG" ); - Widget.OpenWindow("MAINMENU_INIT"); + modData.WidgetLoader.LoadWidget( new Dictionary(), Widget.RootWidget, "MAINMENU_INIT" ); Game.orderManager.LastTickTime = Environment.TickCount; } diff --git a/OpenRA.Launcher.Mac/Controller.m b/OpenRA.Launcher.Mac/Controller.m index 579fdccbd4..7cdf231367 100644 --- a/OpenRA.Launcher.Mac/Controller.m +++ b/OpenRA.Launcher.Mac/Controller.m @@ -5,7 +5,7 @@ * as published by the Free Software Foundation. For more information, * see LICENSE. */ - +#import "main.h" #import "Controller.h" @implementation Controller @@ -43,13 +43,17 @@ [[NSApplication sharedApplication] terminate:self]; } - [self launchMod:@"cnc"]; + [self launchMod:@"ra"]; [NSApp terminate: nil]; } - (void)launchFilePicker:(NSArray *)args { + hide_menubar_if_necessary(); + [NSApp activateIgnoringOtherApps:YES]; + NSOpenPanel *op = [NSOpenPanel openPanel]; + [op setLevel:CGShieldingWindowLevel()]; [op setAllowsMultipleSelection:NO]; NSUInteger a = [args indexOfObject:@"--title"]; @@ -64,6 +68,18 @@ if (a != NSNotFound) [op setDirectory:[[args objectAtIndex:a+1] stringByExpandingTildeInPath]]; + a = [args indexOfObject:@"--require-directory"]; + if (a != NSNotFound) + { + [op setCanChooseFiles:NO]; + [op setCanChooseDirectories:YES]; + } + + a = [args indexOfObject:@"--button-text"]; + if (a != NSNotFound) + [op setPrompt:[[args objectAtIndex:a+1] stringByExpandingTildeInPath]]; + + if ([op runModal] == NSFileHandlingPanelOKButton) printf("%s\n", [[[op URL] path] UTF8String]); diff --git a/OpenRA.Launcher.Mac/OpenRA.xcodeproj/project.pbxproj b/OpenRA.Launcher.Mac/OpenRA.xcodeproj/project.pbxproj index 878f66cc8a..aa4ddbecbd 100644 --- a/OpenRA.Launcher.Mac/OpenRA.xcodeproj/project.pbxproj +++ b/OpenRA.Launcher.Mac/OpenRA.xcodeproj/project.pbxproj @@ -27,6 +27,7 @@ 29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = ""; }; 8D1107310486CEB800E47090 /* OpenRA-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "OpenRA-Info.plist"; sourceTree = ""; }; 8D1107320486CEB800E47090 /* OpenRA.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = OpenRA.app; sourceTree = BUILT_PRODUCTS_DIR; }; + DA134CC412E6F131009AA0EF /* main.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = main.h; sourceTree = ""; }; DA81FA801290F5C800C48F2F /* Controller.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Controller.h; sourceTree = ""; }; DA81FA811290F5C800C48F2F /* Controller.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Controller.m; sourceTree = ""; }; DA81FBDB12910E4900C48F2F /* OpenRA.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = OpenRA.icns; sourceTree = ""; }; @@ -99,6 +100,7 @@ children = ( 256AC3F00F4B6AF500CF3369 /* OpenRA_Prefix.pch */, 29B97316FDCFA39411CA2CEA /* main.m */, + DA134CC412E6F131009AA0EF /* main.h */, ); name = "Other Sources"; sourceTree = ""; diff --git a/OpenRA.Launcher.Mac/build/Release/OpenRA.app/Contents/MacOS/OpenRA b/OpenRA.Launcher.Mac/build/Release/OpenRA.app/Contents/MacOS/OpenRA index b52e320fca551a9a14b2647a90bb781e4ab3afad..39645a7b5356bb89e5e46792973e35f1992abf27 100755 GIT binary patch literal 72772 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 K|h+G# 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 diff --git a/OpenRA.Launcher.Mac/main.m b/OpenRA.Launcher.Mac/main.m index f3b367a68e..01d439e54a 100644 --- a/OpenRA.Launcher.Mac/main.m +++ b/OpenRA.Launcher.Mac/main.m @@ -7,6 +7,7 @@ // #import +#import "main.h" extern char **environ; int main(int argc, char *argv[]) @@ -45,11 +46,8 @@ int main(int argc, char *argv[]) setenv("DYLD_LIBRARY_PATH", buf, 1); } - // Hide the menubar if we are running fullscreen - // TODO: HACK: Parse the settings.yaml / commandline args for fullscreen options - if (YES) - [NSMenu setMenuBarVisible:NO]; - + + hide_menubar_if_necessary(); /* Exec mono */ execve(args[0], args, environ); } @@ -57,3 +55,11 @@ int main(int argc, char *argv[]) /* Else, start the launcher */ return NSApplicationMain(argc, (const char **) argv); } + +// Hide the menubar and dock if we are running fullscreen +void hide_menubar_if_necessary() +{ + // TODO: HACK: Parse the settings.yaml / commandline args for fullscreen options + if (YES) + [NSMenu setMenuBarVisible:NO]; +} diff --git a/mods/ra/chrome/mainmenu.yaml b/mods/ra/chrome/mainmenu.yaml index dce60ada04..0e2c190310 100644 --- a/mods/ra/chrome/mainmenu.yaml +++ b/mods/ra/chrome/mainmenu.yaml @@ -7,15 +7,39 @@ Background@MAINMENU_INIT: Visible:true Delegate:RAInitDelegate Children: - Button@FINISH_INIT: - Id:FINISH_INIT + Label@MAINMENU_LABEL_TITLE: + Id:MAINMENU_LABEL_TITLE + X:0 + Y:20 + Width:250 + Height:25 + Text:Install Game Content + Align:Center + Bold:True + Button@INIT_DOWNLOAD: + Id:INIT_DOWNLOAD X:45 Y:70 Width:160 Height:25 - Text:START + Text:Download + Bold:True + Button@INIT_FROMCD: + Id:INIT_FROMCD + X:45 + Y:110 + Width:160 + Height:25 + Text:From CD + Bold:True + Button@INIT_QUIT: + Id:INIT_QUIT + X:45 + Y:150 + Width:160 + Height:25 + Text:Quit Bold:True - Background@MAINMENU_BG: Id:MAINMENU_BG X:(WINDOW_RIGHT - WIDTH)/2