use ImRaii in settings window

This commit is contained in:
Infi
2024-04-21 16:44:45 +02:00
parent ed5cedefd2
commit c152f3dfde
12 changed files with 402 additions and 438 deletions
+20 -28
View File
@@ -4,22 +4,18 @@ using ImGuiNET;
namespace ChatTwo.Ui.SettingsTabs;
internal sealed class Miscellaneous : ISettingsTab {
private Configuration Mutable { get; }
internal sealed class Miscellaneous(Configuration mutable) : ISettingsTab
{
private Configuration Mutable { get; } = mutable;
public string Name => Language.Options_Miscellaneous_Tab + "###tabs-miscellaneous";
public Miscellaneous(Configuration mutable) {
Mutable = mutable;
}
public void Draw(bool changed) {
if (ImGuiUtil.BeginComboVertical(Language.Options_Language_Name, Mutable.LanguageOverride.Name())) {
foreach (var language in Enum.GetValues<LanguageOverride>()) {
if (ImGui.Selectable(language.Name())) {
public void Draw(bool changed)
{
if (ImGuiUtil.BeginComboVertical(Language.Options_Language_Name, Mutable.LanguageOverride.Name()))
{
foreach (var language in Enum.GetValues<LanguageOverride>())
if (ImGui.Selectable(language.Name()))
Mutable.LanguageOverride = language;
}
}
ImGui.EndCombo();
}
@@ -27,12 +23,11 @@ internal sealed class Miscellaneous : ISettingsTab {
ImGuiUtil.HelpText(string.Format(Language.Options_Language_Description, Plugin.PluginName));
ImGui.Spacing();
if (ImGuiUtil.BeginComboVertical(Language.Options_CommandHelpSide_Name, Mutable.CommandHelpSide.Name())) {
foreach (var side in Enum.GetValues<CommandHelpSide>()) {
if (ImGui.Selectable(side.Name(), Mutable.CommandHelpSide == side)) {
if (ImGuiUtil.BeginComboVertical(Language.Options_CommandHelpSide_Name, Mutable.CommandHelpSide.Name()))
{
foreach (var side in Enum.GetValues<CommandHelpSide>())
if (ImGui.Selectable(side.Name(), Mutable.CommandHelpSide == side))
Mutable.CommandHelpSide = side;
}
}
ImGui.EndCombo();
}
@@ -40,17 +35,15 @@ internal sealed class Miscellaneous : ISettingsTab {
ImGuiUtil.HelpText(string.Format(Language.Options_CommandHelpSide_Description, Plugin.PluginName));
ImGui.Spacing();
if (ImGuiUtil.BeginComboVertical(Language.Options_KeybindMode_Name, Mutable.KeybindMode.Name())) {
foreach (var mode in Enum.GetValues<KeybindMode>()) {
if (ImGui.Selectable(mode.Name(), Mutable.KeybindMode == mode)) {
if (ImGuiUtil.BeginComboVertical(Language.Options_KeybindMode_Name, Mutable.KeybindMode.Name()))
{
foreach (var mode in Enum.GetValues<KeybindMode>())
{
if (ImGui.Selectable(mode.Name(), Mutable.KeybindMode == mode))
Mutable.KeybindMode = mode;
}
if (ImGui.IsItemHovered()) {
ImGui.BeginTooltip();
ImGui.TextUnformatted(mode.Tooltip());
ImGui.EndTooltip();
}
if (ImGui.IsItemHovered())
ImGui.SetTooltip(mode.Tooltip());
}
ImGui.EndCombo();
@@ -61,7 +54,6 @@ internal sealed class Miscellaneous : ISettingsTab {
ImGui.Checkbox(Language.Options_SortAutoTranslate_Name, ref Mutable.SortAutoTranslate);
ImGuiUtil.HelpText(Language.Options_SortAutoTranslate_Description);
ImGui.Spacing();
}
}