Hyprland/src/render/decorations/IHyprWindowDecoration.hpp

37 lines
859 B
C++
Raw Normal View History

#pragma once
#include "../../defines.hpp"
2023-08-07 13:35:19 +02:00
enum eDecorationType {
DECORATION_NONE = -1,
2022-06-25 20:28:40 +02:00
DECORATION_GROUPBAR,
DECORATION_SHADOW,
DECORATION_CUSTOM
};
struct SWindowDecorationExtents {
Vector2D topLeft;
Vector2D bottomRight;
};
class CWindow;
2022-07-27 12:36:56 +02:00
class CMonitor;
2023-08-07 13:35:19 +02:00
class IHyprWindowDecoration {
public:
virtual ~IHyprWindowDecoration() = 0;
virtual SWindowDecorationExtents getWindowDecorationExtents() = 0;
virtual void draw(CMonitor*, float a, const Vector2D& offset = Vector2D()) = 0;
virtual eDecorationType getDecorationType() = 0;
virtual void updateWindow(CWindow*) = 0;
virtual void damageEntire() = 0;
2023-02-28 19:36:36 +00:00
virtual SWindowDecorationExtents getWindowDecorationReservedArea();
2023-02-28 22:32:42 +00:00
virtual bool allowsInput();
};