diff --git a/isometric-park-fna/UI/ContractWindow.cs b/isometric-park-fna/UI/ContractWindow.cs --- a/isometric-park-fna/UI/ContractWindow.cs +++ b/isometric-park-fna/UI/ContractWindow.cs @@ -37,40 +37,15 @@ bool newShow = true; // Entity newSelected; - var grey = new Num.Vector4(0.75f, 0.75f, 0.75f, 1f); - var darkgrey = new Num.Vector4(0.45f, 0.45f, 0.45f, 1f); - var black = new Num.Vector4(0f, 0f, 0f, 1f); - var title_bar = new Num.Vector4(0.65f, 0.65f, 0.65f, 1f); +; if (newShow) { ImGui.PushFont(font); ImGui.GetStyle().WindowMenuButtonPosition = ImGuiDir.None; - ImGui.PushStyleVar(ImGuiStyleVar.FrameRounding, 0.0f); - ImGui.PushStyleVar(ImGuiStyleVar.WindowRounding, 0.0f); - ImGui.PushStyleVar(ImGuiStyleVar.FrameBorderSize, 1.0f); - ImGui.PushStyleVar(ImGuiStyleVar.TabRounding, 0.0f); - ImGui.PushStyleColor(ImGuiCol.WindowBg, grey); - ImGui.PushStyleColor(ImGuiCol.FrameBg, grey); - ImGui.PushStyleColor(ImGuiCol.FrameBgHovered, grey); - ImGui.PushStyleColor(ImGuiCol.Header, darkgrey); - ImGui.PushStyleColor(ImGuiCol.HeaderHovered, darkgrey); - ImGui.PushStyleColor(ImGuiCol.HeaderActive, darkgrey); - ImGui.PushStyleColor(ImGuiCol.ButtonHovered, grey); - ImGui.PushStyleColor(ImGuiCol.CheckMark, black); - - ImGui.PushStyleColor(ImGuiCol.TitleBg, title_bar); - ImGui.PushStyleColor(ImGuiCol.TitleBgActive, title_bar); - ImGui.PushStyleColor(ImGuiCol.TitleBgCollapsed, title_bar); - - ImGui.PushStyleColor(ImGuiCol.Border, black); - ImGui.PushStyleColor(ImGuiCol.BorderShadow, black); - - - - ImGui.PushStyleColor(ImGuiCol.Button, grey); - ImGui.PushStyleColor(ImGuiCol.Text, black); + StyleSet.pushStyleVarSet(StyleSet.defaultWindowVars); + StyleSet.pushColorSet(StyleSet.defaultWindowColors); ImGui.SetNextWindowSize(new Num.Vector2(320, 360)); ImGui.Begin(string.Format("Contract {0}", name), ref newShow, ImGuiWindowFlags.NoResize | ImGuiWindowFlags.NoCollapse | ImGuiWindowFlags.NoSavedSettings); @@ -137,8 +112,8 @@ ImGui.End(); ImGui.GetStyle().WindowMenuButtonPosition = ImGuiDir.Left; - ImGui.PopStyleVar(4); - ImGui.PopStyleColor(15); + StyleSet.popStyleVarSet(StyleSet.defaultWindowVars); + StyleSet.popColorSet(StyleSet.defaultWindowColors); ImGui.PopFont(); // Logging.Trace("Finished."); diff --git a/isometric-park-fna/UI/ContractsWindow.cs b/isometric-park-fna/UI/ContractsWindow.cs --- a/isometric-park-fna/UI/ContractsWindow.cs +++ b/isometric-park-fna/UI/ContractsWindow.cs @@ -36,30 +36,9 @@ ImGui.PushFont(font); ImGui.GetStyle().WindowMenuButtonPosition = ImGuiDir.None; - ImGui.PushStyleVar(ImGuiStyleVar.FrameRounding, 0.0f); - ImGui.PushStyleVar(ImGuiStyleVar.WindowRounding, 0.0f); - ImGui.PushStyleVar(ImGuiStyleVar.FrameBorderSize, 1.0f); - ImGui.PushStyleVar(ImGuiStyleVar.TabRounding, 0.0f); - ImGui.PushStyleColor(ImGuiCol.WindowBg, grey); - ImGui.PushStyleColor(ImGuiCol.FrameBg, grey); - ImGui.PushStyleColor(ImGuiCol.FrameBgHovered, grey); - ImGui.PushStyleColor(ImGuiCol.Header, darkgrey); - ImGui.PushStyleColor(ImGuiCol.HeaderHovered, darkgrey); - ImGui.PushStyleColor(ImGuiCol.HeaderActive, darkgrey); - ImGui.PushStyleColor(ImGuiCol.ButtonHovered, grey); - ImGui.PushStyleColor(ImGuiCol.CheckMark, black); + StyleSet.pushStyleVarSet(StyleSet.defaultWindowVars); + StyleSet.pushColorSet(StyleSet.defaultWindowColors); - ImGui.PushStyleColor(ImGuiCol.TitleBg, title_bar); - ImGui.PushStyleColor(ImGuiCol.TitleBgActive, title_bar); - ImGui.PushStyleColor(ImGuiCol.TitleBgCollapsed, title_bar); - - ImGui.PushStyleColor(ImGuiCol.Border, black); - ImGui.PushStyleColor(ImGuiCol.BorderShadow, black); - - - - ImGui.PushStyleColor(ImGuiCol.Button, grey); - ImGui.PushStyleColor(ImGuiCol.Text, black); ImGui.SetNextWindowSize(new Num.Vector2(320, 340)); ImGui.Begin("Contracts", ref newShow, ImGuiWindowFlags.NoResize | ImGuiWindowFlags.NoCollapse | ImGuiWindowFlags.NoSavedSettings); ImGui.ListBoxHeader("##Contracts:", new Num.Vector2(300, 150)); @@ -154,8 +133,8 @@ ImGui.End(); ImGui.GetStyle().WindowMenuButtonPosition = ImGuiDir.Left; - ImGui.PopStyleVar(4); - ImGui.PopStyleColor(15); + StyleSet.popStyleVarSet(StyleSet.defaultWindowVars); + StyleSet.popColorSet(StyleSet.defaultWindowColors); ImGui.PopFont(); } diff --git a/isometric-park-fna/UI/ForestWindow.cs b/isometric-park-fna/UI/ForestWindow.cs --- a/isometric-park-fna/UI/ForestWindow.cs +++ b/isometric-park-fna/UI/ForestWindow.cs @@ -18,23 +18,9 @@ ImGui.PushFont(font); ImGui.GetStyle().WindowMenuButtonPosition = ImGuiDir.None; - ImGui.PushStyleVar(ImGuiStyleVar.FrameRounding, 0.0f); - ImGui.PushStyleVar(ImGuiStyleVar.WindowRounding, 0.0f); - ImGui.PushStyleVar(ImGuiStyleVar.FrameBorderSize, 1.0f); - ImGui.PushStyleColor(ImGuiCol.WindowBg, new Num.Vector4(0.75f, 0.75f, 0.75f, 1f)); + StyleSet.pushStyleVarSet(StyleSet.defaultWindowVars); + StyleSet.pushColorSet(StyleSet.defaultWindowColors); - var title_bar = new Num.Vector4(0.65f, 0.65f, 0.65f, 1f); - ImGui.PushStyleColor(ImGuiCol.TitleBg, title_bar); - ImGui.PushStyleColor(ImGuiCol.TitleBgActive, title_bar); - ImGui.PushStyleColor(ImGuiCol.TitleBgCollapsed, title_bar); - - ImGui.PushStyleColor(ImGuiCol.Border, new Num.Vector4(0f, 0f, 0f, 1f)); - ImGui.PushStyleColor(ImGuiCol.BorderShadow, new Num.Vector4(0f, 0f, 0f, 0.5f)); - - - - ImGui.PushStyleColor(ImGuiCol.Button, new Num.Vector4(0.75f, 0.75f, 0.75f, 1f)); - ImGui.PushStyleColor(ImGuiCol.Text, new Num.Vector4(0f, 0f, 0f, 1f)); ImGui.Begin("Forest Policy", ref show, ImGuiWindowFlags.NoResize | ImGuiWindowFlags.NoCollapse | ImGuiWindowFlags.AlwaysAutoResize | ImGuiWindowFlags.NoSavedSettings); @@ -58,8 +44,10 @@ ImGui.End(); ImGui.GetStyle().WindowMenuButtonPosition = ImGuiDir.Left; - ImGui.PopStyleVar(3); - ImGui.PopStyleColor(8); + // ImGui.PopStyleVar(3); + // ImGui.PopStyleColor(8); + StyleSet.popStyleVarSet(StyleSet.defaultWindowVars); + StyleSet.popColorSet(StyleSet.defaultWindowColors); ImGui.PopFont(); } if (show != newShow) diff --git a/isometric-park-fna/UI/StyleSet.cs b/isometric-park-fna/UI/StyleSet.cs new file mode 100644 --- /dev/null +++ b/isometric-park-fna/UI/StyleSet.cs @@ -0,0 +1,70 @@ +using System.Collections.Generic; +using ImGuiNET; + +using Num = System.Numerics; + + +namespace isometricparkfna.UI +{ + public class StyleSet + { + static Num.Vector4 grey = new Num.Vector4(0.75f, 0.75f, 0.75f, 1f); + static Num.Vector4 darkgrey = new Num.Vector4(0.45f, 0.45f, 0.45f, 1f); + static Num.Vector4 black = new Num.Vector4(0f, 0f, 0f, 1f); + static Num.Vector4 title_bar = new Num.Vector4(0.65f, 0.65f, 0.65f, 1f); + public static Dictionary defaultWindowVars = new Dictionary{ + { ImGuiStyleVar.FrameRounding, 0.0f }, + {ImGuiStyleVar.WindowRounding, 0.0f}, + {ImGuiStyleVar.FrameBorderSize, 1.0f}, + {ImGuiStyleVar.TabRounding, 0.0f}, + }; + public static Dictionary defaultWindowColors = new Dictionary{ + + {ImGuiCol.WindowBg, grey}, + {ImGuiCol.FrameBg, grey}, + {ImGuiCol.FrameBgHovered, grey}, + {ImGuiCol.Header, darkgrey}, + {ImGuiCol.HeaderHovered, darkgrey}, + {ImGuiCol.HeaderActive, darkgrey}, + {ImGuiCol.ButtonHovered, grey}, + {ImGuiCol.CheckMark, black}, + + {ImGuiCol.TitleBg, title_bar}, + {ImGuiCol.TitleBgActive, title_bar}, + {ImGuiCol.TitleBgCollapsed, title_bar}, + + {ImGuiCol.Border, black}, + {ImGuiCol.BorderShadow, black}, + + {ImGuiCol.Button, grey}, + {ImGuiCol.Text, black} + }; + /* + */ + public static void pushStyleVarSet(Dictionary style_set) + { + foreach(var pair in style_set) + { + ImGui.PushStyleVar(pair.Key, pair.Value); + } + } + + public static void popStyleVarSet(Dictionary style_set) + { + ImGui.PopStyleVar(style_set.Count); + } + public static void pushColorSet(Dictionary style_set) + { + foreach(var pair in style_set) + { + ImGui.PushStyleColor(pair.Key, pair.Value); + } + + } + public static void popColorSet(Dictionary style_set) + { + ImGui.PopStyleColor(style_set.Count); + } + } + +} \ No newline at end of file diff --git a/isometric-park-fna/isometric-park-fna.csproj b/isometric-park-fna/isometric-park-fna.csproj --- a/isometric-park-fna/isometric-park-fna.csproj +++ b/isometric-park-fna/isometric-park-fna.csproj @@ -63,6 +63,7 @@ +