From e5b739fc529926d157b3dd8d27b28aa949c0c5d6 Mon Sep 17 00:00:00 2001 From: Ottermandias Date: Fri, 13 May 2022 17:58:42 +0200 Subject: [PATCH] Add Join Discord button. --- Penumbra/UI/Classes/Colors.cs | 1 + Penumbra/UI/ConfigWindow.SettingsTab.cs | 29 +++++++++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/Penumbra/UI/Classes/Colors.cs b/Penumbra/UI/Classes/Colors.cs index fd55b3bb..b3ec1ea4 100644 --- a/Penumbra/UI/Classes/Colors.cs +++ b/Penumbra/UI/Classes/Colors.cs @@ -24,6 +24,7 @@ public static class Colors public const uint RegexWarningBorder = 0xFF0000B0; public const uint MetaInfoText = 0xAAFFFFFF; public const uint RedTableBgTint = 0x40000080; + public const uint DiscordColor = 0xFFDA8972; public static (uint DefaultColor, string Name, string Description) Data( this ColorId color ) => color switch diff --git a/Penumbra/UI/ConfigWindow.SettingsTab.cs b/Penumbra/UI/ConfigWindow.SettingsTab.cs index 0961f177..7f598c0f 100644 --- a/Penumbra/UI/ConfigWindow.SettingsTab.cs +++ b/Penumbra/UI/ConfigWindow.SettingsTab.cs @@ -47,6 +47,7 @@ public partial class ConfigWindow DrawAdvancedSettings(); _dialogManager.Draw(); + DrawDiscordButton(); } // Changing the base mod directory. @@ -199,5 +200,33 @@ public partial class ConfigWindow ImGui.NewLine(); } + + private static void DrawDiscordButton() + { + const string discord = "Join Discord for Support"; + const string address = @"https://discord.gg/kVva7DHV4r"; + var width = ImGui.CalcTextSize( discord ).X + ImGui.GetStyle().FramePadding.X * 2; + if( ImGui.GetScrollMaxY() > 0 ) + width += ImGui.GetStyle().ScrollbarSize + ImGui.GetStyle().ItemSpacing.X; + ImGui.SetCursorPos( new Vector2( ImGui.GetWindowWidth() - width, 0 ) ); + using var color = ImRaii.PushColor( ImGuiCol.Button, Colors.DiscordColor ); + if( ImGui.Button( discord ) ) + { + try + { + var process = new ProcessStartInfo( address ) + { + UseShellExecute = true, + }; + Process.Start( process ); + } + catch + { + // ignored + } + } + + ImGuiUtil.HoverTooltip( $"Open {address}" ); + } } } \ No newline at end of file