43 lines
No EOL
1.3 KiB
C++
43 lines
No EOL
1.3 KiB
C++
module;
|
|
|
|
#include <cstdint>
|
|
#include <string>
|
|
|
|
export module Crafter.Graphics:Window;
|
|
import Crafter.Event;
|
|
import :UiElement;
|
|
import :Types;
|
|
import Crafter.Component;
|
|
|
|
export namespace Crafter {
|
|
class Window {
|
|
public:
|
|
Event<MousePoint> onMouseRightClick;
|
|
Event<MousePoint> onMouseLeftClick;
|
|
Event<MousePoint> onMouseRightHold;
|
|
Event<MousePoint> onMouseLeftHold;
|
|
Event<MousePoint> onMouseRightRelease;
|
|
Event<MousePoint> onMouseLeftRelease;
|
|
Event<MouseMoveEvent> onMouseMove;
|
|
Event<MouseMoveEvent> onMouseEnter;
|
|
Event<MouseMoveEvent> onMouseLeave;
|
|
Event<double> onMouseScroll;
|
|
Event<void> onClose;
|
|
MousePoint currentMousePos;
|
|
MousePoint lastMousePos;
|
|
MousePoint mouseDelta;
|
|
bool mouseLeftHeld = false;
|
|
bool mouseRightHeld = false;
|
|
bool heldkeys[255] = {};
|
|
Event<void> onKeyDown[255];
|
|
Event<void> onKeyHold[255];
|
|
Event<void> onKeyUp[255];
|
|
ComponentRefVectorOwning<UiElement> elements;
|
|
std::string name;
|
|
std::uint32_t width;
|
|
std::uint32_t height;
|
|
float scale = 1;
|
|
bool open = true;
|
|
Window(std::string name, std::uint32_t width, std::uint32_t height);
|
|
};
|
|
} |