mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-04-21 12:05:15 +00:00
LibDraw: Add Selection and SelectionText system theme colors
This commit is contained in:
parent
033de7efe2
commit
b6eba388e3
Notes:
sideshowbarker
2024-07-19 10:42:38 +09:00
Author: https://github.com/awesomekling Commit: https://github.com/SerenityOS/serenity/commit/b6eba388e33
16 changed files with 43 additions and 22 deletions
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -32,3 +32,6 @@ ThreedShadow1=#3d3e40
|
|||
ThreedShadow2=#2e2f30
|
||||
|
||||
HoverHighlight=#696969
|
||||
|
||||
Selection=#14141a
|
||||
SelectionText=white
|
||||
|
|
|
@ -33,3 +33,6 @@ ThreedShadow1=#808080
|
|||
ThreedShadow2=#404040
|
||||
|
||||
HoverHighlight=#e3dfdb
|
||||
|
||||
Selection=#84351a
|
||||
SelectionText=white
|
||||
|
|
|
@ -34,3 +34,5 @@ ThreedShadow2=#882d26
|
|||
|
||||
HoverHighlight=#e6e5e2
|
||||
|
||||
Selection=#84351a
|
||||
SelectionText=white
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -37,6 +37,8 @@ enum class SystemColor {
|
|||
ThreedShadow1,
|
||||
ThreedShadow2,
|
||||
HoverHighlight,
|
||||
Selection,
|
||||
SelectionText,
|
||||
|
||||
DisabledText = ThreedShadow1,
|
||||
};
|
||||
|
|
|
@ -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");
|
||||
|
|
|
@ -38,6 +38,9 @@ struct SystemTheme {
|
|||
Color threed_shadow2;
|
||||
|
||||
Color hover_highlight;
|
||||
|
||||
Color selection;
|
||||
Color selection_text;
|
||||
};
|
||||
|
||||
const SystemTheme& current_system_theme();
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Add table
Reference in a new issue