summaryrefslogtreecommitdiff
path: root/Applications/HexEditor
diff options
context:
space:
mode:
authorTibor Nagy <xnagytibor@gmail.com>2020-02-19 11:14:31 +0100
committerAndreas Kling <kling@serenityos.org>2020-02-19 12:24:39 +0100
commit6eae2ef9cf1b93369679ac079bf258d03e142601 (patch)
tree543c2acc12231c28f7d31d04be693b1606eaa500 /Applications/HexEditor
parent33864ab7159f296c205fdb88c8e2ee93361e3c82 (diff)
downloadserenity-6eae2ef9cf1b93369679ac079bf258d03e142601.zip
HexEditor: Make the application theme-aware
Also updates the ruler style a bit to be more consitent with TextEditor.
Diffstat (limited to 'Applications/HexEditor')
-rw-r--r--Applications/HexEditor/HexEditor.cpp32
1 files changed, 20 insertions, 12 deletions
diff --git a/Applications/HexEditor/HexEditor.cpp b/Applications/HexEditor/HexEditor.cpp
index 77c67462d5..f5c96c7c77 100644
--- a/Applications/HexEditor/HexEditor.cpp
+++ b/Applications/HexEditor/HexEditor.cpp
@@ -49,6 +49,8 @@ HexEditor::HexEditor(GUI::Widget* parent)
set_frame_thickness(2);
set_scrollbars_enabled(true);
set_font(GFontDatabase::the().get_by_name("Csilla Thin"));
+ set_background_role(ColorRole::Base);
+ set_foreground_role(ColorRole::BaseText);
vertical_scrollbar().set_step(line_height());
}
@@ -484,7 +486,7 @@ void HexEditor::paint_event(GUI::PaintEvent& event)
GUI::Painter painter(*this);
painter.add_clip_rect(widget_inner_rect());
painter.add_clip_rect(event.rect());
- painter.fill_rect(event.rect(), Color::White);
+ painter.fill_rect(event.rect(), palette().color(background_role()));
if (m_buffer.is_empty())
return;
@@ -498,13 +500,13 @@ void HexEditor::paint_event(GUI::PaintEvent& event)
85,
height() - height_occupied_by_horizontal_scrollbar() //(total_rows() * line_height()) + 5
};
- painter.fill_rect(offset_clip_rect, Color::WarmGray);
- painter.draw_line(offset_clip_rect.top_right(), offset_clip_rect.bottom_right(), Color::DarkGray);
+ painter.fill_rect(offset_clip_rect, palette().ruler());
+ painter.draw_line(offset_clip_rect.top_right(), offset_clip_rect.bottom_right(), palette().ruler_border());
auto margin_and_hex_width = offset_margin_width() + (m_bytes_per_row * (character_width() * 3)) + 15;
painter.draw_line({ margin_and_hex_width, 0 },
{ margin_and_hex_width, vertical_scrollbar().value() + (height() - height_occupied_by_horizontal_scrollbar()) },
- Color::LightGray);
+ palette().ruler_border());
auto view_height = (height() - height_occupied_by_horizontal_scrollbar());
auto min_row = max(0, vertical_scrollbar().value() / line_height()); // if below 0 then use 0
@@ -519,8 +521,14 @@ void HexEditor::paint_event(GUI::PaintEvent& event)
height() - height_occupied_by_horizontal_scrollbar()
};
+ bool is_current_line = (m_position / bytes_per_row()) == i;
auto line = String::format("0x%08X", i * bytes_per_row());
- painter.draw_text(side_offset_rect, line);
+ painter.draw_text(
+ side_offset_rect,
+ line,
+ is_current_line ? Gfx::Font::default_bold_font() : font(),
+ Gfx::TextAlignment::TopLeft,
+ is_current_line ? palette().ruler_active_text() : palette().ruler_inactive_text());
}
for (int i = min_row; i < max_row; i++) {
@@ -529,12 +537,11 @@ void HexEditor::paint_event(GUI::PaintEvent& event)
if (byte_position >= m_buffer.size())
return;
- Color text_color = Color::Black;
+ Color text_color = palette().color(foreground_role());
if (m_tracked_changes.contains(byte_position)) {
text_color = Color::Red;
}
- Color highlight_color = palette().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) {
@@ -552,10 +559,11 @@ void HexEditor::paint_event(GUI::PaintEvent& event)
line_height() - m_line_spacing
};
if (highlight_flag) {
- painter.fill_rect(hex_display_rect, highlight_color);
- text_color = text_color == Color::Red ? Color::from_rgb(0xFFC0CB) : Color::White;
+ painter.fill_rect(hex_display_rect, palette().selection());
+ text_color = text_color == Color::Red ? Color::from_rgb(0xFFC0CB) : palette().selection_text();
} else if (byte_position == m_position) {
- painter.fill_rect(hex_display_rect, Color::from_rgb(0xCCCCCC));
+ painter.fill_rect(hex_display_rect, palette().inactive_selection());
+ text_color = palette().inactive_selection_text();
}
auto line = String::format("%02X", m_buffer[byte_position]);
@@ -569,9 +577,9 @@ void HexEditor::paint_event(GUI::PaintEvent& event)
};
// selection highlighting.
if (highlight_flag) {
- painter.fill_rect(text_display_rect, highlight_color);
+ painter.fill_rect(text_display_rect, palette().selection());
} else if (byte_position == m_position) {
- painter.fill_rect(text_display_rect, Color::from_rgb(0xCCCCCC));
+ painter.fill_rect(text_display_rect, palette().inactive_selection());
}
painter.draw_text(text_display_rect, String::format("%c", isprint(m_buffer[byte_position]) ? m_buffer[byte_position] : '.'), Gfx::TextAlignment::TopLeft, text_color);