Irrlicht 3D Engine
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
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
8
#include "
IAttributeExchangingObject.h
"
9
#include "
EGUIAlignment.h
"
10
#include "
SColor.h
"
11
#include "
rect.h
"
12
13
namespace
irr
14
{
15
namespace
gui
16
{
17
class
IGUIFont;
18
class
IGUISpriteBank;
19
class
IGUIElement;
20
22
30
enum
EGUI_SKIN_TYPE
31
{
33
EGST_WINDOWS_CLASSIC
=0,
34
36
EGST_WINDOWS_METALLIC
,
37
39
EGST_BURNING_SKIN
,
40
42
EGST_UNKNOWN
,
43
45
EGST_COUNT
46
};
47
49
const
c8
*
const
GUISkinTypeNames
[
EGST_COUNT
+1] =
50
{
51
"windowsClassic"
,
52
"windowsMetallic"
,
53
"burning"
,
54
"unknown"
,
55
0,
56
};
57
58
60
enum
EGUI_DEFAULT_COLOR
61
{
63
EGDC_3D_DARK_SHADOW
= 0,
65
EGDC_3D_SHADOW
,
67
EGDC_3D_FACE
,
69
EGDC_3D_HIGH_LIGHT
,
71
EGDC_3D_LIGHT
,
73
EGDC_ACTIVE_BORDER
,
75
EGDC_ACTIVE_CAPTION
,
77
EGDC_APP_WORKSPACE
,
79
EGDC_BUTTON_TEXT
,
81
EGDC_GRAY_TEXT
,
83
EGDC_HIGH_LIGHT
,
85
EGDC_HIGH_LIGHT_TEXT
,
87
EGDC_INACTIVE_BORDER
,
89
EGDC_INACTIVE_CAPTION
,
91
EGDC_TOOLTIP
,
93
EGDC_TOOLTIP_BACKGROUND
,
95
EGDC_SCROLLBAR
,
97
EGDC_WINDOW
,
99
EGDC_WINDOW_SYMBOL
,
101
EGDC_ICON
,
103
EGDC_ICON_HIGH_LIGHT
,
105
EGDC_GRAY_WINDOW_SYMBOL
,
107
EGDC_EDITABLE
,
109
EGDC_GRAY_EDITABLE
,
111
EGDC_FOCUSED_EDITABLE
,
112
115
EGDC_COUNT
116
};
117
119
const
c8
*
const
GUISkinColorNames
[
EGDC_COUNT
+1] =
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
150
enum
EGUI_DEFAULT_SIZE
151
{
153
EGDS_SCROLLBAR_SIZE
= 0,
155
EGDS_MENU_HEIGHT
,
157
EGDS_WINDOW_BUTTON_WIDTH
,
159
EGDS_CHECK_BOX_WIDTH
,
161
EGDS_MESSAGE_BOX_WIDTH
,
163
EGDS_MESSAGE_BOX_HEIGHT
,
165
EGDS_BUTTON_WIDTH
,
167
EGDS_BUTTON_HEIGHT
,
169
EGDS_TEXT_DISTANCE_X
,
171
EGDS_TEXT_DISTANCE_Y
,
173
EGDS_TITLEBARTEXT_DISTANCE_X
,
175
EGDS_TITLEBARTEXT_DISTANCE_Y
,
177
EGDS_MESSAGE_BOX_GAP_SPACE
,
179
EGDS_MESSAGE_BOX_MIN_TEXT_WIDTH
,
181
EGDS_MESSAGE_BOX_MAX_TEXT_WIDTH
,
183
EGDS_MESSAGE_BOX_MIN_TEXT_HEIGHT
,
185
EGDS_MESSAGE_BOX_MAX_TEXT_HEIGHT
,
187
EGDS_BUTTON_PRESSED_IMAGE_OFFSET_X
,
189
EGDS_BUTTON_PRESSED_IMAGE_OFFSET_Y
,
191
EGDS_BUTTON_PRESSED_TEXT_OFFSET_X
,
193
EGDS_BUTTON_PRESSED_TEXT_OFFSET_Y
,
194
197
EGDS_COUNT
198
};
199
200
202
const
c8
*
const
GUISkinSizeNames
[
EGDS_COUNT
+1] =
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
229
enum
EGUI_DEFAULT_TEXT
230
{
232
EGDT_MSG_BOX_OK
= 0,
234
EGDT_MSG_BOX_CANCEL
,
236
EGDT_MSG_BOX_YES
,
238
EGDT_MSG_BOX_NO
,
240
EGDT_WINDOW_CLOSE
,
242
EGDT_WINDOW_MAXIMIZE
,
244
EGDT_WINDOW_MINIMIZE
,
246
EGDT_WINDOW_RESTORE
,
247
249
EGDT_COUNT
250
};
251
253
const
c8
*
const
GUISkinTextNames
[
EGDT_COUNT
+1] =
254
{
255
"MessageBoxOkay"
,
256
"MessageBoxCancel"
,
257
"MessageBoxYes"
,
258
"MessageBoxNo"
,
259
"WindowButtonClose"
,
260
"WindowButtonMaximize"
,
261
"WindowButtonMinimize"
,
262
"WindowButtonRestore"
,
263
0
264
};
265
267
enum
EGUI_DEFAULT_ICON
268
{
270
EGDI_WINDOW_MAXIMIZE
= 0,
272
EGDI_WINDOW_RESTORE
,
274
EGDI_WINDOW_CLOSE
,
276
EGDI_WINDOW_MINIMIZE
,
278
EGDI_WINDOW_RESIZE
,
280
EGDI_CURSOR_UP
,
282
EGDI_CURSOR_DOWN
,
284
EGDI_CURSOR_LEFT
,
286
EGDI_CURSOR_RIGHT
,
288
EGDI_MENU_MORE
,
290
EGDI_CHECK_BOX_CHECKED
,
292
EGDI_DROP_DOWN
,
294
EGDI_SMALL_CURSOR_UP
,
296
EGDI_SMALL_CURSOR_DOWN
,
298
EGDI_RADIO_BUTTON_CHECKED
,
300
EGDI_MORE_LEFT
,
302
EGDI_MORE_RIGHT
,
304
EGDI_MORE_UP
,
306
EGDI_MORE_DOWN
,
308
EGDI_EXPAND
,
309
311
EGDI_COLLAPSE
,
313
EGDI_FILE
,
315
EGDI_DIRECTORY
,
316
318
EGDI_COUNT
319
};
320
321
const
c8
*
const
GUISkinIconNames
[
EGDI_COUNT
+1] =
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
350
enum
EGUI_DEFAULT_FONT
351
{
353
EGDF_DEFAULT
=0,
355
EGDF_BUTTON
,
357
EGDF_WINDOW
,
359
EGDF_MENU
,
361
EGDF_TOOLTIP
,
364
EGDF_COUNT
365
};
366
367
const
c8
*
const
GUISkinFontNames
[
EGDF_COUNT
+1] =
368
{
369
"defaultFont"
,
370
"buttonFont"
,
371
"windowFont"
,
372
"menuFont"
,
373
"tooltipFont"
,
374
0
375
};
376
378
class
IGUISkin
:
public
virtual
io::IAttributeExchangingObject
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
405
virtual
IGUIFont
*
getFont
(
EGUI_DEFAULT_FONT
which=
EGDF_DEFAULT
)
const
= 0;
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
436
virtual
void
draw3DButtonPaneStandard
(
IGUIElement
* element,
437
const
core::rect<s32>
& rect,
438
const
core::rect<s32>
* clip=0) = 0;
439
441
449
virtual
void
draw3DButtonPanePressed
(
IGUIElement
* element,
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
484
virtual
core::rect<s32>
draw3DWindowBackground
(
IGUIElement
* element,
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
Irrlicht Engine
Documentation © 2003-2012 by Nikolaus Gebhardt. Generated on Tue Apr 7 2020 19:33:42 for Irrlicht 3D Engine by
Doxygen
1.8.1.2