From a6900c256df65d668e02ccba15ba2c9cce4181d3 Mon Sep 17 00:00:00 2001 From: Paul Chote Date: Sat, 22 Jan 2011 21:26:52 +1300 Subject: [PATCH] Implement --display-filepicker in OpenRA.Utility. Remove all the functionality that windows doesn't support. --- Makefile | 4 +-- OpenRA.Game/Utilities.cs | 6 ++-- OpenRA.Launcher.Mac/Controller.m | 26 ++---------------- .../Release/OpenRA.app/Contents/MacOS/OpenRA | Bin 81728 -> 81688 bytes .../Resources/English.lproj/MainMenu.nib | Bin 6774 -> 6774 bytes .../Widgets/Delegates/GameInitDelegate.cs | 4 +-- OpenRA.Utility/Command.cs | 16 +++++++++++ OpenRA.Utility/Program.cs | 1 + 8 files changed, 26 insertions(+), 31 deletions(-) diff --git a/Makefile b/Makefile index 52d15784ed..12971286e7 100644 --- a/Makefile +++ b/Makefile @@ -161,8 +161,8 @@ PHONY += fixheader utility_SRCS = $(shell find OpenRA.Utility/ -iname '*.cs') utility_TARGET = OpenRA.Utility.exe utility_KIND = exe -utility_DEPS = $(fileformats_TARGET) thirdparty/ICSharpCode.SharpZipLib.dll -utility_LIBS = $(COMMON_LIBS) $(utility_DEPS) +utility_DEPS = $(fileformats_TARGET) +utility_LIBS = $(COMMON_LIBS) $(utility_DEPS) thirdparty/ICSharpCode.SharpZipLib.dll System.Windows.Forms.dll PROGRAMS += utility utility: $(utility_TARGET) diff --git a/OpenRA.Game/Utilities.cs b/OpenRA.Game/Utilities.cs index abe53dba8f..5d7dcc64dc 100644 --- a/OpenRA.Game/Utilities.cs +++ b/OpenRA.Game/Utilities.cs @@ -33,11 +33,9 @@ namespace OpenRA ExecuteUtilityAsync("--install-ra-packages \"{0}\"".F(cdPath), parseOutput, onComplete); } - public void PromptFilepathAsync(string title, string message, bool directory, Action withPath) + public void PromptFilepathAsync(string title, Action withPath) { - ExecuteUtility("--display-filepicker --title \"{0}\" --message \"{1}\" \"{2}\" --button-text \"Select\"" - .F(title, message, directory ? "--require-directory" : ""), - withPath); + ExecuteUtility("--display-filepicker \"{0}\"".F(title), withPath); } void ExecuteUtility(string args, Action onComplete) diff --git a/OpenRA.Launcher.Mac/Controller.m b/OpenRA.Launcher.Mac/Controller.m index 025782a02a..a46d7bda12 100644 --- a/OpenRA.Launcher.Mac/Controller.m +++ b/OpenRA.Launcher.Mac/Controller.m @@ -78,30 +78,10 @@ [op setLevel:CGShieldingWindowLevel()]; [op setAllowsMultipleSelection:NO]; - NSUInteger a = [args indexOfObject:@"--title"]; + NSUInteger a = [args indexOfObject:@"--display-filepicker"]; if (a != NSNotFound) [op setTitle:[args objectAtIndex:a+1]]; - - a = [args indexOfObject:@"--message"]; - if (a != NSNotFound) - [op setMessage:[args objectAtIndex:a+1]]; - - a = [args indexOfObject:@"--directory"]; - 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]); @@ -116,7 +96,7 @@ // Second...Nth arguments are passed to OpenRA.Game.exe // Launcher wrapper sets mono --debug, gl renderer and support dir. NSArray *args = [NSArray arrayWithObjects:@"--launch", gamePath, monoPath, - [NSString stringWithFormat:@"NativeUtilityPath=%@", [[[NSBundle mainBundle] executablePath] stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]], + [NSString stringWithFormat:@"UtilityPath=%@", [[[NSBundle mainBundle] executablePath] stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]], [NSString stringWithFormat:@"SupportDir=%@",[@"~/Library/Application Support/OpenRA" stringByExpandingTildeInPath]], [NSString stringWithFormat:@"Game.Mods=%@",mod], nil]; 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 85bdff27b9941e0215736bc0a97a44d12627ef89..a54d3179317826bb6ee68aa223387866d3763587 100755 GIT binary patch delta 16956 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 delta 18822 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

RR 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 Sc8KzdUKUCR9HZoR^Zx*E+T3ga diff --git a/OpenRA.Launcher.Mac/build/Release/OpenRA.app/Contents/Resources/English.lproj/MainMenu.nib b/OpenRA.Launcher.Mac/build/Release/OpenRA.app/Contents/Resources/English.lproj/MainMenu.nib index de7b42a725cd1181d2f8bcdd0a7336caa8ef7c2d..3e4a9fc25972f933ac324efb295cdad20106b4b4 100644 GIT binary patch delta 2185 zcma)63s6*57(V|^W88D^<=j0aU}`Is0NW2tXS!8u#c^PAq?I}m| z(U^G^bDAawDc!Mh6l0PeMmmk7PNms6s701J`CduDd#-2b2R{g3ba zt|weiSa)RXbjX4dr~oI_KrK86t6(*(fpwt62G|5Gum#?OHrNe&;Zx{@1MoE*gKyd% zhVp&^vqior6D4i6{r5sZ23`t8dfWJbRtfU;Qv-5cAd@R3pEN-faYHo3KrA^3aS%_o z5(k*c9T*Gah!rM4B3Q^F(gA^_TRbJk3xgOU(nPp;T4af05htdKY!N1ym?e_L9FZ#m zMW!eeRuLm2M6xiSAa+ttY@~u1$pT1*6jDhRl3E6niJMfBYT|?pJX7^shOw@KoEls8 z%#@>;Yax>$N2G2iTd{^XtS=s`>LA_Z3RZjw5i=1v3$bS*jv4Dp6EP3Kg4y>$l@q53 zHWEe%cELrcFb)`CbltssSLkt+k6hqOhDG2YwNTwVak?)pSWI*1-?0!~P!@WxBdEU* z@|j@IA&3IthMn4On0zrpUTF3Qf!TWqbeRWBAZe8{=} zBK_DodZ--cdYLrBT39J&;%4(ij(=k7MQU>y3oOHDY<17r=iBPD@U5f7OcG!tG!=N^^odsgP3sjZ~RLvCV48hZ#E_@Fr)B#vJEJfe3hNm0i|>J}7BELf2K#lqSJOaHarQxFJ= zdZW6;g_3a-6F%b+SfY0V1qA^sQQE!=yG z@t@(z_C_UdG#rH%?p;2FORA{c!5&3no4nF?{in9E$_ZdWVAM9TdbKV64|OM_?yLyy zQFov)`=MjJ&{C{4N{W->rP0zD$*f-qoU3cbkWr;+c84vZ-jvf=ZL2F|K^_X4G8=4F zrpUZXXQL^_;fN}p?5u96b2=P0y+#WOF3Pjj%&VK%;H;bN&5raLgMLICD3{!e#g5i% z*+9L6P1K*%LiJ`As-M?XSFeOIWsLQLD|R}oqI!iBP%FOo{c?#a@!d0Qj+)+?=KCM= zhKsW1*{e;S{4y5&4@yL2?qYj`$yagIeWAzUE(PFR|C&r+GW}BH(d!`5RmQoEav8#-;QkJMmGuSKa1!iF@HEFUY&14fa=wu@_sMDZ^ZDc*{Mb^aD zX>eJCpV(RroNNeN!6H~N`&c-zrtIM#@{jpm-pTj#&-np@}vA1KhC@ODc;Rb^B?(Hex6_C fJ^U)a#((A4`3-)P-{yY?ksv9ke^7v)Flf?WjgW+k delta 2211 zcmZ`(d2AF_9Dcvia?E=(`(|fJp$IHA&~7Mgp@r&Jp_Ebz^nxwDDD+(ElI?C!Q3>or zqZ}GU2Jnb6ghOZu5-68|+#pcos6+uV{AGxo#t899Q-6C^s&rp6vorJF@B1C!_dQ8| zlDy{X_%z6cxljX6coiC8DfmFZJFo&)!u#+MY=X`3CA7g_*at`88#o8&;WFH8>jO2< z_nj*oVxA~zYlt`oeW&3=p~!4Y>AOV&hjFX_EFXDDS|J8v!A7=`3lK-zAs!MSk#xd1 zNFp0Z6-;wFc{4vgFe6DbfWB3cxQIU-Ap5D8+sh!fc&U*w2XQ6>t+5MdI>%5~mIrZ&mxxG*$ZhfvVo5v3%)*%27_R^$ zBq7=y5qFcgNDXn4S24f>$b)=ROBRv_m`z$q9q|w^6yYi{j>zL*y#DV_+~pz*p)9xy zDxeb2RGSGW1Z&X6ATiVI>+0$fkz$717^V%h&FU4Zwg;5gxJzFsXe2ez6izDy)(kC> z(7kst0xl`ebxf{qc6mJ|xeiB5Rh`q*BJzS+Eb z4fk!i$kU>N?z&5^ zk!Boj3yy0S7QY+zh;l4`ftYU`Qii4;5E)yLjz~*Vg%tBs&D2|oN0G1plH!b^tEs+r zk+B(4km`1%W|6463C~LS3S31!gcJS&6W%K-!|nM`!kP1%f};$M)_wyT|Hp+}U#B~Zri-T%h;et*vh%N zdy`SGS(LGJ9nSj7#>!@I~!^ zg@R#wV2AXBuX#6`HMZ32t+SPM!}UCqhhRqx~sU)Y;<+1wT z^bDNkbl3N&%o;8?RD6-kQ{!D^OfnDX6R=8~kts++ZPr2&GfJp5{ic+l?ic znqzRJR%B3CV8#>3Op;BeqJ77sQgYC&Q%DuLKr+#|r=t$-XtJGT1}bP8$sh%&1rupU z7mkA@h(*(t&~irw%)MAl5O$%Wsb{0sCZY*f;II?K3pnP{IPNMOc&ZpD$}D2I=r3fX zUmCJw1p0P?m}6Md?_AMi*G9`FzOi#$R{@AdyW z`A7}!YjA=O)Zi|Emp{^=o|o~}nv}0eQ@F0dJ-&k5`7*wSuWvJ3evy2i$y?=Z@=^J? zd{RCwpOw$a7vzibCHacnAzza_DWwBx6dgu~(`Y)9#?V-5qwzG6&Z331n3mEqI-gck zCtW}VeT(j(JLw*}m+q$r=^=WU9-$}bDSDqirdcHazVMMTvDzm9m;pgHRXo#qjFdIUFlT1)IMrIRaTigUQJP7Rwt@yYPy=C zW~wvQ95v5K9QadGHE+Oft>vHdulO1MhZdm?(?)BrXa(8=twCF%t<&~t$FvUZj`rAW zGTY2k%y~xIpj}fB>WB5O_2c?U{j`2oKd-mz-|Cn3tNM5P_xg4HrhZHRS-+#-)gS1O g^xyQ~^(XqD`rmq|g;<`mL|FP+WDB#XMsig8KfDHjoB#j- diff --git a/OpenRA.Mods.RA/Widgets/Delegates/GameInitDelegate.cs b/OpenRA.Mods.RA/Widgets/Delegates/GameInitDelegate.cs index ada626b115..b9906d7d73 100755 --- a/OpenRA.Mods.RA/Widgets/Delegates/GameInitDelegate.cs +++ b/OpenRA.Mods.RA/Widgets/Delegates/GameInitDelegate.cs @@ -125,10 +125,10 @@ namespace OpenRA.Mods.RA.Widgets.Delegates bool PromptForCD() { - Game.Utilities.PromptFilepathAsync("Select CD", "Select the {0} CD".F(Info.GameTitle), true, path => + Game.Utilities.PromptFilepathAsync("Select MAIN.MIX on the CD", path => { if (!string.IsNullOrEmpty(path)) - Game.RunAfterTick(() => InstallFromCD(path)); + Game.RunAfterTick(() => InstallFromCD(Path.GetDirectoryName(path))); }); return true; } diff --git a/OpenRA.Utility/Command.cs b/OpenRA.Utility/Command.cs index c17902292f..b128758620 100644 --- a/OpenRA.Utility/Command.cs +++ b/OpenRA.Utility/Command.cs @@ -14,6 +14,7 @@ using System.IO; using System.Linq; using System.Net; using System.Threading; +using System.Windows.Forms; using ICSharpCode.SharpZipLib; using ICSharpCode.SharpZipLib.Zip; using OpenRA.FileFormats; @@ -114,6 +115,21 @@ namespace OpenRA.Utility } Console.WriteLine("Status: Completed"); } + + public static void DisplayFilepicker(string[] args) + { + if (args.Length < 2) + { + Console.WriteLine("Error: Invalid syntax"); + return; + } + + var dialog = new OpenFileDialog(); + dialog.Title = args[1]; + + if (dialog.ShowDialog() == DialogResult.OK) + Console.WriteLine(dialog.FileName); + } public static void Settings(string[] args) { diff --git a/OpenRA.Utility/Program.cs b/OpenRA.Utility/Program.cs index 93e72739c2..42b0d19b41 100644 --- a/OpenRA.Utility/Program.cs +++ b/OpenRA.Utility/Program.cs @@ -30,6 +30,7 @@ namespace OpenRA.Utility argCallbacks.Add("--extract-zip", Command.ExtractZip); argCallbacks.Add("--install-ra-packages", Command.InstallRAPackages); argCallbacks.Add("--install-cnc-packages", Command.InstallCncPackages); + argCallbacks.Add("--display-filepicker", Command.DisplayFilepicker); argCallbacks.Add("--settings-value", Command.Settings); if (args.Length == 0) { PrintUsage(); return; }