1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 04:37:34 +00:00

LibDraw: Add Button and ButtonText system theme colors

These are now separate from the Window and WindowText colors.
This commit is contained in:
Andreas Kling 2019-12-24 02:10:01 +01:00
parent 9171aef724
commit df3a2dba43
21 changed files with 57 additions and 39 deletions

View file

@ -11,8 +11,8 @@ Color::Color(SystemColor system_color)
case SystemColor::Window:
m_value = theme.window.value();
break;
case SystemColor::Text:
m_value = theme.text.value();
case SystemColor::WindowText:
m_value = theme.window_text.value();
break;
case SystemColor::Base:
m_value = theme.base.value();
@ -26,6 +26,12 @@ Color::Color(SystemColor system_color)
case SystemColor::ThreedHighlight:
m_value = theme.threed_highlight.value();
break;
case SystemColor::Button:
m_value = theme.button.value();
break;
case SystemColor::ButtonText:
m_value = theme.button_text.value();
break;
case SystemColor::HoverHighlight:
m_value = theme.hover_highlight.value();
break;

View file

@ -29,7 +29,9 @@ enum class SystemColor {
MenuBase,
MenuSelection,
Window,
Text,
WindowText,
Button,
ButtonText,
Base,
ThreedHighlight,
ThreedShadow1,

View file

@ -3,7 +3,7 @@
void StylePainter::paint_tab_button(Painter& painter, const Rect& rect, bool active, bool hovered, bool enabled)
{
Color base_color = SystemColor::Window;
Color base_color = SystemColor::Button;
Color highlight_color2 = SystemColor::ThreedHighlight;
Color shadow_color1 = SystemColor::ThreedShadow1;
Color shadow_color2 = SystemColor::ThreedShadow2;
@ -44,7 +44,7 @@ void StylePainter::paint_tab_button(Painter& painter, const Rect& rect, bool act
static void paint_button_new(Painter& painter, const Rect& rect, bool pressed, bool checked, bool hovered, bool enabled)
{
Color button_color = SystemColor::Window;
Color button_color = SystemColor::Button;
Color highlight_color2 = SystemColor::ThreedHighlight;
Color shadow_color1 = SystemColor::ThreedShadow1;
Color shadow_color2 = SystemColor::ThreedShadow2;
@ -53,7 +53,7 @@ static void paint_button_new(Painter& painter, const Rect& rect, bool pressed, b
if (hovered)
button_color = SystemColor::HoverHighlight;
else
button_color = SystemColor::Window;
button_color = SystemColor::Button;
} else if (hovered && enabled)
button_color = StylePainter::hover_highlight_color();
@ -92,7 +92,7 @@ void StylePainter::paint_button(Painter& painter, const Rect& rect, ButtonStyle
if (button_style == ButtonStyle::Normal)
return paint_button_new(painter, rect, pressed, checked, hovered, enabled);
Color button_color = SystemColor::Window;
Color button_color = SystemColor::Button;
Color highlight_color = Color::White;
Color shadow_color = Color(96, 96, 96);
@ -129,8 +129,8 @@ void StylePainter::paint_button(Painter& painter, const Rect& rect, ButtonStyle
void StylePainter::paint_surface(Painter& painter, const Rect& rect, bool paint_vertical_lines, bool paint_top_line)
{
painter.fill_rect({ rect.x(), rect.y() + 1, rect.width(), rect.height() - 2 }, SystemColor::Window);
painter.draw_line(rect.top_left(), rect.top_right(), paint_top_line ? SystemColor::ThreedHighlight : SystemColor::Window);
painter.fill_rect({ rect.x(), rect.y() + 1, rect.width(), rect.height() - 2 }, SystemColor::Button);
painter.draw_line(rect.top_left(), rect.top_right(), paint_top_line ? SystemColor::ThreedHighlight : SystemColor::Button);
painter.draw_line(rect.bottom_left(), rect.bottom_right(), SystemColor::ThreedShadow1);
if (paint_vertical_lines) {
painter.draw_line(rect.top_left().translated(0, 1), rect.bottom_left().translated(0, -1), SystemColor::ThreedHighlight);
@ -176,7 +176,7 @@ void StylePainter::paint_frame(Painter& painter, const Rect& rect, FrameShape sh
Color top_left_color;
Color bottom_right_color;
Color dark_shade = SystemColor::ThreedShadow2;
Color light_shade = SystemColor::Window;
Color light_shade = SystemColor::Button;
if (shadow == FrameShadow::Raised) {
dark_shade = SystemColor::ThreedShadow1;
top_left_color = light_shade;
@ -207,7 +207,7 @@ void StylePainter::paint_frame(Painter& painter, const Rect& rect, FrameShape sh
void StylePainter::paint_window_frame(Painter& painter, const Rect& rect)
{
Color base_color = SystemColor::Window;
Color base_color = SystemColor::Button;
Color dark_shade = SystemColor::ThreedShadow2;
Color mid_shade = SystemColor::ThreedShadow1;
Color light_shade = SystemColor::ThreedHighlight;

View file

@ -47,8 +47,10 @@ RefPtr<SharedBuffer> load_system_theme(const String& path)
data->threed_shadow2 = get("ThreedShadow2");
data->hover_highlight = get("HoverHighlight");
data->window = get("Window");
data->text = get("Text");
data->window_text = get("WindowText");
data->base = get("Base");
data->button = get("Button");
data->button_text = get("ButtonText");
data->desktop_background = get("DesktopBackground");
data->active_window_border1 = get("ActiveWindowBorder1");
data->active_window_border2 = get("ActiveWindowBorder2");

View file

@ -28,8 +28,10 @@ struct SystemTheme {
Color menu_selection;
Color window;
Color text;
Color window_text;
Color base;
Color button;
Color button_text;
Color threed_highlight;
Color threed_shadow1;

View file

@ -154,7 +154,7 @@ void GAbstractButton::paint_text(GPainter& painter, const Rect& rect, const Font
if (text().is_empty())
return;
painter.draw_text(clipped_rect, text(), font, text_alignment, SystemColor::Text, TextElision::Right);
painter.draw_text(clipped_rect, text(), font, text_alignment, SystemColor::ButtonText, TextElision::Right);
if (is_focused())
painter.draw_rect(clipped_rect.inflated(6, 4), Color(140, 140, 140));
}

View file

@ -129,7 +129,7 @@ void GAbstractColumnView::paint_headers(GPainter& painter)
auto text_rect = cell_rect.translated(horizontal_padding(), 0);
if (pressed)
text_rect.move_by(1, 1);
painter.draw_text(text_rect, text, header_font(), TextAlignment::CenterLeft, SystemColor::Text);
painter.draw_text(text_rect, text, header_font(), TextAlignment::CenterLeft, SystemColor::ButtonText);
x_offset += column_width + horizontal_padding() * 2;
}
}

View file

@ -63,7 +63,7 @@ void GCheckBox::paint_event(GPaintEvent& event)
if (is_checked()) {
if (!s_checked_bitmap)
s_checked_bitmap = &CharacterBitmap::create_from_ascii(s_checked_bitmap_data, s_checked_bitmap_width, s_checked_bitmap_height).leak_ref();
painter.draw_bitmap(box_rect.shrunken(4, 4).location(), *s_checked_bitmap, SystemColor::Text);
painter.draw_bitmap(box_rect.shrunken(4, 4).location(), *s_checked_bitmap, SystemColor::ButtonText);
}
paint_text(painter, text_rect, font(), TextAlignment::TopLeft);

View file

@ -230,7 +230,7 @@ void GItemView::paint_event(GPaintEvent& event)
if (is_selected_item)
text_color = Color::White;
else
text_color = model()->data(model_index, GModel::Role::ForegroundColor).to_color(SystemColor::Text);
text_color = model()->data(model_index, GModel::Role::ForegroundColor).to_color(SystemColor::WindowText);
painter.fill_rect(text_rect, background_color);
painter.draw_text(text_rect, item_text.to_string(), font, TextAlignment::Center, text_color, TextElision::Right);
};

View file

@ -129,7 +129,7 @@ void GListView::paint_event(GPaintEvent& event)
if (is_selected_row)
text_color = Color::White;
else
text_color = model()->data(index, GModel::Role::ForegroundColor).to_color(SystemColor::Text);
text_color = model()->data(index, GModel::Role::ForegroundColor).to_color(SystemColor::WindowText);
auto text_rect = row_rect;
text_rect.move_by(horizontal_padding(), 0);
text_rect.set_width(text_rect.width() - horizontal_padding() * 2);

View file

@ -20,7 +20,7 @@ void GResizeCorner::paint_event(GPaintEvent& event)
{
GPainter painter(*this);
painter.add_clip_rect(event.rect());
painter.fill_rect(rect(), SystemColor::Window);
painter.fill_rect(rect(), SystemColor::Button);
painter.blit({ 0, 0 }, *m_bitmap, m_bitmap->rect());
GWidget::paint_event(event);
}

View file

@ -203,14 +203,14 @@ void GScrollBar::paint_event(GPaintEvent& event)
GPainter painter(*this);
painter.add_clip_rect(event.rect());
painter.fill_rect(rect(), Color::from_rgb(0xd6d2ce));
painter.fill_rect(rect(), Color(SystemColor::Button).lightened());
StylePainter::paint_button(painter, decrement_button_rect(), ButtonStyle::Normal, false, m_hovered_component == Component::DecrementButton);
StylePainter::paint_button(painter, increment_button_rect(), ButtonStyle::Normal, false, m_hovered_component == Component::IncrementButton);
if (length(orientation()) > default_button_size()) {
painter.draw_bitmap(decrement_button_rect().location().translated(3, 3), orientation() == Orientation::Vertical ? *s_up_arrow_bitmap : *s_left_arrow_bitmap, has_scrubber() ? SystemColor::Text : SystemColor::DisabledText);
painter.draw_bitmap(increment_button_rect().location().translated(3, 3), orientation() == Orientation::Vertical ? *s_down_arrow_bitmap : *s_right_arrow_bitmap, has_scrubber() ? SystemColor::Text : SystemColor::DisabledText);
painter.draw_bitmap(decrement_button_rect().location().translated(3, 3), orientation() == Orientation::Vertical ? *s_up_arrow_bitmap : *s_left_arrow_bitmap, has_scrubber() ? SystemColor::ButtonText : SystemColor::DisabledText);
painter.draw_bitmap(increment_button_rect().location().translated(3, 3), orientation() == Orientation::Vertical ? *s_down_arrow_bitmap : *s_right_arrow_bitmap, has_scrubber() ? SystemColor::ButtonText : SystemColor::DisabledText);
}
if (has_scrubber())

View file

@ -95,7 +95,7 @@ void GTableView::paint_event(GPaintEvent& event)
if (is_selected_row)
text_color = Color::White;
else
text_color = model()->data(cell_index, GModel::Role::ForegroundColor).to_color(SystemColor::Text);
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);
}
}

View file

@ -178,7 +178,7 @@ void GTreeView::paint_event(GPaintEvent& event)
bool is_selected_row = selection().contains(index);
Color text_color = SystemColor::Text;
Color text_color = SystemColor::WindowText;
if (is_selected_row)
text_color = Color::White;
@ -226,7 +226,7 @@ void GTreeView::paint_event(GPaintEvent& event)
painter.blit(cell_rect.location(), *bitmap, bitmap->rect());
} else {
if (!is_selected_row)
text_color = model.data(cell_index, GModel::Role::ForegroundColor).to_color(SystemColor::Text);
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);
}
}

View file

@ -69,7 +69,7 @@ GWidget::GWidget(GWidget* parent)
, m_font(Font::default_font())
{
m_background_color = SystemColor::Window;
m_foreground_color = SystemColor::Text;
m_foreground_color = SystemColor::WindowText;
}
GWidget::~GWidget()