Irrlicht 3D Engine
 
Loading...
Searching...
No Matches
IGUISkin.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_SKIN_H_INCLUDED__
6#define __I_GUI_SKIN_H_INCLUDED__
7
9#include "EGUIAlignment.h"
10#include "SColor.h"
11#include "rect.h"
12
13namespace irr
14{
15namespace gui
16{
17 class IGUIFont;
18 class IGUISpriteBank;
19 class IGUIElement;
20
22
47
49 const c8* const GUISkinTypeNames[EGST_COUNT+1] =
50 {
51 "windowsClassic",
52 "windowsMetallic",
53 "burning",
54 "unknown",
55 0,
56 };
57
58
117
120 {
121 "3DDarkShadow",
122 "3DShadow",
123 "3DFace",
124 "3DHighlight",
125 "3DLight",
126 "ActiveBorder",
127 "ActiveCaption",
128 "AppWorkspace",
129 "ButtonText",
130 "GrayText",
131 "Highlight",
132 "HighlightText",
133 "InactiveBorder",
134 "InactiveCaption",
135 "ToolTip",
136 "ToolTipBackground",
137 "ScrollBar",
138 "Window",
139 "WindowSymbol",
140 "Icon",
141 "IconHighlight",
142 "GrayWindowSymbol",
143 "Editable",
144 "GrayEditable",
145 "FocusedEditable",
146 0,
147 };
148
199
200
203 {
204 "ScrollBarSize",
205 "MenuHeight",
206 "WindowButtonWidth",
207 "CheckBoxWidth",
208 "MessageBoxWidth",
209 "MessageBoxHeight",
210 "ButtonWidth",
211 "ButtonHeight",
212 "TextDistanceX",
213 "TextDistanceY",
214 "TitleBarTextX",
215 "TitleBarTextY",
216 "MessageBoxGapSpace",
217 "MessageBoxMinTextWidth",
218 "MessageBoxMaxTextWidth",
219 "MessageBoxMinTextHeight",
220 "MessageBoxMaxTextHeight",
221 "ButtonPressedImageOffsetX",
222 "ButtonPressedImageOffsetY",
223 "ButtonPressedTextOffsetX",
224 "ButtonPressedTextOffsetY",
225 0
226 };
227
228
251
254 {
255 "MessageBoxOkay",
256 "MessageBoxCancel",
257 "MessageBoxYes",
258 "MessageBoxNo",
259 "WindowButtonClose",
260 "WindowButtonMaximize",
261 "WindowButtonMinimize",
262 "WindowButtonRestore",
263 0
264 };
265
320
322 {
323 "windowMaximize",
324 "windowRestore",
325 "windowClose",
326 "windowMinimize",
327 "windowResize",
328 "cursorUp",
329 "cursorDown",
330 "cursorLeft",
331 "cursorRight",
332 "menuMore",
333 "checkBoxChecked",
334 "dropDown",
335 "smallCursorUp",
336 "smallCursorDown",
337 "radioButtonChecked",
338 "moreLeft",
339 "moreRight",
340 "moreUp",
341 "moreDown",
342 "expand",
343 "collapse",
344 "file",
345 "directory",
346 0
347 };
348
349 // Customizable fonts
366
368 {
369 "defaultFont",
370 "buttonFont",
371 "windowFont",
372 "menuFont",
373 "tooltipFont",
374 0
375 };
376
379 {
380 public:
381
383 virtual video::SColor getColor(EGUI_DEFAULT_COLOR color) const = 0;
384
386 virtual void setColor(EGUI_DEFAULT_COLOR which, video::SColor newColor) = 0;
387
389 virtual s32 getSize(EGUI_DEFAULT_SIZE size) const = 0;
390
392
394 virtual const wchar_t* getDefaultText(EGUI_DEFAULT_TEXT text) const = 0;
395
397
399 virtual void setDefaultText(EGUI_DEFAULT_TEXT which, const wchar_t* newText) = 0;
400
402 virtual void setSize(EGUI_DEFAULT_SIZE which, s32 size) = 0;
403
406
408 virtual void setFont(IGUIFont* font, EGUI_DEFAULT_FONT which=EGDF_DEFAULT) = 0;
409
411 virtual IGUISpriteBank* getSpriteBank() const = 0;
412
414 virtual void setSpriteBank(IGUISpriteBank* bank) = 0;
415
417
418 virtual u32 getIcon(EGUI_DEFAULT_ICON icon) const = 0;
419
421
425 virtual void setIcon(EGUI_DEFAULT_ICON icon, u32 index) = 0;
426
428
437 const core::rect<s32>& rect,
438 const core::rect<s32>* clip=0) = 0;
439
441
450 const core::rect<s32>& rect,
451 const core::rect<s32>* clip=0) = 0;
452
454
465 virtual void draw3DSunkenPane(IGUIElement* element,
466 video::SColor bgcolor, bool flat, bool fillBackGround,
467 const core::rect<s32>& rect,
468 const core::rect<s32>* clip=0) = 0;
469
471
485 bool drawTitleBar, video::SColor titleBarColor,
486 const core::rect<s32>& rect,
487 const core::rect<s32>* clip=0,
488 core::rect<s32>* checkClientArea=0) = 0;
489
491
499 virtual void draw3DMenuPane(IGUIElement* element,
500 const core::rect<s32>& rect,
501 const core::rect<s32>* clip=0) = 0;
502
504
510 virtual void draw3DToolBar(IGUIElement* element,
511 const core::rect<s32>& rect,
512 const core::rect<s32>* clip=0) = 0;
513
515
523 virtual void draw3DTabButton(IGUIElement* element, bool active,
524 const core::rect<s32>& rect, const core::rect<s32>* clip=0, gui::EGUI_ALIGNMENT alignment=EGUIA_UPPERLEFT) = 0;
525
527
536 virtual void draw3DTabBody(IGUIElement* element, bool border, bool background,
537 const core::rect<s32>& rect, const core::rect<s32>* clip=0, s32 tabHeight=-1, gui::EGUI_ALIGNMENT alignment=EGUIA_UPPERLEFT ) = 0;
538
540
549 virtual void drawIcon(IGUIElement* element, EGUI_DEFAULT_ICON icon,
550 const core::position2di position, u32 starttime=0, u32 currenttime=0,
551 bool loop=false, const core::rect<s32>* clip=0) = 0;
552
554
562 virtual void draw2DRectangle(IGUIElement* element, const video::SColor &color,
563 const core::rect<s32>& pos, const core::rect<s32>* clip = 0) = 0;
564
566 virtual EGUI_SKIN_TYPE getType() const { return EGST_UNKNOWN; }
567 };
568
569
570} // end namespace gui
571} // end namespace irr
572
573#endif
574
Axis aligned bounding box in 3d dimensional space.
Definition aabbox3d.h:22
Base class of all GUI elements.
Definition IGUIElement.h:26
Font interface.
Definition IGUIFont.h:40
A skin modifies the look of the GUI elements.
Definition IGUISkin.h:379
virtual IGUISpriteBank * getSpriteBank() const =0
returns the sprite bank
virtual void drawIcon(IGUIElement *element, EGUI_DEFAULT_ICON icon, const core::position2di position, u32 starttime=0, u32 currenttime=0, bool loop=false, const core::rect< s32 > *clip=0)=0
draws an icon, usually from the skin's sprite bank
virtual void draw2DRectangle(IGUIElement *element, const video::SColor &color, const core::rect< s32 > &pos, const core::rect< s32 > *clip=0)=0
draws a 2d rectangle.
virtual const wchar_t * getDefaultText(EGUI_DEFAULT_TEXT text) const =0
Returns a default text.
virtual u32 getIcon(EGUI_DEFAULT_ICON icon) const =0
Returns a default icon.
virtual void setFont(IGUIFont *font, EGUI_DEFAULT_FONT which=EGDF_DEFAULT)=0
sets a default font
virtual void draw3DMenuPane(IGUIElement *element, const core::rect< s32 > &rect, const core::rect< s32 > *clip=0)=0
draws a standard 3d menu pane
virtual void setSpriteBank(IGUISpriteBank *bank)=0
sets the sprite bank
virtual IGUIFont * getFont(EGUI_DEFAULT_FONT which=EGDF_DEFAULT) const =0
returns the default font
virtual void draw3DButtonPaneStandard(IGUIElement *element, const core::rect< s32 > &rect, const core::rect< s32 > *clip=0)=0
draws a standard 3d button pane
virtual core::rect< s32 > draw3DWindowBackground(IGUIElement *element, bool drawTitleBar, video::SColor titleBarColor, const core::rect< s32 > &rect, const core::rect< s32 > *clip=0, core::rect< s32 > *checkClientArea=0)=0
draws a window background
virtual void setDefaultText(EGUI_DEFAULT_TEXT which, const wchar_t *newText)=0
Sets a default text.
virtual void setIcon(EGUI_DEFAULT_ICON icon, u32 index)=0
Sets a default icon.
virtual void draw3DToolBar(IGUIElement *element, const core::rect< s32 > &rect, const core::rect< s32 > *clip=0)=0
draws a standard 3d tool bar
virtual void draw3DTabButton(IGUIElement *element, bool active, const core::rect< s32 > &rect, const core::rect< s32 > *clip=0, gui::EGUI_ALIGNMENT alignment=EGUIA_UPPERLEFT)=0
draws a tab button
virtual void draw3DButtonPanePressed(IGUIElement *element, const core::rect< s32 > &rect, const core::rect< s32 > *clip=0)=0
draws a pressed 3d button pane
virtual void setColor(EGUI_DEFAULT_COLOR which, video::SColor newColor)=0
sets a default color
virtual s32 getSize(EGUI_DEFAULT_SIZE size) const =0
returns size for the given size type
virtual video::SColor getColor(EGUI_DEFAULT_COLOR color) const =0
returns default color
virtual EGUI_SKIN_TYPE getType() const
get the type of this skin
Definition IGUISkin.h:566
virtual void draw3DSunkenPane(IGUIElement *element, video::SColor bgcolor, bool flat, bool fillBackGround, const core::rect< s32 > &rect, const core::rect< s32 > *clip=0)=0
draws a sunken 3d pane
virtual void draw3DTabBody(IGUIElement *element, bool border, bool background, const core::rect< s32 > &rect, const core::rect< s32 > *clip=0, s32 tabHeight=-1, gui::EGUI_ALIGNMENT alignment=EGUIA_UPPERLEFT)=0
draws a tab control body
virtual void setSize(EGUI_DEFAULT_SIZE which, s32 size)=0
sets a default size
Sprite bank interface.
An object which is able to serialize and deserialize its attributes into an attributes object.
Class representing a 32 bit ARGB color.
Definition SColor.h:202
EGUI_DEFAULT_TEXT
Definition IGUISkin.h:230
@ EGDT_MSG_BOX_NO
Text for the No button on a message box.
Definition IGUISkin.h:238
@ EGDT_MSG_BOX_YES
Text for the Yes button on a message box.
Definition IGUISkin.h:236
@ EGDT_WINDOW_MAXIMIZE
Tooltip text for window maximize button.
Definition IGUISkin.h:242
@ EGDT_WINDOW_RESTORE
Tooltip text for window restore button.
Definition IGUISkin.h:246
@ EGDT_MSG_BOX_CANCEL
Text for the Cancel button on a message box.
Definition IGUISkin.h:234
@ EGDT_WINDOW_CLOSE
Tooltip text for window close button.
Definition IGUISkin.h:240
@ EGDT_WINDOW_MINIMIZE
Tooltip text for window minimize button.
Definition IGUISkin.h:244
@ EGDT_MSG_BOX_OK
Text for the OK button on a message box.
Definition IGUISkin.h:232
@ EGDT_COUNT
this value is not used, it only specifies the number of default texts
Definition IGUISkin.h:249
@ EGUIA_UPPERLEFT
Aligned to parent's top or left side (default)
EGUI_DEFAULT_SIZE
Enumeration for default sizes.
Definition IGUISkin.h:151
@ EGDS_BUTTON_PRESSED_IMAGE_OFFSET_X
pixels to move the button image to the right when a pushbutton is pressed
Definition IGUISkin.h:187
@ EGDS_MESSAGE_BOX_MIN_TEXT_HEIGHT
minimal space to reserve for messagebox text-height
Definition IGUISkin.h:183
@ EGDS_MESSAGE_BOX_MIN_TEXT_WIDTH
minimal space to reserve for messagebox text-width
Definition IGUISkin.h:179
@ EGDS_WINDOW_BUTTON_WIDTH
width of a window button
Definition IGUISkin.h:157
@ EGDS_SCROLLBAR_SIZE
default with / height of scrollbar
Definition IGUISkin.h:153
@ EGDS_MESSAGE_BOX_WIDTH
Definition IGUISkin.h:161
@ EGDS_MESSAGE_BOX_GAP_SPACE
free space in a messagebox between borders and contents on all sides
Definition IGUISkin.h:177
@ EGDS_MENU_HEIGHT
height of menu
Definition IGUISkin.h:155
@ EGDS_MESSAGE_BOX_MAX_TEXT_HEIGHT
maximal space to reserve for messagebox text-height
Definition IGUISkin.h:185
@ EGDS_BUTTON_HEIGHT
height of a default button
Definition IGUISkin.h:167
@ EGDS_TEXT_DISTANCE_Y
distance for text from background
Definition IGUISkin.h:171
@ EGDS_MESSAGE_BOX_MAX_TEXT_WIDTH
maximal space to reserve for messagebox text-width
Definition IGUISkin.h:181
@ EGDS_COUNT
Definition IGUISkin.h:197
@ EGDS_TITLEBARTEXT_DISTANCE_X
distance for text in the title bar, from the left of the window rect
Definition IGUISkin.h:173
@ EGDS_MESSAGE_BOX_HEIGHT
Definition IGUISkin.h:163
@ EGDS_TITLEBARTEXT_DISTANCE_Y
distance for text in the title bar, from the top of the window rect
Definition IGUISkin.h:175
@ EGDS_BUTTON_PRESSED_TEXT_OFFSET_Y
pixels to move the button text down when a pushbutton is pressed
Definition IGUISkin.h:193
@ EGDS_CHECK_BOX_WIDTH
width of a checkbox check
Definition IGUISkin.h:159
@ EGDS_TEXT_DISTANCE_X
distance for text from background
Definition IGUISkin.h:169
@ EGDS_BUTTON_WIDTH
width of a default button
Definition IGUISkin.h:165
@ EGDS_BUTTON_PRESSED_IMAGE_OFFSET_Y
pixels to move the button image down when a pushbutton is pressed
Definition IGUISkin.h:189
@ EGDS_BUTTON_PRESSED_TEXT_OFFSET_X
pixels to move the button text to the right when a pushbutton is pressed
Definition IGUISkin.h:191
const c8 *const GUISkinFontNames[EGDF_COUNT+1]
Definition IGUISkin.h:367
const c8 *const GUISkinTextNames[EGDT_COUNT+1]
Names for default skin sizes.
Definition IGUISkin.h:253
EGUI_SKIN_TYPE
Enumeration of available default skins.
Definition IGUISkin.h:31
@ EGST_UNKNOWN
An unknown skin, not serializable at present.
Definition IGUISkin.h:42
@ EGST_COUNT
this value is not used, it only specifies the number of skin types
Definition IGUISkin.h:45
@ EGST_WINDOWS_METALLIC
Like EGST_WINDOWS_CLASSIC, but with metallic shaded windows and buttons.
Definition IGUISkin.h:36
@ EGST_WINDOWS_CLASSIC
Default windows look and feel.
Definition IGUISkin.h:33
@ EGST_BURNING_SKIN
Burning's skin.
Definition IGUISkin.h:39
const c8 *const GUISkinTypeNames[EGST_COUNT+1]
Names for gui element types.
Definition IGUISkin.h:49
EGUI_DEFAULT_ICON
Customizable symbols for GUI.
Definition IGUISkin.h:268
@ EGDI_MORE_DOWN
icon indicating that there is more content below
Definition IGUISkin.h:306
@ EGDI_CURSOR_LEFT
scroll bar left button
Definition IGUISkin.h:284
@ EGDI_RADIO_BUTTON_CHECKED
selection dot in a radio button
Definition IGUISkin.h:298
@ EGDI_SMALL_CURSOR_DOWN
smaller down arrow
Definition IGUISkin.h:296
@ EGDI_MORE_RIGHT
‍icon indicating that there is more content to the right
Definition IGUISkin.h:302
@ EGDI_CURSOR_UP
scroll bar up button
Definition IGUISkin.h:280
@ EGDI_FILE
file icon for file selection
Definition IGUISkin.h:313
@ EGDI_CURSOR_RIGHT
scroll bar right button
Definition IGUISkin.h:286
@ EGDI_COLLAPSE
minus icon for trees
Definition IGUISkin.h:311
@ EGDI_SMALL_CURSOR_UP
smaller up arrow
Definition IGUISkin.h:294
@ EGDI_DROP_DOWN
down arrow for dropdown menus
Definition IGUISkin.h:292
@ EGDI_CURSOR_DOWN
scroll bar down button
Definition IGUISkin.h:282
@ EGDI_MENU_MORE
icon for menu children
Definition IGUISkin.h:288
@ EGDI_WINDOW_MAXIMIZE
maximize window button
Definition IGUISkin.h:270
@ EGDI_WINDOW_RESTORE
restore window button
Definition IGUISkin.h:272
@ EGDI_MORE_LEFT
<< icon indicating there is more content to the left
Definition IGUISkin.h:300
@ EGDI_MORE_UP
icon indicating that there is more content above
Definition IGUISkin.h:304
@ EGDI_EXPAND
plus icon for trees
Definition IGUISkin.h:308
@ EGDI_WINDOW_CLOSE
close window button
Definition IGUISkin.h:274
@ EGDI_WINDOW_RESIZE
resize icon for bottom right corner of a window
Definition IGUISkin.h:278
@ EGDI_WINDOW_MINIMIZE
minimize window button
Definition IGUISkin.h:276
@ EGDI_CHECK_BOX_CHECKED
tick for checkbox
Definition IGUISkin.h:290
@ EGDI_DIRECTORY
folder icon for file selection
Definition IGUISkin.h:315
@ EGDI_COUNT
value not used, it only specifies the number of icons
Definition IGUISkin.h:318
EGUI_DEFAULT_FONT
Definition IGUISkin.h:351
@ EGDF_MENU
Font for menu items.
Definition IGUISkin.h:359
@ EGDF_DEFAULT
For static text, edit boxes, lists and most other places.
Definition IGUISkin.h:353
@ EGDF_WINDOW
Font for window title bars.
Definition IGUISkin.h:357
@ EGDF_TOOLTIP
Font for tooltips.
Definition IGUISkin.h:361
@ EGDF_BUTTON
Font for buttons.
Definition IGUISkin.h:355
@ EGDF_COUNT
Definition IGUISkin.h:364
EGUI_DEFAULT_COLOR
Enumeration for skin colors.
Definition IGUISkin.h:61
@ EGDC_BUTTON_TEXT
Text on a button.
Definition IGUISkin.h:79
@ EGDC_ICON_HIGH_LIGHT
Selected icons in a list or tree.
Definition IGUISkin.h:103
@ EGDC_3D_HIGH_LIGHT
Highlight color for three-dimensional display elements (for edges facing the light source....
Definition IGUISkin.h:69
@ EGDC_APP_WORKSPACE
Background color of multiple document interface (MDI) applications.
Definition IGUISkin.h:77
@ EGDC_HIGH_LIGHT
Item(s) selected in a control.
Definition IGUISkin.h:83
@ EGDC_ACTIVE_BORDER
Active window border.
Definition IGUISkin.h:73
@ EGDC_WINDOW_SYMBOL
Window symbols like on close buttons, scroll bars and check boxes.
Definition IGUISkin.h:99
@ EGDC_TOOLTIP
Tool tip text color.
Definition IGUISkin.h:91
@ EGDC_INACTIVE_BORDER
Inactive window border.
Definition IGUISkin.h:87
@ EGDC_FOCUSED_EDITABLE
Show focus of window background for editable field (editbox or when checkbox-field is pressed)
Definition IGUISkin.h:111
@ EGDC_HIGH_LIGHT_TEXT
Text of item(s) selected in a control.
Definition IGUISkin.h:85
@ EGDC_TOOLTIP_BACKGROUND
Tool tip background color.
Definition IGUISkin.h:93
@ EGDC_SCROLLBAR
Scrollbar gray area.
Definition IGUISkin.h:95
@ EGDC_GRAY_EDITABLE
Grayed (disabled) window background for editable field (editbox, checkbox-field)
Definition IGUISkin.h:109
@ EGDC_EDITABLE
Window background for editable field (editbox, checkbox-field)
Definition IGUISkin.h:107
@ EGDC_ACTIVE_CAPTION
Active window title bar text.
Definition IGUISkin.h:75
@ EGDC_INACTIVE_CAPTION
Inactive window caption.
Definition IGUISkin.h:89
@ EGDC_WINDOW
Window background.
Definition IGUISkin.h:97
@ EGDC_3D_FACE
Face color for three-dimensional display elements and for dialog box backgrounds.
Definition IGUISkin.h:67
@ EGDC_3D_LIGHT
Light color for three-dimensional display elements (for edges facing the light source....
Definition IGUISkin.h:71
@ EGDC_GRAY_TEXT
Grayed (disabled) text.
Definition IGUISkin.h:81
@ EGDC_3D_DARK_SHADOW
Dark shadow for three-dimensional display elements.
Definition IGUISkin.h:63
@ EGDC_GRAY_WINDOW_SYMBOL
Grayed (disabled) window symbols like on close buttons, scroll bars and check boxes.
Definition IGUISkin.h:105
@ EGDC_COUNT
Definition IGUISkin.h:115
@ EGDC_ICON
Icons in a list or tree.
Definition IGUISkin.h:101
@ EGDC_3D_SHADOW
Shadow color for three-dimensional display elements (for edges facing away from the light source).
Definition IGUISkin.h:65
const c8 *const GUISkinSizeNames[EGDS_COUNT+1]
Names for default skin sizes.
Definition IGUISkin.h:202
const c8 *const GUISkinColorNames[EGDC_COUNT+1]
Names for default skin colors.
Definition IGUISkin.h:119
const c8 *const GUISkinIconNames[EGDI_COUNT+1]
Definition IGUISkin.h:321
Everything in the Irrlicht Engine can be found in this namespace.
Definition aabbox3d.h:13
unsigned int u32
32 bit unsigned variable.
Definition irrTypes.h:58
char c8
8 bit character variable.
Definition irrTypes.h:31
signed int s32
32 bit signed variable.
Definition irrTypes.h:66