SDOM - Simple SDL Document Object Model
A lightweight, extensible Document Object Model for SDL-based applications.
Loading...
Searching...
No Matches
SDOM_Radiobox.hpp
Go to the documentation of this file.
1// SDOM_Radiobox.hpp
2#pragma once
3
7
8namespace SDOM
9{
10
12 {
14
15 public:
16 // --- Type Info --- //
17 static constexpr const char* TypeName = "Radiobox";
18
19 // --- Initialization Struct --- //
21 {
23 {
24 // from IDisplayObject
25 name = TypeName;
26 type = TypeName;
27 color = {96, 0, 96, 255}; // Radiobox color
28 tabEnabled = false; // Radioboxes are not tab-enabled by default
29 isClickable = true; // Radioboxes are clickable by default
30
31 icon_resource = "internal_icon_8x8"; // Default to internal 8x8 sprite sheet
32 icon_width = 8; // default icon width is 8
33 icon_height = 8; // default icon height is 8
34 font_resource = "internal_font_8x8"; // Default to internal 8x8 font
35 font_width = 8; // default font width is 8
36 font_height = 8; // default font height is 8
37 }
39 std::string text = "Radiobox"; // default Radiobox text
40 int font_size = 8; // default font size is 8
41 SDL_Color label_color = {255, 255, 255, 255}; // default label color is white
42 SDL_Color border_color = {0, 0, 0, 128}; // transparent
43 bool isChecked = false; // default to unchecked
44 bool border = false; // default to no border
45 }; // END: InitStruct
46 protected:
47 // --- Constructors --- //
48 Radiobox(const InitStruct& init);
49 Radiobox(const sol::table& config);
50
51 public:
52
53 // --- Static Factory Methods --- //
54 static std::unique_ptr<IDisplayObject> CreateFromLua(const sol::table& config) {
55 return std::unique_ptr<IDisplayObject>(new Radiobox(config));
56 }
57 static std::unique_ptr<IDisplayObject> CreateFromInitStruct(const IDisplayObject::InitStruct& baseInit) {
58 const auto& RadioboxInit = static_cast<const Radiobox::InitStruct&>(baseInit);
59 return std::unique_ptr<IDisplayObject>(new Radiobox(RadioboxInit));
60 }
61
62 Radiobox() = default;
63 virtual ~Radiobox() = default;
64
65 // --- Virtual Methods --- //
66 virtual bool onInit() override; // Called when the display object is initialized
67 virtual void onRender() override; // Called to render the display object
68 virtual void onQuit() override; // Called when the display object is being destroyed
69 virtual void onUpdate(float fElapsedTime) override; // Called every frame to update the display object
70 virtual void onEvent(const Event& event) override; // Called when an event occurs
71
73 std::string getText() const { return text_; }
74 void setText(const std::string& newText);
76
77 bool isChecked() const;
78 void setChecked(bool checked);
79
80
81 protected:
82 DisplayHandle labelObject_; // internal label object for group text
83 std::string text_; // initialized label text
84 std::string font_resource_ = "internal_font_8x8"; // default font resource name
85 std::string icon_resource_ = "internal_icon_8x8"; // default icon resource name
86 int font_size_ = 8; // default font size
87 int font_width_ = 8; // default font width
88 int font_height_ = 8; // default font height
89 bool use_border_ = false;
90 bool isChecked_ = false;
91 SDL_Color label_color_ = {255, 255, 255, 255}; // default label color is white
92 SDL_Color border_color_ = {0, 0, 0, 128}; // transparent
93 DisplayHandle iconButtonObject_; // internal icon button object for Radiobox icon
95 int icon_width_ = 8; // default icon width
96 int icon_height_ = 8; // default icon height
97
98 // --- Lua Registration --- //
99 virtual void _registerLuaBindings(const std::string& typeName, sol::state_view lua);
100
101 }; // END: class Radiobox : public IPanelObject
102
103} // END namespace SDOM
Definition SDOM_DisplayHandle.hpp:24
Definition SDOM_Event.hpp:55
Definition SDOM_IButtonObject.hpp:125
Definition SDOM_IPanelObject.hpp:107
Definition SDOM_Radiobox.hpp:12
SDL_Color border_color_
Definition SDOM_Radiobox.hpp:92
virtual void _registerLuaBindings(const std::string &typeName, sol::state_view lua)
Definition SDOM_Radiobox.cpp:414
int font_size_
Definition SDOM_Radiobox.hpp:86
DisplayHandle labelObject_
Definition SDOM_Radiobox.hpp:82
virtual ~Radiobox()=default
bool isChecked_
Definition SDOM_Radiobox.hpp:90
static constexpr const char * TypeName
Definition SDOM_Radiobox.hpp:17
void setText(const std::string &newText)
Definition SDOM_Radiobox.cpp:391
DisplayHandle getLabelObject() const
Definition SDOM_Radiobox.hpp:72
virtual bool onInit() override
Definition SDOM_Radiobox.cpp:172
DisplayHandle getIconButtonObject() const
Definition SDOM_Radiobox.hpp:75
virtual void onRender() override
Definition SDOM_Radiobox.cpp:269
std::string icon_resource_
Definition SDOM_Radiobox.hpp:85
bool isChecked() const
Definition SDOM_Radiobox.cpp:339
std::string text_
Definition SDOM_Radiobox.hpp:83
void setChecked(bool checked)
Definition SDOM_Radiobox.cpp:345
std::string getText() const
Definition SDOM_Radiobox.hpp:73
int font_height_
Definition SDOM_Radiobox.hpp:88
static std::unique_ptr< IDisplayObject > CreateFromLua(const sol::table &config)
Definition SDOM_Radiobox.hpp:54
int font_width_
Definition SDOM_Radiobox.hpp:87
DisplayHandle iconButtonObject_
Definition SDOM_Radiobox.hpp:93
static std::unique_ptr< IDisplayObject > CreateFromInitStruct(const IDisplayObject::InitStruct &baseInit)
Definition SDOM_Radiobox.hpp:57
int icon_height_
Definition SDOM_Radiobox.hpp:96
bool use_border_
Definition SDOM_Radiobox.hpp:89
int icon_width_
Definition SDOM_Radiobox.hpp:95
virtual void onEvent(const Event &event) override
Definition SDOM_Radiobox.cpp:314
IconIndex icon_index_
Definition SDOM_Radiobox.hpp:94
std::string font_resource_
Definition SDOM_Radiobox.hpp:84
SDL_Color label_color_
Definition SDOM_Radiobox.hpp:91
Radiobox()=default
virtual void onQuit() override
Definition SDOM_Radiobox.cpp:263
virtual void onUpdate(float fElapsedTime) override
Definition SDOM_Radiobox.cpp:309
Contains all core classes and utilities for the SDOM library.
Definition lua_BindHelpers.hpp:7
IconIndex
Definition SDOM_IconIndex.hpp:12
Definition SDOM_IDisplayObject.hpp:187
std::string type
Definition SDOM_IDisplayObject.hpp:189
bool tabEnabled
Definition SDOM_IDisplayObject.hpp:212
std::string name
Definition SDOM_IDisplayObject.hpp:188
SDL_Color color
Definition SDOM_IDisplayObject.hpp:194
bool isClickable
Definition SDOM_IDisplayObject.hpp:208
Definition SDOM_IPanelObject.hpp:116
std::string font_resource
Definition SDOM_IPanelObject.hpp:127
std::string icon_resource
Definition SDOM_IPanelObject.hpp:124
int font_height
Definition SDOM_IPanelObject.hpp:129
int font_width
Definition SDOM_IPanelObject.hpp:128
int icon_height
Definition SDOM_IPanelObject.hpp:126
int icon_width
Definition SDOM_IPanelObject.hpp:125
Definition SDOM_Radiobox.hpp:21
InitStruct()
Definition SDOM_Radiobox.hpp:22
int font_size
Definition SDOM_Radiobox.hpp:40
std::string text
Definition SDOM_Radiobox.hpp:39
IconIndex icon_index
Definition SDOM_Radiobox.hpp:38
SDL_Color label_color
Definition SDOM_Radiobox.hpp:41
bool border
Definition SDOM_Radiobox.hpp:44
bool isChecked
Definition SDOM_Radiobox.hpp:43
SDL_Color border_color
Definition SDOM_Radiobox.hpp:42