浏览代码

LibGUI: Highlight interactive area of hovered CheckBox and RadioButton

This is consistent what we do for regular Buttons and gives a pleasant
visual cue when you're over a clickable area.
Andreas Kling 5 年之前
父节点
当前提交
03c91fce74
共有 2 个文件被更改,包括 9 次插入0 次删除
  1. 3 0
      Libraries/LibGUI/CheckBox.cpp
  2. 6 0
      Libraries/LibGUI/RadioButton.cpp

+ 3 - 0
Libraries/LibGUI/CheckBox.cpp

@@ -75,6 +75,9 @@ void CheckBox::paint_event(PaintEvent& event)
     if (fill_with_background_color())
         painter.fill_rect(rect(), palette().window());
 
+    if (is_enabled() && is_hovered())
+        painter.fill_rect(rect(), palette().hover_highlight());
+
     Gfx::Rect box_rect {
         0, height() / 2 - s_box_height / 2 - 1,
         s_box_width, s_box_height

+ 6 - 0
Libraries/LibGUI/RadioButton.cpp

@@ -52,6 +52,12 @@ void RadioButton::paint_event(PaintEvent& event)
     Painter painter(*this);
     painter.add_clip_rect(event.rect());
 
+    if (fill_with_background_color())
+        painter.fill_rect(rect(), palette().window());
+
+    if (is_enabled() && is_hovered())
+        painter.fill_rect(rect(), palette().hover_highlight());
+
     Gfx::Rect circle_rect { { 2, 0 }, circle_size() };
     circle_rect.center_vertically_within(rect());