2023-03-20 16:23:25 +01:00
|
|
|
#pragma once
|
|
|
|
|
2024-06-19 16:20:06 +02:00
|
|
|
#include "helpers/math/Math.hpp"
|
2024-02-05 02:56:38 +01:00
|
|
|
#include <functional>
|
2024-06-19 16:20:06 +02:00
|
|
|
#include <any>
|
|
|
|
#include <hyprutils/math/Box.hpp>
|
|
|
|
|
|
|
|
using namespace Hyprutils::Math;
|
2023-11-04 18:27:21 +01:00
|
|
|
|
2023-12-06 23:54:56 +01:00
|
|
|
enum eIcons {
|
2023-03-20 16:23:25 +01:00
|
|
|
ICON_WARNING = 0,
|
|
|
|
ICON_INFO,
|
|
|
|
ICON_HINT,
|
|
|
|
ICON_ERROR,
|
|
|
|
ICON_CONFUSED,
|
2023-03-20 16:49:46 +01:00
|
|
|
ICON_OK,
|
2023-03-20 16:23:25 +01:00
|
|
|
ICON_NONE
|
2023-04-18 00:45:03 +02:00
|
|
|
};
|
|
|
|
|
2023-12-06 23:54:56 +01:00
|
|
|
enum eRenderStage {
|
2023-04-18 00:45:03 +02:00
|
|
|
RENDER_PRE = 0, /* Before binding the gl context */
|
|
|
|
RENDER_BEGIN, /* Just when the rendering begins, nothing has been rendered yet. Damage, current render data in opengl valid. */
|
|
|
|
RENDER_PRE_WINDOWS, /* Pre windows, post bottom and overlay layers */
|
|
|
|
RENDER_POST_WINDOWS, /* Post windows, pre top/overlay layers, etc */
|
|
|
|
RENDER_LAST_MOMENT, /* Last moment to render with the gl context */
|
|
|
|
RENDER_POST, /* After rendering is finished, gl context not available anymore */
|
|
|
|
RENDER_POST_MIRROR, /* After rendering a mirror */
|
2023-05-26 13:07:45 +02:00
|
|
|
RENDER_PRE_WINDOW, /* Before rendering a window (any pass) Note some windows (e.g. tiled) may have 2 passes (main & popup) */
|
|
|
|
RENDER_POST_WINDOW, /* After rendering a window (any pass) */
|
2023-10-21 15:52:43 +02:00
|
|
|
};
|
|
|
|
|
2023-12-29 10:24:56 +01:00
|
|
|
enum eInputType {
|
|
|
|
INPUT_TYPE_AXIS = 0,
|
|
|
|
INPUT_TYPE_BUTTON,
|
|
|
|
INPUT_TYPE_DRAG_START,
|
|
|
|
INPUT_TYPE_DRAG_END,
|
|
|
|
INPUT_TYPE_MOTION
|
|
|
|
};
|
|
|
|
|
2023-10-21 15:52:43 +02:00
|
|
|
struct SCallbackInfo {
|
|
|
|
bool cancelled = false; /* on cancellable events, will cancel the event. */
|
2023-11-04 18:03:05 +01:00
|
|
|
};
|
|
|
|
|
2024-02-05 02:56:38 +01:00
|
|
|
enum eHyprCtlOutputFormat {
|
|
|
|
FORMAT_NORMAL = 0,
|
|
|
|
FORMAT_JSON
|
|
|
|
};
|
|
|
|
|
|
|
|
struct SHyprCtlCommand {
|
|
|
|
std::string name = "";
|
|
|
|
bool exact = true;
|
|
|
|
std::function<std::string(eHyprCtlOutputFormat, std::string)> fn;
|
|
|
|
};
|
2024-04-05 22:23:28 +02:00
|
|
|
|
|
|
|
typedef std::function<void(void*, SCallbackInfo&, std::any)> HOOK_CALLBACK_FN;
|