Gorgon Game Engine
Button Class Reference
Inheritance diagram for Button:
[legend]

Public Member Functions

 Button (const Button &)=delete
 
template<class F_ >
 Button (const char *text, F_ clickfn, Registry::TemplateType type=Registry::Button_Regular)
 
 Button (const char *text, Registry::TemplateType type=Registry::Button_Regular)
 
 Button (const UI::Template &temp, const char *text)
 
template<class F_ >
 Button (const UI::Template &temp, const char *text, F_ clickfn)
 
template<class F_ >
 Button (const UI::Template &temp, F_ clickfn)
 
template<class F_ >
 Button (const UI::Template &temp, std::string text, F_ clickfn)
 
 Button (const UI::Template &temp, std::string text="")
 
template<class F_ >
 Button (F_ clickfn, Registry::TemplateType type=Registry::Button_Regular)
 
 Button (Registry::TemplateType type=Registry::Button_Regular)
 
template<class F_ >
 Button (std::string text, F_ clickfn, Registry::TemplateType type=Registry::Button_Regular)
 
 Button (std::string text, Registry::TemplateType type=Registry::Button_Regular)
 
virtual ~Button ()
 
virtual bool Activate () override
 Activates the widget. More...
 
void ActivateClickRepeat (int delay=500, int repeat=400, int accelerationtime=2000, int minrepeat=200)
 Activates click repeat. More...
 
void DeactivateClickRepeat ()
 Deactivates click repeat. More...
 
const Graphics::DrawableGetIcon () const
 Returns the icon on the button. More...
 
std::string GetText () const
 Returns the text displayed on the button. More...
 
bool HasIcon () const
 Returns if the button has an icon. More...
 
bool KeyEvent (Input::Key key, float state) override
 This function should be called whenever a key is pressed or released. More...
 
void OwnIcon ()
 Transfers the ownership of the current icon. More...
 
void OwnIcon (const Graphics::Animation &value)
 Sets the icon while transferring the ownership. More...
 
void OwnIcon (Graphics::Bitmap &&value)
 Moves the given animation to the icon of the button. More...
 
void RemoveIcon ()
 Removes the icon on the button. More...
 
void SetIcon (const Graphics::Bitmap &value)
 Changes the icon on the button. More...
 
void SetIcon (const Graphics::Drawable &value)
 Changes the icon on the button. More...
 
void SetIconProvider (const Graphics::AnimationProvider &value)
 Changes the icon on the button. More...
 
void SetIconProvider (Graphics::AnimationProvider &&provider)
 Changes the icon on the button. More...
 
void SetText (const std::string &value)
 Changes the text displayed on the button. More...
 
- Public Member Functions inherited from ComponentStackWidget
 ComponentStackWidget (ComponentStackWidget &&)=default
 
 ComponentStackWidget (const Template &temp, std::map< ComponentTemplate::Tag, std::function< Widget *(const Template &)>> generators={})
 
virtual ~ComponentStackWidget ()
 
virtual Geometry::Point GetLocation () const override
 Returns the location of the widget. More...
 
virtual Geometry::Size GetSize () const override
 Returns the size of the widget. More...
 
virtual bool IsEnabled () const override
 Returns whether the widget is enabled. More...
 
virtual void Move (const Geometry::Point &location) override
 Moves this widget to the given position. More...
 
virtual void Move (const Geometry::Point &location)=0
 Moves this widget to the given position. More...
 
void Move (int x, int y)
 Moves this widget to the given position. More...
 
virtual void Resize (const Geometry::Size &size) override
 Changes the size of the widget. More...
 
virtual void Resize (const Geometry::Size &size)=0
 Changes the size of the widget. More...
 
virtual void Resize (int w, int h)
 Changes the size of the widget. More...
 
virtual void SetEnabled (bool value) override
 Sets the enabled state of the widget. More...
 
- Public Member Functions inherited from Widget
 Widget ()
 
 Widget (Widget &&)=default
 
virtual ~Widget ()
 
bool AllowFocus () const
 If this widget can be focused currently. More...
 
virtual bool CharacterEvent (Char)
 This function should be called whenever a character is received from operating system. More...
 
bool Defocus ()
 Removes the focus from this widget if this widget is focused. More...
 
void Disable ()
 Disables the widget so that the user cannot interact with it. More...
 
virtual bool Done ()
 For widgets that supports it, this will trigger finalization the user interaction. More...
 
void Enable ()
 Enables the widget so that the user can interact with it. More...
 
bool EnsureVisible () const
 Ensures this widget is visible in its container by scrolling it into view. More...
 
bool Focus ()
 Transfers the focus to this widget. More...
 
Geometry::Bounds GetBounds () const
 Returns the bounds of the widget. More...
 
int GetHeight () const
 Returns the height of the widget. More...
 
WidgetContainerGetParent () const
 Returns the parent of this widget, throws if it does not have a parent. More...
 
int GetWidth () const
 Returns the width of the widget. More...
 
bool HasParent () const
 Returns if this widget has a parent. More...
 
void Hide ()
 Hides this widget, when hidden, widgets cannot gain focus. More...
 
bool IsFloating () const
 Returns floating status of this widget. More...
 
bool IsFocused () const
 Returns if this widget is focused. More...
 
bool IsVisible () const
 Returns if the widget is visible. More...
 
void Move (int x, int y)
 Moves this widget to the given position. More...
 
bool Remove ()
 Removes the widget from its parent. More...
 
virtual void Resize (int w, int h)
 Changes the size of the widget. More...
 
void SetHeight (int height)
 Sets the height of the widget. More...
 
virtual void SetIsFloating (bool value)
 Sets floating status of this widget. More...
 
void setname (std::string value)
 This is a debug feature. More...
 
void SetVisible (bool value)
 Changes the visibility of the widget. More...
 
void SetWidth (int width)
 Sets the width of the widget. More...
 
void Show ()
 Shows this widget, widgets are visible by default. More...
 
void ToggleEnabled ()
 Toggles enabled state of the widget. More...
 
void ToggleVisible ()
 Toggles the visibility state of the widget. More...
 

Public Attributes

Event< ButtonClickEvent
 
ObjectProperty< Button, const Graphics::Drawable, &Button::GetIcon, &Button::SetIconIcon
 
Event< ButtonPressEvent
 
Event< ButtonReleaseEvent
 
TextualProperty< Button, std::string, &Button::GetText, &Button::SetTextText
 
- Public Attributes inherited from Widget
Event< WidgetBoundsChangedEvent
 This event will be fired when the area that the widget occupies on its container is changed. More...
 
std::string dbgname
 
Event< WidgetFocusEvent
 This event will be fired when the widget receives or looses focus. More...
 
Geometry::PointProperty< Widget, &Widget::getlocation, &Widget::move > Location
 
Geometry::SizeProperty< Widget, &Widget::getsize, &Widget::resize > Size
 

Protected Member Functions

virtual bool allowfocus () const override
 Should return true if the widget can be focused. More...
 
void repeattick ()
 
- Protected Member Functions inherited from ComponentStackWidget
virtual void addto (Layer &layer) override
 When called, widget should locate itself on to this layer. More...
 
virtual void focused () override
 This is called after the focus is transferred to this widget. More...
 
virtual void focuslost () override
 This is called after the focus is lost. More...
 
virtual void parentenabledchanged (bool state) override
 This function is called when the parent's enabled state changes. More...
 
virtual void removed () override
 Called after this widget is removed from its parent. More...
 
virtual void removefrom (Layer &layer) override
 When called, widget should remove itself from the given layer. More...
 
virtual void setlayerorder (Layer &, int order) override
 When called, widget should reorder itself in layer hierarchy. More...
 
- Protected Member Functions inherited from Widget
virtual void addedto (WidgetContainer &container)
 Called when this widget added to the given container. More...
 
virtual bool addingto (WidgetContainer &)
 Called when it is about to be added to the given container. More...
 
virtual void boundschanged ()
 Call this function when the widget bounds is changed. More...
 
virtual bool canloosefocus () const
 Should return true if the widget can loose the focus right now. More...
 
virtual void displaced ()
 Call this function when the widget container causes it to be displaced. More...
 
virtual bool removingfrom ()
 Called before this widget is removed from its parent. More...
 

Additional Inherited Members

- Protected Attributes inherited from ComponentStackWidget
bool enabled
 
bool parentenabled
 
ComponentStackstack
 

Constructor & Destructor Documentation

◆ Button() [1/12]

Button ( const Button )
delete

◆ Button() [2/12]

Button ( std::string  text,
Registry::TemplateType  type = Registry::Button_Regular 
)
explicit

◆ Button() [3/12]

Button ( const char *  text,
Registry::TemplateType  type = Registry::Button_Regular 
)
explicit

◆ Button() [4/12]

◆ Button() [5/12]

Button ( F_  clickfn,
Registry::TemplateType  type = Registry::Button_Regular 
)
explicit

◆ Button() [6/12]

Button ( std::string  text,
F_  clickfn,
Registry::TemplateType  type = Registry::Button_Regular 
)
explicit

◆ Button() [7/12]

Button ( const char *  text,
F_  clickfn,
Registry::TemplateType  type = Registry::Button_Regular 
)
explicit

◆ Button() [8/12]

◆ Button() [9/12]

Button ( const UI::Template temp,
const char *  text 
)

◆ Button() [10/12]

Button ( const UI::Template temp,
F_  clickfn 
)

References Button::ClickEvent.

◆ Button() [11/12]

Button ( const UI::Template temp,
std::string  text,
F_  clickfn 
)

References Button::ClickEvent.

◆ Button() [12/12]

Button ( const UI::Template temp,
const char *  text,
F_  clickfn 
)

◆ ~Button()

~Button ( )
virtual

Member Function Documentation

◆ Activate()

bool Activate ( )
overridevirtual

Activates the widget.

This might perform the action if the widget is a button, forward the focus if it is a label or focus if it is an input field.

Implements Widget.

References Button::ClickEvent.

◆ ActivateClickRepeat()

void ActivateClickRepeat ( int  delay = 500,
int  repeat = 400,
int  accelerationtime = 2000,
int  minrepeat = 200 
)

Activates click repeat.

All parameters are in milliseconds. delay is the time before first repeat. repeat is the initial time between repeats. accelerationtime is time to reach minimum repeat interval. maxrepeat is the minimum time between the repeats.

References Button::repeattick(), ComponentStack::SetFrameEvent(), and ComponentStackWidget::stack.

◆ allowfocus()

bool allowfocus ( ) const
overrideprotectedvirtual

Should return true if the widget can be focused.

Reimplemented from Widget.

References WidgetContainer::AllowAll, WidgetContainer::CurrentFocusStrategy(), Widget::GetParent(), and Widget::HasParent().

◆ DeactivateClickRepeat()

void DeactivateClickRepeat ( )

Deactivates click repeat.

References ComponentStack::RemoveFrameEvent(), and ComponentStackWidget::stack.

◆ GetIcon()

const Graphics::Drawable& GetIcon ( ) const

Returns the icon on the button.

If the button does not have an icon, this function will throw

References Button::HasIcon().

◆ GetText()

std::string GetText ( ) const

Returns the text displayed on the button.

◆ HasIcon()

bool HasIcon ( ) const

Returns if the button has an icon.

◆ KeyEvent()

◆ OwnIcon() [1/3]

void OwnIcon ( )

Transfers the ownership of the current icon.

◆ OwnIcon() [2/3]

void OwnIcon ( const Graphics::Animation value)

Sets the icon while transferring the ownership.

References Button::SetIcon().

◆ OwnIcon() [3/3]

void OwnIcon ( Graphics::Bitmap &&  value)

Moves the given animation to the icon of the button.

References Button::OwnIcon().

◆ RemoveIcon()

void RemoveIcon ( )

◆ repeattick()

void repeattick ( )
protected

◆ SetIcon() [1/2]

void SetIcon ( const Graphics::Bitmap value)

Changes the icon on the button.

The ownership of the bitmap is not transferred. If you wish the bitmap to be destroyed with the button, use OwnIcon instead.

◆ SetIcon() [2/2]

void SetIcon ( const Graphics::Drawable value)

Changes the icon on the button.

The ownership of the animation is not transferred. If you wish the animation to be destroyed with the button, use OwnIcon instead.

References ComponentTemplate::Icon, ComponentStack::SetData(), and ComponentStackWidget::stack.

◆ SetIconProvider() [1/2]

void SetIconProvider ( const Graphics::AnimationProvider value)

Changes the icon on the button.

This will create a new animation from the given provider and will own the resultant animation.

References AnimationProvider::CreateAnimation(), and Button::OwnIcon().

◆ SetIconProvider() [2/2]

void SetIconProvider ( Graphics::AnimationProvider &&  provider)

Changes the icon on the button.

This will move in the provider, create a new animation and own both the provider and the animation

References AnimationProvider::CreateAnimation(), and Button::OwnIcon().

◆ SetText()

void SetText ( const std::string &  value)

Changes the text displayed on the button.

References ComponentStack::SetData(), ComponentStackWidget::stack, and ComponentTemplate::Text.

Member Data Documentation

◆ ClickEvent

Event<Button> ClickEvent

◆ Icon

◆ PressEvent

Event<Button> PressEvent

◆ ReleaseEvent

Event<Button> ReleaseEvent

◆ Text


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