dev190 - GUI: color scheme guru mode

now you can fine-tune every color in the interface

TODO: improve color config format
This commit is contained in:
tildearrow 2023-12-20 19:51:21 -05:00
parent 37195e5759
commit 231a76d50b
4 changed files with 210 additions and 52 deletions

View file

@ -54,8 +54,8 @@ class DivWorkPool;
#define DIV_UNSTABLE
#define DIV_VERSION "dev189"
#define DIV_ENGINE_VERSION 189
#define DIV_VERSION "dev190"
#define DIV_ENGINE_VERSION 190
// for imports
#define DIV_VERSION_MOD 0xff01
#define DIV_VERSION_FC 0xff02

View file

@ -101,6 +101,7 @@ enum FurnaceGUIColors {
GUI_COLOR_MODAL_BACKDROP,
GUI_COLOR_HEADER,
GUI_COLOR_TEXT,
GUI_COLOR_TEXT_DISABLED,
GUI_COLOR_ACCENT_PRIMARY,
GUI_COLOR_ACCENT_SECONDARY,
GUI_COLOR_TITLE_INACTIVE,
@ -124,6 +125,36 @@ enum FurnaceGUIColors {
GUI_COLOR_NAV_HIGHLIGHT,
GUI_COLOR_NAV_WIN_HIGHLIGHT,
GUI_COLOR_NAV_WIN_BACKDROP,
GUI_COLOR_PLOT_LINES,
GUI_COLOR_PLOT_LINES_HOVER,
GUI_COLOR_PLOT_HISTOGRAM,
GUI_COLOR_PLOT_HISTOGRAM_HOVER,
GUI_COLOR_BUTTON,
GUI_COLOR_BUTTON_HOVER,
GUI_COLOR_BUTTON_ACTIVE,
GUI_COLOR_TAB,
GUI_COLOR_TAB_HOVER,
GUI_COLOR_TAB_ACTIVE,
GUI_COLOR_TAB_UNFOCUSED,
GUI_COLOR_TAB_UNFOCUSED_ACTIVE,
GUI_COLOR_IMGUI_HEADER,
GUI_COLOR_IMGUI_HEADER_HOVER,
GUI_COLOR_IMGUI_HEADER_ACTIVE,
GUI_COLOR_RESIZE_GRIP,
GUI_COLOR_RESIZE_GRIP_HOVER,
GUI_COLOR_RESIZE_GRIP_ACTIVE,
GUI_COLOR_WIDGET_BACKGROUND,
GUI_COLOR_WIDGET_BACKGROUND_HOVER,
GUI_COLOR_WIDGET_BACKGROUND_ACTIVE,
GUI_COLOR_SLIDER_GRAB,
GUI_COLOR_SLIDER_GRAB_ACTIVE,
GUI_COLOR_TITLE_BACKGROUND_ACTIVE,
GUI_COLOR_CHECK_MARK,
GUI_COLOR_TEXT_SELECTION,
GUI_COLOR_TABLE_ROW_EVEN,
GUI_COLOR_TABLE_ROW_ODD,
GUI_COLOR_TOGGLE_OFF,
GUI_COLOR_TOGGLE_ON,
GUI_COLOR_EDITING,
@ -1655,6 +1686,7 @@ class FurnaceGUI {
int fontAutoHint;
int fontAntiAlias;
int selectAssetOnLoad;
int basicColors;
unsigned int maxUndoSteps;
String mainFontPath;
String headFontPath;
@ -1850,6 +1882,7 @@ class FurnaceGUI {
fontAutoHint(1),
fontAntiAlias(1),
selectAssetOnLoad(1),
basicColors(1),
maxUndoSteps(100),
mainFontPath(""),
headFontPath(""),

View file

@ -794,6 +794,7 @@ const FurnaceGUIColorDef guiColors[GUI_COLOR_MAX]={
D(GUI_COLOR_MODAL_BACKDROP,"",ImVec4(0.0f,0.0f,0.0f,0.55f)),
D(GUI_COLOR_HEADER,"",ImVec4(0.2f,0.2f,0.2f,1.0f)),
D(GUI_COLOR_TEXT,"",ImVec4(1.0f,1.0f,1.0f,1.0f)),
D(GUI_COLOR_TEXT_DISABLED,"",ImVec4(0.5f,0.5f,0.5f,1.0f)),
D(GUI_COLOR_ACCENT_PRIMARY,"",ImVec4(0.06f,0.53f,0.98f,1.0f)),
D(GUI_COLOR_ACCENT_SECONDARY,"",ImVec4(0.26f,0.59f,0.98f,1.0f)),
D(GUI_COLOR_TITLE_INACTIVE,"",ImVec4(0.04f,0.04f,0.04f,1.0f)),
@ -817,6 +818,36 @@ const FurnaceGUIColorDef guiColors[GUI_COLOR_MAX]={
D(GUI_COLOR_NAV_HIGHLIGHT,"",ImVec4(0.26f,0.59f,0.98f,1.0f)),
D(GUI_COLOR_NAV_WIN_HIGHLIGHT,"",ImVec4(1.0f,1.0f,1.0f,0.7f)),
D(GUI_COLOR_NAV_WIN_BACKDROP,"",ImVec4(0.8f,0.8f,0.8f,0.2f)),
D(GUI_COLOR_PLOT_LINES,"",ImVec4(0.61f,0.61f,0.61f,1.0f)),
D(GUI_COLOR_PLOT_LINES_HOVER,"",ImVec4(1.00f,0.43f,0.35f,1.00f)),
D(GUI_COLOR_PLOT_HISTOGRAM,"",ImVec4(0.0f,0.9f,1.0f,1.0f)),
D(GUI_COLOR_PLOT_HISTOGRAM_HOVER,"",ImVec4(0.0f,0.9f,1.0f,1.0f)),
D(GUI_COLOR_BUTTON,"",ImVec4(0.085f,0.216f,0.343f,1.0f)),
D(GUI_COLOR_BUTTON_HOVER,"",ImVec4(0.075f,0.287f,0.49f,1.0f)),
D(GUI_COLOR_BUTTON_ACTIVE,"",ImVec4(0.06f,0.53f,0.98f,1.0f)),
D(GUI_COLOR_TAB,"",ImVec4(0.085f,0.216f,0.343f,1.0f)),
D(GUI_COLOR_TAB_HOVER,"",ImVec4(0.165f,0.313f,0.49f,1.0f)),
D(GUI_COLOR_TAB_ACTIVE,"",ImVec4(0.25f,0.47f,0.735f,1.0f)),
D(GUI_COLOR_TAB_UNFOCUSED,"",ImVec4(0.085f,0.216f,0.343f,1.0f)),
D(GUI_COLOR_TAB_UNFOCUSED_ACTIVE,"",ImVec4(0.075f,0.287f,0.49f,1.0f)),
D(GUI_COLOR_IMGUI_HEADER,"",ImVec4(0.083f,0.156f,0.245f,1.0f)),
D(GUI_COLOR_IMGUI_HEADER_HOVER,"",ImVec4(0.165f,0.313f,0.49f,1.0f)),
D(GUI_COLOR_IMGUI_HEADER_ACTIVE,"",ImVec4(0.26f,0.59f,0.98f,1.0f)),
D(GUI_COLOR_RESIZE_GRIP,"",ImVec4(0.083f,0.156f,0.245f,1.0f)),
D(GUI_COLOR_RESIZE_GRIP_HOVER,"",ImVec4(0.165f,0.313f,0.49f,1.0f)),
D(GUI_COLOR_RESIZE_GRIP_ACTIVE,"",ImVec4(0.26f,0.59f,0.98f,1.0f)),
D(GUI_COLOR_WIDGET_BACKGROUND,"",ImVec4(0.083f,0.156f,0.245f,1.0f)),
D(GUI_COLOR_WIDGET_BACKGROUND_HOVER,"",ImVec4(0.165f,0.313f,0.49f,1.0f)),
D(GUI_COLOR_WIDGET_BACKGROUND_ACTIVE,"",ImVec4(0.26f,0.59f,0.98f,1.0f)),
D(GUI_COLOR_SLIDER_GRAB,"",ImVec4(0.06f,0.53f,0.98f,1.0f)),
D(GUI_COLOR_SLIDER_GRAB_ACTIVE,"",ImVec4(0.06f,0.53f,0.98f,1.0f)),
D(GUI_COLOR_TITLE_BACKGROUND_ACTIVE,"",ImVec4(0.085f,0.216f,0.343f,1.0f)),
D(GUI_COLOR_CHECK_MARK,"",ImVec4(0.06f,0.53f,0.98f,1.0f)),
D(GUI_COLOR_TEXT_SELECTION,"",ImVec4(0.165f,0.313f,0.49f,1.0f)),
D(GUI_COLOR_TABLE_ROW_EVEN,"",ImVec4(0.0f,0.0f,0.0f,0.0f)),
D(GUI_COLOR_TABLE_ROW_ODD,"",ImVec4(1.0f,1.0f,1.0f,0.06f)),
D(GUI_COLOR_TOGGLE_OFF,"",ImVec4(0.2f,0.2f,0.2f,1.0f)),
D(GUI_COLOR_TOGGLE_ON,"",ImVec4(0.2f,0.6f,0.2f,1.0f)),
D(GUI_COLOR_EDITING,"",ImVec4(0.2f,0.1f,0.1f,1.0f)),

View file

@ -3170,26 +3170,84 @@ void FurnaceGUI::drawSettings() {
if (ImGui::Button("Reset defaults")) {
showWarning("Are you sure you want to reset the color scheme?",GUI_WARN_RESET_COLORS);
}
if (ImGui::TreeNode("General")) {
ImGui::Text("Color scheme type:");
ImGui::Indent();
if (ImGui::RadioButton("Dark##gcb0",settings.guiColorsBase==0)) {
settings.guiColorsBase=0;
applyUISettings(false);
settingsChanged=true;
bool basicColorsB=!settings.basicColors;
if (ImGui::Checkbox("Guru mode",&basicColorsB)) {
settings.basicColors=!basicColorsB;
applyUISettings(false);
settingsChanged=true;
}
if (settings.basicColors) {
if (ImGui::TreeNode("Interface")) {
if (ImGui::SliderInt("Frame shading",&settings.guiColorsShading,0,100,"%d%%")) {
if (settings.guiColorsShading<0) settings.guiColorsShading=0;
if (settings.guiColorsShading>100) settings.guiColorsShading=100;
applyUISettings(false);
settingsChanged=true;
}
ImGui::Text("Color scheme type:");
ImGui::Indent();
if (ImGui::RadioButton("Dark##gcb0",settings.guiColorsBase==0)) {
settings.guiColorsBase=0;
applyUISettings(false);
settingsChanged=true;
}
if (ImGui::RadioButton("Light##gcb1",settings.guiColorsBase==1)) {
settings.guiColorsBase=1;
applyUISettings(false);
settingsChanged=true;
}
ImGui::Unindent();
ImGui::Text("Accent colors:");
ImGui::Indent();
UI_COLOR_CONFIG(GUI_COLOR_ACCENT_PRIMARY,"Primary");
UI_COLOR_CONFIG(GUI_COLOR_ACCENT_SECONDARY,"Secondary");
ImGui::Unindent();
ImGui::TreePop();
}
if (ImGui::RadioButton("Light##gcb1",settings.guiColorsBase==1)) {
settings.guiColorsBase=1;
applyUISettings(false);
settingsChanged=true;
}
ImGui::Unindent();
if (ImGui::SliderInt("Frame shading",&settings.guiColorsShading,0,100,"%d%%")) {
if (settings.guiColorsShading<0) settings.guiColorsShading=0;
if (settings.guiColorsShading>100) settings.guiColorsShading=100;
applyUISettings(false);
settingsChanged=true;
} else {
if (ImGui::TreeNode("Interface")) {
if (ImGui::SliderInt("Frame shading",&settings.guiColorsShading,0,100,"%d%%")) {
if (settings.guiColorsShading<0) settings.guiColorsShading=0;
if (settings.guiColorsShading>100) settings.guiColorsShading=100;
applyUISettings(false);
settingsChanged=true;
}
UI_COLOR_CONFIG(GUI_COLOR_BUTTON,"Button");
UI_COLOR_CONFIG(GUI_COLOR_BUTTON_HOVER,"Button (hovered)");
UI_COLOR_CONFIG(GUI_COLOR_BUTTON_ACTIVE,"Button (active)");
UI_COLOR_CONFIG(GUI_COLOR_TAB,"Tab");
UI_COLOR_CONFIG(GUI_COLOR_TAB_HOVER,"Tab (hovered)");
UI_COLOR_CONFIG(GUI_COLOR_TAB_ACTIVE,"Tab (active)");
UI_COLOR_CONFIG(GUI_COLOR_TAB_UNFOCUSED,"Tab (unfocused)");
UI_COLOR_CONFIG(GUI_COLOR_TAB_UNFOCUSED_ACTIVE,"Tab (unfocused and active)");
UI_COLOR_CONFIG(GUI_COLOR_IMGUI_HEADER,"ImGui header");
UI_COLOR_CONFIG(GUI_COLOR_IMGUI_HEADER_HOVER,"ImGui header (hovered)");
UI_COLOR_CONFIG(GUI_COLOR_IMGUI_HEADER_ACTIVE,"ImGui header (active)");
UI_COLOR_CONFIG(GUI_COLOR_RESIZE_GRIP,"Resize grip");
UI_COLOR_CONFIG(GUI_COLOR_RESIZE_GRIP_HOVER,"Resize grip (hovered)");
UI_COLOR_CONFIG(GUI_COLOR_RESIZE_GRIP_ACTIVE,"Resize grip (active)");
UI_COLOR_CONFIG(GUI_COLOR_WIDGET_BACKGROUND,"Widget background");
UI_COLOR_CONFIG(GUI_COLOR_WIDGET_BACKGROUND_HOVER,"Widget background (hovered)");
UI_COLOR_CONFIG(GUI_COLOR_WIDGET_BACKGROUND_ACTIVE,"Widget background (active)");
UI_COLOR_CONFIG(GUI_COLOR_SLIDER_GRAB,"Slider grab");
UI_COLOR_CONFIG(GUI_COLOR_SLIDER_GRAB_ACTIVE,"Slider grab (active)");
UI_COLOR_CONFIG(GUI_COLOR_TITLE_BACKGROUND_ACTIVE,"Title background (active)");
UI_COLOR_CONFIG(GUI_COLOR_CHECK_MARK,"Checkbox/radio button mark");
UI_COLOR_CONFIG(GUI_COLOR_TEXT_SELECTION,"Text selection");
UI_COLOR_CONFIG(GUI_COLOR_PLOT_LINES,"Line plot");
UI_COLOR_CONFIG(GUI_COLOR_PLOT_LINES_HOVER,"Line plot (hovered)");
UI_COLOR_CONFIG(GUI_COLOR_PLOT_HISTOGRAM,"Histogram plot");
UI_COLOR_CONFIG(GUI_COLOR_PLOT_HISTOGRAM_HOVER,"Histogram plot (hovered)");
UI_COLOR_CONFIG(GUI_COLOR_TABLE_ROW_EVEN,"Table row (even)");
UI_COLOR_CONFIG(GUI_COLOR_TABLE_ROW_ODD,"Table row (odd)");
ImGui::TreePop();
}
}
if (ImGui::TreeNode("Interface (other)")) {
UI_COLOR_CONFIG(GUI_COLOR_BACKGROUND,"Background");
UI_COLOR_CONFIG(GUI_COLOR_FRAME_BACKGROUND,"Window background");
UI_COLOR_CONFIG(GUI_COLOR_FRAME_BACKGROUND_CHILD,"Sub-window background");
@ -3197,8 +3255,7 @@ void FurnaceGUI::drawSettings() {
UI_COLOR_CONFIG(GUI_COLOR_MODAL_BACKDROP,"Modal backdrop");
UI_COLOR_CONFIG(GUI_COLOR_HEADER,"Header");
UI_COLOR_CONFIG(GUI_COLOR_TEXT,"Text");
UI_COLOR_CONFIG(GUI_COLOR_ACCENT_PRIMARY,"Primary");
UI_COLOR_CONFIG(GUI_COLOR_ACCENT_SECONDARY,"Secondary");
UI_COLOR_CONFIG(GUI_COLOR_TEXT_DISABLED,"Text (disabled)");
UI_COLOR_CONFIG(GUI_COLOR_TITLE_INACTIVE,"Title bar (inactive)");
UI_COLOR_CONFIG(GUI_COLOR_TITLE_COLLAPSED,"Title bar (collapsed)");
UI_COLOR_CONFIG(GUI_COLOR_MENU_BAR,"Menu bar");
@ -3219,11 +3276,11 @@ void FurnaceGUI::drawSettings() {
UI_COLOR_CONFIG(GUI_COLOR_DRAG_DROP_TARGET,"Drag and drop target");
UI_COLOR_CONFIG(GUI_COLOR_NAV_WIN_HIGHLIGHT,"Window switcher (highlight)");
UI_COLOR_CONFIG(GUI_COLOR_NAV_WIN_BACKDROP,"Window switcher backdrop");
ImGui::TreePop();
}
if (ImGui::TreeNode("Miscellaneous")) {
UI_COLOR_CONFIG(GUI_COLOR_TOGGLE_ON,"Toggle on");
UI_COLOR_CONFIG(GUI_COLOR_TOGGLE_OFF,"Toggle off");
UI_COLOR_CONFIG(GUI_COLOR_EDITING,"Editing");
UI_COLOR_CONFIG(GUI_COLOR_EDITING_CLONE,"Editing (will clone)");
UI_COLOR_CONFIG(GUI_COLOR_SONG_LOOP,"Song loop");
UI_COLOR_CONFIG(GUI_COLOR_PLAYBACK_STAT,"Playback status");
UI_COLOR_CONFIG(GUI_COLOR_DESTRUCTIVE,"Destructive hint");
UI_COLOR_CONFIG(GUI_COLOR_WARNING,"Warning hint");
@ -3284,6 +3341,7 @@ void FurnaceGUI::drawSettings() {
if (ImGui::TreeNode("Orders")) {
UI_COLOR_CONFIG(GUI_COLOR_ORDER_ROW_INDEX,"Order number");
UI_COLOR_CONFIG(GUI_COLOR_ORDER_ACTIVE,"Playing order background");
UI_COLOR_CONFIG(GUI_COLOR_SONG_LOOP,"Song loop");
UI_COLOR_CONFIG(GUI_COLOR_ORDER_SELECTED,"Selected order");
UI_COLOR_CONFIG(GUI_COLOR_ORDER_SIMILAR,"Similar patterns");
UI_COLOR_CONFIG(GUI_COLOR_ORDER_INACTIVE,"Inactive patterns");
@ -3396,6 +3454,8 @@ void FurnaceGUI::drawSettings() {
}
if (ImGui::TreeNode("Pattern")) {
UI_COLOR_CONFIG(GUI_COLOR_PATTERN_PLAY_HEAD,"Playhead");
UI_COLOR_CONFIG(GUI_COLOR_EDITING,"Editing");
UI_COLOR_CONFIG(GUI_COLOR_EDITING_CLONE,"Editing (will clone)");
UI_COLOR_CONFIG(GUI_COLOR_PATTERN_CURSOR,"Cursor");
UI_COLOR_CONFIG(GUI_COLOR_PATTERN_CURSOR_HOVER,"Cursor (hovered)");
UI_COLOR_CONFIG(GUI_COLOR_PATTERN_CURSOR_ACTIVE,"Cursor (clicked)");
@ -3819,6 +3879,7 @@ void FurnaceGUI::syncSettings() {
settings.fontAutoHint=e->getConfInt("fontAutoHint",1);
settings.fontAntiAlias=e->getConfInt("fontAntiAlias",1);
settings.selectAssetOnLoad=e->getConfInt("selectAssetOnLoad",1);
settings.basicColors=e->getConfInt("basicColors",1);
clampSetting(settings.mainFontSize,2,96);
clampSetting(settings.headFontSize,2,96);
@ -3985,6 +4046,7 @@ void FurnaceGUI::syncSettings() {
clampSetting(settings.fontAutoHint,0,2);
clampSetting(settings.fontAntiAlias,0,1);
clampSetting(settings.selectAssetOnLoad,0,1);
clampSetting(settings.basicColors,0,1);
if (settings.exportLoops<0.0) settings.exportLoops=0.0;
if (settings.exportFadeOut<0.0) settings.exportFadeOut=0.0;
@ -4268,6 +4330,7 @@ void FurnaceGUI::commitSettings() {
e->setConf("fontAutoHint",settings.fontAutoHint);
e->setConf("fontAntiAlias",settings.fontAntiAlias);
e->setConf("selectAssetOnLoad",settings.selectAssetOnLoad);
e->setConf("basicColors",settings.basicColors);
// colors
for (int i=0; i<GUI_COLOR_MAX; i++) {
@ -4359,12 +4422,10 @@ bool FurnaceGUI::importColors(String path) {
if (keyOrValue) {
// unoptimal
const char* cs=key.c_str();
bool found=false;
for (int i=0; i<GUI_COLOR_MAX; i++) {
try {
if (strcmp(cs,guiColors[i].name)==0) {
uiColors[i]=ImGui::ColorConvertU32ToFloat4(std::stoi(value));
found=true;
break;
}
} catch (std::out_of_range& e) {
@ -4373,7 +4434,6 @@ bool FurnaceGUI::importColors(String path) {
break;
}
}
if (!found) logW("line invalid: %s",line);
}
}
fclose(f);
@ -4387,6 +4447,7 @@ bool FurnaceGUI::exportColors(String path) {
logW("error while opening color file for export: %s",strerror(errno));
return false;
}
fprintf(f,"configVersion=%d\n",DIV_ENGINE_VERSION);
for (int i=0; i<GUI_COLOR_MAX; i++) {
if (fprintf(f,"%s=%d\n",guiColors[i].name,ImGui::ColorConvertFloat4ToU32(uiColors[i]))<0) {
logW("error while exporting colors: %s",strerror(errno));
@ -4848,6 +4909,7 @@ void FurnaceGUI::applyUISettings(bool updateFonts) {
secondaryHoverActual=secondaryHover;
// TODO: improve
if (mobileUI) { // disable all hovered colors
primaryHover=primary;
secondaryHover=secondary;
@ -4877,31 +4939,63 @@ void FurnaceGUI::applyUISettings(bool updateFonts) {
sty.Colors[ImGuiCol_NavWindowingHighlight]=uiColors[GUI_COLOR_NAV_WIN_HIGHLIGHT];
sty.Colors[ImGuiCol_NavWindowingDimBg]=uiColors[GUI_COLOR_NAV_WIN_BACKDROP];
sty.Colors[ImGuiCol_Text]=uiColors[GUI_COLOR_TEXT];
sty.Colors[ImGuiCol_TextDisabled]=uiColors[GUI_COLOR_TEXT_DISABLED];
sty.Colors[ImGuiCol_Button]=primary;
sty.Colors[ImGuiCol_ButtonHovered]=primaryHover;
sty.Colors[ImGuiCol_ButtonActive]=primaryActive;
sty.Colors[ImGuiCol_Tab]=primary;
sty.Colors[ImGuiCol_TabHovered]=secondaryHover;
sty.Colors[ImGuiCol_TabActive]=secondarySemiActive;
sty.Colors[ImGuiCol_TabUnfocused]=primary;
sty.Colors[ImGuiCol_TabUnfocusedActive]=primaryHover;
sty.Colors[ImGuiCol_Header]=secondary;
sty.Colors[ImGuiCol_HeaderHovered]=secondaryHover;
sty.Colors[ImGuiCol_HeaderActive]=secondaryActive;
sty.Colors[ImGuiCol_ResizeGrip]=secondary;
sty.Colors[ImGuiCol_ResizeGripHovered]=secondaryHover;
sty.Colors[ImGuiCol_ResizeGripActive]=secondaryActive;
sty.Colors[ImGuiCol_FrameBg]=secondary;
sty.Colors[ImGuiCol_FrameBgHovered]=secondaryHover;
sty.Colors[ImGuiCol_FrameBgActive]=secondaryActive;
sty.Colors[ImGuiCol_SliderGrab]=primaryActive;
sty.Colors[ImGuiCol_SliderGrabActive]=primaryActive;
sty.Colors[ImGuiCol_TitleBgActive]=primary;
sty.Colors[ImGuiCol_CheckMark]=primaryActive;
sty.Colors[ImGuiCol_TextSelectedBg]=secondaryHoverActual;
sty.Colors[ImGuiCol_PlotHistogram]=uiColors[GUI_COLOR_MACRO_OTHER];
sty.Colors[ImGuiCol_PlotHistogramHovered]=uiColors[GUI_COLOR_MACRO_OTHER];
if (settings.basicColors) {
sty.Colors[ImGuiCol_Button]=primary;
sty.Colors[ImGuiCol_ButtonHovered]=primaryHover;
sty.Colors[ImGuiCol_ButtonActive]=primaryActive;
sty.Colors[ImGuiCol_Tab]=primary;
sty.Colors[ImGuiCol_TabHovered]=secondaryHover;
sty.Colors[ImGuiCol_TabActive]=secondarySemiActive;
sty.Colors[ImGuiCol_TabUnfocused]=primary;
sty.Colors[ImGuiCol_TabUnfocusedActive]=primaryHover;
sty.Colors[ImGuiCol_Header]=secondary;
sty.Colors[ImGuiCol_HeaderHovered]=secondaryHover;
sty.Colors[ImGuiCol_HeaderActive]=secondaryActive;
sty.Colors[ImGuiCol_ResizeGrip]=secondary;
sty.Colors[ImGuiCol_ResizeGripHovered]=secondaryHover;
sty.Colors[ImGuiCol_ResizeGripActive]=secondaryActive;
sty.Colors[ImGuiCol_FrameBg]=secondary;
sty.Colors[ImGuiCol_FrameBgHovered]=secondaryHover;
sty.Colors[ImGuiCol_FrameBgActive]=secondaryActive;
sty.Colors[ImGuiCol_SliderGrab]=primaryActive;
sty.Colors[ImGuiCol_SliderGrabActive]=primaryActive;
sty.Colors[ImGuiCol_TitleBgActive]=primary;
sty.Colors[ImGuiCol_CheckMark]=primaryActive;
sty.Colors[ImGuiCol_TextSelectedBg]=secondaryHoverActual;
sty.Colors[ImGuiCol_PlotHistogram]=uiColors[GUI_COLOR_MACRO_OTHER];
sty.Colors[ImGuiCol_PlotHistogramHovered]=uiColors[GUI_COLOR_MACRO_OTHER];
} else {
sty.Colors[ImGuiCol_Button]=uiColors[GUI_COLOR_BUTTON];
sty.Colors[ImGuiCol_ButtonHovered]=uiColors[GUI_COLOR_BUTTON_HOVER];
sty.Colors[ImGuiCol_ButtonActive]=uiColors[GUI_COLOR_BUTTON_ACTIVE];
sty.Colors[ImGuiCol_Tab]=uiColors[GUI_COLOR_TAB];
sty.Colors[ImGuiCol_TabHovered]=uiColors[GUI_COLOR_TAB_HOVER];
sty.Colors[ImGuiCol_TabActive]=uiColors[GUI_COLOR_TAB_ACTIVE];
sty.Colors[ImGuiCol_TabUnfocused]=uiColors[GUI_COLOR_TAB_UNFOCUSED];
sty.Colors[ImGuiCol_TabUnfocusedActive]=uiColors[GUI_COLOR_TAB_UNFOCUSED_ACTIVE];
sty.Colors[ImGuiCol_Header]=uiColors[GUI_COLOR_IMGUI_HEADER];
sty.Colors[ImGuiCol_HeaderHovered]=uiColors[GUI_COLOR_IMGUI_HEADER_HOVER];
sty.Colors[ImGuiCol_HeaderActive]=uiColors[GUI_COLOR_IMGUI_HEADER_ACTIVE];
sty.Colors[ImGuiCol_ResizeGrip]=uiColors[GUI_COLOR_RESIZE_GRIP];
sty.Colors[ImGuiCol_ResizeGripHovered]=uiColors[GUI_COLOR_RESIZE_GRIP_HOVER];
sty.Colors[ImGuiCol_ResizeGripActive]=uiColors[GUI_COLOR_RESIZE_GRIP_ACTIVE];
sty.Colors[ImGuiCol_FrameBg]=uiColors[GUI_COLOR_WIDGET_BACKGROUND];
sty.Colors[ImGuiCol_FrameBgHovered]=uiColors[GUI_COLOR_WIDGET_BACKGROUND_HOVER];
sty.Colors[ImGuiCol_FrameBgActive]=uiColors[GUI_COLOR_WIDGET_BACKGROUND_ACTIVE];
sty.Colors[ImGuiCol_SliderGrab]=uiColors[GUI_COLOR_SLIDER_GRAB];
sty.Colors[ImGuiCol_SliderGrabActive]=uiColors[GUI_COLOR_SLIDER_GRAB_ACTIVE];
sty.Colors[ImGuiCol_TitleBgActive]=uiColors[GUI_COLOR_TITLE_BACKGROUND_ACTIVE];
sty.Colors[ImGuiCol_CheckMark]=uiColors[GUI_COLOR_CHECK_MARK];
sty.Colors[ImGuiCol_TextSelectedBg]=uiColors[GUI_COLOR_TEXT_SELECTION];
sty.Colors[ImGuiCol_PlotLines]=uiColors[GUI_COLOR_PLOT_LINES];
sty.Colors[ImGuiCol_PlotLinesHovered]=uiColors[GUI_COLOR_PLOT_LINES_HOVER];
sty.Colors[ImGuiCol_PlotHistogram]=uiColors[GUI_COLOR_PLOT_HISTOGRAM];
sty.Colors[ImGuiCol_PlotHistogramHovered]=uiColors[GUI_COLOR_PLOT_HISTOGRAM_HOVER];
sty.Colors[ImGuiCol_TableRowBg]=uiColors[GUI_COLOR_TABLE_ROW_EVEN];
sty.Colors[ImGuiCol_TableRowBgAlt]=uiColors[GUI_COLOR_TABLE_ROW_ODD];
}
sty.Colors[ImGuiCol_Border]=uiColors[GUI_COLOR_BORDER];
sty.Colors[ImGuiCol_BorderShadow]=uiColors[GUI_COLOR_BORDER_SHADOW];