Hyprland/src/helpers/WLClasses.hpp

86 lines
1.8 KiB
C++
Raw Normal View History

2022-03-17 18:25:16 +01:00
#pragma once
#include "../events/Events.hpp"
#include "../defines.hpp"
2024-03-20 01:44:51 +00:00
#include "../desktop/Window.hpp"
#include "../desktop/Subsurface.hpp"
#include "../desktop/Popup.hpp"
#include "AnimatedVariable.hpp"
#include "../desktop/WLSurface.hpp"
#include "signal/Signal.hpp"
#include "math/Math.hpp"
2022-03-17 18:25:16 +01:00
class CMonitor;
class IPointer;
class IKeyboard;
class CWLSurfaceResource;
AQUAMARINE_FORWARD(ISwitch);
2022-03-17 20:22:29 +01:00
struct SRenderData {
2023-01-25 15:34:13 +00:00
CMonitor* pMonitor;
timespec* when;
double x, y;
2022-03-21 16:13:43 +01:00
// for iters
void* data = nullptr;
SP<CWLSurfaceResource> surface = nullptr;
double w, h;
// for rounding
bool dontRound = true;
2022-04-05 19:28:10 +02:00
// for fade
float fadeAlpha = 1.f;
2022-04-18 18:23:10 +02:00
// for alpha settings
2022-04-18 18:33:50 +02:00
float alpha = 1.f;
2022-05-17 13:16:37 +02:00
// for decorations (border)
bool decorate = false;
2022-05-28 17:48:01 +02:00
// for custom round values
int rounding = -1; // -1 means not set
2022-07-06 22:12:03 +02:00
// for blurring
bool blur = false;
bool blockBlurOptimization = false;
// only for windows, not popups
bool squishOversized = true;
// for calculating UV
PHLWINDOW pWindow;
bool popup = false;
// counts how many surfaces this pass has rendered
int surfaceCounter = 0;
2022-03-17 20:22:29 +01:00
};
2022-03-17 20:55:04 +01:00
2022-07-07 11:52:12 +02:00
struct SSwipeGesture {
PHLWORKSPACE pWorkspaceBegin = nullptr;
2022-07-07 11:52:12 +02:00
double delta = 0;
2022-07-07 11:52:12 +02:00
int initialDirection = 0;
float avgSpeed = 0;
int speedPoints = 0;
int touch_id = 0;
2022-07-07 11:52:12 +02:00
CMonitor* pMonitor = nullptr;
2022-08-05 13:03:37 +02:00
};
2022-10-04 20:07:21 +01:00
struct SSwitchDevice {
WP<Aquamarine::ISwitch> pDevice;
struct {
CHyprSignalListener destroy;
CHyprSignalListener fire;
} listeners;
2022-10-04 20:07:21 +01:00
2023-01-31 00:03:23 +00:00
bool operator==(const SSwitchDevice& other) const {
return pDevice == other.pDevice;
2022-10-04 20:07:21 +01:00
}
};