Irrlicht 3D Engine
irr::gui::IGUIButton Class Referenceabstract

GUI Button interface. More...

#include <IGUIButton.h>

+ Inheritance diagram for irr::gui::IGUIButton:

Public Member Functions

 IGUIButton (IGUIEnvironment *environment, IGUIElement *parent, s32 id, core::rect< s32 > rectangle)
 constructor More...
 
virtual void enableOverrideColor (bool enable)=0
 Sets if the button text should use the override color or the color in the gui skin. More...
 
virtual IGUIFontgetActiveFont () const =0
 Get the font which is used right now for drawing. More...
 
virtual bool getClickControlState () const =0
 Get if the control key was pressed in last EGET_BUTTON_CLICKED event. More...
 
virtual bool getClickShiftState () const =0
 Get if the shift key was pressed in last EGET_BUTTON_CLICKED event. More...
 
virtual video::SColor getOverrideColor (void) const =0
 Gets the override color. More...
 
virtual IGUIFontgetOverrideFont (void) const =0
 Gets the override font (if any) More...
 
virtual video::SColor getSpriteColor (EGUI_BUTTON_STATE state) const =0
 Get the sprite color for the given state. Color is only used when a sprite is set. More...
 
virtual s32 getSpriteIndex (EGUI_BUTTON_STATE state) const =0
 Get the sprite-index for the given state or -1 when no sprite is set. More...
 
virtual bool getSpriteLoop (EGUI_BUTTON_STATE state) const =0
 Returns if the sprite in the given state does loop. More...
 
virtual bool getSpriteScale (EGUI_BUTTON_STATE state) const =0
 Returns if the sprite in the given state is scaled. More...
 
virtual bool isAlphaChannelUsed () const =0
 Returns if the alpha channel should be used for drawing background images on the button. More...
 
virtual bool isDrawingBorder () const =0
 Returns if the border and button face are being drawn using the skin. More...
 
virtual bool isOverrideColorEnabled (void) const =0
 Checks if an override color is enabled. More...
 
virtual bool isPressed () const =0
 Returns if the button is currently pressed. More...
 
virtual bool isPushButton () const =0
 Returns whether the button is a push button. More...
 
virtual bool isScalingImage () const =0
 Checks whether the button scales the used images. More...
 
virtual void setDrawBorder (bool border=true)=0
 Sets if the button should use the skin to draw its border and button face (default is true) More...
 
virtual void setImage (EGUI_BUTTON_IMAGE_STATE state, video::ITexture *image=0, const core::rect< s32 > &sourceRect=core::rect< s32 >(0, 0, 0, 0))=0
 Sets an image which should be displayed on the button when it is in the given state. More...
 
virtual void setImage (video::ITexture *image=0)=0
 Sets an image which should be displayed on the button when it is in normal state. More...
 
virtual void setImage (video::ITexture *image, const core::rect< s32 > &sourceRect)=0
 Sets a background image for the button when it is in normal state. More...
 
virtual void setIsPushButton (bool isPushButton=true)=0
 Sets if the button should behave like a push button. More...
 
virtual void setOverrideColor (video::SColor color)=0
 Sets another color for the button text. More...
 
virtual void setOverrideFont (IGUIFont *font=0)=0
 Sets another skin independent font. More...
 
virtual void setPressed (bool pressed=true)=0
 Sets the pressed state of the button if this is a pushbutton. More...
 
virtual void setPressedImage (video::ITexture *image=0)=0
 Sets a background image for the button when it is in pressed state. More...
 
virtual void setPressedImage (video::ITexture *image, const core::rect< s32 > &sourceRect)=0
 Sets an image which should be displayed on the button when it is in pressed state. More...
 
virtual void setScaleImage (bool scaleImage=true)=0
 Sets if the button should scale the button images to fit. More...
 
virtual void setSprite (EGUI_BUTTON_STATE state, s32 index, video::SColor color=video::SColor(255, 255, 255, 255), bool loop=false, bool scale=false)=0
 Sets the animated sprite for a specific button state. More...
 
virtual void setSpriteBank (IGUISpriteBank *bank=0)=0
 Sets the sprite bank used by the button. More...
 
virtual void setUseAlphaChannel (bool useAlphaChannel=true)=0
 Sets if the alpha channel should be used for drawing background images on the button (default is false) More...
 
- Public Member Functions inherited from irr::gui::IGUIElement
 IGUIElement (EGUI_ELEMENT_TYPE type, IGUIEnvironment *environment, IGUIElement *parent, s32 id, const core::rect< s32 > &rectangle)
 Constructor. More...
 
virtual ~IGUIElement ()
 Destructor. More...
 
virtual void addChild (IGUIElement *child)
 Adds a GUI element as new child of this element. More...
 
virtual bool bringToFront (IGUIElement *element)
 Brings a child to front. More...
 
virtual void deserializeAttributes (io::IAttributes *in, io::SAttributeReadWriteOptions *options=0)
 Reads attributes of the scene node. More...
 
virtual void draw ()
 Draws the element and its children. More...
 
core::rect< s32getAbsoluteClippingRect () const
 Returns the visible area of the element. More...
 
core::rect< s32getAbsolutePosition () const
 Gets the absolute rectangle of this element. More...
 
virtual const core::list< IGUIElement * > & getChildren () const
 Returns list with children of this element. More...
 
virtual IGUIElementgetElementFromId (s32 id, bool searchchildren=false) const
 Finds the first element with the given id. More...
 
virtual IGUIElementgetElementFromPoint (const core::position2d< s32 > &point)
 Returns the topmost GUI element at the specific position. More...
 
virtual s32 getID () const
 Returns id. Can be used to identify the element. More...
 
virtual const c8getName () const
 Returns the name of the element. More...
 
bool getNextElement (s32 startOrder, bool reverse, bool group, IGUIElement *&first, IGUIElement *&closest, bool includeInvisible=false, bool includeDisabled=false) const
 searches elements to find the closest next element to tab to More...
 
IGUIElementgetParent () const
 Returns parent of this element. More...
 
core::rect< s32getRelativePosition () const
 Returns the relative rectangle of this element. More...
 
IGUIElementgetTabGroup ()
 Returns the container element which holds all elements in this element's tab group. More...
 
s32 getTabOrder () const
 Returns the number in the tab order sequence. More...
 
virtual const wchar_t * getText () const
 Returns caption of this element. More...
 
virtual const core::stringwgetToolTipText () const
 Returns caption of this element. More...
 
EGUI_ELEMENT_TYPE getType () const
 Returns the type of the gui element. More...
 
virtual const c8getTypeName () const
 Returns the type name of the gui element. More...
 
virtual bool hasType (EGUI_ELEMENT_TYPE type) const
 Returns true if the gui element supports the given type. More...
 
virtual bool isEnabled () const
 Returns true if element is enabled. More...
 
bool isMyChild (IGUIElement *child) const
 
bool isNotClipped () const
 Gets whether the element will ignore its parent's clipping rectangle. More...
 
virtual bool isPointInside (const core::position2d< s32 > &point) const
 Returns true if a point is within this element. More...
 
virtual bool isSubElement () const
 Returns true if this element was created as part of its parent control. More...
 
bool isTabGroup () const
 Returns true if this element is a tab group. More...
 
bool isTabStop () const
 Returns true if this element can be focused by navigating with the tab key. More...
 
virtual bool isTrulyVisible () const
 Check whether the element is truly visible, taking into accounts its parents' visibility. More...
 
virtual bool isVisible () const
 Returns true if element is visible. More...
 
virtual void move (core::position2d< s32 > absoluteMovement)
 Moves this element. More...
 
virtual bool OnEvent (const SEvent &event)
 Called if an event happened. More...
 
virtual void OnPostRender (u32 timeMs)
 animate the element and its children. More...
 
virtual void remove ()
 Removes this element from its parent. More...
 
virtual void removeChild (IGUIElement *child)
 Removes a child. More...
 
virtual bool sendToBack (IGUIElement *child)
 Moves a child to the back, so it's siblings are drawn on top of it. More...
 
virtual void serializeAttributes (io::IAttributes *out, io::SAttributeReadWriteOptions *options=0) const
 Writes attributes of the scene node. More...
 
void setAlignment (EGUI_ALIGNMENT left, EGUI_ALIGNMENT right, EGUI_ALIGNMENT top, EGUI_ALIGNMENT bottom)
 The alignment defines how the borders of this element will be positioned when the parent element is resized. More...
 
virtual void setEnabled (bool enabled)
 Sets the enabled state of this element. More...
 
virtual void setID (s32 id)
 Sets the id of this element. More...
 
void setMaxSize (core::dimension2du size)
 Sets the maximum size allowed for this element. More...
 
void setMinSize (core::dimension2du size)
 Sets the minimum size allowed for this element. More...
 
virtual void setName (const c8 *name)
 Sets the name of the element. More...
 
virtual void setName (const core::stringc &name)
 Sets the name of the element. More...
 
void setNotClipped (bool noClip)
 Sets whether the element will ignore its parent's clipping rectangle. More...
 
void setRelativePosition (const core::rect< s32 > &r)
 Sets the relative rectangle of this element. More...
 
void setRelativePosition (const core::position2di &position)
 Sets the relative rectangle of this element, maintaining its current width and height. More...
 
void setRelativePositionProportional (const core::rect< f32 > &r)
 Sets the relative rectangle of this element as a proportion of its parent's area. More...
 
virtual void setSubElement (bool subElement)
 Sets whether this control was created as part of its parent. More...
 
void setTabGroup (bool isGroup)
 Sets whether this element is a container for a group of elements which can be navigated using the tab key. More...
 
void setTabOrder (s32 index)
 Sets the priority of focus when using the tab key to navigate between a group of elements. More...
 
void setTabStop (bool enable)
 If set to true, the focus will visit this element when using the tab key to cycle through elements. More...
 
virtual void setText (const wchar_t *text)
 Sets the new caption of this element. More...
 
virtual void setToolTipText (const wchar_t *text)
 Sets the new caption of this element. More...
 
virtual void setVisible (bool visible)
 Sets the visible state of this element. More...
 
virtual void updateAbsolutePosition ()
 Updates the absolute position. More...
 
- Public Member Functions inherited from irr::IReferenceCounted
 IReferenceCounted ()
 Constructor. More...
 
virtual ~IReferenceCounted ()
 Destructor. More...
 
bool drop () const
 Drops the object. Decrements the reference counter by one. More...
 
const c8getDebugName () const
 Returns the debug name of the object. More...
 
s32 getReferenceCount () const
 Get the reference count. More...
 
void grab () const
 Grabs the object. Increments the reference counter by one. More...
 
- Public Member Functions inherited from irr::IEventReceiver
virtual ~IEventReceiver ()
 Destructor. More...
 

Additional Inherited Members

- Protected Member Functions inherited from irr::gui::IGUIElement
void addChildToEnd (IGUIElement *child)
 
void recalculateAbsolutePosition (bool recursive)
 
- Protected Member Functions inherited from irr::IReferenceCounted
void setDebugName (const c8 *newName)
 Sets the debug name of the object. More...
 
- Protected Attributes inherited from irr::gui::IGUIElement
core::rect< s32AbsoluteClippingRect
 absolute clipping rect of element More...
 
core::rect< s32AbsoluteRect
 absolute rect of element More...
 
EGUI_ALIGNMENT AlignBottom
 
EGUI_ALIGNMENT AlignLeft
 tells the element how to act when its parent is resized More...
 
EGUI_ALIGNMENT AlignRight
 
EGUI_ALIGNMENT AlignTop
 
core::list< IGUIElement * > Children
 List of all children of this element. More...
 
core::rect< s32DesiredRect
 
IGUIEnvironmentEnvironment
 GUI Environment. More...
 
s32 ID
 users can set this for identifying the element by integer More...
 
bool IsEnabled
 is enabled? More...
 
bool IsSubElement
 is a part of a larger whole and should not be serialized? More...
 
bool IsTabGroup
 tab groups are containers like windows, use ctrl+tab to navigate More...
 
bool IsTabStop
 tab stop like in windows More...
 
bool IsVisible
 is visible? More...
 
core::rect< s32LastParentRect
 for calculating the difference when resizing parent More...
 
core::dimension2du MaxSize
 maximum and minimum size of the element More...
 
core::dimension2du MinSize
 
core::stringc Name
 users can set this for identifying the element by string More...
 
bool NoClip
 does this element ignore its parent's clipping rectangle? More...
 
IGUIElementParent
 Pointer to the parent. More...
 
core::rect< s32RelativeRect
 relative rect of element More...
 
core::rect< f32ScaleRect
 relative scale of the element inside its parent More...
 
s32 TabOrder
 tab order More...
 
core::stringw Text
 caption More...
 
core::stringw ToolTipText
 tooltip More...
 
EGUI_ELEMENT_TYPE Type
 type of element More...
 

Detailed Description

GUI Button interface.

This element can create the following events of type EGUI_EVENT_TYPE:
  • EGET_BUTTON_CLICKED

Definition at line 109 of file IGUIButton.h.

Constructor & Destructor Documentation

◆ IGUIButton()

irr::gui::IGUIButton::IGUIButton ( IGUIEnvironment environment,
IGUIElement parent,
s32  id,
core::rect< s32 rectangle 
)
inline

constructor

Definition at line 114 of file IGUIButton.h.

Member Function Documentation

◆ enableOverrideColor()

virtual void irr::gui::IGUIButton::enableOverrideColor ( bool  enable)
pure virtual

Sets if the button text should use the override color or the color in the gui skin.

Parameters
enableIf set to true, the override color, which can be set with IGUIStaticText::setOverrideColor is used, otherwise the EGDC_BUTTON_TEXT or EGDC_GRAY_TEXT color of the skin.

◆ getActiveFont()

virtual IGUIFont* irr::gui::IGUIButton::getActiveFont ( ) const
pure virtual

Get the font which is used right now for drawing.

Currently this is the override font when one is set and the font of the active skin otherwise

◆ getClickControlState()

virtual bool irr::gui::IGUIButton::getClickControlState ( ) const
pure virtual

Get if the control key was pressed in last EGET_BUTTON_CLICKED event.

Generated together with event, so info is available in the event-receiver.

◆ getClickShiftState()

virtual bool irr::gui::IGUIButton::getClickShiftState ( ) const
pure virtual

Get if the shift key was pressed in last EGET_BUTTON_CLICKED event.

Generated together with event, so info is available in the event-receiver.

◆ getOverrideColor()

virtual video::SColor irr::gui::IGUIButton::getOverrideColor ( void  ) const
pure virtual

Gets the override color.

Returns
: The override color

◆ getOverrideFont()

virtual IGUIFont* irr::gui::IGUIButton::getOverrideFont ( void  ) const
pure virtual

Gets the override font (if any)

Returns
The override font (may be 0)

◆ getSpriteColor()

virtual video::SColor irr::gui::IGUIButton::getSpriteColor ( EGUI_BUTTON_STATE  state) const
pure virtual

Get the sprite color for the given state. Color is only used when a sprite is set.

◆ getSpriteIndex()

virtual s32 irr::gui::IGUIButton::getSpriteIndex ( EGUI_BUTTON_STATE  state) const
pure virtual

Get the sprite-index for the given state or -1 when no sprite is set.

◆ getSpriteLoop()

virtual bool irr::gui::IGUIButton::getSpriteLoop ( EGUI_BUTTON_STATE  state) const
pure virtual

Returns if the sprite in the given state does loop.

◆ getSpriteScale()

virtual bool irr::gui::IGUIButton::getSpriteScale ( EGUI_BUTTON_STATE  state) const
pure virtual

Returns if the sprite in the given state is scaled.

◆ isAlphaChannelUsed()

virtual bool irr::gui::IGUIButton::isAlphaChannelUsed ( ) const
pure virtual

Returns if the alpha channel should be used for drawing background images on the button.

◆ isDrawingBorder()

virtual bool irr::gui::IGUIButton::isDrawingBorder ( ) const
pure virtual

Returns if the border and button face are being drawn using the skin.

◆ isOverrideColorEnabled()

virtual bool irr::gui::IGUIButton::isOverrideColorEnabled ( void  ) const
pure virtual

Checks if an override color is enabled.

Returns
true if the override color is enabled, false otherwise

◆ isPressed()

virtual bool irr::gui::IGUIButton::isPressed ( ) const
pure virtual

Returns if the button is currently pressed.

◆ isPushButton()

virtual bool irr::gui::IGUIButton::isPushButton ( ) const
pure virtual

Returns whether the button is a push button.

◆ isScalingImage()

virtual bool irr::gui::IGUIButton::isScalingImage ( ) const
pure virtual

Checks whether the button scales the used images.

◆ setDrawBorder()

virtual void irr::gui::IGUIButton::setDrawBorder ( bool  border = true)
pure virtual

Sets if the button should use the skin to draw its border and button face (default is true)

◆ setImage() [1/3]

virtual void irr::gui::IGUIButton::setImage ( EGUI_BUTTON_IMAGE_STATE  state,
video::ITexture image = 0,
const core::rect< s32 > &  sourceRect = core::rects32 >(0, 0, 0, 0) 
)
pure virtual

Sets an image which should be displayed on the button when it is in the given state.

Only one image-state can be active at a time. Images are drawn below sprites. If a state is without image it will try to use images from other states as described in EGUI_BUTTON_IMAGE_STATE. Images are a little less flexible than sprites, but easier to use.

Parameters
stateOne of EGUI_BUTTON_IMAGE_STATE
imageImage to be displayed or NULL to remove the image
sourceRectSource rectangle on the image texture. When width or height are 0 then the full texture-size is used (default).

◆ setImage() [2/3]

virtual void irr::gui::IGUIButton::setImage ( video::ITexture image = 0)
pure virtual

Sets an image which should be displayed on the button when it is in normal state.

This is identical to calling setImage(EGBIS_IMAGE_UP, image); and might be deprecated in future revisions.

Parameters
imageImage to be displayed

◆ setImage() [3/3]

virtual void irr::gui::IGUIButton::setImage ( video::ITexture image,
const core::rect< s32 > &  sourceRect 
)
pure virtual

Sets a background image for the button when it is in normal state.

This is identical to calling setImage(EGBIS_IMAGE_UP, image, sourceRect); and might be deprecated in future revisions.

Parameters
imageTexture containing the image to be displayed
sourceRectPosition in the texture, where the image is located. When width or height are 0 then the full texture-size is used

◆ setIsPushButton()

virtual void irr::gui::IGUIButton::setIsPushButton ( bool  isPushButton = true)
pure virtual

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.

◆ setOverrideColor()

virtual void irr::gui::IGUIButton::setOverrideColor ( video::SColor  color)
pure virtual

Sets another color for the button text.

When set, this color is used instead of EGDC_BUTTON_TEXT/EGDC_GRAY_TEXT. You don't need to call enableOverrideColor(true), that's done by this function. If you want the the color of the skin back, call enableOverrideColor(false);

Parameters
colorNew color of the text.

◆ setOverrideFont()

virtual void irr::gui::IGUIButton::setOverrideFont ( IGUIFont font = 0)
pure virtual

Sets another skin independent font.

If this is set to zero, the button uses the font of the skin.

Parameters
fontNew font to set.

◆ setPressed()

virtual void irr::gui::IGUIButton::setPressed ( bool  pressed = true)
pure virtual

Sets the pressed state of the button if this is a pushbutton.

◆ setPressedImage() [1/2]

virtual void irr::gui::IGUIButton::setPressedImage ( video::ITexture image = 0)
pure virtual

Sets a background image for the button when it is in pressed state.

This is identical to calling setImage(EGBIS_IMAGE_DOWN, image); and might be deprecated in future revisions. If no images is specified for the pressed state via setPressedImage(), this image is also drawn in pressed state.

Parameters
imageImage to be displayed

◆ setPressedImage() [2/2]

virtual void irr::gui::IGUIButton::setPressedImage ( video::ITexture image,
const core::rect< s32 > &  sourceRect 
)
pure virtual

Sets an image which should be displayed on the button when it is in pressed state.

This is identical to calling setImage(EGBIS_IMAGE_DOWN, image, sourceRect); and might be deprecated in future revisions.

Parameters
imageTexture containing the image to be displayed
sourceRectPosition in the texture, where the image is located

◆ setScaleImage()

virtual void irr::gui::IGUIButton::setScaleImage ( bool  scaleImage = true)
pure virtual

Sets if the button should scale the button images to fit.

◆ setSprite()

virtual void irr::gui::IGUIButton::setSprite ( EGUI_BUTTON_STATE  state,
s32  index,
video::SColor  color = video::SColor(255, 255, 255, 255),
bool  loop = false,
bool  scale = false 
)
pure virtual

Sets the animated sprite for a specific button state.

Several sprites can be drawn at the same time. Sprites can be animated. Sprites are drawn above the images.

Parameters
indexNumber of the sprite within the sprite bank, use -1 for no sprite
stateState of the button to set the sprite for
indexThe sprite number from the current sprite bank
colorThe color of the sprite
loopTrue if the animation should loop, false if not
scaleTrue if the sprite should scale to button size, false if not

◆ setSpriteBank()

virtual void irr::gui::IGUIButton::setSpriteBank ( IGUISpriteBank bank = 0)
pure virtual

Sets the sprite bank used by the button.

NOTE: The spritebank itself is not serialized so far. The sprites are serialized. Which means after loading the gui you still have to set the spritebank manually.

◆ setUseAlphaChannel()

virtual void irr::gui::IGUIButton::setUseAlphaChannel ( bool  useAlphaChannel = true)
pure virtual

Sets if the alpha channel should be used for drawing background images on the button (default is false)


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