Hypr/src/window.hpp
2021-12-04 23:16:24 +01:00

82 lines
No EOL
2 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);
EXPOSED_MEMBER(ClassName, std::string, sz);
// Tells the window manager to reload the window's params
EXPOSED_MEMBER(Dirty, bool, b);
void setDirtyRecursive(bool);
// ONLY for dwindle layout!
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);
// Docks etc
EXPOSED_MEMBER(Immovable, bool, b);
EXPOSED_MEMBER(NoInterventions, bool, b);
// ICCCM
EXPOSED_MEMBER(CanKill, bool, b);
// Master layout
EXPOSED_MEMBER(Master, bool, b);
EXPOSED_MEMBER(MasterChildIndex, int, i);
EXPOSED_MEMBER(Dead, bool, b);
private:
};