|
@@ -6,27 +6,30 @@ namespace ui { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void init() { |
|
|
void init() { |
|
|
setTheme(nvgRGB(0x33, 0x33, 0x33), nvgRGB(0xf0, 0xf0, 0xf0)); |
|
|
|
|
|
|
|
|
// Default |
|
|
|
|
|
setTheme(nvgRGB(0x20, 0x20, 0x20), nvgRGB(0xf0, 0xf0, 0xf0)); |
|
|
|
|
|
// Dark |
|
|
|
|
|
// setTheme(nvgRGB(0x00, 0x00, 0x00), nvgRGB(0xff, 0xff, 0xff)); |
|
|
|
|
|
// Light |
|
|
|
|
|
// setTheme(nvgRGB(0xe8, 0xe8, 0xe8), nvgRGB(0x00, 0x00, 0x00)); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
void destroy() { |
|
|
void destroy() { |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
void setTheme(NVGcolor bg, NVGcolor fg) { |
|
|
void setTheme(NVGcolor bg, NVGcolor fg) { |
|
|
// Assume dark background and light foreground |
|
|
|
|
|
|
|
|
|
|
|
BNDwidgetTheme w; |
|
|
BNDwidgetTheme w; |
|
|
w.outlineColor = bg; |
|
|
|
|
|
|
|
|
w.outlineColor = color::lerp(bg, fg, 0.1); |
|
|
w.itemColor = fg; |
|
|
w.itemColor = fg; |
|
|
w.innerColor = bg; |
|
|
|
|
|
w.innerSelectedColor = color::plus(bg, nvgRGB(0x30, 0x30, 0x30)); |
|
|
|
|
|
|
|
|
w.innerColor = color::lerp(bg, fg, 0.1); |
|
|
|
|
|
w.innerSelectedColor = color::lerp(bg, fg, 0.2); |
|
|
w.textColor = fg; |
|
|
w.textColor = fg; |
|
|
w.textSelectedColor = fg; |
|
|
w.textSelectedColor = fg; |
|
|
w.shadeTop = 0; |
|
|
w.shadeTop = 0; |
|
|
w.shadeDown = 0; |
|
|
w.shadeDown = 0; |
|
|
|
|
|
|
|
|
BNDtheme t; |
|
|
BNDtheme t; |
|
|
t.backgroundColor = color::plus(bg, nvgRGB(0x30, 0x30, 0x30)); |
|
|
|
|
|
|
|
|
t.backgroundColor = bg; |
|
|
t.regularTheme = w; |
|
|
t.regularTheme = w; |
|
|
t.toolTheme = w; |
|
|
t.toolTheme = w; |
|
|
t.radioTheme = w; |
|
|
t.radioTheme = w; |
|
@@ -40,22 +43,33 @@ void setTheme(NVGcolor bg, NVGcolor fg) { |
|
|
t.menuTheme = w; |
|
|
t.menuTheme = w; |
|
|
t.menuItemTheme = w; |
|
|
t.menuItemTheme = w; |
|
|
|
|
|
|
|
|
t.sliderTheme.itemColor = bg; |
|
|
|
|
|
t.sliderTheme.innerColor = color::plus(bg, nvgRGB(0x50, 0x50, 0x50)); |
|
|
|
|
|
t.sliderTheme.innerSelectedColor = color::plus(bg, nvgRGB(0x60, 0x60, 0x60)); |
|
|
|
|
|
|
|
|
// Slider filled background |
|
|
|
|
|
t.sliderTheme.itemColor = color::lerp(bg, fg, 0.1); |
|
|
|
|
|
// Slider background |
|
|
|
|
|
t.sliderTheme.innerColor = color::lerp(bg, fg, 0.4); |
|
|
|
|
|
t.sliderTheme.innerSelectedColor = color::lerp(bg, fg, 0.6); |
|
|
|
|
|
|
|
|
t.textFieldTheme = t.sliderTheme; |
|
|
|
|
|
t.textFieldTheme.textColor = color::minus(bg, nvgRGB(0x20, 0x20, 0x20)); |
|
|
|
|
|
|
|
|
// Text field background |
|
|
|
|
|
t.textFieldTheme.innerColor = color::lerp(bg, fg, 0.7); |
|
|
|
|
|
t.textFieldTheme.innerSelectedColor = color::lerp(bg, fg, 0.8); |
|
|
|
|
|
// Text |
|
|
|
|
|
t.textFieldTheme.textColor = color::lerp(bg, fg, -0.2); |
|
|
t.textFieldTheme.textSelectedColor = t.textFieldTheme.textColor; |
|
|
t.textFieldTheme.textSelectedColor = t.textFieldTheme.textColor; |
|
|
t.textFieldTheme.itemColor = color::plus(bg, nvgRGB(0x30, 0x30, 0x30)); |
|
|
|
|
|
|
|
|
// Placeholder text and highlight background |
|
|
|
|
|
t.textFieldTheme.itemColor = color::lerp(bg, fg, 0.3); |
|
|
|
|
|
|
|
|
t.scrollBarTheme.itemColor = color::plus(bg, nvgRGB(0x50, 0x50, 0x50)); |
|
|
|
|
|
t.scrollBarTheme.innerColor = bg; |
|
|
|
|
|
|
|
|
t.scrollBarTheme.itemColor = color::lerp(bg, fg, 0.4); |
|
|
|
|
|
t.scrollBarTheme.innerColor = color::lerp(bg, fg, 0.1); |
|
|
|
|
|
|
|
|
t.menuTheme.innerColor = color::minus(bg, nvgRGB(0x10, 0x10, 0x10)); |
|
|
|
|
|
t.menuTheme.textColor = color::minus(fg, nvgRGB(0x50, 0x50, 0x50)); |
|
|
|
|
|
|
|
|
// Menu background |
|
|
|
|
|
t.menuTheme.innerColor = bg; |
|
|
|
|
|
// Menu label text |
|
|
|
|
|
t.menuTheme.textColor = color::lerp(bg, fg, 0.6); |
|
|
t.menuTheme.textSelectedColor = t.menuTheme.textColor; |
|
|
t.menuTheme.textSelectedColor = t.menuTheme.textColor; |
|
|
|
|
|
|
|
|
|
|
|
// Tooltip background |
|
|
|
|
|
t.tooltipTheme.innerColor = bg; |
|
|
|
|
|
|
|
|
bndSetTheme(t); |
|
|
bndSetTheme(t); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|