Skip to content

Commit

Permalink
Fix incorrect ImGui code (#1546)
Browse files Browse the repository at this point in the history
* Add missing ImGui.EndTabBar

* Add more ImGui fixes
  • Loading branch information
Sirius902 committed Nov 26, 2023
1 parent 7a0de45 commit 473e243
Show file tree
Hide file tree
Showing 3 changed files with 100 additions and 96 deletions.
3 changes: 2 additions & 1 deletion Dalamud/Interface/Internal/Windows/PluginStatWindow.cs
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,8 @@ public override void Draw()
{
var pluginManager = Service<PluginManager>.Get();

ImGui.BeginTabBar("Stat Tabs");
if (!ImGui.BeginTabBar("Stat Tabs"))
return;

if (ImGui.BeginTabItem("Draw times"))
{
Expand Down
2 changes: 2 additions & 0 deletions Dalamud/Interface/Internal/Windows/Settings/SettingsWindow.cs
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,8 @@ public override void Draw()
ImGui.EndTabItem();
}
}

ImGui.EndTabBar();
}

ImGui.SetCursorPos(windowSize - ImGuiHelpers.ScaledVector2(70));
Expand Down
191 changes: 96 additions & 95 deletions Dalamud/Interface/Internal/Windows/StyleEditor/StyleEditorWindow.cs
Original file line number Diff line number Diff line change
Expand Up @@ -211,120 +211,121 @@ public override void Draw()

if (ImGui.BeginTabItem(Loc.Localize("StyleEditorVariables", "Variables")))
{
ImGui.BeginChild($"ScrollingVars", ImGuiHelpers.ScaledVector2(0, -32), true, ImGuiWindowFlags.HorizontalScrollbar | ImGuiWindowFlags.NoBackground);

ImGui.SetCursorPosY(ImGui.GetCursorPosY() - 5);

ImGui.SliderFloat2("WindowPadding", ref style.WindowPadding, 0.0f, 20.0f, "%.0f");
ImGui.SliderFloat2("FramePadding", ref style.FramePadding, 0.0f, 20.0f, "%.0f");
ImGui.SliderFloat2("CellPadding", ref style.CellPadding, 0.0f, 20.0f, "%.0f");
ImGui.SliderFloat2("ItemSpacing", ref style.ItemSpacing, 0.0f, 20.0f, "%.0f");
ImGui.SliderFloat2("ItemInnerSpacing", ref style.ItemInnerSpacing, 0.0f, 20.0f, "%.0f");
ImGui.SliderFloat2("TouchExtraPadding", ref style.TouchExtraPadding, 0.0f, 10.0f, "%.0f");
ImGui.SliderFloat("IndentSpacing", ref style.IndentSpacing, 0.0f, 30.0f, "%.0f");
ImGui.SliderFloat("ScrollbarSize", ref style.ScrollbarSize, 1.0f, 20.0f, "%.0f");
ImGui.SliderFloat("GrabMinSize", ref style.GrabMinSize, 1.0f, 20.0f, "%.0f");
ImGui.Text("Borders");
ImGui.SliderFloat("WindowBorderSize", ref style.WindowBorderSize, 0.0f, 1.0f, "%.0f");
ImGui.SliderFloat("ChildBorderSize", ref style.ChildBorderSize, 0.0f, 1.0f, "%.0f");
ImGui.SliderFloat("PopupBorderSize", ref style.PopupBorderSize, 0.0f, 1.0f, "%.0f");
ImGui.SliderFloat("FrameBorderSize", ref style.FrameBorderSize, 0.0f, 1.0f, "%.0f");
ImGui.SliderFloat("TabBorderSize", ref style.TabBorderSize, 0.0f, 1.0f, "%.0f");
ImGui.Text("Rounding");
ImGui.SliderFloat("WindowRounding", ref style.WindowRounding, 0.0f, 12.0f, "%.0f");
ImGui.SliderFloat("ChildRounding", ref style.ChildRounding, 0.0f, 12.0f, "%.0f");
ImGui.SliderFloat("FrameRounding", ref style.FrameRounding, 0.0f, 12.0f, "%.0f");
ImGui.SliderFloat("PopupRounding", ref style.PopupRounding, 0.0f, 12.0f, "%.0f");
ImGui.SliderFloat("ScrollbarRounding", ref style.ScrollbarRounding, 0.0f, 12.0f, "%.0f");
ImGui.SliderFloat("GrabRounding", ref style.GrabRounding, 0.0f, 12.0f, "%.0f");
ImGui.SliderFloat("LogSliderDeadzone", ref style.LogSliderDeadzone, 0.0f, 12.0f, "%.0f");
ImGui.SliderFloat("TabRounding", ref style.TabRounding, 0.0f, 12.0f, "%.0f");
ImGui.Text("Alignment");
ImGui.SliderFloat2("WindowTitleAlign", ref style.WindowTitleAlign, 0.0f, 1.0f, "%.2f");
var windowMenuButtonPosition = (int)style.WindowMenuButtonPosition + 1;
if (ImGui.Combo("WindowMenuButtonPosition", ref windowMenuButtonPosition, "None\0Left\0Right\0"))
style.WindowMenuButtonPosition = (ImGuiDir)(windowMenuButtonPosition - 1);
ImGui.SliderFloat2("ButtonTextAlign", ref style.ButtonTextAlign, 0.0f, 1.0f, "%.2f");
ImGui.SameLine();
ImGuiComponents.HelpMarker("Alignment applies when a button is larger than its text content.");
ImGui.SliderFloat2("SelectableTextAlign", ref style.SelectableTextAlign, 0.0f, 1.0f, "%.2f");
ImGui.SameLine();
ImGuiComponents.HelpMarker("Alignment applies when a selectable is larger than its text content.");
ImGui.SliderFloat2("DisplaySafeAreaPadding", ref style.DisplaySafeAreaPadding, 0.0f, 30.0f, "%.0f");
ImGui.SameLine();
ImGuiComponents.HelpMarker(
"Adjust if you cannot see the edges of your screen (e.g. on a TV where scaling has not been configured).");
ImGui.EndTabItem();

ImGui.EndChild();
if (ImGui.BeginChild($"ScrollingVars", ImGuiHelpers.ScaledVector2(0, -32), true, ImGuiWindowFlags.HorizontalScrollbar | ImGuiWindowFlags.NoBackground))
{
ImGui.SetCursorPosY(ImGui.GetCursorPosY() - 5);

ImGui.SliderFloat2("WindowPadding", ref style.WindowPadding, 0.0f, 20.0f, "%.0f");
ImGui.SliderFloat2("FramePadding", ref style.FramePadding, 0.0f, 20.0f, "%.0f");
ImGui.SliderFloat2("CellPadding", ref style.CellPadding, 0.0f, 20.0f, "%.0f");
ImGui.SliderFloat2("ItemSpacing", ref style.ItemSpacing, 0.0f, 20.0f, "%.0f");
ImGui.SliderFloat2("ItemInnerSpacing", ref style.ItemInnerSpacing, 0.0f, 20.0f, "%.0f");
ImGui.SliderFloat2("TouchExtraPadding", ref style.TouchExtraPadding, 0.0f, 10.0f, "%.0f");
ImGui.SliderFloat("IndentSpacing", ref style.IndentSpacing, 0.0f, 30.0f, "%.0f");
ImGui.SliderFloat("ScrollbarSize", ref style.ScrollbarSize, 1.0f, 20.0f, "%.0f");
ImGui.SliderFloat("GrabMinSize", ref style.GrabMinSize, 1.0f, 20.0f, "%.0f");
ImGui.Text("Borders");
ImGui.SliderFloat("WindowBorderSize", ref style.WindowBorderSize, 0.0f, 1.0f, "%.0f");
ImGui.SliderFloat("ChildBorderSize", ref style.ChildBorderSize, 0.0f, 1.0f, "%.0f");
ImGui.SliderFloat("PopupBorderSize", ref style.PopupBorderSize, 0.0f, 1.0f, "%.0f");
ImGui.SliderFloat("FrameBorderSize", ref style.FrameBorderSize, 0.0f, 1.0f, "%.0f");
ImGui.SliderFloat("TabBorderSize", ref style.TabBorderSize, 0.0f, 1.0f, "%.0f");
ImGui.Text("Rounding");
ImGui.SliderFloat("WindowRounding", ref style.WindowRounding, 0.0f, 12.0f, "%.0f");
ImGui.SliderFloat("ChildRounding", ref style.ChildRounding, 0.0f, 12.0f, "%.0f");
ImGui.SliderFloat("FrameRounding", ref style.FrameRounding, 0.0f, 12.0f, "%.0f");
ImGui.SliderFloat("PopupRounding", ref style.PopupRounding, 0.0f, 12.0f, "%.0f");
ImGui.SliderFloat("ScrollbarRounding", ref style.ScrollbarRounding, 0.0f, 12.0f, "%.0f");
ImGui.SliderFloat("GrabRounding", ref style.GrabRounding, 0.0f, 12.0f, "%.0f");
ImGui.SliderFloat("LogSliderDeadzone", ref style.LogSliderDeadzone, 0.0f, 12.0f, "%.0f");
ImGui.SliderFloat("TabRounding", ref style.TabRounding, 0.0f, 12.0f, "%.0f");
ImGui.Text("Alignment");
ImGui.SliderFloat2("WindowTitleAlign", ref style.WindowTitleAlign, 0.0f, 1.0f, "%.2f");
var windowMenuButtonPosition = (int)style.WindowMenuButtonPosition + 1;
if (ImGui.Combo("WindowMenuButtonPosition", ref windowMenuButtonPosition, "None\0Left\0Right\0"))
style.WindowMenuButtonPosition = (ImGuiDir)(windowMenuButtonPosition - 1);
ImGui.SliderFloat2("ButtonTextAlign", ref style.ButtonTextAlign, 0.0f, 1.0f, "%.2f");
ImGui.SameLine();
ImGuiComponents.HelpMarker("Alignment applies when a button is larger than its text content.");
ImGui.SliderFloat2("SelectableTextAlign", ref style.SelectableTextAlign, 0.0f, 1.0f, "%.2f");
ImGui.SameLine();
ImGuiComponents.HelpMarker("Alignment applies when a selectable is larger than its text content.");
ImGui.SliderFloat2("DisplaySafeAreaPadding", ref style.DisplaySafeAreaPadding, 0.0f, 30.0f, "%.0f");
ImGui.SameLine();
ImGuiComponents.HelpMarker(
"Adjust if you cannot see the edges of your screen (e.g. on a TV where scaling has not been configured).");

ImGui.EndChild();
}

ImGui.EndTabItem();
}

if (ImGui.BeginTabItem(Loc.Localize("StyleEditorColors", "Colors")))
{
ImGui.BeginChild("ScrollingColors", ImGuiHelpers.ScaledVector2(0, -30), true, ImGuiWindowFlags.HorizontalScrollbar | ImGuiWindowFlags.NoBackground);

ImGui.SetCursorPosY(ImGui.GetCursorPosY() - 5);

if (ImGui.RadioButton("Opaque", this.alphaFlags == ImGuiColorEditFlags.None))
this.alphaFlags = ImGuiColorEditFlags.None;
ImGui.SameLine();
if (ImGui.RadioButton("Alpha", this.alphaFlags == ImGuiColorEditFlags.AlphaPreview))
this.alphaFlags = ImGuiColorEditFlags.AlphaPreview;
ImGui.SameLine();
if (ImGui.RadioButton("Both", this.alphaFlags == ImGuiColorEditFlags.AlphaPreviewHalf))
this.alphaFlags = ImGuiColorEditFlags.AlphaPreviewHalf;
ImGui.SameLine();

ImGuiComponents.HelpMarker(
"In the color list:\n" +
"Left-click on color square to open color picker,\n" +
"Right-click to open edit options menu.");

foreach (var imGuiCol in Enum.GetValues<ImGuiCol>())
if (ImGui.BeginChild("ScrollingColors", ImGuiHelpers.ScaledVector2(0, -30), true, ImGuiWindowFlags.HorizontalScrollbar | ImGuiWindowFlags.NoBackground))
{
if (imGuiCol == ImGuiCol.COUNT)
continue;

ImGui.PushID(imGuiCol.ToString());
ImGui.SetCursorPosY(ImGui.GetCursorPosY() - 5);

if (ImGui.RadioButton("Opaque", this.alphaFlags == ImGuiColorEditFlags.None))
this.alphaFlags = ImGuiColorEditFlags.None;
ImGui.SameLine();
if (ImGui.RadioButton("Alpha", this.alphaFlags == ImGuiColorEditFlags.AlphaPreview))
this.alphaFlags = ImGuiColorEditFlags.AlphaPreview;
ImGui.SameLine();
if (ImGui.RadioButton("Both", this.alphaFlags == ImGuiColorEditFlags.AlphaPreviewHalf))
this.alphaFlags = ImGuiColorEditFlags.AlphaPreviewHalf;
ImGui.SameLine();

ImGuiComponents.HelpMarker(
"In the color list:\n" +
"Left-click on color square to open color picker,\n" +
"Right-click to open edit options menu.");

foreach (var imGuiCol in Enum.GetValues<ImGuiCol>())
{
if (imGuiCol == ImGuiCol.COUNT)
continue;

ImGui.ColorEdit4("##color", ref style.Colors[(int)imGuiCol], ImGuiColorEditFlags.AlphaBar | this.alphaFlags);
ImGui.PushID(imGuiCol.ToString());

ImGui.SameLine(0.0f, style.ItemInnerSpacing.X);
ImGui.TextUnformatted(imGuiCol.ToString());
ImGui.ColorEdit4("##color", ref style.Colors[(int)imGuiCol], ImGuiColorEditFlags.AlphaBar | this.alphaFlags);

ImGui.PopID();
}
ImGui.SameLine(0.0f, style.ItemInnerSpacing.X);
ImGui.TextUnformatted(imGuiCol.ToString());

ImGui.Separator();
ImGui.PopID();
}

foreach (var property in typeof(DalamudColors).GetProperties(BindingFlags.Public | BindingFlags.Instance))
{
ImGui.PushID(property.Name);
ImGui.Separator();

var colorVal = property.GetValue(workStyle.BuiltInColors);
if (colorVal == null)
foreach (var property in typeof(DalamudColors).GetProperties(BindingFlags.Public | BindingFlags.Instance))
{
colorVal = property.GetValue(StyleModelV1.DalamudStandard.BuiltInColors);
property.SetValue(workStyle.BuiltInColors, colorVal);
}
ImGui.PushID(property.Name);

var color = (Vector4)colorVal;
var colorVal = property.GetValue(workStyle.BuiltInColors);
if (colorVal == null)
{
colorVal = property.GetValue(StyleModelV1.DalamudStandard.BuiltInColors);
property.SetValue(workStyle.BuiltInColors, colorVal);
}

if (ImGui.ColorEdit4("##color", ref color, ImGuiColorEditFlags.AlphaBar | this.alphaFlags))
{
property.SetValue(workStyle.BuiltInColors, color);
workStyle.BuiltInColors?.Apply();
}
var color = (Vector4)colorVal;

ImGui.SameLine(0.0f, style.ItemInnerSpacing.X);
ImGui.TextUnformatted(property.Name);
if (ImGui.ColorEdit4("##color", ref color, ImGuiColorEditFlags.AlphaBar | this.alphaFlags))
{
property.SetValue(workStyle.BuiltInColors, color);
workStyle.BuiltInColors?.Apply();
}

ImGui.PopID();
}
ImGui.SameLine(0.0f, style.ItemInnerSpacing.X);
ImGui.TextUnformatted(property.Name);

ImGui.PopID();
}

ImGui.EndChild();
ImGui.EndChild();
}

ImGui.EndTabItem();
}
Expand Down

0 comments on commit 473e243

Please sign in to comment.