diff options
Diffstat (limited to 'source/frontend/StarBaseScriptPane.hpp')
-rw-r--r-- | source/frontend/StarBaseScriptPane.hpp | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/source/frontend/StarBaseScriptPane.hpp b/source/frontend/StarBaseScriptPane.hpp new file mode 100644 index 0000000..f88cd40 --- /dev/null +++ b/source/frontend/StarBaseScriptPane.hpp @@ -0,0 +1,45 @@ +#ifndef STAR_BASE_SCRIPT_PANE_HPP +#define STAR_BASE_SCRIPT_PANE_HPP + +#include "StarPane.hpp" +#include "StarLuaComponents.hpp" +#include "StarGuiReader.hpp" + +namespace Star { + +STAR_CLASS(CanvasWidget); +STAR_CLASS(BaseScriptPane); + +// A more 'raw' script pane that doesn't depend on a world being present. +// Requires a derived class to provide a Lua root. +class BaseScriptPane : public Pane { +public: + BaseScriptPane(Json config); + + virtual void show() override; + void displayed() override; + void dismissed() override; + + void tick() override; + + bool sendEvent(InputEvent const& event) override; + + PanePtr createTooltip(Vec2I const& screenPosition) override; + Maybe<String> cursorOverride(Vec2I const& screenPosition) override; +protected: + virtual LuaCallbacks makePaneCallbacks(); + Json m_config; + + GuiReader m_reader; + + Map<CanvasWidgetPtr, String> m_canvasClickCallbacks; + Map<CanvasWidgetPtr, String> m_canvasKeyCallbacks; + + bool m_callbacksAdded; + LuaUpdatableComponent<LuaBaseComponent> m_script; + List<pair<String, AudioInstancePtr>> m_playingSounds; +}; + +} + +#endif |