Euphoria
eu::gui::Button Struct Referenceabstract

#include <button.h>

Inheritance diagram for eu::gui::Button:
eu::gui::Widget eu::gui::CommandButton

Public Member Functions

 Button (gui::State *state)
 
 ~Button () override
 
 Button (const Button &)=delete
 
 Button (Button &&)=delete
 
void operator= (const Button &)=delete
 
void operator= (Button &&)=delete
 
void set_skin (Skin *new_skin)
 
void update (float dt) override
 
size2f calc_minimum_size () const override
 
void render (render::SpriteRenderer *renderer) const override
 
void visit (Visitor *visitor) override
 
void on_size_changed () override
 
virtual void on_clicked ()=0
 
- Public Member Functions inherited from eu::gui::Widget
 Widget (gui::State *state)
 
virtual ~Widget ()
 
 Widget (const Widget &other)=delete
 
void operator= (const Widget &)=delete
 
 Widget (Widget &&other)=delete
 
void operator= (Widget &&)=delete
 
bool is_active () const
 
bool is_hot () const
 
Rectf get_client_rect () const
 
Rectf get_background_rect () const
 
void set_rect (const Rectf &r)
 
size2f get_preferred_size () const
 
const gui::Stateget_state () const
 
gui::Stateget_state_ptr () const
 

Public Attributes

ButtonStatelast_state
 
std::shared_ptr< render::ScalableSpritesprite
 
TextData text
 
Skinskin
 
core::Tweenable< float > scale
 
core::Tweenable< Rgbimage_color
 
core::Tweenable< Rgbtext_color
 
core::Tweenable< vec2fposition_displacement
 
- Public Attributes inherited from eu::gui::Widget
std::string name
 
Lrud< float > margin
 
Lrud< float > padding
 
gui::Stateui_state
 
LayoutData layout
 
Rectf rect
 

Detailed Description

Definition at line 25 of file button.h.

Constructor & Destructor Documentation

◆ Button() [1/3]

eu::gui::Button::Button ( gui::State state)

Definition at line 14 of file button.cc.

◆ ~Button()

eu::gui::Button::~Button ( )
overridedefault

◆ Button() [2/3]

eu::gui::Button::Button ( const Button )
delete

◆ Button() [3/3]

eu::gui::Button::Button ( Button &&  )
delete

Member Function Documentation

◆ calc_minimum_size()

size2f eu::gui::Button::calc_minimum_size ( ) const
overridevirtual

Implements eu::gui::Widget.

Definition at line 96 of file button.cc.

◆ on_clicked()

virtual void eu::gui::Button::on_clicked ( )
pure virtual

Implemented in eu::gui::CommandButton.

◆ on_size_changed()

void eu::gui::Button::on_size_changed ( )
overridevirtual

Reimplemented from eu::gui::Widget.

Definition at line 168 of file button.cc.

◆ operator=() [1/2]

void eu::gui::Button::operator= ( Button &&  )
delete

◆ operator=() [2/2]

void eu::gui::Button::operator= ( const Button )
delete

◆ render()

void eu::gui::Button::render ( render::SpriteRenderer renderer) const
overridevirtual

Implements eu::gui::Widget.

Definition at line 123 of file button.cc.

◆ set_skin()

void eu::gui::Button::set_skin ( Skin new_skin)

Definition at line 174 of file button.cc.

◆ update()

void eu::gui::Button::update ( float  dt)
overridevirtual

Implements eu::gui::Widget.

Definition at line 30 of file button.cc.

◆ visit()

void eu::gui::Button::visit ( Visitor visitor)
overridevirtual

Implements eu::gui::Widget.

Definition at line 161 of file button.cc.

Member Data Documentation

◆ image_color

core::Tweenable<Rgb> eu::gui::Button::image_color

Definition at line 33 of file button.h.

◆ last_state

ButtonState* eu::gui::Button::last_state

Definition at line 27 of file button.h.

◆ position_displacement

core::Tweenable<vec2f> eu::gui::Button::position_displacement

Definition at line 35 of file button.h.

◆ scale

core::Tweenable<float> eu::gui::Button::scale

Definition at line 32 of file button.h.

◆ skin

Skin* eu::gui::Button::skin

Definition at line 30 of file button.h.

◆ sprite

std::shared_ptr<render::ScalableSprite> eu::gui::Button::sprite

Definition at line 28 of file button.h.

◆ text

TextData eu::gui::Button::text

Definition at line 29 of file button.h.

◆ text_color

core::Tweenable<Rgb> eu::gui::Button::text_color

Definition at line 34 of file button.h.


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