Irrlicht 3D Engine
 
Loading...
Searching...
No Matches
IGUIButton.h
Go to the documentation of this file.
1// Copyright (C) 2002-2012 Nikolaus Gebhardt
2// This file is part of the "Irrlicht Engine".
3// For conditions of distribution and use, see copyright notice in irrlicht.h
4
5#ifndef __I_GUI_BUTTON_H_INCLUDED__
6#define __I_GUI_BUTTON_H_INCLUDED__
7
8#include "IGUIElement.h"
9
10namespace irr
11{
12
13namespace video
14{
15 class ITexture;
16} // end namespace video
17
18namespace gui
19{
20 class IGUIFont;
21 class IGUISpriteBank;
22
40
42 const c8* const GUIButtonStateNames[] =
43 {
44 "buttonUp",
45 "buttonDown",
46 "buttonMouseOver",
47 "buttonMouseOff",
48 "buttonFocused",
49 "buttonNotFocused",
50 0,
51 0,
52 };
53
55
58 class IGUIButton : public IGUIElement
59 {
60 public:
61
63 IGUIButton(IGUIEnvironment* environment, IGUIElement* parent, s32 id, core::rect<s32> rectangle)
64 : IGUIElement(EGUIET_BUTTON, environment, parent, id, rectangle) {}
65
67
69 virtual void setOverrideFont(IGUIFont* font=0) = 0;
70
72
73 virtual IGUIFont* getOverrideFont(void) const = 0;
74
76
78 virtual IGUIFont* getActiveFont() const = 0;
79
81
82 virtual void setImage(video::ITexture* image=0) = 0;
83
85
87 virtual void setImage(video::ITexture* image, const core::rect<s32>& pos) = 0;
88
90
93 virtual void setPressedImage(video::ITexture* image=0) = 0;
94
96
98 virtual void setPressedImage(video::ITexture* image, const core::rect<s32>& pos) = 0;
99
101 virtual void setSpriteBank(IGUISpriteBank* bank=0) = 0;
102
104
110 virtual void setSprite(EGUI_BUTTON_STATE state, s32 index,
111 video::SColor color=video::SColor(255,255,255,255), bool loop=false) = 0;
112
114
116 virtual void setIsPushButton(bool isPushButton=true) = 0;
117
119 virtual void setPressed(bool pressed=true) = 0;
120
122 virtual bool isPressed() const = 0;
123
125 virtual void setUseAlphaChannel(bool useAlphaChannel=true) = 0;
126
128 virtual bool isAlphaChannelUsed() const = 0;
129
131 virtual bool isPushButton() const = 0;
132
134 virtual void setDrawBorder(bool border=true) = 0;
135
137 virtual bool isDrawingBorder() const = 0;
138
140 virtual void setScaleImage(bool scaleImage=true) = 0;
141
143 virtual bool isScalingImage() const = 0;
144 };
145
146
147} // end namespace gui
148} // end namespace irr
149
150#endif
151
Axis aligned bounding box in 3d dimensional space.
Definition aabbox3d.h:22
GUI Button interface.
Definition IGUIButton.h:59
virtual void setSpriteBank(IGUISpriteBank *bank=0)=0
Sets the sprite bank used by the button.
virtual void setPressedImage(video::ITexture *image, const core::rect< s32 > &pos)=0
Sets an image which should be displayed on the button when it is in pressed state.
virtual void setPressedImage(video::ITexture *image=0)=0
Sets a background image for the button when it is in pressed state.
virtual void setImage(video::ITexture *image, const core::rect< s32 > &pos)=0
Sets a background image for the button when it is in normal state.
virtual void setPressed(bool pressed=true)=0
Sets the pressed state of the button if this is a pushbutton.
virtual bool isPressed() const =0
Returns if the button is currently pressed.
virtual void setSprite(EGUI_BUTTON_STATE state, s32 index, video::SColor color=video::SColor(255, 255, 255, 255), bool loop=false)=0
Sets the animated sprite for a specific button state.
virtual IGUIFont * getOverrideFont(void) const =0
Gets the override font (if any)
virtual void setUseAlphaChannel(bool useAlphaChannel=true)=0
Sets if the alpha channel should be used for drawing background images on the button (default is fals...
virtual IGUIFont * getActiveFont() const =0
Get the font which is used right now for drawing.
virtual void setIsPushButton(bool isPushButton=true)=0
Sets if the button should behave like a push button.
IGUIButton(IGUIEnvironment *environment, IGUIElement *parent, s32 id, core::rect< s32 > rectangle)
constructor
Definition IGUIButton.h:63
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)
virtual void setOverrideFont(IGUIFont *font=0)=0
Sets another skin independent font.
virtual bool isPushButton() const =0
Returns whether the button is a push button.
virtual void setScaleImage(bool scaleImage=true)=0
Sets if the button should scale the button images to fit.
virtual void setImage(video::ITexture *image=0)=0
Sets an image which should be displayed on the button when it is in normal state.
virtual bool isScalingImage() const =0
Checks whether the button scales the used images.
virtual bool isDrawingBorder() const =0
Returns if the border and button face are being drawn using the skin.
virtual bool isAlphaChannelUsed() const =0
Returns if the alpha channel should be used for drawing background images on the button.
Base class of all GUI elements.
Definition IGUIElement.h:26
GUI Environment. Used as factory and manager of all other GUI elements.
Font interface.
Definition IGUIFont.h:40
Sprite bank interface.
Interface of a Video Driver dependent Texture.
Definition ITexture.h:99
Class representing a 32 bit ARGB color.
Definition SColor.h:202
EGUI_BUTTON_STATE
Definition IGUIButton.h:24
@ EGBS_BUTTON_MOUSE_OFF
The mouse cursor is not over the button.
Definition IGUIButton.h:32
@ EGBS_BUTTON_DOWN
The button is currently pressed down.
Definition IGUIButton.h:28
@ EGBS_BUTTON_MOUSE_OVER
The mouse cursor is over the button.
Definition IGUIButton.h:30
@ EGBS_BUTTON_FOCUSED
The button has the focus.
Definition IGUIButton.h:34
@ EGBS_BUTTON_NOT_FOCUSED
The button doesn't have the focus.
Definition IGUIButton.h:36
@ EGBS_BUTTON_UP
The button is not pressed.
Definition IGUIButton.h:26
@ EGBS_COUNT
not used, counts the number of enumerated items
Definition IGUIButton.h:38
const c8 *const GUIButtonStateNames[]
Names for gui button state icons.
Definition IGUIButton.h:42
@ EGUIET_BUTTON
A button (IGUIButton)
Everything in the Irrlicht Engine can be found in this namespace.
Definition aabbox3d.h:13
char c8
8 bit character variable.
Definition irrTypes.h:31
signed int s32
32 bit signed variable.
Definition irrTypes.h:66