Polyphase Game Engine
Loading...
Searching...
No Matches
ToolTipWidget.h
Go to the documentation of this file.
1#pragma once
2
4#include "AssetRef.h"
5
6class Quad;
7class Text;
8class Texture;
9
11{
12public:
13
15
16 virtual void Create() override;
17 virtual void PreRender() override;
18 virtual void GatherProperties(std::vector<Property>& props) override;
19
20 // Content
21 void SetTooltipTitle(const std::string& name);
22 const std::string& GetTooltipTitle() const;
23 void SetTooltipText(const std::string& description);
24 const std::string& GetTooltipText() const;
25 void SetContent(const std::string& name, const std::string& description);
26 void ConfigureFromWidget(Widget* widget);
27
28 // Styling - Background
29 void SetBackgroundColor(glm::vec4 color);
30 glm::vec4 GetBackgroundColor() const;
31 void SetBackgroundTexture(Texture* texture);
32 Texture* GetBackgroundTexture();
33 void SetCornerRadius(float radius);
34 float GetCornerRadius() const;
35
36 // Styling - Text
37 void SetTitleFontSize(float size);
38 float GetTitleFontSize() const;
39 void SetTextFontSize(float size);
40 float GetTextFontSize() const;
41 void SetTitleColor(glm::vec4 color);
42 glm::vec4 GetTitleColor() const;
43 void SetTextColor(glm::vec4 color);
44 glm::vec4 GetTextColor() const;
45
46 // Styling - Layout
47 void SetPadding(float left, float top, float right, float bottom);
48 float GetPaddingLeft() const;
49 float GetPaddingTop() const;
50 float GetPaddingRight() const;
51 float GetPaddingBottom() const;
52 void SetMaxWidth(float width);
53 float GetMaxWidth() const;
54 void SetTitleTextSpacing(float spacing);
55 float GetTitleTextSpacing() const;
56
57 // Access child widgets
58 Quad* GetBackground();
59 Text* GetTitleText();
60 Text* GetDescriptionText();
61
62protected:
63
64 void UpdateLayout();
65 void EnsureChildWidgets();
66
67 // Content
68 std::string mTooltipTitle;
69 std::string mTooltipText;
70
71 // Styling - Background
72 glm::vec4 mBackgroundColor = glm::vec4(0.1f, 0.1f, 0.15f, 0.95f);
73 float mCornerRadius = 4.0f;
75
76 // Styling - Text
77 float mTitleFontSize = 14.0f;
78 float mTextFontSize = 12.0f;
79 glm::vec4 mTitleColor = glm::vec4(1.0f, 1.0f, 1.0f, 1.0f);
80 glm::vec4 mTextColor = glm::vec4(0.8f, 0.8f, 0.8f, 1.0f);
81
82 // Styling - Layout
83 float mPaddingLeft = 8.0f;
84 float mPaddingTop = 6.0f;
85 float mPaddingRight = 8.0f;
86 float mPaddingBottom = 6.0f;
87 float mMaxWidth = 300.0f;
88 float mTitleTextSpacing = 4.0f;
89
90 // Child widgets (transient)
91 Quad* mBackground = nullptr;
92 Text* mTitleTextWidget = nullptr;
93 Text* mDescriptionTextWidget = nullptr;
94};
#define POLYPHASE_API
Definition PolyphaseAPI.h:31
Definition AssetRef.h:18
virtual void Create()
Definition Node.cpp:220
Definition Quad.h:20
Definition Text.h:24
Definition Texture.h:10
Definition ToolTipWidget.h:11
TextureRef mBackgroundTexture
Definition ToolTipWidget.h:74
DECLARE_NODE(ToolTipWidget, Widget)
std::string mTooltipText
Definition ToolTipWidget.h:69
std::string mTooltipTitle
Definition ToolTipWidget.h:68
Definition Widget.h:53
virtual void GatherProperties(std::vector< Property > &outProps) override
Definition Widget.cpp:115
virtual void PreRender()
Definition Widget.cpp:226