Hyprland/src/helpers/WLClasses.hpp
2022-03-20 14:00:46 +01:00

81 lines
No EOL
1.8 KiB
C++

#pragma once
#include "../events/Events.hpp"
#include "../defines.hpp"
#include "../../wlr-layer-shell-unstable-v1-protocol.h"
#include "../Window.hpp"
struct SLayerSurface {
wlr_layer_surface_v1* layerSurface;
wl_list link;
DYNLISTENER(destroyLayerSurface);
DYNLISTENER(mapLayerSurface);
DYNLISTENER(unmapLayerSurface);
DYNLISTENER(commitLayerSurface);
DYNLISTENER(newPopup);
wlr_box geometry;
zwlr_layer_shell_v1_layer layer;
int monitorID = -1;
// For the list lookup
bool operator==(const SLayerSurface& rhs) {
return layerSurface == rhs.layerSurface && monitorID == rhs.monitorID;
}
};
struct SRenderData {
wlr_output* output;
timespec* when;
int x;
int y;
};
struct SKeyboard {
wlr_input_device* keyboard;
DYNLISTENER(keyboardMod);
DYNLISTENER(keyboardKey);
DYNLISTENER(keyboardDestroy);
// For the list lookup
bool operator==(const SKeyboard& rhs) {
return keyboard == rhs.keyboard;
}
};
struct SLayerPopup {
wlr_xdg_popup* popup = nullptr;
SLayerSurface* parentSurface = nullptr;
wlr_xdg_popup* parentPopup = nullptr;
DYNLISTENER(mapPopup);
DYNLISTENER(destroyPopup);
DYNLISTENER(unmapPopup);
DYNLISTENER(commitPopup);
DYNLISTENER(newPopupFromPopup);
// For the list lookup
bool operator==(const SLayerPopup& rhs) {
return popup == rhs.popup;
}
};
struct SXDGPopup {
CWindow* parentWindow = nullptr;
wlr_xdg_popup* parentPopup = nullptr;
wlr_xdg_popup* popup = nullptr;
DYNLISTENER(newPopupFromPopupXDG);
DYNLISTENER(destroyPopupXDG);
DYNLISTENER(mapPopupXDG);
DYNLISTENER(unmapPopupXDG);
// For the list lookup
bool operator==(const SXDGPopup& rhs) {
return popup == rhs.popup;
}
};