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

Widget that calls a callback function when pressed. More...

#include <button.hpp>

Inheritance diagram for Button:
KTech::Widget

Public Member Functions

 Button (KTech::Engine &engine, KTech::ID< KTech::UI > ui, std::function< void()> OnPress, const std::string &key=KTech::Keys::return_, KTech::Point position=KTech::Point(0, 0), const std::string &text="Button", bool withFrame=false, KTech::RGBA unselected=KTech::RGBAColors::gray, KTech::RGBA selected=KTech::RGBAColors::white, KTech::RGBA down=KTech::RGBAColors::Widgets::buttonDownBlue)
 Construct a Button.
 
void SetText (const std::string &text, bool withFrame)
 Change the displayed text.
 
- 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

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 calls a callback function when pressed.

Constructor & Destructor Documentation

◆ Button()

Button::Button ( KTech::Engine & engine,
KTech::ID< KTech::UI > ui,
std::function< void()> OnPress,
const std::string & key = KTech::Keys::return_,
KTech::Point position = KTech::Point(0, 0),
const std::string & text = "Button",
bool withFrame = false,
KTech::RGBA unselected = KTech::RGBAColors::gray,
KTech::RGBA selected = KTech::RGBAColors::white,
KTech::RGBA down = KTech::RGBAColors::Widgets::buttonDownBlue )
inline

Construct a Button.

Parameters
[in]engineParent Engine.
[in]uiKTech::UI to immediately enter.
[in]OnPressCallback function.
[in]keyKey needed to press the Button (when it is selected).
[in]positionWorld position.
[in]textText within the Button.
[in]withFrameWhether to add a frame around the text.
[in]unselectedForeground (text and frame) color set when Button is unselected.
[in]selectedForeground color set when Button is selected.
[in]downForeground color set when Button is being pressed.

Member Function Documentation

◆ SetText()

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

Change the displayed text.

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

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