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
Rectangle template.
Definition rect.h:27
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.
IGUIElement(EGUI_ELEMENT_TYPE type, IGUIEnvironment *environment, IGUIElement *parent, s32 id, const core::rect< s32 > &rectangle)
Constructor.
Definition IGUIElement.h:30
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
The gui namespace contains useful classes for easy creation of a graphical user interface.
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).
The video namespace contains classes for accessing the video driver. All 2d and 3d rendering is done ...
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