mirror of
https://github.com/RGBCube/serenity
synced 2025-05-30 22:18:11 +00:00
WindowServer+LibGfx: Move notification window frame painting to LibGfx
ClassicWindowTheme can now also paint notification window frames.
This commit is contained in:
parent
e7460b6fb4
commit
c81c8b68bb
4 changed files with 17 additions and 16 deletions
|
@ -132,8 +132,21 @@ ClassicWindowTheme::FrameColors ClassicWindowTheme::compute_frame_colors(WindowS
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ClassicWindowTheme::paint_notification_frame(Painter&, const IntRect&, const Palette&) const
|
void ClassicWindowTheme::paint_notification_frame(Painter& painter, const IntRect& outer_rect, const IntRect& window_rect, const Palette& palette, const IntRect& close_button_rect) const
|
||||||
{
|
{
|
||||||
|
Gfx::StylePainter::paint_window_frame(painter, outer_rect, palette);
|
||||||
|
|
||||||
|
auto titlebar_rect = title_bar_rect(WindowType::Notification, window_rect, palette);
|
||||||
|
painter.fill_rect_with_gradient(Gfx::Orientation::Vertical, titlebar_rect, palette.active_window_border1(), palette.active_window_border2());
|
||||||
|
|
||||||
|
int stripe_top = close_button_rect.bottom() + 4;
|
||||||
|
int stripe_bottom = window_rect.height() - 3;
|
||||||
|
if (stripe_top && stripe_bottom && stripe_top < stripe_bottom) {
|
||||||
|
for (int i = 2; i <= palette.window_title_height() - 2; i += 2) {
|
||||||
|
painter.draw_line({ titlebar_rect.x() + i, stripe_top }, { titlebar_rect.x() + i, stripe_bottom }, palette.active_window_title_stripes());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,7 +37,7 @@ public:
|
||||||
virtual ~ClassicWindowTheme() override;
|
virtual ~ClassicWindowTheme() override;
|
||||||
|
|
||||||
virtual void paint_normal_frame(Painter&, WindowState, const IntRect& outer_rect, const IntRect& window_rect, const StringView& title, const Bitmap& icon, const Palette&, const IntRect& leftmost_button_rect) const override;
|
virtual void paint_normal_frame(Painter&, WindowState, const IntRect& outer_rect, const IntRect& window_rect, const StringView& title, const Bitmap& icon, const Palette&, const IntRect& leftmost_button_rect) const override;
|
||||||
virtual void paint_notification_frame(Painter&, const IntRect&, const Palette&) const override;
|
virtual void paint_notification_frame(Painter&, const IntRect& outer_rect, const IntRect& window_rect, const Palette&, const IntRect& close_button_rect) const override;
|
||||||
|
|
||||||
virtual IntRect title_bar_rect(WindowType, const IntRect& window_rect, const Palette&) const override;
|
virtual IntRect title_bar_rect(WindowType, const IntRect& window_rect, const Palette&) const override;
|
||||||
virtual IntRect title_bar_icon_rect(WindowType, const IntRect& window_rect, const Palette&) const override;
|
virtual IntRect title_bar_icon_rect(WindowType, const IntRect& window_rect, const Palette&) const override;
|
||||||
|
|
|
@ -50,7 +50,7 @@ public:
|
||||||
static WindowTheme& current();
|
static WindowTheme& current();
|
||||||
|
|
||||||
virtual void paint_normal_frame(Painter&, WindowState, const IntRect& outer_rect, const IntRect& window_rect, const StringView& title, const Bitmap& icon, const Palette&, const IntRect& leftmost_button_rect) const = 0;
|
virtual void paint_normal_frame(Painter&, WindowState, const IntRect& outer_rect, const IntRect& window_rect, const StringView& title, const Bitmap& icon, const Palette&, const IntRect& leftmost_button_rect) const = 0;
|
||||||
virtual void paint_notification_frame(Painter&, const IntRect&, const Palette&) const = 0;
|
virtual void paint_notification_frame(Painter&, const IntRect& outer_rect, const IntRect& window_rect, const Palette&, const IntRect& close_button_rect) const = 0;
|
||||||
|
|
||||||
virtual IntRect title_bar_rect(WindowType, const IntRect& window_rect, const Palette&) const = 0;
|
virtual IntRect title_bar_rect(WindowType, const IntRect& window_rect, const Palette&) const = 0;
|
||||||
virtual IntRect title_bar_icon_rect(WindowType, const IntRect& window_rect, const Palette&) const = 0;
|
virtual IntRect title_bar_icon_rect(WindowType, const IntRect& window_rect, const Palette&) const = 0;
|
||||||
|
|
|
@ -161,19 +161,7 @@ void WindowFrame::paint_notification_frame(Gfx::Painter& painter)
|
||||||
{
|
{
|
||||||
auto palette = WindowManager::the().palette();
|
auto palette = WindowManager::the().palette();
|
||||||
Gfx::IntRect outer_rect = { {}, rect().size() };
|
Gfx::IntRect outer_rect = { {}, rect().size() };
|
||||||
|
Gfx::WindowTheme::current().paint_notification_frame(painter, outer_rect, m_window.rect(), palette, m_buttons.last().relative_rect());
|
||||||
Gfx::StylePainter::paint_window_frame(painter, outer_rect, palette);
|
|
||||||
|
|
||||||
auto titlebar_rect = title_bar_rect();
|
|
||||||
painter.fill_rect_with_gradient(Gfx::Orientation::Vertical, titlebar_rect, palette.active_window_border1(), palette.active_window_border2());
|
|
||||||
|
|
||||||
int stripe_top = m_buttons.last().relative_rect().bottom() + 4;
|
|
||||||
int stripe_bottom = m_window.height() - 3;
|
|
||||||
if (stripe_top && stripe_bottom && stripe_top < stripe_bottom) {
|
|
||||||
for (int i = 2; i <= palette.window_title_height() - 2; i += 2) {
|
|
||||||
painter.draw_line({ titlebar_rect.x() + i, stripe_top }, { titlebar_rect.x() + i, stripe_bottom }, palette.active_window_title_stripes());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void WindowFrame::paint_normal_frame(Gfx::Painter& painter)
|
void WindowFrame::paint_normal_frame(Gfx::Painter& painter)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue