Sparkle 0.0.1
Loading...
Searching...
No Matches
spk_game_engine_widget.hpp
1#pragma once
2
3#include "structure/engine/spk_game_engine.hpp"
4#include "structure/widget/spk_widget.hpp"
5
6namespace spk
7{
18 {
19 private:
20 spk::GameEngine *_engine = nullptr;
21
22 protected:
26 void _onGeometryChange() override;
31 void _onPaintEvent(spk::PaintEvent &p_event) override;
36 void _onKeyPressEvent(spk::KeyPressEvent &p_event) override;
41 void _onKeyReleaseEvent(spk::KeyReleaseEvent &p_event) override;
46 void _onGlyphEvent(spk::GlyphEvent &p_event) override;
51 void _onMousePressEvent(spk::MousePressEvent &p_event) override;
56 void _onMouseReleaseEvent(spk::MouseReleaseEvent &p_event) override;
66 void _onMouseMotionEvent(spk::MouseMotionEvent &p_event) override;
71 void _onMouseWheelEvent(spk::MouseWheelEvent &p_event) override;
81 void _onResizeEvent(spk::ResizeEvent &p_event) override;
91 void _onQuitEvent(spk::QuitEvent &p_event) override;
96 void _onMoveEvent(spk::MoveEvent &p_event) override;
101 void _onFullScreenModeEvent(spk::FullScreenModeEvent &p_event) override;
106 void _onMaximizedModeEvent(spk::MaximizedModeEvent &p_event) override;
111 void _onFocusEvent(spk::FocusEvent &p_event) override;
116 void _onUpdateEvent(spk::UpdateEvent &p_event) override;
117
118 public:
124 GameEngineWidget(const std::wstring &p_name, spk::Widget *p_parent);
125
130 void setGameEngine(spk::GameEngine *p_engine);
140 const spk::GameEngine *gameEngine() const;
141 };
142}
Root container that manages entities and dispatches events.
Definition spk_game_engine.hpp:22
void _onGeometryChange() override
Updates engine viewport when geometry changes.
Definition spk_game_engine_widget.cpp:30
void _onMouseReleaseEvent(spk::MouseReleaseEvent &p_event) override
Forwards mouse release events to the game engine.
Definition spk_game_engine_widget.cpp:90
void _onQuitEvent(spk::QuitEvent &p_event) override
Forwards quit events to the game engine.
Definition spk_game_engine_widget.cpp:160
void _onFullScreenModeEvent(spk::FullScreenModeEvent &p_event) override
Forwards fullscreen mode events to the game engine.
Definition spk_game_engine_widget.cpp:180
GameEngineWidget(const std::wstring &p_name, spk::Widget *p_parent)
Builds a game engine widget.
Definition spk_game_engine_widget.cpp:5
void _onMouseDoubleClickEvent(spk::MouseDoubleClickEvent &p_event) override
Forwards mouse double click events to the game engine.
Definition spk_game_engine_widget.cpp:100
void _onMaximizedModeEvent(spk::MaximizedModeEvent &p_event) override
Forwards maximized mode events to the game engine.
Definition spk_game_engine_widget.cpp:190
void _onMousePressEvent(spk::MousePressEvent &p_event) override
Forwards mouse press events to the game engine.
Definition spk_game_engine_widget.cpp:80
void _onMouseWheelEvent(spk::MouseWheelEvent &p_event) override
Forwards mouse wheel events to the game engine.
Definition spk_game_engine_widget.cpp:120
void _onResizeEvent(spk::ResizeEvent &p_event) override
Forwards resize events to the game engine.
Definition spk_game_engine_widget.cpp:140
void _onPaintEvent(spk::PaintEvent &p_event) override
Paint event forwarded to the game engine.
Definition spk_game_engine_widget.cpp:40
void _onMouseMotionEvent(spk::MouseMotionEvent &p_event) override
Forwards mouse motion events to the game engine.
Definition spk_game_engine_widget.cpp:110
void _onKeyPressEvent(spk::KeyPressEvent &p_event) override
Forwards key press events to the game engine.
Definition spk_game_engine_widget.cpp:50
void _onFocusEvent(spk::FocusEvent &p_event) override
Forwards focus events to the game engine.
Definition spk_game_engine_widget.cpp:200
void _onKeyReleaseEvent(spk::KeyReleaseEvent &p_event) override
Forwards key release events to the game engine.
Definition spk_game_engine_widget.cpp:60
void _onEnterResizeModeEvent(spk::EnterResizeModeEvent &p_event) override
Forwards enter resize mode events to the game engine.
Definition spk_game_engine_widget.cpp:130
void _onUpdateEvent(spk::UpdateEvent &p_event) override
Forwards update events to the game engine.
Definition spk_game_engine_widget.cpp:210
void setGameEngine(spk::GameEngine *p_engine)
Sets the game engine to drive rendering and input.
Definition spk_game_engine_widget.cpp:10
void _onGlyphEvent(spk::GlyphEvent &p_event) override
Forwards glyph input events to the game engine.
Definition spk_game_engine_widget.cpp:70
void _onExitResizeModeEvent(spk::ExitResizeModeEvent &p_event) override
Forwards exit resize mode events to the game engine.
Definition spk_game_engine_widget.cpp:150
void _onMoveEvent(spk::MoveEvent &p_event) override
Forwards move events to the game engine.
Definition spk_game_engine_widget.cpp:170
spk::GameEngine * gameEngine()
Returns the current game engine pointer.
Definition spk_game_engine_widget.cpp:20
Base class for interactive UI elements handling focus and events.
Definition spk_widget.hpp:52
Signals the window enters resize mode.
Definition spk_system_event.hpp:16
Signals the window exits resize mode.
Definition spk_system_event.hpp:34
Reports focus gain or loss.
Definition spk_system_event.hpp:80
Requests or reports fullscreen state.
Definition spk_system_event.hpp:60
Character input event.
Definition spk_keyboard_event.hpp:38
Keyboard key press event.
Definition spk_keyboard_event.hpp:14
Keyboard key release event.
Definition spk_keyboard_event.hpp:26
Requests or reports maximized state.
Definition spk_system_event.hpp:70
Mouse button double-click event.
Definition spk_mouse_event.hpp:38
Mouse move event carrying current position.
Definition spk_mouse_event.hpp:50
Mouse button press event.
Definition spk_mouse_event.hpp:14
Mouse button release event.
Definition spk_mouse_event.hpp:26
Mouse wheel scroll event.
Definition spk_mouse_event.hpp:62
Reports a window move event.
Definition spk_system_event.hpp:50
Event emitted when a drawable region needs repainting.
Definition spk_paint_event.hpp:19
Signals application quit.
Definition spk_system_event.hpp:42
Reports a window/client-area resize.
Definition spk_system_event.hpp:24
Carries per-frame update timing and input state snapshot.
Definition spk_update_event.hpp:15