1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-14 05:05:00 +00:00
serenity/Userland/Services/WindowServer/AppletManager.h
Andreas Kling ddbe6bd7b4 Userland: Rename Core::Object to Core::EventReceiver
This is a more precise description of what this class actually does.
2023-08-06 20:39:51 +02:00

48 lines
1 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* 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::EventReceiver {
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;
};
}