Add macOS identifier

This commit is contained in:
Michael Bucari-Tovo 2022-07-30 10:53:01 -06:00
parent 27ed11d904
commit 7689eed711
4 changed files with 21 additions and 12 deletions

View File

@ -17,12 +17,16 @@ namespace LibationAvalonia
{ {
public class App : Application public class App : Application
{ {
public static bool IsWindows => PlatformID is PlatformID.Win32NT; public static readonly bool IsWindows;
public static readonly bool IsLinux;
public static readonly bool IsMacOs;
static App()
{
IsWindows = OperatingSystem.IsWindows();
IsLinux = OperatingSystem.IsLinux();
IsMacOs = OperatingSystem.IsMacOS();
}
//This is trye for both linux and mac. We'll need a way to dintinguis between those two after we get mac to actually run.
public static bool IsUnix => PlatformID is PlatformID.Unix;
public static readonly PlatformID PlatformID = Environment.OSVersion.Platform;
public static IBrush ProcessQueueBookFailedBrush { get; private set; } public static IBrush ProcessQueueBookFailedBrush { get; private set; }
public static IBrush ProcessQueueBookCompletedBrush { get; private set; } public static IBrush ProcessQueueBookCompletedBrush { get; private set; }
public static IBrush ProcessQueueBookCancelledBrush { get; private set; } public static IBrush ProcessQueueBookCancelledBrush { get; private set; }
@ -31,20 +35,20 @@ namespace LibationAvalonia
public static IAssetLoader AssetLoader { get; private set; } public static IAssetLoader AssetLoader { get; private set; }
public static readonly Uri AssetUriBase = new Uri("avares://Libation/Assets/"); public static readonly Uri AssetUriBase = new("avares://Libation/Assets/");
public static Stream OpenAsset(string assetRelativePath) public static Stream OpenAsset(string assetRelativePath)
=> AssetLoader.Open(new Uri(AssetUriBase, assetRelativePath)); => AssetLoader.Open(new Uri(AssetUriBase, assetRelativePath));
public static bool GoToFile(string path) public static bool GoToFile(string path)
=> PlatformID is PlatformID.Win32NT ? Go.To.File(path) => IsWindows ? Go.To.File(path)
: GoToFolder(path is null ? string.Empty : Path.GetDirectoryName(path)); : GoToFolder(path is null ? string.Empty : Path.GetDirectoryName(path));
public static bool GoToFolder(string path) public static bool GoToFolder(string path)
{ {
if (PlatformID is PlatformID.Win32NT) if (IsWindows)
return Go.To.Folder(path); return Go.To.Folder(path);
else else if (IsLinux)
{ {
var startInfo = new System.Diagnostics.ProcessStartInfo() var startInfo = new System.Diagnostics.ProcessStartInfo()
{ {
@ -58,6 +62,8 @@ namespace LibationAvalonia
System.Diagnostics.Process.Start(startInfo); System.Diagnostics.Process.Start(startInfo);
return true; return true;
} }
//Don't know how to do this for mac yet
else return true;
} }
public override void Initialize() public override void Initialize()

View File

@ -51,7 +51,7 @@ namespace LibationAvalonia.Dialogs
saveFileDialog.Filters.Add(new FileDialogFilter { Name = "Jpeg", Extensions = new System.Collections.Generic.List<string>() { "jpg" } }); saveFileDialog.Filters.Add(new FileDialogFilter { Name = "Jpeg", Extensions = new System.Collections.Generic.List<string>() { "jpg" } });
saveFileDialog.InitialFileName = PictureFileName; saveFileDialog.InitialFileName = PictureFileName;
saveFileDialog.Directory saveFileDialog.Directory
= App.IsUnix ? null = !App.IsWindows ? null
: Directory.Exists(BookSaveDirectory) ? BookSaveDirectory : Directory.Exists(BookSaveDirectory) ? BookSaveDirectory
: Path.GetDirectoryName(BookSaveDirectory); : Path.GetDirectoryName(BookSaveDirectory);

View File

@ -113,7 +113,7 @@ namespace LibationAvalonia
public static void HideMinMaxBtns(this Window form) public static void HideMinMaxBtns(this Window form)
{ {
if (Design.IsDesignMode || App.PlatformID is not PlatformID.Win32NT) if (Design.IsDesignMode || !App.IsWindows)
return; return;
var handle = form.PlatformImpl.Handle.Handle; var handle = form.PlatformImpl.Handle.Handle;
var currentStyle = GetWindowLong(handle, GWL_STYLE); var currentStyle = GetWindowLong(handle, GWL_STYLE);

View File

@ -32,8 +32,11 @@ namespace LibationAvalonia
if (App.IsWindows) if (App.IsWindows)
AppScaffolding.LibationScaffolding.SetReleaseIdentifier(AppScaffolding.ReleaseIdentifier.WindowsAvalonia); AppScaffolding.LibationScaffolding.SetReleaseIdentifier(AppScaffolding.ReleaseIdentifier.WindowsAvalonia);
else if (App.IsUnix) else if (App.IsLinux)
AppScaffolding.LibationScaffolding.SetReleaseIdentifier(AppScaffolding.ReleaseIdentifier.LinuxAvalonia); AppScaffolding.LibationScaffolding.SetReleaseIdentifier(AppScaffolding.ReleaseIdentifier.LinuxAvalonia);
else if (App.IsMacOs)
AppScaffolding.LibationScaffolding.SetReleaseIdentifier(AppScaffolding.ReleaseIdentifier.MacOSAvalonia);
else return;
if (!App.SetupRequired) if (!App.SetupRequired)