#include "StyleManagmentContext.h" #include "../PrimitivesBuilder/StyleBuilder.h" #include std::stack StyleManagmentContext::usingStyles; std::unordered_map StyleManagmentContext::Styles = { {BASE, StyleBuilder() .AddStyle(ImGuiStyleVar_FramePadding, ImVec2(8, 4)) .AddStyle(ImGuiStyleVar_FrameRounding, 8) .AddStyle(ImGuiStyleVar_GrabRounding, 6) .AddStyle(ImGuiStyleVar_GrabMinSize, 16) .AddStyle(ImGuiStyleVar_ChildRounding, 8) .AddStyle(ImGuiStyleVar_WindowRounding, 16) .AddStyle(ImGuiStyleVar_PopupRounding, 16) .AddStyle(ImGuiStyleVar_WindowTitleAlign, ImVec2(0.5, 0.5)) .AddStyle(ImGuiStyleVar_FrameBorderSize, 1.0f) .AddColor(ImGuiCol_ModalWindowDimBg, ImVec4(0.0, 0.0, 0.0, 0.5)) .AddColor(ImGuiCol_Button, ImVec4(0.0f, 0.0f, 0.0f, 0.0f)) .AddColor(ImGuiCol_FrameBg, ImVec4(1.0f, 1.0f, 1.0f, 1.0f)) .AddColor(ImGuiCol_ChildBg, ImVec4(1.0f, 1.0f, 1.0f, 1.0f)) .AddColor(ImGuiCol_ButtonActive, ImVec4(0.0f, 1.0f, 0.6f, 1.0f)) .AddColor(ImGuiCol_Header, ImVec4(0.0f, 1.0f, 0.6f, 1.0f)) .AddColor(ImGuiCol_SliderGrabActive, ImVec4(0.0f, 1.0f, 0.6f, 1.0f)) .AddColor(ImGuiCol_HeaderHovered, ImVec4(0.0f, 1.0f, 0.6f, 0.25f)) .AddColor(ImGuiCol_ButtonHovered, ImVec4(0.0f, 1.0f, 0.6f, 0.25f)) .AddColor(ImGuiCol_SliderGrab, ImVec4(0.0f, 1.0f, 0.6f, 0.5f)) .AddColor(ImGuiCol_HeaderActive, ImVec4(0.0f, 0.8f, 0.4f, 1.0f)) .AddColor(ImGuiCol_WindowBg, ImVec4(0.2f, 0.2f, 0.2f, 0.5f)) .AddColor(ImGuiCol_Text, ImVec4(1.0f, 1.0f, 1.0f, 1.0f)) .Build() }, {BASECONTENTS, StyleBuilder() .AddColor(ImGuiCol_Text, ImVec4(0.0f, 0.0f, 0.0f, 1.0f)) .Build() }, {ICONSLIST, StyleBuilder() .AddStyle(ImGuiStyleVar_FramePadding, ImVec2(6, 4)) .AddStyle(ImGuiStyleVar_FrameRounding, 8) .Build() }, {BRUSHLIST, StyleBuilder() .AddStyle(ImGuiStyleVar_FramePadding, ImVec2(0, 0)) .Build() }, {TOOLBAR, StyleBuilder() .AddColor(ImGuiCol_WindowBg, ImVec4(0.2f, 0.2f, 0.2f, 0.5f)) .AddColor(ImGuiCol_Text, ImVec4(1.0f, 1.0f, 1.0f, 1.0f)) .AddColor(ImGuiCol_FrameBg, ImVec4(0.0f, 0.0f, 0.0f, 0.0f)) .AddStyle(ImGuiStyleVar_FramePadding, ImVec2(6.0f, 6.0f)) .AddStyle(ImGuiStyleVar_WindowPadding, ImVec2(8.0f, 8.0f)) .AddStyle(ImGuiStyleVar_ItemSpacing, ImVec2(8.0f, 8.0f)) .AddStyle(ImGuiStyleVar_FrameBorderSize, 1.0f) .Build() }, {NOTIFY, StyleBuilder() .AddColor(ImGuiCol_WindowBg, ImVec4(0.2f, 0.2f, 0.2f, 0.5f)) .AddColor(ImGuiCol_Text, ImVec4(1.0f, 1.0f, 1.0f, 1.0f)) .AddStyle(ImGuiStyleVar_WindowPadding, ImVec2(16.0f, 8.0f)) .AddStyle(ImGuiStyleVar_ItemSpacing, ImVec2(8.0f, 8.0f)) .Build() }, {LAYERMANAGER, StyleBuilder() .AddStyle(ImGuiStyleVar_FramePadding, ImVec2(6.0f, 4.0f)) .AddStyle(ImGuiStyleVar_FrameBorderSize, 1.0f) .AddStyle(ImGuiStyleVar_ItemSpacing, ImVec2(8.0f, 8.0f)) .Build() }, {SELECTED, StyleBuilder() .AddColor(ImGuiCol_Border, ImVec4(0.0f, 1.0f, 0.6f, 1.0f)) .AddColor(ImGuiCol_Button, ImVec4(0.0f, 1.0f, 0.6f, 0.25f)) .Build() }, {POPUP, StyleBuilder() .AddColor(ImGuiCol_PopupBg, ImVec4(0.2f, 0.2f, 0.2f, 0.5f)) .AddColor(ImGuiCol_WindowBg, ImVec4(0.2f, 0.2f, 0.2f, 0.5f)) .AddStyle(ImGuiStyleVar_ItemSpacing, ImVec2(8.0f, 8.0f)) .AddStyle(ImGuiStyleVar_ButtonTextAlign, ImVec2(0.0f, 0.5f)) .AddColor(ImGuiCol_Text, ImVec4(0.0f, 0.0f, 0.0f, 1.0f)) .Build() }, {POPUPINNER, StyleBuilder() .AddStyle(ImGuiStyleVar_ItemSpacing, ImVec2(0.0f, 0.0f)) .AddStyle(ImGuiStyleVar_WindowPadding, ImVec2(0.0f, 0.0f)) .AddStyle(ImGuiStyleVar_ButtonTextAlign, ImVec2(0.0f, 0.5f)) .AddColor(ImGuiCol_Text, ImVec4(0.0f, 0.0f, 0.0f, 1.0f)) .Build() }, {NOBORDER, StyleBuilder() .AddStyle(ImGuiStyleVar_WindowBorderSize, 0.0f) .AddStyle(ImGuiStyleVar_ChildBorderSize, 0.0f) .AddStyle(ImGuiStyleVar_PopupBorderSize, 0.0f) .AddStyle(ImGuiStyleVar_FrameBorderSize, 0.0f) .AddStyle(ImGuiStyleVar_ImageBorderSize, 0.0f) .AddStyle(ImGuiStyleVar_TabBorderSize, 0.0f) .AddStyle(ImGuiStyleVar_TabBarBorderSize, 0.0f) .AddStyle(ImGuiStyleVar_SeparatorTextBorderSize, 0.0f) .Build() }, {PROJECTSWINDOW, StyleBuilder() .AddStyle(ImGuiStyleVar_WindowBorderSize, 0.0f) .AddStyle(ImGuiStyleVar_ChildBorderSize, 1.0f) .AddStyle(ImGuiStyleVar_PopupBorderSize, 1.0f) .AddStyle(ImGuiStyleVar_FrameBorderSize, 1.0f) .AddStyle(ImGuiStyleVar_ImageBorderSize, 1.0f) .AddStyle(ImGuiStyleVar_TabBorderSize, 1.0f) .AddStyle(ImGuiStyleVar_TabBarBorderSize, 1.0f) .AddStyle(ImGuiStyleVar_SeparatorTextBorderSize, 1.0f) .AddStyle(ImGuiStyleVar_WindowRounding, 0) .AddColor(ImGuiCol_WindowBg, ImVec4(1.0f, 1.0f, 1.0f, 1.0f)) .AddColor(ImGuiCol_ChildBg, ImVec4(1.0f, 1.0f, 1.0f, 1.0f)) .AddColor(ImGuiCol_Text, ImVec4(0.0f, 0.0f, 0.0f, 1.0f)) .Build() } }; void StyleManagmentContext::Push(StyleUsage usage) { Styles.at(usage).Push(); usingStyles.push(usage); } void StyleManagmentContext::Pop() { Styles.at(usingStyles.top()).Pop(); usingStyles.pop(); }