From 9412711050d08ade2aa45ecb5a6ee255d0bb0d31 Mon Sep 17 00:00:00 2001 From: Spider <29214314+spide-r@users.noreply.github.com> Date: Tue, 9 Apr 2024 17:29:35 -0500 Subject: [PATCH] Added The ability to override the plugin style --- ChatTwo/Configuration.cs | 5 +++++ ChatTwo/Plugin.cs | 13 +++++++++++++ ChatTwo/Ui/SettingsTabs/Display.cs | 19 +++++++++++++++++++ 3 files changed, 37 insertions(+) diff --git a/ChatTwo/Configuration.cs b/ChatTwo/Configuration.cs index b36ae12..6f7a2b0 100755 --- a/ChatTwo/Configuration.cs +++ b/ChatTwo/Configuration.cs @@ -50,6 +50,9 @@ internal class Configuration : IPluginConfiguration { public Dictionary ChatColours = new(); public List Tabs = new(); + public bool OverrideStyle = false; + public string ChosenStyle = ""; + public uint DatabaseMigration = LatestDbVersion; internal void UpdateFrom(Configuration other) { @@ -88,6 +91,8 @@ internal class Configuration : IPluginConfiguration { ChatColours = other.ChatColours.ToDictionary(entry => entry.Key, entry => entry.Value); Tabs = other.Tabs.Select(t => t.Clone()).ToList(); DatabaseMigration = other.DatabaseMigration; + OverrideStyle = other.OverrideStyle; + ChosenStyle = other.ChosenStyle; } public void Migrate() { diff --git a/ChatTwo/Plugin.cs b/ChatTwo/Plugin.cs index 8aadb58..9da9925 100755 --- a/ChatTwo/Plugin.cs +++ b/ChatTwo/Plugin.cs @@ -6,6 +6,7 @@ using ChatTwo.Resources; using ChatTwo.Ui; using ChatTwo.Util; using Dalamud.Game.ClientState.Objects; +using Dalamud.Interface.Style; using Dalamud.Interface.Windowing; using Dalamud.IoC; using Dalamud.Plugin; @@ -133,6 +134,12 @@ public sealed class Plugin : IDalamudPlugin { private void Draw() { + if (Config.OverrideStyle) + { + var styles = StyleModel.GetConfiguredStyles(); + styles?.First(style => style.Name.Equals(Config.ChosenStyle)).Push(); + } + Interface.UiBuilder.DisableUserUiHide = !Config.HideWhenUiHidden; ChatLogWindow.DefaultText = ImGui.GetStyle().Colors[(int) ImGuiCol.Text]; @@ -140,6 +147,12 @@ public sealed class Plugin : IDalamudPlugin { { WindowSystem.Draw(); } + + if (Config.OverrideStyle) + { + var styles = StyleModel.GetConfiguredStyles(); + styles?.First(style => style.Name.Equals(Config.ChosenStyle)).Pop(); + } } internal void SaveConfig() { diff --git a/ChatTwo/Ui/SettingsTabs/Display.cs b/ChatTwo/Ui/SettingsTabs/Display.cs index 4f54571..f200e58 100755 --- a/ChatTwo/Ui/SettingsTabs/Display.cs +++ b/ChatTwo/Ui/SettingsTabs/Display.cs @@ -1,5 +1,6 @@ using ChatTwo.Resources; using ChatTwo.Util; +using Dalamud.Interface.Style; using ImGuiNET; namespace ChatTwo.Ui.SettingsTabs; @@ -89,6 +90,24 @@ internal sealed class Display : ISettingsTab { ImGuiUtil.OptionCheckbox(ref Mutable.ShowPopOutTitleBar, Language.Options_ShowPopOutTitleBar_Name); ImGui.Spacing(); + ImGui.Checkbox("Override Style", ref Mutable.OverrideStyle); + ImGui.Spacing(); + + if (Mutable.OverrideStyle) + { + var currentStyle = Mutable.ChosenStyle.Equals("") ? StyleModel.GetConfiguredStyle().Name : Mutable.ChosenStyle; + if (ImGui.BeginCombo("REMOVEME Styles", currentStyle)) { + foreach (var style in StyleModel.GetConfiguredStyles()) { + if (ImGui.Selectable(style.Name, this.Mutable.ChosenStyle == style.Name)) { + Mutable.ChosenStyle = style.Name; + } + } + + ImGui.EndCombo(); + } + } + ImGui.Spacing(); + ImGui.PopTextWrapPos(); } }