KTech 1.1.0
C++ 2D terminal game engine library
Loading...
Searching...
No Matches
Switch Class Reference

Widget that toggles a value and calls a callback function when pressed. More...

#include <switch.hpp>

Inheritance diagram for Switch:
KTech::Widget

Public Member Functions

 Switch (KTech::Engine &engine, KTech::ID< KTech::UI > ui, std::function< void()> OnPress, const std::string &key=KTech::Keys::return_, KTech::Point position={ 0, 0 }, const std::string &text="Switch", bool on=false, bool withFrame=false, KTech::RGBA unselectedOff=KTech::RGBAColors::gray, KTech::RGBA selectedOff=KTech::RGBAColors::white, KTech::RGBA unselectedOn=KTech::RGBAColors::Widgets::switchUnselectedOnGreen, KTech::RGBA selectedOn=KTech::RGBAColors::Widgets::switchSelectedOnGreen, KTech::RGBA down=KTech::RGBAColors::Widgets::buttonDownBlue)
 Construct a Switch.
 
void SetText (const std::string &text, bool withFrame)
 Change the displayed text.
 
void SetValue (bool value)
 Set the toggled value.
 
- Public Member Functions inherited from KTech::Widget
 Widget (Engine &engine, Point position=Point(0, 0), std::string name="")
 Construct a Widget.
 
 Widget (Engine &engine, const ID< UI > &parentUI, Point position=Point(0, 0), std::string name="")
 Construct a Widget and immediately enter a UI.
 
virtual ~Widget ()
 Leave parent UI (if in one) and remove itself from Memory.
 
auto AddWidget (const ID< Widget > &widget) -> bool
 Undocumented due to planned changes (see GitHub issue #106).
 
auto RemoveWidget (const ID< Widget > &widget) -> bool
 Undocumented due to planned changes (see GitHub issue #106).
 
auto RemoveAllWidgets () -> bool
 Undocumented due to planned changes (see GitHub issue #106).
 
auto EnterWidget (const ID< Widget > &widget) -> bool
 Undocumented due to planned changes (see GitHub issue #106).
 
auto EnterUI (const ID< UI > &ui) -> bool
 Enter a UI.
 
auto LeaveWidget () -> bool
 Undocumented due to planned changes (see GitHub issue #106).
 
auto LeaveUI () -> bool
 Leave the parent UI.
 
void Select ()
 Enable input callbacks, and call Widget::OnSelect().
 
void Deselect ()
 Disable input callbacks, and call Widget::OnDisable().
 
void Show ()
 Let UI render this Widget, and call Widget::OnShow().
 
void Hide ()
 Don't let UI render this Widget, and call Widget::OnHide().
 

Public Attributes

bool m_on = false
 Toggled value.
 
std::function< void()> m_OnPress
 Function to call when pressed.
 
- Public Attributes inherited from KTech::Widget
Engineengine
 Parent Engine.
 
const ID< Widgetm_id {ID<Widget>::Unique()}
 Personal ID.
 
std::string m_name
 String name.
 
ID< UIm_parentUI
 The UI containing this Widget.
 
ID< Widgetm_parentWidget = nullID<Widget>
 Undocumented because it's planned to change (see GitHub issue #106).
 
std::vector< ChildWidget > m_childWidgets
 Undocumented because it's planned to change (see GitHub issue #106).
 
bool m_selected = false
 true: player input reaches the Widget. false: player input doesn't.
 
bool m_shown = true
 true: will be rendered by UI. false: will be ignored by UI.
 
Point m_pos
 World position.
 
std::vector< Texturem_textures = {}
 Comprising Textures.
 
Input::CallbackGroup m_callbackGroup
 Group of all input callbacks, which are enabled and disabled in correspondence to Widget::m_selected.
 

Additional Inherited Members

- Protected Member Functions inherited from KTech::Widget
virtual auto OnTick () -> bool
 Virtual function called once each tick.
 
virtual void OnShow ()
 Virtual function called by Widget::Show().
 
virtual void OnHide ()
 Virtual function called by Widget::Hide().
 

Detailed Description

Widget that toggles a value and calls a callback function when pressed.

Constructor & Destructor Documentation

◆ Switch()

Switch::Switch ( KTech::Engine & engine,
KTech::ID< KTech::UI > ui,
std::function< void()> OnPress,
const std::string & key = KTech::Keys::return_,
KTech::Point position = { 0, 0 },
const std::string & text = "Switch",
bool on = false,
bool withFrame = false,
KTech::RGBA unselectedOff = KTech::RGBAColors::gray,
KTech::RGBA selectedOff = KTech::RGBAColors::white,
KTech::RGBA unselectedOn = KTech::RGBAColors::Widgets::switchUnselectedOnGreen,
KTech::RGBA selectedOn = KTech::RGBAColors::Widgets::switchSelectedOnGreen,
KTech::RGBA down = KTech::RGBAColors::Widgets::buttonDownBlue )
inline

Construct a Switch.

Parameters
[in]engineParent Engine.
[in]uiKTech::UI to immediately enter.
[in]OnPressCallback function.
[in]keyKey needed to press the Switch (when it is selected).
[in]positionWorld position.
[in]textText within the Switch.
[in]onWhether the Switch is on or off by default.
[in]withFrameWhether to add a frame around the text.
[in]unselectedOffForeground (text and frame) color set when Switch is unselected and off.
[in]selectedOffForeground color set when Switch is selected and off.
[in]unselectedOnForeground color set when Switch is unselected and on.
[in]selectedOnForeground color set when Switch is selected and on.
[in]downForeground color set when Switch is being pressed.

Member Function Documentation

◆ SetText()

void Switch::SetText ( const std::string & text,
bool withFrame )
inline

Change the displayed text.

Parameters
[in]textText within the Switch.
[in]withFrameWhether to add a frame around the text.

◆ SetValue()

void Switch::SetValue ( bool value)
inline

Set the toggled value.

Parameters
[in]valueOn or off.

The documentation for this class was generated from the following file: