TGUI  1.6.1
Loading...
Searching...
No Matches
CheckBox.hpp
1
2//
3// TGUI - Texus' Graphical User Interface
4// Copyright (C) 2012-2024 Bruno Van de Velde (vdv_b@tgui.eu)
5//
6// This software is provided 'as-is', without any express or implied warranty.
7// In no event will the authors be held liable for any damages arising from the use of this software.
8//
9// Permission is granted to anyone to use this software for any purpose,
10// including commercial applications, and to alter it and redistribute it freely,
11// subject to the following restrictions:
12//
13// 1. The origin of this software must not be misrepresented;
14// you must not claim that you wrote the original software.
15// If you use this software in a product, an acknowledgment
16// in the product documentation would be appreciated but is not required.
17//
18// 2. Altered source versions must be plainly marked as such,
19// and must not be misrepresented as being the original software.
20//
21// 3. This notice may not be removed or altered from any source distribution.
22//
24
25#ifndef TGUI_CHECK_BOX_HPP
26#define TGUI_CHECK_BOX_HPP
27
28#include <TGUI/Renderers/CheckBoxRenderer.hpp>
29#include <TGUI/Widgets/RadioButton.hpp>
30
32
33TGUI_MODULE_EXPORT namespace tgui
34{
38 class TGUI_API CheckBox : public RadioButton
39 {
40 public:
41
42 using Ptr = std::shared_ptr<CheckBox>;
43 using ConstPtr = std::shared_ptr<const CheckBox>;
44
45 static constexpr const char StaticWidgetType[] = "CheckBox";
46
54 CheckBox(const char* typeName = StaticWidgetType, bool initRenderer = true);
55
63 TGUI_NODISCARD static CheckBox::Ptr create(const String& text = "");
64
72 TGUI_NODISCARD static CheckBox::Ptr copy(const CheckBox::ConstPtr& checkbox);
73
78 TGUI_NODISCARD CheckBoxRenderer* getSharedRenderer() override;
79 TGUI_NODISCARD const CheckBoxRenderer* getSharedRenderer() const override;
80
86 TGUI_NODISCARD CheckBoxRenderer* getRenderer() override;
87
96 TGUI_NODISCARD Vector2f getFullSize() const override;
97
106 TGUI_NODISCARD Vector2f getWidgetOffset() const override;
107
114 void setChecked(bool checked) override;
115
119 void leftMouseReleased(Vector2f pos) override;
120
124 void keyPressed(const Event::KeyEvent& event) override;
125
135 bool canHandleKeyPress(const Event::KeyEvent& event) override;
136
143 void draw(BackendRenderTarget& target, RenderStates states) const override;
144
146 protected:
147
153 void rendererChanged(const String& property) override;
154
156 // Resets the sizes of the textures if they are used
158 void updateTextureSizes() override;
159
161 // Makes a copy of the widget
163 TGUI_NODISCARD Widget::Ptr clone() const override;
164
166 private:
167
168 Texture m_textureUncheckedCached;
169 Texture m_textureCheckedCached;
170
172 };
173
175}
176
178
179#endif // TGUI_CHECK_BOX_HPP
Base class for render targets.
Definition BackendRenderTarget.hpp:46
Definition CheckBoxRenderer.hpp:35
CheckBox widget.
Definition CheckBox.hpp:39
CheckBoxRenderer * getRenderer() override
Returns the renderer, which gives access to functions that determine how the widget is displayed.
static CheckBox::Ptr copy(const CheckBox::ConstPtr &checkbox)
Makes a copy of another checkbox.
std::shared_ptr< const CheckBox > ConstPtr
Shared constant widget pointer.
Definition CheckBox.hpp:43
Vector2f getWidgetOffset() const override
Returns the distance between the position where the widget is drawn and where the widget is placed.
void setChecked(bool checked) override
Checks or unchecks the check box.
CheckBoxRenderer * getSharedRenderer() override
Returns the renderer, which gives access to functions that determine how the widget is displayed.
void rendererChanged(const String &property) override
Function called when one of the properties of the renderer is changed.
void draw(BackendRenderTarget &target, RenderStates states) const override
Draw the widget to a render target.
bool canHandleKeyPress(const Event::KeyEvent &event) override
Called by the parent of the widget to check if keyPressed would process the event.
Vector2f getFullSize() const override
Returns the full size of the radio button.
Widget::Ptr clone() const override
Makes a copy of the widget if you don't know its exact type.
std::shared_ptr< CheckBox > Ptr
Shared widget pointer.
Definition CheckBox.hpp:42
static CheckBox::Ptr create(const String &text="")
Creates a new check box widget.
Radio button widget.
Definition RadioButton.hpp:40
Wrapper class to store strings.
Definition String.hpp:96
Texture wrapper that internally reuses resources when multiple Texture objects are loaded from the sa...
Definition Texture.hpp:57
std::shared_ptr< Widget > Ptr
Shared widget pointer.
Definition Widget.hpp:86
Namespace that contains all TGUI functions and classes.
Definition AbsoluteOrRelativeValue.hpp:38
KeyPressed event parameters.
Definition Event.hpp:168
States used for drawing.
Definition RenderStates.hpp:38