Skip to content

Commit

Permalink
LibDraw: Add Selection and SelectionText system theme colors
Browse files Browse the repository at this point in the history
  • Loading branch information
awesomekling committed Dec 24, 2019
1 parent 033de7e commit b6eba38
Show file tree
Hide file tree
Showing 16 changed files with 43 additions and 22 deletions.
2 changes: 1 addition & 1 deletion Applications/FontEditor/GlyphMapWidget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
4 changes: 2 additions & 2 deletions Applications/HexEditor/HexEditor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down Expand Up @@ -541,4 +541,4 @@ void HexEditor::leave_event(CEvent&)
{
ASSERT(window());
window()->set_override_cursor(GStandardCursor::None);
}
}
3 changes: 3 additions & 0 deletions Base/res/themes/Dark.ini
Original file line number Diff line number Diff line change
Expand Up @@ -32,3 +32,6 @@ ThreedShadow1=#3d3e40
ThreedShadow2=#2e2f30

HoverHighlight=#696969

Selection=#14141a
SelectionText=white
3 changes: 3 additions & 0 deletions Base/res/themes/Default.ini
Original file line number Diff line number Diff line change
Expand Up @@ -33,3 +33,6 @@ ThreedShadow1=#808080
ThreedShadow2=#404040

HoverHighlight=#e3dfdb

Selection=#84351a
SelectionText=white
2 changes: 2 additions & 0 deletions Base/res/themes/Xmas.ini
Original file line number Diff line number Diff line change
Expand Up @@ -34,3 +34,5 @@ ThreedShadow2=#882d26

HoverHighlight=#e6e5e2

Selection=#84351a
SelectionText=white
2 changes: 1 addition & 1 deletion DevTools/HackStudio/Editor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
}

Expand Down
6 changes: 6 additions & 0 deletions Libraries/LibDraw/Color.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
2 changes: 2 additions & 0 deletions Libraries/LibDraw/Color.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,8 @@ enum class SystemColor {
ThreedShadow1,
ThreedShadow2,
HoverHighlight,
Selection,
SelectionText,

DisabledText = ThreedShadow1,
};
Expand Down
2 changes: 2 additions & 0 deletions Libraries/LibDraw/SystemTheme.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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");
Expand Down
3 changes: 3 additions & 0 deletions Libraries/LibDraw/SystemTheme.h
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,9 @@ struct SystemTheme {
Color threed_shadow2;

Color hover_highlight;

Color selection;
Color selection_text;
};

const SystemTheme& current_system_theme();
Expand Down
4 changes: 2 additions & 2 deletions Libraries/LibGUI/GItemView.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
Expand All @@ -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);
Expand Down
2 changes: 1 addition & 1 deletion Libraries/LibGUI/GListView.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
6 changes: 3 additions & 3 deletions Libraries/LibGUI/GTableView.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down Expand Up @@ -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);
Expand Down
4 changes: 2 additions & 2 deletions Libraries/LibGUI/GTextEditor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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;
Expand Down
4 changes: 2 additions & 2 deletions Libraries/LibGUI/GTreeView.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
16 changes: 8 additions & 8 deletions Servers/WindowServer/WSWindowSwitcher.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand All @@ -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() } };
Expand All @@ -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);
Expand Down

0 comments on commit b6eba38

Please sign in to comment.