Implement --display-filepicker in OpenRA.Utility. Remove all the functionality that windows doesn't support.
This commit is contained in:
4
Makefile
4
Makefile
@@ -161,8 +161,8 @@ PHONY += fixheader
|
|||||||
utility_SRCS = $(shell find OpenRA.Utility/ -iname '*.cs')
|
utility_SRCS = $(shell find OpenRA.Utility/ -iname '*.cs')
|
||||||
utility_TARGET = OpenRA.Utility.exe
|
utility_TARGET = OpenRA.Utility.exe
|
||||||
utility_KIND = exe
|
utility_KIND = exe
|
||||||
utility_DEPS = $(fileformats_TARGET) thirdparty/ICSharpCode.SharpZipLib.dll
|
utility_DEPS = $(fileformats_TARGET)
|
||||||
utility_LIBS = $(COMMON_LIBS) $(utility_DEPS)
|
utility_LIBS = $(COMMON_LIBS) $(utility_DEPS) thirdparty/ICSharpCode.SharpZipLib.dll System.Windows.Forms.dll
|
||||||
PROGRAMS += utility
|
PROGRAMS += utility
|
||||||
utility: $(utility_TARGET)
|
utility: $(utility_TARGET)
|
||||||
|
|
||||||
|
|||||||
@@ -33,11 +33,9 @@ namespace OpenRA
|
|||||||
ExecuteUtilityAsync("--install-ra-packages \"{0}\"".F(cdPath), parseOutput, onComplete);
|
ExecuteUtilityAsync("--install-ra-packages \"{0}\"".F(cdPath), parseOutput, onComplete);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void PromptFilepathAsync(string title, string message, bool directory, Action<string> withPath)
|
public void PromptFilepathAsync(string title, Action<string> withPath)
|
||||||
{
|
{
|
||||||
ExecuteUtility("--display-filepicker --title \"{0}\" --message \"{1}\" \"{2}\" --button-text \"Select\""
|
ExecuteUtility("--display-filepicker \"{0}\"".F(title), withPath);
|
||||||
.F(title, message, directory ? "--require-directory" : ""),
|
|
||||||
withPath);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ExecuteUtility(string args, Action<string> onComplete)
|
void ExecuteUtility(string args, Action<string> onComplete)
|
||||||
|
|||||||
@@ -78,30 +78,10 @@
|
|||||||
[op setLevel:CGShieldingWindowLevel()];
|
[op setLevel:CGShieldingWindowLevel()];
|
||||||
[op setAllowsMultipleSelection:NO];
|
[op setAllowsMultipleSelection:NO];
|
||||||
|
|
||||||
NSUInteger a = [args indexOfObject:@"--title"];
|
NSUInteger a = [args indexOfObject:@"--display-filepicker"];
|
||||||
if (a != NSNotFound)
|
if (a != NSNotFound)
|
||||||
[op setTitle:[args objectAtIndex:a+1]];
|
[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)
|
if ([op runModal] == NSFileHandlingPanelOKButton)
|
||||||
printf("%s\n", [[[op URL] path] UTF8String]);
|
printf("%s\n", [[[op URL] path] UTF8String]);
|
||||||
|
|
||||||
@@ -116,7 +96,7 @@
|
|||||||
// Second...Nth arguments are passed to OpenRA.Game.exe
|
// Second...Nth arguments are passed to OpenRA.Game.exe
|
||||||
// Launcher wrapper sets mono --debug, gl renderer and support dir.
|
// Launcher wrapper sets mono --debug, gl renderer and support dir.
|
||||||
NSArray *args = [NSArray arrayWithObjects:@"--launch", gamePath, monoPath,
|
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:@"SupportDir=%@",[@"~/Library/Application Support/OpenRA" stringByExpandingTildeInPath]],
|
||||||
[NSString stringWithFormat:@"Game.Mods=%@",mod],
|
[NSString stringWithFormat:@"Game.Mods=%@",mod],
|
||||||
nil];
|
nil];
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@@ -125,10 +125,10 @@ namespace OpenRA.Mods.RA.Widgets.Delegates
|
|||||||
|
|
||||||
bool PromptForCD()
|
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))
|
if (!string.IsNullOrEmpty(path))
|
||||||
Game.RunAfterTick(() => InstallFromCD(path));
|
Game.RunAfterTick(() => InstallFromCD(Path.GetDirectoryName(path)));
|
||||||
});
|
});
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ using System.IO;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Net;
|
using System.Net;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
|
using System.Windows.Forms;
|
||||||
using ICSharpCode.SharpZipLib;
|
using ICSharpCode.SharpZipLib;
|
||||||
using ICSharpCode.SharpZipLib.Zip;
|
using ICSharpCode.SharpZipLib.Zip;
|
||||||
using OpenRA.FileFormats;
|
using OpenRA.FileFormats;
|
||||||
@@ -114,6 +115,21 @@ namespace OpenRA.Utility
|
|||||||
}
|
}
|
||||||
Console.WriteLine("Status: Completed");
|
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)
|
public static void Settings(string[] args)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ namespace OpenRA.Utility
|
|||||||
argCallbacks.Add("--extract-zip", Command.ExtractZip);
|
argCallbacks.Add("--extract-zip", Command.ExtractZip);
|
||||||
argCallbacks.Add("--install-ra-packages", Command.InstallRAPackages);
|
argCallbacks.Add("--install-ra-packages", Command.InstallRAPackages);
|
||||||
argCallbacks.Add("--install-cnc-packages", Command.InstallCncPackages);
|
argCallbacks.Add("--install-cnc-packages", Command.InstallCncPackages);
|
||||||
|
argCallbacks.Add("--display-filepicker", Command.DisplayFilepicker);
|
||||||
argCallbacks.Add("--settings-value", Command.Settings);
|
argCallbacks.Add("--settings-value", Command.Settings);
|
||||||
|
|
||||||
if (args.Length == 0) { PrintUsage(); return; }
|
if (args.Length == 0) { PrintUsage(); return; }
|
||||||
|
|||||||
Reference in New Issue
Block a user