| 271 | }; |
| 272 | |
| 273 | static void DoraSetupTheme(Color color) { |
| 274 | auto themeColor = color.toVec4(); |
| 275 | // Dora theme colors, 3 intensities |
| 276 | auto HI = [&themeColor](float v) { |
| 277 | return ImVec4( |
| 278 | themeColor.x * 0.9f, |
| 279 | themeColor.y * 0.9f, |
| 280 | themeColor.z * 0.9f, |
| 281 | themeColor.w * v); |
| 282 | }; |
| 283 | auto MED = [&themeColor](float v) { |
| 284 | return ImVec4( |
| 285 | themeColor.x * 0.6f, |
| 286 | themeColor.y * 0.6f, |
| 287 | themeColor.z * 0.6f, |
| 288 | themeColor.w * v); |
| 289 | }; |
| 290 | auto LOW = [](float v) { |
| 291 | return ImVec4(0.204f, 0.204f, 0.204f, v); |
| 292 | }; |
| 293 | // backgrounds |
| 294 | auto BG = [](float v) { |
| 295 | return ImVec4(0.102f, 0.102f, 0.102f, v); |
| 296 | }; |
| 297 | // text |
| 298 | auto TEXT = [](float v) { |
| 299 | return ImVec4(0.860f, 0.860f, 0.860f, v); |
| 300 | }; |
| 301 | // button |
| 302 | auto BUTTON = ImVec4(0.77f, 0.77f, 0.77f, 0.14f); |
| 303 | auto TRANSPARENT = ImVec4(0.00f, 0.00f, 0.00f, 0.00f); |
| 304 | |
| 305 | auto& colors = ImGui::GetStyle().Colors; |
| 306 | colors[ImGuiCol_Text] = TEXT(1.00f); |
| 307 | colors[ImGuiCol_TextDisabled] = TEXT(0.28f); |
| 308 | colors[ImGuiCol_WindowBg] = BG(1.00f); |
| 309 | colors[ImGuiCol_ChildBg] = TRANSPARENT; |
| 310 | colors[ImGuiCol_PopupBg] = BG(0.9f); |
| 311 | colors[ImGuiCol_Border] = TRANSPARENT; |
| 312 | colors[ImGuiCol_BorderShadow] = TRANSPARENT; |
| 313 | colors[ImGuiCol_FrameBg] = BUTTON; |
| 314 | colors[ImGuiCol_FrameBgHovered] = MED(0.78f); |
| 315 | colors[ImGuiCol_FrameBgActive] = MED(1.00f); |
| 316 | colors[ImGuiCol_TitleBg] = LOW(1.00f); |
| 317 | colors[ImGuiCol_TitleBgActive] = MED(1.00f); |
| 318 | colors[ImGuiCol_TitleBgCollapsed] = BG(0.75f); |
| 319 | colors[ImGuiCol_MenuBarBg] = BG(0.47f); |
| 320 | colors[ImGuiCol_ScrollbarBg] = TRANSPARENT; |
| 321 | colors[ImGuiCol_ScrollbarGrab] = LOW(0.5f); |
| 322 | colors[ImGuiCol_ScrollbarGrabHovered] = MED(0.78f); |
| 323 | colors[ImGuiCol_ScrollbarGrabActive] = MED(1.00f); |
| 324 | colors[ImGuiCol_CheckMark] = HI(1.00f); |
| 325 | colors[ImGuiCol_SliderGrab] = BUTTON; |
| 326 | colors[ImGuiCol_SliderGrabActive] = HI(1.00f); |
| 327 | colors[ImGuiCol_Button] = BUTTON; |
| 328 | colors[ImGuiCol_ButtonHovered] = MED(0.86f); |
| 329 | colors[ImGuiCol_ButtonActive] = MED(1.00f); |
| 330 | colors[ImGuiCol_Header] = BUTTON; |