45 lines
1.4 KiB
C#
Executable File
45 lines
1.4 KiB
C#
Executable File
using ChatTwo.Code;
|
|
using ChatTwo.Util;
|
|
using Dalamud.Interface;
|
|
using ImGuiNET;
|
|
|
|
namespace ChatTwo.Ui.SettingsTabs;
|
|
|
|
internal sealed class ChatColours : ISettingsTab {
|
|
private Configuration Mutable { get; }
|
|
private Plugin Plugin { get; }
|
|
|
|
public string Name => "Chat colours";
|
|
|
|
internal ChatColours(Configuration mutable, Plugin plugin) {
|
|
this.Mutable = mutable;
|
|
this.Plugin = plugin;
|
|
}
|
|
|
|
public void Draw() {
|
|
foreach (var type in Enum.GetValues<ChatType>()) {
|
|
if (ImGuiUtil.IconButton(FontAwesomeIcon.UndoAlt, $"{type}", "Reset to default")) {
|
|
this.Mutable.ChatColours.Remove(type);
|
|
}
|
|
|
|
ImGui.SameLine();
|
|
|
|
if (ImGuiUtil.IconButton(FontAwesomeIcon.LongArrowAltDown, $"{type}", "Import from game")) {
|
|
var gameColour = this.Plugin.Functions.Chat.GetChannelColour(type);
|
|
this.Mutable.ChatColours[type] = gameColour ?? type.DefaultColour() ?? 0;
|
|
}
|
|
|
|
ImGui.SameLine();
|
|
|
|
var vec = this.Mutable.ChatColours.TryGetValue(type, out var colour)
|
|
? ColourUtil.RgbaToVector3(colour)
|
|
: ColourUtil.RgbaToVector3(type.DefaultColour() ?? 0);
|
|
if (ImGui.ColorEdit3(type.Name(), ref vec, ImGuiColorEditFlags.NoInputs)) {
|
|
this.Mutable.ChatColours[type] = ColourUtil.Vector3ToRgba(vec);
|
|
}
|
|
}
|
|
|
|
ImGui.TreePop();
|
|
}
|
|
}
|