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

WindowServer: Factor out window frame logic into a WSWindowFrame class.

The window frame is an object that contains a window, its title bar and
window border. This way WSWindowManager doesn't have to know about all the
different types of window borders, titlebar rects, etc.
This commit is contained in:
Andreas Kling 2019-04-05 15:54:56 +02:00
parent 99b98dc653
commit 47d270b577
8 changed files with 312 additions and 237 deletions

View file

@ -0,0 +1,22 @@
#pragma once
class Painter;
class Rect;
class WSMouseEvent;
class WSWindow;
class WSWindowFrame {
public:
WSWindowFrame(WSWindow&);
~WSWindowFrame();
Rect rect() const;
void paint(Painter&);
void on_mouse_event(const WSMouseEvent&);
void notify_window_rect_changed(const Rect& old_rect, const Rect& new_rect);
private:
void handle_close_button_mouse_event(const WSMouseEvent&);
WSWindow& m_window;
};