From f06d22d6f01e657ebbc0c8ef082739cd468e47b5 Mon Sep 17 00:00:00 2001
From: Isaac Marovitz <42140194+IsaacMarovitz@users.noreply.github.com>
Date: Sun, 11 Feb 2024 02:09:18 +0000
Subject: Infra: Capitalisation Consistency (#6296)

* Rename Ryujinx.UI.Common

* Rename Ryujinx.UI.LocaleGenerator

* Update in Files

AboutWindow

* Configuration State

* Rename projects

* Ryujinx/UI

* Fix build

* Main remaining inconsistencies

* HLE.UI Namespace

* HLE.UI Files

* Namespace

* Ryujinx.UI.Common.Configuration.UI

* Ryujinx.UI.Common,Configuration.UI Files

* More instances
---
 src/Ryujinx.UI.Common/Helper/ConsoleHelper.cs | 50 +++++++++++++++++++++++++++
 1 file changed, 50 insertions(+)
 create mode 100644 src/Ryujinx.UI.Common/Helper/ConsoleHelper.cs

(limited to 'src/Ryujinx.UI.Common/Helper/ConsoleHelper.cs')

diff --git a/src/Ryujinx.UI.Common/Helper/ConsoleHelper.cs b/src/Ryujinx.UI.Common/Helper/ConsoleHelper.cs
new file mode 100644
index 00000000..208ff5c9
--- /dev/null
+++ b/src/Ryujinx.UI.Common/Helper/ConsoleHelper.cs
@@ -0,0 +1,50 @@
+using Ryujinx.Common.Logging;
+using System;
+using System.Runtime.InteropServices;
+using System.Runtime.Versioning;
+
+namespace Ryujinx.UI.Common.Helper
+{
+    public static partial class ConsoleHelper
+    {
+        public static bool SetConsoleWindowStateSupported => OperatingSystem.IsWindows();
+
+        public static void SetConsoleWindowState(bool show)
+        {
+            if (OperatingSystem.IsWindows())
+            {
+                SetConsoleWindowStateWindows(show);
+            }
+            else if (show == false)
+            {
+                Logger.Warning?.Print(LogClass.Application, "OS doesn't support hiding console window");
+            }
+        }
+
+        [SupportedOSPlatform("windows")]
+        private static void SetConsoleWindowStateWindows(bool show)
+        {
+            const int SW_HIDE = 0;
+            const int SW_SHOW = 5;
+
+            IntPtr hWnd = GetConsoleWindow();
+
+            if (hWnd == IntPtr.Zero)
+            {
+                Logger.Warning?.Print(LogClass.Application, "Attempted to show/hide console window but console window does not exist");
+                return;
+            }
+
+            ShowWindow(hWnd, show ? SW_SHOW : SW_HIDE);
+        }
+
+        [SupportedOSPlatform("windows")]
+        [LibraryImport("kernel32")]
+        private static partial IntPtr GetConsoleWindow();
+
+        [SupportedOSPlatform("windows")]
+        [LibraryImport("user32")]
+        [return: MarshalAs(UnmanagedType.Bool)]
+        private static partial bool ShowWindow(IntPtr hWnd, int nCmdShow);
+    }
+}
-- 
cgit v1.2.3-70-g09d2