Hypr/src/window.hpp
2021-11-23 22:15:36 +01:00

68 lines
No EOL
1.7 KiB
C++

#pragma once
#include "defines.hpp"
#include "utilities/Workspace.hpp"
class CWindow {
public:
CWindow();
~CWindow();
void move(Vector2D dest);
void moveByDelta(Vector2D delta);
void resize(Vector2D size);
void resize(float percx, float percy);
// ------------------------------------- //
// Node Stuff //
// ------------------------------------- //
// IDs:
// > 0 : Windows
// == 0 : None
// < 0 : Nodes
EXPOSED_MEMBER(ParentNodeID, int64_t, i);
EXPOSED_MEMBER(ChildNodeAID, int64_t, i);
EXPOSED_MEMBER(ChildNodeBID, int64_t, i);
void generateNodeID();
// ------------------------------------- //
EXPOSED_MEMBER(Name, std::string, sz);
// Tells the window manager to reload the window's params
EXPOSED_MEMBER(Dirty, bool, b);
void setDirtyRecursive(bool);
void recalcSizePosRecursive();
EXPOSED_MEMBER(Size, Vector2D, vec);
EXPOSED_MEMBER(EffectiveSize, Vector2D, vec);
EXPOSED_MEMBER(EffectivePosition, Vector2D, vec);
EXPOSED_MEMBER(Position, Vector2D, vec);
EXPOSED_MEMBER(RealSize, Vector2D, vec);
EXPOSED_MEMBER(RealPosition, Vector2D, vec);
EXPOSED_MEMBER(IsFloating, bool, b);
EXPOSED_MEMBER(Drawable, int64_t, i); // int64_t because it's my internal ID system too.
// Fullscreen
EXPOSED_MEMBER(Fullscreen, bool, b);
// Workspace pointer
EXPOSED_MEMBER(WorkspaceID, int, i);
// For floating
EXPOSED_MEMBER(DefaultSize, Vector2D, vec);
EXPOSED_MEMBER(DefaultPosition, Vector2D, vec);
// Monitors
EXPOSED_MEMBER(Monitor, int, i);
private:
};