* animation: Refactor AnimatedVariable This commit decomposes the AnimatedVariable class into a base class with the common attribute to all variable types and a templated derived type containing strongly typed info on the type being animated. Access to the typed version is perfomed using the visitor pattern. A utility is provided to build a visitor on the fly using lambdas. Adding a new type to be animated should just be a matter of adding the typed in the list defined by the ANIMABLE_TYPES macro The size of the commit is justified by the API change in the AnimatedVariable class. No more vec(), fl() or col() method but a unified value() method. * animation: Remove visitor pattern * animation: Fix coding style * animation: Fix coding style
31 lines
910 B
C++
31 lines
910 B
C++
#pragma once
|
|
|
|
#include "../defines.hpp"
|
|
#include "../render/Texture.hpp"
|
|
#include "../helpers/AnimatedVariable.hpp"
|
|
|
|
#include <cairo/cairo.h>
|
|
|
|
class CHyprError {
|
|
public:
|
|
CHyprError();
|
|
~CHyprError();
|
|
|
|
void queueCreate(std::string message, const CColor& color);
|
|
void draw();
|
|
void destroy();
|
|
|
|
private:
|
|
void createQueued();
|
|
std::string m_szQueued = "";
|
|
CColor m_cQueued;
|
|
bool m_bQueuedDestroy = false;
|
|
bool m_bIsCreated = false;
|
|
CTexture m_tTexture;
|
|
CAnimatedVariable<float> m_fFadeOpacity;
|
|
CBox m_bDamageBox = {0, 0, 0, 0};
|
|
|
|
bool m_bMonitorChanged = false;
|
|
};
|
|
|
|
inline std::unique_ptr<CHyprError> g_pHyprError; // This is a full-screen error. Treat it with respect, and there can only be one at a time.
|