mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-12-03 13:00:29 +00:00
7be0b27dd3
This is just two ints or 8 bytes or the size of the reference on x86_64 or AArch64.
48 lines
1 KiB
C++
48 lines
1 KiB
C++
/*
|
||
* Copyright (c) 2020, Hüseyin Aslıtürk <asliturk@hotmail.com>
|
||
*
|
||
* SPDX-License-Identifier: BSD-2-Clause
|
||
*/
|
||
|
||
#pragma once
|
||
|
||
#include <WindowServer/Window.h>
|
||
#include <WindowServer/WindowManager.h>
|
||
|
||
namespace WindowServer {
|
||
|
||
class AppletManager : public Core::Object {
|
||
C_OBJECT(AppletManager)
|
||
public:
|
||
~AppletManager() = default;
|
||
|
||
static AppletManager& the();
|
||
|
||
virtual void event(Core::Event&) override;
|
||
|
||
void add_applet(Window& applet);
|
||
void remove_applet(Window& applet);
|
||
void draw();
|
||
void invalidate_applet(Window const& applet, Gfx::IntRect const& rect);
|
||
void relayout();
|
||
|
||
void set_position(Gfx::IntPoint);
|
||
|
||
Window* window() { return m_window; }
|
||
Window const* window() const { return m_window; }
|
||
|
||
void did_change_theme();
|
||
|
||
private:
|
||
AppletManager();
|
||
|
||
void repaint();
|
||
void draw_applet(Window const& applet);
|
||
void set_hovered_applet(Window*);
|
||
|
||
Vector<WeakPtr<Window>> m_applets;
|
||
RefPtr<Window> m_window;
|
||
WeakPtr<Window> m_hovered_applet;
|
||
};
|
||
|
||
}
|