diff --git a/example_config/palettes/cursed-light.toml b/example_config/palettes/cursed-light.toml index 9bfed7e..893ae82 100644 --- a/example_config/palettes/cursed-light.toml +++ b/example_config/palettes/cursed-light.toml @@ -1,67 +1,54 @@ [colors] -# General -background = "#f5f5f5FF" -on_background = "#3d3d2fFF" - -surface = "#e8e8e8FF" -on_surface = "#3d3d2fFF" - -surface_variant = "#d0d0c8FF" -on_surface_variant = "#3d3d2fFF" - -border_focused = "#c9a305FF" -border = "#d0d0c8FF" - -foreground = "#3d3d2fFF" - -cursor = "#c9a305FF" -accent = "#b44242FF" - -# Terminal -base00 = "#f5f5f5FF" -base01 = "#b44242FF" -base02 = "#95a328FF" -base03 = "#c9a305FF" -base04 = "#60928fFF" -base05 = "#7c435aFF" -base06 = "#a48b4aFF" -base07 = "#3d3d2fFF" -base08 = "#c0c0b8FF" -base09 = "#dc7671FF" -base0A = "#d4d430FF" -base0B = "#9e9052FF" -base0C = "#76c39bFF" -base0D = "#86596cFF" -base0E = "#b89a1fFF" -base0F = "#4f4f48FF" - -# Semantic -success = "#95a328FF" -info = "#60928fFF" -warning = "#c9a305FF" -error = "#b44242FF" - -on_success = "#f5f5f5FF" -on_info = "#f5f5f5FF" -on_warning = "#f5f5f5FF" -on_error = "#f5f5f5FF" - -# Code editor -editor_background = "#f5f5f5FF" -editor_command = "#b89a1fFF" -editor_comment = "#a0a098FF" -editor_disabled = "#c0c0b8FF" -editor_emphasis = "#dc7671FF" -editor_error = "#b44242FF" -editor_inactive = "#a0a098FF" -editor_line_number = "#86596cFF" -editor_link = "#60928fFF" -editor_main = "#3d3d2fFF" -editor_selected = "#d0d0c8FF" -editor_selection_inactive = "#e0e0d8FF" -editor_string = "#5fa37bFF" -editor_success = "#95a328FF" -editor_warning = "#c9a305FF" +accent = '#95A328FF' +background = '#F5F5F5FF' +base00 = '#F5F5F5FF' +base01 = '#B44242FF' +base02 = '#95A328FF' +base03 = '#C9A305FF' +base04 = '#60928FFF' +base05 = '#7C435AFF' +base06 = '#A48B4AFF' +base07 = '#3D3D2FFF' +base08 = '#C0C0B8FF' +base09 = '#DC7671FF' +base0A = '#D4D430FF' +base0B = '#9E9052FF' +base0C = '#76C39BFF' +base0D = '#86596CFF' +base0E = '#B89A1FFF' +base0F = '#4F4F48FF' +border = '#D0D0C8FF' +border_focused = '#C9A305FF' +cursor = '#C9A305FF' +editor_background = '#F5F5F5FF' +editor_command = '#B89A1FFF' +editor_comment = '#A0A098FF' +editor_disabled = '#C0C0B8FF' +editor_emphasis = '#DC7671FF' +editor_error = '#B44242FF' +editor_inactive = '#A0A098FF' +editor_line_number = '#86596CFF' +editor_link = '#60928FFF' +editor_main = '#3D3D2FFF' +editor_selected = '#D0D0C8FF' +editor_selection_inactive = '#E0E0D8FF' +editor_string = '#5FA37BFF' +editor_success = '#95A328FF' +editor_warning = '#C9A305FF' +error = '#B44242FF' +foreground = '#3D3D2FFF' +info = '#60928FFF' +on_background = '#3D3D2FFF' +on_error = '#F5F5F5FF' +on_info = '#F5F5F5FF' +on_success = '#F5F5F5FF' +on_surface = '#3D3D2FFF' +on_surface_variant = '#CCCCCCFF' +on_warning = '#F5F5F5FF' +success = '#95A328FF' +surface = '#E8E8E8FF' +surface_variant = '#D0D0C8FF' +warning = '#C9A305FF' [general] name = 'cursed-light' \ No newline at end of file diff --git a/example_config/palettes/cursed.toml b/example_config/palettes/cursed.toml index 5930bbf..3c9bc06 100644 --- a/example_config/palettes/cursed.toml +++ b/example_config/palettes/cursed.toml @@ -1,5 +1,5 @@ [colors] -accent = '#B44242FF' +accent = '#95A328FF' background = '#151515FF' base00 = '#151515FF' base01 = '#B44242FF' @@ -22,7 +22,7 @@ border_focused = '#E1C135FF' cursor = '#E1C135FF' editor_background = '#151515FF' editor_command = '#CEB34FFF' -editor_comment = '#3F3639FF' +editor_comment = '#7A7A7AFF' editor_disabled = '#3F3639FF' editor_emphasis = '#DC7671FF' editor_error = '#B44242FF' @@ -43,7 +43,7 @@ on_error = '#151515FF' on_info = '#151515FF' on_success = '#151515FF' on_surface = '#C2C2B0FF' -on_surface_variant = '#C2C2B0FF' +on_surface_variant = '#CCCCCCFF' on_warning = '#151515FF' success = '#95A328FF' surface = '#1C1C1CFF' diff --git a/example_config/palettes/nord.toml b/example_config/palettes/nord.toml new file mode 100644 index 0000000..cbc5262 --- /dev/null +++ b/example_config/palettes/nord.toml @@ -0,0 +1,54 @@ +[colors] +accent = '#5E81ACFF' +background = '#2E3440FF' +base00 = '#2E3440FF' +base01 = '#BF616AFF' +base02 = '#A3BE8CFF' +base03 = '#EBCB8BFF' +base04 = '#81A1C1FF' +base05 = '#B48EADFF' +base06 = '#88C0D0FF' +base07 = '#E5E9F0FF' +base08 = '#4C566AFF' +base09 = '#D08770FF' +base0A = '#EBCB8BFF' +base0B = '#A3BE8CFF' +base0C = '#8FBCBBFF' +base0D = '#5E81ACFF' +base0E = '#B48EADFF' +base0F = '#ECEFF4FF' +border = '#4C566AFF' +border_focused = '#88C0D0FF' +cursor = '#D8DEE9FF' +editor_background = '#2E3440FF' +editor_command = '#81A1C1FF' +editor_comment = '#616E88FF' +editor_disabled = '#4C566AFF' +editor_emphasis = '#B48EADFF' +editor_error = '#BF616AFF' +editor_inactive = '#616E88FF' +editor_line_number = '#4C566AFF' +editor_link = '#88C0D0FF' +editor_main = '#D8DEE9FF' +editor_selected = '#434C5EFF' +editor_selection_inactive = '#3B4252FF' +editor_string = '#A3BE8CFF' +editor_success = '#A3BE8CFF' +editor_warning = '#EBCB8BFF' +error = '#BF616AFF' +foreground = '#D8DEE9FF' +info = '#5E81ACFF' +on_background = '#D8DEE9FF' +on_error = '#2E3440FF' +on_info = '#2E3440FF' +on_success = '#2E3440FF' +on_surface = '#ECEFF4FF' +on_surface_variant = '#ECEFF4FF' +on_warning = '#2E3440FF' +success = '#A3BE8CFF' +surface = '#3B4252FF' +surface_variant = '#434C5EFF' +warning = '#EBCB8BFF' + +[general] +name = 'nord' \ No newline at end of file diff --git a/src/core/palette/color.cpp b/src/core/palette/color.cpp index b063e61..81190ca 100644 --- a/src/core/palette/color.cpp +++ b/src/core/palette/color.cpp @@ -3,7 +3,6 @@ #include #include #include -#include namespace clrsync::core { diff --git a/src/core/version.hpp b/src/core/version.hpp index 94e1563..403049a 100644 --- a/src/core/version.hpp +++ b/src/core/version.hpp @@ -6,7 +6,7 @@ namespace clrsync::core { -const std::string GIT_SEMVER = "0.1.4+git.g92b06a9"; +const std::string GIT_SEMVER = "0.1.5+git.gb98761a"; const std::string version_string(); } // namespace clrsync::core diff --git a/src/gui/CMakeLists.txt b/src/gui/CMakeLists.txt index 59b52a3..7ee2bec 100644 --- a/src/gui/CMakeLists.txt +++ b/src/gui/CMakeLists.txt @@ -35,6 +35,7 @@ if(WIN32) comdlg32 shlwapi ) + set_target_properties(clrsync_gui PROPERTIES WIN32_EXECUTABLE TRUE) elseif(APPLE) target_link_libraries(clrsync_gui PRIVATE clrsync_core diff --git a/src/gui/color_table_renderer.cpp b/src/gui/color_table_renderer.cpp index 009f7a6..86f1e67 100644 --- a/src/gui/color_table_renderer.cpp +++ b/src/gui/color_table_renderer.cpp @@ -131,16 +131,6 @@ void color_table_renderer::render(const clrsync::core::palette& current, ImGui::SetTooltip("Clear filter"); } - ImGui::SameLine(); - ImGui::TextDisabled("(?)"); - if (ImGui::IsItemHovered()) - { - ImGui::BeginTooltip(); - ImGui::TextUnformatted("Click on a color name to copy its template variable"); - ImGui::TextUnformatted("Example: clicking 'background' copies {background.hex}"); - ImGui::EndTooltip(); - } - ImGui::PopStyleVar(); ImGui::Spacing(); diff --git a/src/gui/imgui_helpers.cpp b/src/gui/imgui_helpers.cpp index b11d767..1fe6123 100644 --- a/src/gui/imgui_helpers.cpp +++ b/src/gui/imgui_helpers.cpp @@ -133,8 +133,8 @@ void setup_main_dockspace(bool& first_time) } ImGui::DockBuilderDockWindow("Color Schemes", right); - ImGui::DockBuilderDockWindow("Templates", center); ImGui::DockBuilderDockWindow("Color Preview", center); + ImGui::DockBuilderDockWindow("Templates", center); ImGui::DockBuilderFinish(dockspace_id); } diff --git a/src/gui/main.cpp b/src/gui/main.cpp index a5ec315..2517f1c 100644 --- a/src/gui/main.cpp +++ b/src/gui/main.cpp @@ -77,9 +77,9 @@ int main(int, char**) render_menu_bar(&aboutWindow, &settingsWindow); setup_main_dockspace(first_time); + templateEditor.render(); colorEditor.render_controls_and_colors(); colorEditor.render_preview(); - templateEditor.render(); aboutWindow.render(colorEditor.controller().current_palette()); settingsWindow.render(); diff --git a/src/gui/preview_renderer.cpp b/src/gui/preview_renderer.cpp index aaeaac4..c583a8c 100644 --- a/src/gui/preview_renderer.cpp +++ b/src/gui/preview_renderer.cpp @@ -2,6 +2,7 @@ #include "theme_applier.hpp" #include "imgui.h" #include +#include preview_renderer::preview_renderer() { @@ -70,6 +71,16 @@ int main() m_editor.SetShowWhitespaces(false); } +static ImVec4 hex_to_imvec4(uint32_t hex) +{ + return { + ((hex >> 24) & 0xFF) / 255.0f, + ((hex >> 16) & 0xFF) / 255.0f, + ((hex >> 8) & 0xFF) / 255.0f, + (hex & 0xFF) / 255.0f + }; +} + void preview_renderer::apply_palette(const clrsync::core::palette& palette) { theme_applier::apply_to_editor(m_editor, palette); @@ -78,9 +89,11 @@ void preview_renderer::apply_palette(const clrsync::core::palette& palette) void preview_renderer::render_code_preview() { const float avail_height = ImGui::GetContentRegionAvail().y; - const float code_preview_height = std::max(250.0f, avail_height * 0.55f); + const float code_preview_height = std::max(250.0f, avail_height * 0.50f); - ImGui::Text("Code Editor:"); + ImGui::Text("Code Editor Preview:"); + ImGui::SameLine(); + ImGui::TextDisabled("(editor_* colors)"); m_editor.Render("##CodeEditor", ImVec2(0, code_preview_height), true); } @@ -88,45 +101,133 @@ void preview_renderer::render_terminal_preview(const clrsync::core::palette& cur { auto get_color = [&](const std::string &key) -> ImVec4 { const auto &col = current.get_color(key); - const uint32_t hex = col.hex(); - return {((hex >> 24) & 0xFF) / 255.0f, ((hex >> 16) & 0xFF) / 255.0f, - ((hex >> 8) & 0xFF) / 255.0f, ((hex) & 0xFF) / 255.0f}; + return hex_to_imvec4(col.hex()); }; - - const ImVec4 editor_bg = get_color("editor_background"); - const ImVec4 fg = get_color("foreground"); - const ImVec4 accent = get_color("accent"); - const ImVec4 border = get_color("border"); - const ImVec4 error = get_color("error"); - const ImVec4 warning = get_color("warning"); - const ImVec4 success = get_color("success"); - const ImVec4 info = get_color("info"); + const ImVec4 bg = get_color("base00"); + const ImVec4 fg = get_color("base07"); + const ImVec4 cursor_col = get_color("cursor"); + const ImVec4 border_col = get_color("border"); + + const ImVec4 black = get_color("base00"); + const ImVec4 red = get_color("base01"); + const ImVec4 green = get_color("base02"); + const ImVec4 yellow = get_color("base03"); + const ImVec4 blue = get_color("base04"); + const ImVec4 magenta = get_color("base05"); + const ImVec4 cyan = get_color("base06"); + const ImVec4 white = get_color("base07"); + + const ImVec4 bright_black = get_color("base08"); + const ImVec4 bright_red = get_color("base09"); + const ImVec4 bright_green = get_color("base0A"); + const ImVec4 bright_yellow = get_color("base0B"); + const ImVec4 bright_blue = get_color("base0C"); + const ImVec4 bright_magenta = get_color("base0D"); + const ImVec4 bright_cyan = get_color("base0E"); + const ImVec4 bright_white = get_color("base0F"); ImGui::Spacing(); ImGui::Text("Terminal Preview:"); + ImGui::SameLine(); + ImGui::TextDisabled("(base00-base0F colors)"); + + ImGui::PushStyleColor(ImGuiCol_ChildBg, bg); + ImGui::PushStyleColor(ImGuiCol_Border, border_col); - ImGui::PushStyleColor(ImGuiCol_ChildBg, editor_bg); - ImGui::BeginChild("TerminalPreview", ImVec2(0, 0), true); - ImGui::PushStyleColor(ImGuiCol_Border, border); + const float terminal_height = std::max(200.0f, ImGui::GetContentRegionAvail().y - 10.0f); + ImGui::BeginChild("TerminalPreview", ImVec2(0, terminal_height), true); - struct term_line - { - const char *text{}; - ImVec4 col; - }; - term_line term_lines[] = { - {"$ ls -la", fg}, - {"drwxr-xr-x 5 user group 4096 Dec 2 10:30 .", accent}, - {"Build successful", success}, - {"Error: file not found", error}, - {"Warning: low disk space", warning}, - {"Info: update available", info}, - }; + ImGui::TextColored(green, "user@host"); + ImGui::SameLine(0, 0); + ImGui::TextColored(fg, ":"); + ImGui::SameLine(0, 0); + ImGui::TextColored(blue, "~/projects"); + ImGui::SameLine(0, 0); + ImGui::TextColored(fg, "$ "); + ImGui::SameLine(0, 0); + ImGui::TextColored(fg, "ls -la"); - for (auto &[text, col] : term_lines) + ImGui::TextColored(fg, "total 48"); + ImGui::TextColored(blue, "drwxr-xr-x"); + ImGui::SameLine(); + ImGui::TextColored(fg, " 5 user group 4096 Dec 2 10:30 "); + ImGui::SameLine(0, 0); + ImGui::TextColored(blue, "."); + + ImGui::TextColored(blue, "drwxr-xr-x"); + ImGui::SameLine(); + ImGui::TextColored(fg, " 3 user group 4096 Dec 1 09:15 "); + ImGui::SameLine(0, 0); + ImGui::TextColored(blue, ".."); + + ImGui::TextColored(fg, "-rw-r--r--"); + ImGui::SameLine(); + ImGui::TextColored(fg, " 1 user group 1234 Dec 2 10:30 "); + ImGui::SameLine(0, 0); + ImGui::TextColored(fg, "README.md"); + + ImGui::TextColored(fg, "-rwxr-xr-x"); + ImGui::SameLine(); + ImGui::TextColored(fg, " 1 user group 8192 Dec 2 10:28 "); + ImGui::SameLine(0, 0); + ImGui::TextColored(green, "build.sh"); + + ImGui::TextColored(cyan, "lrwxrwxrwx"); + ImGui::SameLine(); + ImGui::TextColored(fg, " 1 user group 24 Dec 1 15:00 "); + ImGui::SameLine(0, 0); + ImGui::TextColored(cyan, "config -> ~/.config/app"); + + ImGui::Spacing(); + + ImGui::TextColored(green, "user@host"); + ImGui::SameLine(0, 0); + ImGui::TextColored(fg, ":"); + ImGui::SameLine(0, 0); + ImGui::TextColored(blue, "~/projects"); + ImGui::SameLine(0, 0); + ImGui::TextColored(fg, "$ "); + ImGui::SameLine(0, 0); + ImGui::TextColored(fg, "git status"); + + ImGui::TextColored(fg, "On branch "); + ImGui::SameLine(0, 0); + ImGui::TextColored(green, "main"); + ImGui::TextColored(fg, "Changes to be committed:"); + ImGui::TextColored(green, " modified: src/main.cpp"); + ImGui::TextColored(green, " new file: src/utils.hpp"); + ImGui::TextColored(fg, "Changes not staged:"); + ImGui::TextColored(red, " modified: README.md"); + + ImGui::Spacing(); + + ImGui::TextColored(fg, "ANSI Colors (0-7 / 8-15):"); + + const float box_size = 20.0f; + const float spacing = 4.0f; + ImVec2 start_pos = ImGui::GetCursorScreenPos(); + ImDrawList* draw_list = ImGui::GetWindowDrawList(); + + std::array normal_colors = {black, red, green, yellow, blue, magenta, cyan, white}; + for (size_t i = 0; i < 8; i++) { - ImGui::TextColored(col, "%s", text); + ImVec2 p0 = ImVec2(start_pos.x + i * (box_size + spacing), start_pos.y); + ImVec2 p1 = ImVec2(p0.x + box_size, p0.y + box_size); + draw_list->AddRectFilled(p0, p1, ImGui::ColorConvertFloat4ToU32(normal_colors[i])); + draw_list->AddRect(p0, p1, ImGui::ColorConvertFloat4ToU32(border_col)); } + + std::array bright_colors = {bright_black, bright_red, bright_green, bright_yellow, + bright_blue, bright_magenta, bright_cyan, bright_white}; + for (size_t i = 0; i < 8; i++) + { + ImVec2 p0 = ImVec2(start_pos.x + i * (box_size + spacing), start_pos.y + box_size + spacing); + ImVec2 p1 = ImVec2(p0.x + box_size, p0.y + box_size); + draw_list->AddRectFilled(p0, p1, ImGui::ColorConvertFloat4ToU32(bright_colors[i])); + draw_list->AddRect(p0, p1, ImGui::ColorConvertFloat4ToU32(border_col)); + } + + ImGui::Dummy(ImVec2(8 * (box_size + spacing), 2 * box_size + spacing + 4)); ImGui::PopStyleColor(2); ImGui::EndChild(); diff --git a/src/gui/template_editor.cpp b/src/gui/template_editor.cpp index 484eab2..d08f955 100644 --- a/src/gui/template_editor.cpp +++ b/src/gui/template_editor.cpp @@ -605,30 +605,7 @@ void template_editor::render_editor() ImGui::PopStyleColor(); } } - - ImGui::SameLine(ImGui::GetContentRegionAvail().x - 30); - ImGui::TextDisabled("(?)"); - if (ImGui::IsItemHovered()) - { - ImGui::BeginTooltip(); - ImGui::PushTextWrapPos(ImGui::GetFontSize() * 25.0f); - ImGui::TextUnformatted("Template Syntax:"); - ImGui::Separator(); - ImGui::TextUnformatted("Use {color_key.format} for color variables"); - ImGui::Spacing(); - ImGui::TextUnformatted("Color Keys: background, foreground, accent, etc."); - ImGui::TextUnformatted("Formats: hex, rgb, rgba, r, g, b, hsl, hsla, etc."); - ImGui::Spacing(); - ImGui::TextUnformatted("Examples:"); - ImGui::BulletText("{background.hex} -> #1E1E1E"); - ImGui::BulletText("{accent.rgb} -> rgb(14,99,156)"); - ImGui::BulletText("{foreground.r} -> 204"); - ImGui::Spacing(); - ImGui::TextUnformatted("Tip: Type '{' to trigger autocomplete!"); - ImGui::PopTextWrapPos(); - ImGui::EndTooltip(); - } - + ImGui::PopStyleVar(); ImGui::Separator(); diff --git a/src/gui/theme_applier.cpp b/src/gui/theme_applier.cpp index f428d26..4c54e83 100644 --- a/src/gui/theme_applier.cpp +++ b/src/gui/theme_applier.cpp @@ -4,47 +4,49 @@ namespace theme_applier { +static uint32_t get_color_u32(const clrsync::core::palette& current, const std::string &key) +{ + const auto &col = current.get_color(key); + const uint32_t hex = col.hex(); + // Convert from RRGGBBAA to AABBGGRR (ImGui format) + const uint32_t r = (hex >> 24) & 0xFF; + const uint32_t g = (hex >> 16) & 0xFF; + const uint32_t b = (hex >> 8) & 0xFF; + const uint32_t a = hex & 0xFF; + return (a << 24) | (b << 16) | (g << 8) | r; +} + void apply_to_editor(TextEditor& editor, const clrsync::core::palette& current) { - auto get_color_u32 = [&](const std::string &key) -> uint32_t { - const auto &col = current.get_color(key); - const uint32_t hex = col.hex(); - // Convert from RRGGBBAA to AABBGGRR (ImGui format) - const uint32_t r = (hex >> 24) & 0xFF; - const uint32_t g = (hex >> 16) & 0xFF; - const uint32_t b = (hex >> 8) & 0xFF; - const uint32_t a = hex & 0xFF; - return (a << 24) | (b << 16) | (g << 8) | r; - }; - auto palette = editor.GetPalette(); - palette[int(TextEditor::PaletteIndex::Default)] = get_color_u32("editor_main"); - palette[int(TextEditor::PaletteIndex::Keyword)] = get_color_u32("editor_command"); - palette[int(TextEditor::PaletteIndex::Number)] = get_color_u32("editor_warning"); - palette[int(TextEditor::PaletteIndex::String)] = get_color_u32("editor_string"); - palette[int(TextEditor::PaletteIndex::CharLiteral)] = get_color_u32("editor_string"); - palette[int(TextEditor::PaletteIndex::Punctuation)] = get_color_u32("editor_main"); - palette[int(TextEditor::PaletteIndex::Preprocessor)] = get_color_u32("editor_emphasis"); - palette[int(TextEditor::PaletteIndex::Identifier)] = get_color_u32("editor_main"); - palette[int(TextEditor::PaletteIndex::KnownIdentifier)] = get_color_u32("editor_link"); - palette[int(TextEditor::PaletteIndex::PreprocIdentifier)] = get_color_u32("editor_link"); + palette[int(TextEditor::PaletteIndex::Default)] = get_color_u32(current, "editor_main"); + palette[int(TextEditor::PaletteIndex::Keyword)] = get_color_u32(current, "editor_command"); + palette[int(TextEditor::PaletteIndex::Number)] = get_color_u32(current, "editor_warning"); + palette[int(TextEditor::PaletteIndex::String)] = get_color_u32(current, "editor_string"); + palette[int(TextEditor::PaletteIndex::CharLiteral)] = get_color_u32(current, "editor_string"); + palette[int(TextEditor::PaletteIndex::Punctuation)] = get_color_u32(current, "editor_main"); + palette[int(TextEditor::PaletteIndex::Preprocessor)] = get_color_u32(current, "editor_emphasis"); + palette[int(TextEditor::PaletteIndex::Identifier)] = get_color_u32(current, "editor_main"); + palette[int(TextEditor::PaletteIndex::KnownIdentifier)] = get_color_u32(current, "editor_link"); + palette[int(TextEditor::PaletteIndex::PreprocIdentifier)] = get_color_u32(current, "editor_link"); - palette[int(TextEditor::PaletteIndex::Comment)] = get_color_u32("editor_comment"); - palette[int(TextEditor::PaletteIndex::MultiLineComment)] = get_color_u32("editor_comment"); + palette[int(TextEditor::PaletteIndex::Comment)] = get_color_u32(current, "editor_comment"); + palette[int(TextEditor::PaletteIndex::MultiLineComment)] = get_color_u32(current, "editor_comment"); - palette[int(TextEditor::PaletteIndex::Background)] = get_color_u32("editor_background"); - palette[int(TextEditor::PaletteIndex::Cursor)] = get_color_u32("cursor"); + palette[int(TextEditor::PaletteIndex::Background)] = get_color_u32(current, "editor_background"); + palette[int(TextEditor::PaletteIndex::Cursor)] = get_color_u32(current, "cursor"); - palette[int(TextEditor::PaletteIndex::Selection)] = get_color_u32("editor_selected"); - palette[int(TextEditor::PaletteIndex::ErrorMarker)] = get_color_u32("editor_error"); - palette[int(TextEditor::PaletteIndex::Breakpoint)] = get_color_u32("editor_error"); + palette[int(TextEditor::PaletteIndex::Selection)] = get_color_u32(current, "editor_selected"); + palette[int(TextEditor::PaletteIndex::ErrorMarker)] = get_color_u32(current, "editor_error"); + palette[int(TextEditor::PaletteIndex::Breakpoint)] = get_color_u32(current, "editor_error"); - palette[int(TextEditor::PaletteIndex::LineNumber)] = get_color_u32("editor_line_number"); - palette[int(TextEditor::PaletteIndex::CurrentLineFill)] = get_color_u32("surface_variant"); - palette[int(TextEditor::PaletteIndex::CurrentLineFillInactive)] = get_color_u32("surface"); + palette[int(TextEditor::PaletteIndex::LineNumber)] = get_color_u32(current, "editor_line_number"); + + palette[int(TextEditor::PaletteIndex::CurrentLineFill)] = get_color_u32(current, "surface_variant"); + palette[int(TextEditor::PaletteIndex::CurrentLineFillInactive)] = get_color_u32(current, "surface"); - palette[int(TextEditor::PaletteIndex::CurrentLineEdge)] = get_color_u32("border_focused"); + palette[int(TextEditor::PaletteIndex::CurrentLineEdge)] = get_color_u32(current, "border_focused"); editor.SetPalette(palette); }