TGUI  1.0-beta
Loading...
Searching...
No Matches
CheckBox.hpp
1
2//
3// TGUI - Texus' Graphical User Interface
4// Copyright (C) 2012-2022 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
26#ifndef TGUI_CHECK_BOX_HPP
27#define TGUI_CHECK_BOX_HPP
28
29
30#include <TGUI/Renderers/CheckBoxRenderer.hpp>
31#include <TGUI/Widgets/RadioButton.hpp>
32
34
35namespace tgui
36{
40 class TGUI_API CheckBox : public RadioButton
41 {
42 public:
43
44 using Ptr = std::shared_ptr<CheckBox>;
45 using ConstPtr = std::shared_ptr<const CheckBox>;
46
47 static constexpr const char StaticWidgetType[] = "CheckBox";
48
49
57 CheckBox(const char* typeName = StaticWidgetType, bool initRenderer = true);
58
59
68 static CheckBox::Ptr create(const String& text = "");
69
70
79 static CheckBox::Ptr copy(const CheckBox::ConstPtr& checkbox);
80
81
87 const CheckBoxRenderer* getSharedRenderer() const;
88
95
96
106 Vector2f getFullSize() const override;
107
108
118 Vector2f getWidgetOffset() const override;
119
120
127 void setChecked(bool checked) override;
128
129
133 void leftMouseReleased(Vector2f pos) override;
134
138 void keyPressed(const Event::KeyEvent& event) override;
139
140
148 void draw(BackendRenderTarget& target, RenderStates states) const override;
149
150
152 protected:
153
160 void rendererChanged(const String& property) override;
161
162
164 // Resets the sizes of the textures if they are used
166 void updateTextureSizes() override;
167
168
170 // Makes a copy of the widget
172 Widget::Ptr clone() const override;
173
174
176 private:
177
178 Texture m_textureUncheckedCached;
179 Texture m_textureCheckedCached;
180
181
183 };
184
186}
187
189
190#endif // TGUI_CHECK_BOX_HPP
Base class for render targets.
Definition: BackendRenderTarget.hpp:48
Definition: CheckBoxRenderer.hpp:37
CheckBox widget.
Definition: CheckBox.hpp:41
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:45
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.
void rendererChanged(const String &property) override
Function called when one of the properties of the renderer is changed.
CheckBoxRenderer * getRenderer()
Returns the renderer, which gives access to functions that determine how the widget is displayed.
void draw(BackendRenderTarget &target, RenderStates states) const override
Draw the widget to a render target.
Vector2f getFullSize() const override
Returns the full size of the radio button.
CheckBoxRenderer * getSharedRenderer()
Returns the renderer, which gives access to functions that determine how the widget is displayed.
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:44
static CheckBox::Ptr create(const String &text="")
Creates a new check box widget.
Radio button widget.
Definition: RadioButton.hpp:42
Wrapper class to store strings.
Definition: String.hpp:79
Definition: Texture.hpp:52
std::shared_ptr< Widget > Ptr
Shared widget pointer.
Definition: Widget.hpp:73
Namespace that contains all TGUI functions and classes.
Definition: AbsoluteOrRelativeValue.hpp:36
KeyPressed event parameters.
Definition: Event.hpp:167
States used for drawing.
Definition: RenderStates.hpp:39