SDOM - Simple SDL Document Object Model
A lightweight, extensible Document Object Model for SDL-based applications.
Loading...
Searching...
No Matches
SDOM_CheckButton.hpp
Go to the documentation of this file.
1// SDOM_CheckButton.hpp
2#pragma once
3
5
6namespace SDOM
7{
8
10
12 {
13 using SUPER = TristateButton;
14
15 public:
16 // --- Type Info --- //
17 static constexpr const char* TypeName = "CheckButton";
18
19 // --- Initialization Struct --- //
21 {
23 {
24 // from IDisplayObject
25 name = TypeName;
26 type = TypeName;
27 color = {96, 0, 96, 255}; // Icon Color
28 tabEnabled = false;
29 isClickable = true;
30 // from TristateButton
31 text = TypeName;
32 font_size = 8; // default font size is 8
33 label_color = {0, 255, 255, 255}; // default label color is white
34 border_color = {0, 0, 0, 128}; // transparent
36 icon_resource = "internal_icon_8x8"; // Default to internal 8x8 sprite sheet
37 // IconIndex icon_index = IconIndex::Checkbox_Empty;
38 icon_width = 8;
39 icon_height = 8;
40 font_resource = "internal_font_8x8";
41 font_width = 8;
42 font_height = 8;
43 border = false; // default to no border
44 }
45 // Additional CheckButton-specific initialization parameters can be added here in the future.
46
47 }; // END: InitStruct
48
49
50 protected:
51 // --- Constructors --- //
52 CheckButton(const InitStruct& init);
53 CheckButton(const sol::table& config);
54
55 public:
56 // --- Static Factory Methods --- //
57 static std::unique_ptr<IDisplayObject> CreateFromLua(const sol::table& config) {
58 return std::unique_ptr<IDisplayObject>(new CheckButton(config));
59 }
60 static std::unique_ptr<IDisplayObject> CreateFromInitStruct(const IDisplayObject::InitStruct& baseInit) {
61 const auto& CheckButtonInit = static_cast<const CheckButton::InitStruct&>(baseInit);
62 return std::unique_ptr<IDisplayObject>(new CheckButton(CheckButtonInit));
63 }
64
65 // --- Default Constructor and Virtual Destructor --- //
66 CheckButton() = default;
67 virtual ~CheckButton() {};
68
69 // --- Lifecycle & Core Virtuals --- //
70 virtual bool onInit() override;
71 virtual void onQuit() override;
72 virtual void onUpdate(float fElapsedTime) override;
73 virtual void onEvent(const Event& event) override;
74 virtual void onRender() override;
75 virtual bool onUnitTest() override;
76
77 // --- Virtual State Accessors (From IButtonObject) --- //
78 virtual ButtonState getState() const;
79 virtual void setState(ButtonState state);
80
81 protected:
82 // --- Protected Virtual Methods (From IButtonObject) --- //
83 virtual void onStateChanged(ButtonState oldState, ButtonState newState) override;
84 virtual IconIndex iconIndexForState(ButtonState state) const override;
85
86 // --- Data Members --- //
87 // ...
88
89 // --- Lua Registration --- //
90 virtual void _registerLuaBindings(const std::string& typeName, sol::state_view lua);
91
92 }; // END: class RadioButton
93
94} // END: namespace SDOM
Definition SDOM_CheckButton.hpp:12
virtual void onRender() override
Definition SDOM_CheckButton.cpp:45
virtual bool onUnitTest() override
Runs unit tests for this object.
Definition SDOM_CheckButton.cpp:50
static std::unique_ptr< IDisplayObject > CreateFromInitStruct(const IDisplayObject::InitStruct &baseInit)
Definition SDOM_CheckButton.hpp:60
virtual void onUpdate(float fElapsedTime) override
Definition SDOM_CheckButton.cpp:35
virtual void onStateChanged(ButtonState oldState, ButtonState newState) override
Definition SDOM_CheckButton.cpp:104
virtual ButtonState getState() const
Definition SDOM_CheckButton.cpp:56
static std::unique_ptr< IDisplayObject > CreateFromLua(const sol::table &config)
Definition SDOM_CheckButton.hpp:57
CheckButton()=default
virtual void _registerLuaBindings(const std::string &typeName, sol::state_view lua)
Definition SDOM_CheckButton.cpp:122
virtual bool onInit() override
Definition SDOM_CheckButton.cpp:25
virtual ~CheckButton()
Definition SDOM_CheckButton.hpp:67
virtual void onQuit() override
Definition SDOM_CheckButton.cpp:30
virtual void onEvent(const Event &event) override
Definition SDOM_CheckButton.cpp:40
static constexpr const char * TypeName
Definition SDOM_CheckButton.hpp:17
virtual IconIndex iconIndexForState(ButtonState state) const override
Definition SDOM_CheckButton.cpp:109
virtual void setState(ButtonState state)
Definition SDOM_CheckButton.cpp:61
Definition SDOM_Event.hpp:55
Definition SDOM_IDisplayObject.hpp:153
Definition SDOM_TristateButton.hpp:16
TristateButton()=default
Contains all core classes and utilities for the SDOM library.
Definition lua_BindHelpers.hpp:7
IconIndex
Definition SDOM_IconIndex.hpp:12
ButtonState
Definition SDOM_IButtonObject.hpp:13
Definition SDOM_CheckButton.hpp:21
InitStruct()
Definition SDOM_CheckButton.hpp:22
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_TristateButton.hpp:25
bool border
Definition SDOM_TristateButton.hpp:48
std::string icon_resource
Definition SDOM_TristateButton.hpp:41
int font_height
Definition SDOM_TristateButton.hpp:47
ButtonState state
Definition SDOM_TristateButton.hpp:40
int font_size
Definition SDOM_TristateButton.hpp:37
int icon_width
Definition SDOM_TristateButton.hpp:43
int icon_height
Definition SDOM_TristateButton.hpp:44
std::string font_resource
Definition SDOM_TristateButton.hpp:45
std::string text
Definition SDOM_TristateButton.hpp:36
SDL_Color label_color
Definition SDOM_TristateButton.hpp:38
int font_width
Definition SDOM_TristateButton.hpp:46
SDL_Color border_color
Definition SDOM_TristateButton.hpp:39