Polyphase Game Engine
Loading...
Searching...
No Matches
LineEdit.h
Go to the documentation of this file.
1#pragma once
2
4
5class Text;
6class InputField;
7
9{
10public:
11
13
14 virtual void Create() override;
15 virtual void GatherProperties(std::vector<Property>& props) override;
16 virtual void Tick(float deltaTime) override;
17 virtual void EditorTick(float deltaTime) override;
18 virtual void PreRender() override;
19
20 // Title
21 void SetTitle(const std::string& title);
22 const std::string& GetTitle() const;
23 void SetTitleWidth(float width);
24 float GetTitleWidth() const;
25
26 // InputField passthrough - Text manipulation
27 void SetText(const std::string& text);
28 const std::string& GetText() const;
29 void SetPlaceholder(const std::string& placeholder);
30 const std::string& GetPlaceholder() const;
31
32 // InputField passthrough - Caret/selection
33 void SetCaretPosition(int32_t pos);
34 int32_t GetCaretPosition() const;
35 void SelectAll();
36 void ClearSelection();
37 bool HasSelection() const;
38 std::string GetSelectedText() const;
39 void DeleteSelection();
40 void Select(int32_t start, int32_t end);
41 int32_t GetSelectionStart() const;
42 int32_t GetSelectionEnd() const;
43
44 // InputField passthrough - Focus
45 void SetFocused(bool focused);
46 bool IsFocused() const;
47
48 // InputField passthrough - Options
49 void SetPasswordMode(bool enabled);
50 bool IsPasswordMode() const;
51 void SetMaxLength(int32_t maxLen);
52 int32_t GetMaxLength() const;
53 void SetEditable(bool editable);
54 bool IsEditable() const;
55
56 // Children
57 Text* GetTitleWidget();
58 InputField* GetInputField();
59
60protected:
61
62 static bool HandlePropChange(Datum* datum, uint32_t index, const void* newValue);
63
64 void UpdateLayout();
65
66 // Title
67 std::string mTitle = "Label";
68 float mTitleWidth = 100.0f;
69 float mSpacing = 8.0f;
70 glm::vec4 mTitleColor = { 1.0f, 1.0f, 1.0f, 1.0f };
71
72 // Children
73 Text* mTitleWidget = nullptr;
74 InputField* mInputField = nullptr;
75};
#define POLYPHASE_API
Definition PolyphaseAPI.h:31
Definition Datum.h:164
Definition InputField.h:10
Definition LineEdit.h:9
DECLARE_NODE(LineEdit, Widget)
virtual void EditorTick(float deltaTime)
Definition Node.cpp:563
virtual void Create()
Definition Node.cpp:220
virtual void Tick(float deltaTime)
Definition Node.cpp:558
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