#include <guiButton.h>
Classes | |
struct | ButtonImage |
struct | ButtonSprite |
Public Member Functions | |
GUIButton (gui::IGUIEnvironment *environment, gui::IGUIElement *parent, s32 id, core::rect< s32 > rectangle, ISimpleTextureSource *tsrc, bool noclip=false) | |
constructor | |
virtual | ~GUIButton () |
destructor | |
virtual bool | OnEvent (const SEvent &event) override |
called if an event happened. | |
virtual void | draw () override |
draws the element and its children | |
virtual void | setOverrideFont (gui::IGUIFont *font=0) override |
sets another skin independent font. if this is set to zero, the button uses the font of the skin. | |
virtual gui::IGUIFont * | getOverrideFont () const override |
Gets the override font (if any) | |
virtual gui::IGUIFont * | getActiveFont () const override |
Get the font which is used right now for drawing. | |
virtual void | setOverrideColor (video::SColor color) override |
Sets another color for the button text. | |
virtual video::SColor | getOverrideColor () const override |
Gets the override color. | |
virtual video::SColor | getActiveColor () const override |
Gets the currently used text color. | |
virtual void | enableOverrideColor (bool enable) override |
Sets if the button text should use the override color or the color in the gui skin. | |
virtual bool | isOverrideColorEnabled (void) const override |
Checks if an override color is enabled. | |
virtual void | setImage (gui::EGUI_BUTTON_IMAGE_STATE state, video::ITexture *image=nullptr, const core::rect< s32 > &sourceRect=core::rect< s32 >(0, 0, 0, 0)) override |
Sets an image which should be displayed on the button when it is in the given state. | |
virtual void | setImage (video::ITexture *image=nullptr) override |
Sets an image which should be displayed on the button when it is in normal state. | |
virtual void | setImage (video::ITexture *image, const core::rect< s32 > &pos) override |
Sets an image which should be displayed on the button when it is in normal state. | |
virtual void | setPressedImage (video::ITexture *image=nullptr) override |
Sets an image which should be displayed on the button when it is in pressed state. | |
virtual void | setPressedImage (video::ITexture *image, const core::rect< s32 > &pos) override |
Sets an image which should be displayed on the button when it is in pressed state. | |
virtual void | setText (const wchar_t *text) override |
Sets the text displayed by the button. | |
virtual void | setSpriteBank (gui::IGUISpriteBank *bank=0) override |
Sets the sprite bank used by the button. | |
virtual void | setSprite (gui::EGUI_BUTTON_STATE state, s32 index, video::SColor color=video::SColor(255, 255, 255, 255), bool loop=false) override |
Sets the animated sprite for a specific button state. | |
virtual s32 | getSpriteIndex (gui::EGUI_BUTTON_STATE state) const override |
Get the sprite-index for the given state or -1 when no sprite is set. | |
virtual video::SColor | getSpriteColor (gui::EGUI_BUTTON_STATE state) const override |
Get the sprite color for the given state. Color is only used when a sprite is set. | |
virtual bool | getSpriteLoop (gui::EGUI_BUTTON_STATE state) const override |
Returns if the sprite in the given state does loop. | |
virtual void | setIsPushButton (bool isPushButton=true) override |
Sets if the button should behave like a push button. | |
virtual bool | isPushButton () const override |
Checks whether the button is a push button. | |
virtual void | setPressed (bool pressed=true) override |
Sets the pressed state of the button if this is a pushbutton. | |
virtual bool | isPressed () const override |
Returns if the button is currently pressed. | |
bool | isHovered () const |
Returns if this element (or one of its direct children) is hovered. | |
bool | isFocused () const |
Returns if this element (or one of its direct children) is focused. | |
virtual void | setDrawBorder (bool border=true) override |
Sets if the button should use the skin to draw its border. | |
virtual bool | isDrawingBorder () const override |
Checks if the button face and border are being drawn. | |
virtual void | setUseAlphaChannel (bool useAlphaChannel=true) override |
Sets if the alpha channel should be used for drawing images on the button (default is false) | |
virtual bool | isAlphaChannelUsed () const override |
Checks if the alpha channel should be used for drawing images on the button. | |
virtual void | setScaleImage (bool scaleImage=true) override |
Sets if the button should scale the button images to fit. | |
virtual bool | isScalingImage () const override |
Checks whether the button scales the used images. | |
virtual bool | getClickShiftState () const override |
Get if the shift key was pressed in last EGET_BUTTON_CLICKED event. | |
virtual bool | getClickControlState () const override |
Get if the control key was pressed in last EGET_BUTTON_CLICKED event. | |
void | setColor (video::SColor color) |
void | setFromState () |
Set element properties from a StyleSpec corresponding to the button state. | |
virtual void | setFromStyle (const StyleSpec &style) |
Set element properties from a StyleSpec. | |
void | setStyles (const std::array< StyleSpec, StyleSpec::NUM_STATES > &styles) |
Set the styles used for each state. | |
Static Public Member Functions | |
static GUIButton * | addButton (gui::IGUIEnvironment *environment, const core::rect< s32 > &rectangle, ISimpleTextureSource *tsrc, IGUIElement *parent, s32 id, const wchar_t *text, const wchar_t *tooltiptext=L"") |
Do not drop returned handle. | |
Protected Member Functions | |
void | drawSprite (gui::EGUI_BUTTON_STATE state, u32 startTime, const core::position2di ¢er) |
gui::EGUI_BUTTON_IMAGE_STATE | getImageState (bool pressed) const |
ISimpleTextureSource * | getTextureSource () |
gui::EGUI_BUTTON_IMAGE_STATE | getImageState (bool pressed, const ButtonImage *images) const |
Private Attributes | |
ButtonSprite | ButtonSprites [gui::EGBS_COUNT] |
gui::IGUISpriteBank * | SpriteBank = nullptr |
ButtonImage | ButtonImages [gui::EGBIS_COUNT] |
std::array< StyleSpec, StyleSpec::NUM_STATES > | Styles |
gui::IGUIFont * | OverrideFont = nullptr |
bool | OverrideColorEnabled = false |
video::SColor | OverrideColor = video::SColor(101,255,255,255) |
u32 | ClickTime = 0 |
u32 | HoverTime = 0 |
u32 | FocusTime = 0 |
bool | ClickShiftState = false |
bool | ClickControlState = false |
bool | IsPushButton = false |
bool | Pressed = false |
bool | UseAlphaChannel = false |
bool | DrawBorder = true |
bool | ScaleImage = false |
video::SColor | Colors [4] |
bool | WasHovered = false |
bool | WasFocused = false |
ISimpleTextureSource * | TSrc |
gui::IGUIStaticText * | StaticText |
core::rect< s32 > | BgMiddle |
core::rect< s32 > | Padding |
core::vector2d< s32 > | ContentOffset |
video::SColor | BgColor = video::SColor(0xFF,0xFF,0xFF,0xFF) |
GUIButton::GUIButton | ( | gui::IGUIEnvironment * | environment, |
gui::IGUIElement * | parent, | ||
s32 | id, | ||
core::rect< s32 > | rectangle, | ||
ISimpleTextureSource * | tsrc, | ||
bool | noclip = false ) |
constructor
References irr::gui::StaticText::add(), Colors, and irr::gui::StaticText::setTextAlignment().
Referenced by addButton().
|
virtual |
destructor
References OverrideFont, and SpriteBank.
|
static |
Do not drop returned handle.
References GUIButton(), and setText().
Referenced by GUIFormSpecMenu::parseButton(), GUIScrollBar::refreshControls(), GUIFormSpecMenu::regenerateGui(), GUIKeyChangeMenu::regenerateGui(), GUIOpenURLMenu::regenerateGui(), GUIPasswordChange::regenerateGui(), and GUIVolumeChange::regenerateGui().
|
overridevirtual |
draws the element and its children
References BgColor, BgMiddle, ButtonImages, ClickTime, Colors, draw2DImage9Slice(), DrawBorder, drawSprite(), FocusTime, getImageState(), HoverTime, isFocused(), isHovered(), Pressed, ScaleImage, setFromState(), SpriteBank, UseAlphaChannel, WasFocused, and WasHovered.
|
protected |
References ButtonSprites, GUIButton::ButtonSprite::Color, porting::getTimeMs(), GUIButton::ButtonSprite::Index, and SpriteBank.
Referenced by draw().
|
overridevirtual |
Sets if the button text should use the override color or the color in the gui skin.
References OverrideColorEnabled.
|
overridevirtual |
Gets the currently used text color.
|
overridevirtual |
Get the font which is used right now for drawing.
References OverrideFont.
Referenced by GUIButtonItemImage::GUIButtonItemImage().
|
inlineoverridevirtual |
Get if the control key was pressed in last EGET_BUTTON_CLICKED event.
References ClickControlState.
|
inlineoverridevirtual |
Get if the shift key was pressed in last EGET_BUTTON_CLICKED event.
References ClickShiftState.
|
protected |
References ButtonImages, and getImageState().
Referenced by draw(), and getImageState().
|
protected |
|
overridevirtual |
Gets the override color.
References OverrideColor.
|
overridevirtual |
Gets the override font (if any)
References OverrideFont.
|
overridevirtual |
Get the sprite color for the given state. Color is only used when a sprite is set.
References ButtonSprites.
|
overridevirtual |
Get the sprite-index for the given state or -1 when no sprite is set.
References ButtonSprites.
|
overridevirtual |
Returns if the sprite in the given state does loop.
References ButtonSprites.
|
inlineprotected |
References TSrc.
Referenced by setFromStyle(), and GUIButtonImage::setFromStyle().
|
overridevirtual |
Checks if the alpha channel should be used for drawing images on the button.
Returns if the alpha channel should be used for drawing images on the button.
References UseAlphaChannel.
|
overridevirtual |
Checks if the button face and border are being drawn.
References DrawBorder.
bool GUIButton::isFocused | ( | ) | const |
Returns if this element (or one of its direct children) is focused.
Referenced by draw(), getImageState(), and setFromState().
bool GUIButton::isHovered | ( | ) | const |
Returns if this element (or one of its direct children) is hovered.
Referenced by draw(), getImageState(), and setFromState().
|
overridevirtual |
Checks if an override color is enabled.
References OverrideColorEnabled.
|
overridevirtual |
Returns if the button is currently pressed.
References Pressed.
Referenced by setFromState(), and setFromStyle().
|
overridevirtual |
Checks whether the button is a push button.
Returns whether the button is a push button.
References IsPushButton.
Referenced by setIsPushButton().
|
overridevirtual |
Checks whether the button scales the used images.
Returns whether the button scale the used images.
References ScaleImage.
|
overridevirtual |
called if an event happened.
References ClickControlState, ClickShiftState, FocusTime, porting::getTimeMs(), HoverTime, IsPushButton, Pressed, and setPressed().
void GUIButton::setColor | ( | video::SColor | color | ) |
References BgColor, and Colors.
Referenced by setFromStyle().
|
overridevirtual |
Sets if the button should use the skin to draw its border.
References DrawBorder.
Referenced by setFromStyle().
void GUIButton::setFromState | ( | ) |
Set element properties from a StyleSpec corresponding to the button state.
References StyleSpec::getStyleFromStatePropagation(), isFocused(), isHovered(), isPressed(), setFromStyle(), StyleSpec::STATE_DEFAULT, StyleSpec::STATE_FOCUSED, StyleSpec::STATE_HOVERED, StyleSpec::STATE_PRESSED, and Styles.
Referenced by draw(), setPressed(), and setStyles().
|
virtual |
Set element properties from a StyleSpec.
Reimplemented in GUIButtonImage.
References StyleSpec::ALPHA, StyleSpec::BGCOLOR, BgColor, StyleSpec::BGIMG, StyleSpec::BGIMG_MIDDLE, BgMiddle, StyleSpec::BORDER, COLOR_HOVERED_MOD, COLOR_PRESSED_MOD, Colors, StyleSpec::CONTENT_OFFSET, ContentOffset, StyleSpec::getBool(), StyleSpec::getColor(), StyleSpec::getFont(), StyleSpec::getRect(), StyleSpec::getState(), StyleSpec::getTexture(), getTextureSource(), StyleSpec::getVector2i(), guiScalingImageButton(), StyleSpec::isNotDefault(), isPressed(), multiplyColorValue(), StyleSpec::NOCLIP, OverrideColorEnabled, StyleSpec::PADDING, Padding, setColor(), setDrawBorder(), setImage(), setOverrideColor(), setOverrideFont(), setScaleImage(), setUseAlphaChannel(), StyleSpec::STATE_HOVERED, StyleSpec::STATE_PRESSED, Styles, and StyleSpec::TEXTCOLOR.
Referenced by setFromState(), and GUIButtonImage::setFromStyle().
|
overridevirtual |
Sets an image which should be displayed on the button when it is in the given state.
Referenced by setFromStyle(), setImage(), setImage(), setPressedImage(), and setPressedImage().
|
overridevirtual |
Sets an image which should be displayed on the button when it is in normal state.
References setImage().
|
overridevirtual |
Sets an image which should be displayed on the button when it is in normal state.
References setImage().
|
overridevirtual |
Sets if the button should behave like a push button.
Which means it can be in two states: Normal or Pressed. With a click on the button, the user can change the state of the button.
References IsPushButton, and isPushButton().
|
overridevirtual |
Sets another color for the button text.
Sets another color for the text.
References OverrideColor, OverrideColorEnabled, and irr::gui::StaticText::setOverrideColor().
Referenced by setFromStyle().
|
overridevirtual |
sets another skin independent font. if this is set to zero, the button uses the font of the skin.
References OverrideFont, and irr::gui::StaticText::setOverrideFont().
Referenced by setFromStyle().
|
overridevirtual |
Sets the pressed state of the button if this is a pushbutton.
References ClickTime, porting::getTimeMs(), Pressed, and setFromState().
Referenced by OnEvent().
|
overridevirtual |
Sets an image which should be displayed on the button when it is in pressed state.
References setImage().
|
overridevirtual |
Sets an image which should be displayed on the button when it is in pressed state.
References setImage().
|
overridevirtual |
Sets if the button should scale the button images to fit.
Sets if the images should be scaled to fit the button.
References ScaleImage.
Referenced by GUIButtonImage::GUIButtonImage(), GUIFormSpecMenu::parseImageButton(), and setFromStyle().
|
overridevirtual |
Sets the animated sprite for a specific button state.
index | Number of the sprite within the sprite bank, use -1 for no sprite |
state | State of the button to set the sprite for |
index | The sprite number from the current sprite bank |
color | The color of the sprite |
References ButtonSprites.
|
overridevirtual |
Sets the sprite bank used by the button.
References SpriteBank.
void GUIButton::setStyles | ( | const std::array< StyleSpec, StyleSpec::NUM_STATES > & | styles | ) |
Set the styles used for each state.
References setFromState(), and Styles.
Referenced by GUIFormSpecMenu::parseButton(), GUIFormSpecMenu::parseImageButton(), and GUIFormSpecMenu::parseItemImageButton().
|
overridevirtual |
Sets the text displayed by the button.
References irr::gui::StaticText::setText().
Referenced by addButton(), GUIButtonImage::addButton(), and GUIButtonItemImage::addButton().
|
overridevirtual |
Sets if the alpha channel should be used for drawing images on the button (default is false)
References UseAlphaChannel.
Referenced by setFromStyle().
|
private |
Referenced by draw(), setColor(), and setFromStyle().
|
private |
Referenced by draw(), and setFromStyle().
|
private |
Referenced by draw(), and getImageState().
|
private |
Referenced by drawSprite(), getSpriteColor(), getSpriteIndex(), getSpriteLoop(), and setSprite().
|
private |
Referenced by getClickControlState(), and OnEvent().
|
private |
Referenced by getClickShiftState(), and OnEvent().
|
private |
Referenced by draw(), and setPressed().
|
private |
Referenced by GUIButton(), draw(), setColor(), and setFromStyle().
|
private |
Referenced by setFromStyle().
|
private |
Referenced by draw(), isDrawingBorder(), and setDrawBorder().
|
private |
Referenced by isPushButton(), OnEvent(), and setIsPushButton().
|
private |
Referenced by getOverrideColor(), and setOverrideColor().
|
private |
Referenced by enableOverrideColor(), isOverrideColorEnabled(), setFromStyle(), and setOverrideColor().
|
private |
Referenced by ~GUIButton(), getActiveFont(), getOverrideFont(), and setOverrideFont().
|
private |
Referenced by setFromStyle().
|
private |
Referenced by draw(), isPressed(), OnEvent(), and setPressed().
|
private |
Referenced by draw(), isScalingImage(), and setScaleImage().
|
private |
Referenced by ~GUIButton(), draw(), drawSprite(), and setSpriteBank().
|
private |
|
private |
Referenced by setFromState(), setFromStyle(), and setStyles().
|
private |
Referenced by getTextureSource().
|
private |
Referenced by draw(), isAlphaChannelUsed(), and setUseAlphaChannel().
|
private |
Referenced by draw().
|
private |
Referenced by draw().