SDOM - Simple SDL Document Object Model
A lightweight, extensible Document Object Model for SDL-based applications.
Loading...
Searching...
No Matches
SDOM_Checkbox.hpp
Go to the documentation of this file.
1// SDOM_Checkbox.hpp
2#pragma once
3
7
8namespace SDOM
9{
10
12 {
14
15 public:
16 // --- Type Info --- //
17 static constexpr const char* TypeName = "Checkbox";
18
19 // --- Initialization Struct --- //
21 {
23 {
24 // from IDisplayObject
25 name = TypeName;
26 type = TypeName;
27 color = {96, 0, 96, 255}; // Checkbox color
28 tabEnabled = false; // checkboxes are not tab-enabled by default
29 isClickable = true; // checkboxes 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 = "Checkbox"; // default Checkbox 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 Checkbox(const InitStruct& init);
49 Checkbox(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 Checkbox(config));
56 }
57 static std::unique_ptr<IDisplayObject> CreateFromInitStruct(const IDisplayObject::InitStruct& baseInit) {
58 const auto& checkboxInit = static_cast<const Checkbox::InitStruct&>(baseInit);
59 return std::unique_ptr<IDisplayObject>(new Checkbox(checkboxInit));
60 }
61
62 Checkbox() = default;
63 virtual ~Checkbox() = 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 checkbox 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 Checkbox : public IPanelObject
102
103} // END namespace SDOM
Definition SDOM_Checkbox.hpp:12
virtual bool onInit() override
Definition SDOM_Checkbox.cpp:172
std::string font_resource_
Definition SDOM_Checkbox.hpp:84
int font_width_
Definition SDOM_Checkbox.hpp:87
virtual void _registerLuaBindings(const std::string &typeName, sol::state_view lua)
Definition SDOM_Checkbox.cpp:406
static std::unique_ptr< IDisplayObject > CreateFromInitStruct(const IDisplayObject::InitStruct &baseInit)
Definition SDOM_Checkbox.hpp:57
bool isChecked_
Definition SDOM_Checkbox.hpp:90
std::string text_
Definition SDOM_Checkbox.hpp:83
IconIndex icon_index_
Definition SDOM_Checkbox.hpp:94
int font_size_
Definition SDOM_Checkbox.hpp:86
bool isChecked() const
Definition SDOM_Checkbox.cpp:332
std::string getText() const
Definition SDOM_Checkbox.hpp:73
virtual void onUpdate(float fElapsedTime) override
Definition SDOM_Checkbox.cpp:309
DisplayHandle getIconButtonObject() const
Definition SDOM_Checkbox.hpp:75
void setText(const std::string &newText)
Definition SDOM_Checkbox.cpp:384
Checkbox()=default
virtual void onRender() override
Definition SDOM_Checkbox.cpp:269
static constexpr const char * TypeName
Definition SDOM_Checkbox.hpp:17
bool use_border_
Definition SDOM_Checkbox.hpp:89
virtual ~Checkbox()=default
DisplayHandle getLabelObject() const
Definition SDOM_Checkbox.hpp:72
SDL_Color border_color_
Definition SDOM_Checkbox.hpp:92
std::string icon_resource_
Definition SDOM_Checkbox.hpp:85
virtual void onQuit() override
Definition SDOM_Checkbox.cpp:263
void setChecked(bool checked)
Definition SDOM_Checkbox.cpp:338
int icon_width_
Definition SDOM_Checkbox.hpp:95
static std::unique_ptr< IDisplayObject > CreateFromLua(const sol::table &config)
Definition SDOM_Checkbox.hpp:54
DisplayHandle iconButtonObject_
Definition SDOM_Checkbox.hpp:93
SDL_Color label_color_
Definition SDOM_Checkbox.hpp:91
DisplayHandle labelObject_
Definition SDOM_Checkbox.hpp:82
int icon_height_
Definition SDOM_Checkbox.hpp:96
virtual void onEvent(const Event &event) override
Definition SDOM_Checkbox.cpp:314
int font_height_
Definition SDOM_Checkbox.hpp:88
Definition SDOM_DisplayHandle.hpp:24
Definition SDOM_Event.hpp:55
Definition SDOM_IButtonObject.hpp:125
Definition SDOM_IPanelObject.hpp:107
Contains all core classes and utilities for the SDOM library.
Definition lua_BindHelpers.hpp:7
IconIndex
Definition SDOM_IconIndex.hpp:12
Definition SDOM_Checkbox.hpp:21
std::string text
Definition SDOM_Checkbox.hpp:39
IconIndex icon_index
Definition SDOM_Checkbox.hpp:38
InitStruct()
Definition SDOM_Checkbox.hpp:22
bool border
Definition SDOM_Checkbox.hpp:44
bool isChecked
Definition SDOM_Checkbox.hpp:43
SDL_Color border_color
Definition SDOM_Checkbox.hpp:42
SDL_Color label_color
Definition SDOM_Checkbox.hpp:41
int font_size
Definition SDOM_Checkbox.hpp:40
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