Polyphase Game Engine
Loading...
Searching...
No Matches
InputActionPrompt.h
Go to the documentation of this file.
1#pragma once
2
4#include "AssetRef.h"
5
6class Quad;
7class Text;
8
9// Widget that displays the currently bound input for an action (e.g. "Game.Interact")
10// rendered as a sprite, glyph, or text fallback per the assigned InputPromptStyle's
11// priority chain.
13{
14public:
15
17
19 virtual ~InputActionPrompt();
20
21 virtual void Create() override;
22 virtual void Destroy() override;
23 virtual void GatherProperties(std::vector<Property>& outProps) override;
24 virtual void PreRender() override;
25
26 void SetActionCategory(const std::string& cat);
27 void SetActionName(const std::string& name);
28 const std::string& GetActionCategory() const { return mActionCategory; }
29 const std::string& GetActionName() const { return mActionName; }
30
31 void SetPromptMap(class InputPromptMap* map);
32 void SetPromptStyle(class InputPromptStyle* style);
33 class InputPromptMap* GetPromptMap();
34 class InputPromptStyle* GetPromptStyle();
35
36 // Last-resolved label — useful for Lua/UI to mirror the displayed prompt
37 // (e.g. an accessibility readout or a "rebind" tooltip).
38 const std::string& GetResolvedLabel() const { return mLastLabel; }
39
40 Quad* GetQuadChild() { return mQuadChild; }
41 Text* GetTextChild() { return mTextChild; }
42
43protected:
44
45 static bool HandlePropChange(Datum* datum, uint32_t index, const void* newValue);
46
47 std::string mActionCategory = "Game";
48 std::string mActionName = "Interact";
49
50 AssetRef mPromptMap; // InputPromptMap
51 AssetRef mPromptStyle; // InputPromptStyle
52
53 bool mAutoSize = true;
54
55 Quad* mQuadChild = nullptr;
56 Text* mTextChild = nullptr;
57
58 std::string mLastLabel;
59};
#define POLYPHASE_API
Definition PolyphaseAPI.h:31
Definition AssetRef.h:18
Definition Datum.h:169
Definition InputActionPrompt.h:13
Text * GetTextChild()
Definition InputActionPrompt.h:41
const std::string & GetActionName() const
Definition InputActionPrompt.h:29
AssetRef mPromptStyle
Definition InputActionPrompt.h:51
DECLARE_NODE(InputActionPrompt, Widget)
const std::string & GetResolvedLabel() const
Definition InputActionPrompt.h:38
Quad * GetQuadChild()
Definition InputActionPrompt.h:40
AssetRef mPromptMap
Definition InputActionPrompt.h:50
std::string mLastLabel
Definition InputActionPrompt.h:58
const std::string & GetActionCategory() const
Definition InputActionPrompt.h:28
Definition InputPromptMap.h:49
Definition InputPromptStyle.h:11
virtual void Create()
Definition Node.cpp:235
virtual void Destroy()
Definition Node.cpp:249
Definition Quad.h:20
Definition Text.h:24
Definition Widget.h:53
static bool HandlePropChange(Datum *datum, uint32_t index, const void *newValue)
Definition Widget.cpp:45
virtual void GatherProperties(std::vector< Property > &outProps) override
Definition Widget.cpp:115
virtual void PreRender()
Definition Widget.cpp:226