Sfoglia il codice sorgente

Themes: Support rubberband selection theming

0xtechnobabble 5 anni fa
parent
commit
123dcada05

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

@@ -29,3 +29,5 @@ ThreedShadow2=#2e2f30
 HoverHighlight=#696969
 HoverHighlight=#696969
 Selection=#14141a
 Selection=#14141a
 SelectionText=white
 SelectionText=white
+RubberBandFill=#8080803c
+RubberBandBorder=black

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

@@ -29,3 +29,5 @@ ThreedShadow2=#404040
 HoverHighlight=#e3dfdb
 HoverHighlight=#e3dfdb
 Selection=#84351a
 Selection=#84351a
 SelectionText=white
 SelectionText=white
+RubberBandFill=#f4ca9e3c
+RubberBandBorder=#6e2209

+ 2 - 0
Base/res/themes/Hotdog Stand.ini

@@ -29,3 +29,5 @@ ThreedShadow2=#909090
 HoverHighlight=white
 HoverHighlight=white
 Selection=black
 Selection=black
 SelectionText=white
 SelectionText=white
+RubberBandFill=#fad7653c
+RubberBandBorder=#f4ca9e

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

@@ -29,3 +29,5 @@ ThreedShadow2=#882d26
 HoverHighlight=#e6e5e2
 HoverHighlight=#e6e5e2
 Selection=#84351a
 Selection=#84351a
 SelectionText=white
 SelectionText=white
+RubberBandFill=#0466033c
+RubberBandBorder=#76943c

+ 2 - 2
DevTools/HackStudio/CursorTool.cpp

@@ -154,6 +154,6 @@ void CursorTool::on_second_paint(GPainter& painter, GPaintEvent&)
     if (!m_rubber_banding)
     if (!m_rubber_banding)
         return;
         return;
     auto rect = rubber_band_rect();
     auto rect = rubber_band_rect();
-    painter.fill_rect(rect, Color(244, 202, 158, 60));
-    painter.draw_rect(rect, Color(110, 34, 9));
+    painter.fill_rect(rect, m_editor.palette().rubber_band_fill());
+    painter.draw_rect(rect, m_editor.palette().rubber_band_border());
 }
 }

+ 3 - 0
Libraries/LibDraw/Palette.h

@@ -60,8 +60,11 @@ public:
     Color threed_shadow1() const { return color(ColorRole::ThreedShadow1); }
     Color threed_shadow1() const { return color(ColorRole::ThreedShadow1); }
     Color threed_shadow2() const { return color(ColorRole::ThreedShadow2); }
     Color threed_shadow2() const { return color(ColorRole::ThreedShadow2); }
     Color hover_highlight() const { return color(ColorRole::ThreedHighlight); }
     Color hover_highlight() const { return color(ColorRole::ThreedHighlight); }
+    Color rubber_band_fill() const { return color(ColorRole::RubberBandFill); }
+    Color rubber_band_border() const { return color(ColorRole::RubberBandBorder); }
 
 
     Color color(ColorRole role) const { return m_impl->color(role); }
     Color color(ColorRole role) const { return m_impl->color(role); }
+
     void set_color(ColorRole, Color);
     void set_color(ColorRole, Color);
 
 
     const SystemTheme& theme() const { return m_impl->theme(); }
     const SystemTheme& theme() const { return m_impl->theme(); }

+ 5 - 3
Libraries/LibDraw/SystemTheme.cpp

@@ -32,17 +32,17 @@ RefPtr<SharedBuffer> load_system_theme(const String& path)
 
 
     auto* data = (SystemTheme*)buffer->data();
     auto* data = (SystemTheme*)buffer->data();
 
 
-    auto get = [&](auto& name) {
+    auto get_color = [&](auto& name) {
         auto color_string = file->read_entry("Colors", name);
         auto color_string = file->read_entry("Colors", name);
         auto color = Color::from_string(color_string);
         auto color = Color::from_string(color_string);
         if (!color.has_value())
         if (!color.has_value())
             return Color(Color::Black);
             return Color(Color::Black);
-        dbg() << "Parsed system color '" << name << "' = " << color.value();
+        dbg() << "Parsed system theme color '" << name << "' = " << color.value();
         return color.value();
         return color.value();
     };
     };
 
 
 #define DO_COLOR(x) \
 #define DO_COLOR(x) \
-    data->color[(int)ColorRole::x] = get(#x)
+    data->color[(int)ColorRole::x] = get_color(#x)
 
 
     DO_COLOR(DesktopBackground);
     DO_COLOR(DesktopBackground);
     DO_COLOR(ThreedHighlight);
     DO_COLOR(ThreedHighlight);
@@ -75,6 +75,8 @@ RefPtr<SharedBuffer> load_system_theme(const String& path)
     DO_COLOR(MenuBaseText);
     DO_COLOR(MenuBaseText);
     DO_COLOR(MenuSelection);
     DO_COLOR(MenuSelection);
     DO_COLOR(MenuSelectionText);
     DO_COLOR(MenuSelectionText);
+    DO_COLOR(RubberBandFill);
+    DO_COLOR(RubberBandBorder);
 
 
     buffer->seal();
     buffer->seal();
     buffer->share_globally();
     buffer->share_globally();

+ 2 - 0
Libraries/LibDraw/SystemTheme.h

@@ -36,6 +36,8 @@ enum class ColorRole {
     HoverHighlight,
     HoverHighlight,
     Selection,
     Selection,
     SelectionText,
     SelectionText,
+    RubberBandFill,
+    RubberBandBorder,
 
 
     __Count,
     __Count,
 
 

+ 2 - 2
Libraries/LibGUI/GItemView.cpp

@@ -260,8 +260,8 @@ void GItemView::second_paint_event(GPaintEvent& event)
     painter.add_clip_rect(event.rect());
     painter.add_clip_rect(event.rect());
 
 
     auto rubber_band_rect = Rect::from_two_points(m_rubber_band_origin, m_rubber_band_current);
     auto rubber_band_rect = Rect::from_two_points(m_rubber_band_origin, m_rubber_band_current);
-    painter.fill_rect(rubber_band_rect, Color(244, 202, 158, 60));
-    painter.draw_rect(rubber_band_rect, Color(110, 34, 9));
+    painter.fill_rect(rubber_band_rect, parent_widget()->palette().rubber_band_fill());
+    painter.draw_rect(rubber_band_rect, parent_widget()->palette().rubber_band_border());
 }
 }
 
 
 void GItemView::paint_event(GPaintEvent& event)
 void GItemView::paint_event(GPaintEvent& event)