Преглед изворни кода

LibDraw: Add Selection and SelectionText system theme colors

Andreas Kling пре 5 година
родитељ
комит
b6eba388e3

+ 1 - 1
Applications/FontEditor/GlyphMapWidget.cpp

@@ -74,7 +74,7 @@ void GlyphMapWidget::paint_event(GPaintEvent& event)
                 font().max_glyph_width(),
                 font().glyph_height());
             if (glyph == m_selected_glyph) {
-                painter.fill_rect(outer_rect, Color::from_rgb(0x84351a));
+                painter.fill_rect(outer_rect, SystemColor::Selection);
                 painter.draw_glyph(inner_rect.location(), glyph, Color::White);
             } else {
                 painter.draw_glyph(inner_rect.location(), glyph, Color::Black);

+ 2 - 2
Applications/HexEditor/HexEditor.cpp

@@ -492,7 +492,7 @@ void HexEditor::paint_event(GPaintEvent& event)
                 text_color = Color::Red;
             }
 
-            Color highlight_color = Color::from_rgb(0x84351a);
+            Color highlight_color = SystemColor::Selection;
             auto highlight_flag = false;
             if (m_selection_start > -1 && m_selection_end > -1) {
                 if (byte_position >= m_selection_start && byte_position <= m_selection_end) {
@@ -541,4 +541,4 @@ void HexEditor::leave_event(CEvent&)
 {
     ASSERT(window());
     window()->set_override_cursor(GStandardCursor::None);
-}
+}

+ 3 - 0
Base/res/themes/Dark.ini

@@ -32,3 +32,6 @@ ThreedShadow1=#3d3e40
 ThreedShadow2=#2e2f30
 
 HoverHighlight=#696969
+
+Selection=#14141a
+SelectionText=white

+ 3 - 0
Base/res/themes/Default.ini

@@ -33,3 +33,6 @@ ThreedShadow1=#808080
 ThreedShadow2=#404040
 
 HoverHighlight=#e3dfdb
+
+Selection=#84351a
+SelectionText=white

+ 2 - 0
Base/res/themes/Xmas.ini

@@ -34,3 +34,5 @@ ThreedShadow2=#882d26
 
 HoverHighlight=#e6e5e2
 
+Selection=#84351a
+SelectionText=white

+ 1 - 1
DevTools/HackStudio/Editor.cpp

@@ -68,7 +68,7 @@ void Editor::paint_event(GPaintEvent& event)
             rect.set_width(rect.width() - vertical_scrollbar().width());
         if (horizontal_scrollbar().is_visible())
             rect.set_height(rect.height() - horizontal_scrollbar().height());
-        painter.draw_rect(rect, Color::from_rgb(0x955233));
+        painter.draw_rect(rect, SystemColor::Selection);
     }
 }
 

+ 6 - 0
Libraries/LibDraw/Color.cpp

@@ -35,6 +35,12 @@ Color::Color(SystemColor system_color)
     case SystemColor::HoverHighlight:
         m_value = theme.hover_highlight.value();
         break;
+    case SystemColor::Selection:
+        m_value = theme.selection.value();
+        break;
+    case SystemColor::SelectionText:
+        m_value = theme.selection_text.value();
+        break;
     case SystemColor::DesktopBackground:
         m_value = theme.desktop_background.value();
         break;

+ 2 - 0
Libraries/LibDraw/Color.h

@@ -37,6 +37,8 @@ enum class SystemColor {
     ThreedShadow1,
     ThreedShadow2,
     HoverHighlight,
+    Selection,
+    SelectionText,
 
     DisabledText = ThreedShadow1,
 };

+ 2 - 0
Libraries/LibDraw/SystemTheme.cpp

@@ -46,6 +46,8 @@ RefPtr<SharedBuffer> load_system_theme(const String& path)
     data->threed_shadow1 = get("ThreedShadow1");
     data->threed_shadow2 = get("ThreedShadow2");
     data->hover_highlight = get("HoverHighlight");
+    data->selection = get("Selection");
+    data->selection_text = get("SelectionText");
     data->window = get("Window");
     data->window_text = get("WindowText");
     data->base = get("Base");

+ 3 - 0
Libraries/LibDraw/SystemTheme.h

@@ -38,6 +38,9 @@ struct SystemTheme {
     Color threed_shadow2;
 
     Color hover_highlight;
+
+    Color selection;
+    Color selection_text;
 };
 
 const SystemTheme& current_system_theme();

+ 2 - 2
Libraries/LibGUI/GItemView.cpp

@@ -201,7 +201,7 @@ void GItemView::paint_event(GPaintEvent& event)
         bool is_selected_item = selection().contains(model()->index(item_index, m_model_column));
         Color background_color;
         if (is_selected_item) {
-            background_color = is_focused() ? Color::from_rgb(0x84351a) : Color::from_rgb(0x606060);
+            background_color = is_focused() ? Color(SystemColor::Selection) : Color::from_rgb(0x606060);
         } else {
             background_color = SystemColor::Base;
         }
@@ -228,7 +228,7 @@ void GItemView::paint_event(GPaintEvent& event)
 
         Color text_color;
         if (is_selected_item)
-            text_color = Color::White;
+            text_color = SystemColor::SelectionText;
         else
             text_color = model()->data(model_index, GModel::Role::ForegroundColor).to_color(SystemColor::WindowText);
         painter.fill_rect(text_rect, background_color);

+ 1 - 1
Libraries/LibGUI/GListView.cpp

@@ -104,7 +104,7 @@ void GListView::paint_event(GPaintEvent& event)
 
         Color background_color;
         if (is_selected_row) {
-            background_color = is_focused() ? Color::from_rgb(0x84351a) : Color::from_rgb(0x606060);
+            background_color = is_focused() ? Color(SystemColor::SelectionText) : Color::from_rgb(0x606060);
         } else {
             if (alternating_row_colors() && (painted_item_index % 2))
                 background_color = Color(210, 210, 210);

+ 3 - 3
Libraries/LibGUI/GTableView.cpp

@@ -53,8 +53,8 @@ void GTableView::paint_event(GPaintEvent& event)
         Color background_color;
         Color key_column_background_color;
         if (is_selected_row) {
-            background_color = is_focused() ? Color::from_rgb(0x84351a) : Color::from_rgb(0x606060);
-            key_column_background_color = is_focused() ? Color::from_rgb(0x84351a) : Color::from_rgb(0x606060);
+            background_color = is_focused() ? Color(SystemColor::Selection) : Color::from_rgb(0x606060);
+            key_column_background_color = is_focused() ? Color(SystemColor::Selection) : Color::from_rgb(0x606060);
         } else {
             if (alternating_row_colors() && (painted_item_index % 2)) {
                 background_color = Color(SystemColor::Base).darkened(0.8f);
@@ -93,7 +93,7 @@ void GTableView::paint_event(GPaintEvent& event)
                 } else {
                     Color text_color;
                     if (is_selected_row)
-                        text_color = Color::White;
+                        text_color = SystemColor::SelectionText;
                     else
                         text_color = model()->data(cell_index, GModel::Role::ForegroundColor).to_color(SystemColor::WindowText);
                     painter.draw_text(cell_rect, data.to_string(), font, column_metadata.text_alignment, text_color, TextElision::Right);

+ 2 - 2
Libraries/LibGUI/GTextEditor.cpp

@@ -424,7 +424,7 @@ void GTextEditor::paint_event(GPaintEvent& event)
                         visual_line_rect.height()
                     };
 
-                    painter.fill_rect(selection_rect, Color::from_rgb(0x955233));
+                    painter.fill_rect(selection_rect, SystemColor::Selection);
 
                     size_t start_of_selection_within_visual_line = (size_t)max(0, (int)selection_start_column_within_line - (int)start_of_visual_line);
                     size_t end_of_selection_within_visual_line = selection_end_column_within_line - start_of_visual_line;
@@ -434,7 +434,7 @@ void GTextEditor::paint_event(GPaintEvent& event)
                         end_of_selection_within_visual_line - start_of_selection_within_visual_line
                     };
 
-                    painter.draw_text(selection_rect, visual_selected_text, TextAlignment::CenterLeft, Color::White);
+                    painter.draw_text(selection_rect, visual_selected_text, TextAlignment::CenterLeft, SystemColor::SelectionText);
                 }
             }
             ++visual_line_index;

+ 2 - 2
Libraries/LibGUI/GTreeView.cpp

@@ -185,8 +185,8 @@ void GTreeView::paint_event(GPaintEvent& event)
         Color background_color;
         Color key_column_background_color;
         if (is_selected_row) {
-            background_color = is_focused() ? Color::from_rgb(0x84351a) : Color::from_rgb(0x606060);
-            key_column_background_color = is_focused() ? Color::from_rgb(0x84351a) : Color::from_rgb(0x606060);
+            background_color = is_focused() ? Color(SystemColor::Selection) : Color::from_rgb(0x606060);
+            key_column_background_color = is_focused() ? Color(SystemColor::Selection) : Color::from_rgb(0x606060);
         } else {
             if (alternating_row_colors() && (painted_row_index % 2)) {
                 background_color = Color(220, 220, 220);

+ 8 - 8
Servers/WindowServer/WSWindowSwitcher.cpp

@@ -71,8 +71,8 @@ void WSWindowSwitcher::on_key_event(const WSKeyEvent& event)
 void WSWindowSwitcher::draw()
 {
     Painter painter(*m_switcher_window->backing_store());
-    painter.fill_rect({ {}, m_rect.size() }, Color::WarmGray);
-    painter.draw_rect({ {}, m_rect.size() }, Color::DarkGray);
+    painter.fill_rect({ {}, m_rect.size() }, SystemColor::Window);
+    painter.draw_rect({ {}, m_rect.size() }, SystemColor::ThreedShadow2);
     for (int index = 0; index < m_windows.size(); ++index) {
         auto& window = *m_windows.at(index);
         Rect item_rect {
@@ -84,12 +84,12 @@ void WSWindowSwitcher::draw()
         Color text_color;
         Color rect_text_color;
         if (index == m_selected_index) {
-            painter.fill_rect(item_rect, Color::from_rgb(0x84351a));
-            text_color = Color::White;
-            rect_text_color = Color::WarmGray;
+            painter.fill_rect(item_rect, SystemColor::Selection);
+            text_color = SystemColor::SelectionText;
+            rect_text_color = SystemColor::ThreedShadow1;
         } else {
-            text_color = Color::Black;
-            rect_text_color = Color::MidGray;
+            text_color = SystemColor::WindowText;
+            rect_text_color = SystemColor::ThreedShadow2;
         }
         item_rect.shrink(item_padding(), 0);
         Rect thumbnail_rect = { item_rect.location().translated(0, 5), { thumbnail_width(), thumbnail_height() } };
@@ -98,7 +98,7 @@ void WSWindowSwitcher::draw()
             StylePainter::paint_frame(painter, thumbnail_rect.inflated(4, 4), FrameShape::Container, FrameShadow::Sunken, 2);
         }
         Rect icon_rect = { thumbnail_rect.bottom_right().translated(-window.icon().width(), -window.icon().height()), { window.icon().width(), window.icon().height() } };
-        painter.fill_rect(icon_rect, Color::WarmGray);
+        painter.fill_rect(icon_rect, SystemColor::Window);
         painter.blit(icon_rect.location(), window.icon(), window.icon().rect());
         painter.draw_text(item_rect.translated(thumbnail_width() + 12, 0), window.title(), WSWindowManager::the().window_title_font(), TextAlignment::CenterLeft, text_color);
         painter.draw_text(item_rect, window.rect().to_string(), TextAlignment::CenterRight, rect_text_color);