feat: allow styling of Dalamud colors

This commit is contained in:
goat 2021-09-29 15:46:40 +02:00
parent 4c4c8818a7
commit a9a7ac85c9
No known key found for this signature in database
GPG key ID: F18F057873895461
3 changed files with 42 additions and 15 deletions

View file

@ -1,6 +1,7 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Numerics; using System.Numerics;
using System.Reflection;
using Dalamud.Interface.Colors; using Dalamud.Interface.Colors;
using Dalamud.Interface.Windowing; using Dalamud.Interface.Windowing;
@ -46,9 +47,10 @@ namespace Dalamud.Interface.Internal.Windows
ImGui.Separator(); ImGui.Separator();
foreach (var (name, color) in this.colors) foreach (var property in typeof(ImGuiColors).GetProperties(BindingFlags.Public | BindingFlags.Static))
{ {
ImGui.TextColored(color, name); var color = (Vector4)property.GetValue(null);
ImGui.TextColored(color, property.Name);
} }
} }
} }

View file

@ -2,6 +2,7 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Numerics; using System.Numerics;
using System.Reflection;
using CheapLoc; using CheapLoc;
using Dalamud.Configuration.Internal; using Dalamud.Configuration.Internal;
@ -76,6 +77,9 @@ namespace Dalamud.Interface.Internal.Windows.StyleEditor
var config = Service<DalamudConfiguration>.Get(); var config = Service<DalamudConfiguration>.Get();
var renameModalTitle = Loc.Localize("RenameStyleModalTitle", "Rename Style"); var renameModalTitle = Loc.Localize("RenameStyleModalTitle", "Rename Style");
var workStyle = config.SavedStyles[this.currentSel];
workStyle.BuiltInColors ??= StyleModel.DalamudStandard.BuiltInColors;
var appliedThisFrame = false; var appliedThisFrame = false;
var styleAry = config.SavedStyles.Select(x => x.Name).ToArray(); var styleAry = config.SavedStyles.Select(x => x.Name).ToArray();
@ -290,6 +294,25 @@ namespace Dalamud.Interface.Internal.Windows.StyleEditor
ImGui.PopID(); ImGui.PopID();
} }
ImGui.Separator();
foreach (var property in typeof(StyleModel.DalamudColors).GetProperties(BindingFlags.Public | BindingFlags.Instance))
{
ImGui.PushID(property.Name);
var color = (Vector4)property.GetValue(workStyle.BuiltInColors);
if (ImGui.ColorEdit4("##color", ref color, ImGuiColorEditFlags.AlphaBar | this.alphaFlags))
{
property.SetValue(workStyle.BuiltInColors, color);
workStyle.BuiltInColors?.Apply();
}
ImGui.SameLine(0.0f, style.ItemInnerSpacing.X);
ImGui.TextUnformatted(property.Name);
ImGui.PopID();
}
ImGui.EndChild(); ImGui.EndChild();
ImGui.EndTabItem(); ImGui.EndTabItem();

View file

@ -469,19 +469,7 @@ namespace Dalamud.Interface.Internal.Windows.StyleEditor
style.Colors[(int)imGuiCol] = this.Colors[imGuiCol.ToString()]; style.Colors[(int)imGuiCol] = this.Colors[imGuiCol.ToString()];
} }
if (this.BuiltInColors != null) this.BuiltInColors?.Apply();
{
ImGuiColors.DalamudRed = this.BuiltInColors.DalamudRed;
ImGuiColors.DalamudGrey = this.BuiltInColors.DalamudGrey;
ImGuiColors.DalamudGrey2 = this.BuiltInColors.DalamudGrey2;
ImGuiColors.DalamudGrey3 = this.BuiltInColors.DalamudGrey3;
ImGuiColors.DalamudWhite = this.BuiltInColors.DalamudWhite;
ImGuiColors.DalamudWhite2 = this.BuiltInColors.DalamudWhite2;
ImGuiColors.DalamudOrange = this.BuiltInColors.DalamudOrange;
ImGuiColors.TankBlue = this.BuiltInColors.TankBlue;
ImGuiColors.HealerGreen = this.BuiltInColors.HealerGreen;
ImGuiColors.DPSRed = this.BuiltInColors.DPSRed;
}
} }
#pragma warning disable SA1600 #pragma warning disable SA1600
@ -517,6 +505,20 @@ namespace Dalamud.Interface.Internal.Windows.StyleEditor
[JsonProperty("j")] [JsonProperty("j")]
public Vector4 DPSRed { get; set; } public Vector4 DPSRed { get; set; }
public void Apply()
{
ImGuiColors.DalamudRed = this.DalamudRed;
ImGuiColors.DalamudGrey = this.DalamudGrey;
ImGuiColors.DalamudGrey2 = this.DalamudGrey2;
ImGuiColors.DalamudGrey3 = this.DalamudGrey3;
ImGuiColors.DalamudWhite = this.DalamudWhite;
ImGuiColors.DalamudWhite2 = this.DalamudWhite2;
ImGuiColors.DalamudOrange = this.DalamudOrange;
ImGuiColors.TankBlue = this.TankBlue;
ImGuiColors.HealerGreen = this.HealerGreen;
ImGuiColors.DPSRed = this.DPSRed;
}
} }
#pragma warning restore SA1600 #pragma warning restore SA1600