aboutsummaryrefslogtreecommitdiff
path: root/src/gui/guiSkin.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/guiSkin.cpp')
-rw-r--r--src/gui/guiSkin.cpp475
1 files changed, 198 insertions, 277 deletions
diff --git a/src/gui/guiSkin.cpp b/src/gui/guiSkin.cpp
index 8892a00b4..e2a6af5fd 100644
--- a/src/gui/guiSkin.cpp
+++ b/src/gui/guiSkin.cpp
@@ -18,41 +18,39 @@ namespace irr
namespace gui
{
-GUISkin::GUISkin(EGUI_SKIN_TYPE type, video::IVideoDriver* driver)
-: SpriteBank(0), Driver(driver), Type(type)
+GUISkin::GUISkin(EGUI_SKIN_TYPE type, video::IVideoDriver *driver) :
+ SpriteBank(0), Driver(driver), Type(type)
{
- #ifdef _DEBUG
+#ifdef _DEBUG
setDebugName("GUISkin");
- #endif
-
- if ((Type == EGST_WINDOWS_CLASSIC) || (Type == EGST_WINDOWS_METALLIC))
- {
- Colors[EGDC_3D_DARK_SHADOW] = video::SColor(101,50,50,50);
- Colors[EGDC_3D_SHADOW] = video::SColor(101,130,130,130);
- Colors[EGDC_3D_FACE] = video::SColor(101,210,210,210);
- Colors[EGDC_3D_HIGH_LIGHT] = video::SColor(101,255,255,255);
- Colors[EGDC_3D_LIGHT] = video::SColor(101,210,210,210);
- Colors[EGDC_ACTIVE_BORDER] = video::SColor(101,16,14,115);
- Colors[EGDC_ACTIVE_CAPTION] = video::SColor(255,255,255,255);
- Colors[EGDC_APP_WORKSPACE] = video::SColor(101,100,100,100);
- Colors[EGDC_BUTTON_TEXT] = video::SColor(240,10,10,10);
- Colors[EGDC_GRAY_TEXT] = video::SColor(240,130,130,130);
- Colors[EGDC_HIGH_LIGHT] = video::SColor(101,8,36,107);
- Colors[EGDC_HIGH_LIGHT_TEXT] = video::SColor(240,255,255,255);
- Colors[EGDC_INACTIVE_BORDER] = video::SColor(101,165,165,165);
- Colors[EGDC_INACTIVE_CAPTION] = video::SColor(255,30,30,30);
- Colors[EGDC_TOOLTIP] = video::SColor(200,0,0,0);
- Colors[EGDC_TOOLTIP_BACKGROUND] = video::SColor(200,255,255,225);
- Colors[EGDC_SCROLLBAR] = video::SColor(101,230,230,230);
- Colors[EGDC_WINDOW] = video::SColor(101,255,255,255);
- Colors[EGDC_WINDOW_SYMBOL] = video::SColor(200,10,10,10);
- Colors[EGDC_ICON] = video::SColor(200,255,255,255);
- Colors[EGDC_ICON_HIGH_LIGHT] = video::SColor(200,8,36,107);
- Colors[EGDC_GRAY_WINDOW_SYMBOL] = video::SColor(240,100,100,100);
- Colors[EGDC_EDITABLE] = video::SColor(255,255,255,255);
- Colors[EGDC_GRAY_EDITABLE] = video::SColor(255,120,120,120);
- Colors[EGDC_FOCUSED_EDITABLE] = video::SColor(255,240,240,255);
-
+#endif
+
+ if ((Type == EGST_WINDOWS_CLASSIC) || (Type == EGST_WINDOWS_METALLIC)) {
+ Colors[EGDC_3D_DARK_SHADOW] = video::SColor(101, 50, 50, 50);
+ Colors[EGDC_3D_SHADOW] = video::SColor(101, 130, 130, 130);
+ Colors[EGDC_3D_FACE] = video::SColor(101, 210, 210, 210);
+ Colors[EGDC_3D_HIGH_LIGHT] = video::SColor(101, 255, 255, 255);
+ Colors[EGDC_3D_LIGHT] = video::SColor(101, 210, 210, 210);
+ Colors[EGDC_ACTIVE_BORDER] = video::SColor(101, 16, 14, 115);
+ Colors[EGDC_ACTIVE_CAPTION] = video::SColor(255, 255, 255, 255);
+ Colors[EGDC_APP_WORKSPACE] = video::SColor(101, 100, 100, 100);
+ Colors[EGDC_BUTTON_TEXT] = video::SColor(240, 10, 10, 10);
+ Colors[EGDC_GRAY_TEXT] = video::SColor(240, 130, 130, 130);
+ Colors[EGDC_HIGH_LIGHT] = video::SColor(101, 8, 36, 107);
+ Colors[EGDC_HIGH_LIGHT_TEXT] = video::SColor(240, 255, 255, 255);
+ Colors[EGDC_INACTIVE_BORDER] = video::SColor(101, 165, 165, 165);
+ Colors[EGDC_INACTIVE_CAPTION] = video::SColor(255, 30, 30, 30);
+ Colors[EGDC_TOOLTIP] = video::SColor(200, 0, 0, 0);
+ Colors[EGDC_TOOLTIP_BACKGROUND] = video::SColor(200, 255, 255, 225);
+ Colors[EGDC_SCROLLBAR] = video::SColor(101, 230, 230, 230);
+ Colors[EGDC_WINDOW] = video::SColor(101, 255, 255, 255);
+ Colors[EGDC_WINDOW_SYMBOL] = video::SColor(200, 10, 10, 10);
+ Colors[EGDC_ICON] = video::SColor(200, 255, 255, 255);
+ Colors[EGDC_ICON_HIGH_LIGHT] = video::SColor(200, 8, 36, 107);
+ Colors[EGDC_GRAY_WINDOW_SYMBOL] = video::SColor(240, 100, 100, 100);
+ Colors[EGDC_EDITABLE] = video::SColor(255, 255, 255, 255);
+ Colors[EGDC_GRAY_EDITABLE] = video::SColor(255, 120, 120, 120);
+ Colors[EGDC_FOCUSED_EDITABLE] = video::SColor(255, 240, 240, 255);
Sizes[EGDS_SCROLLBAR_SIZE] = 14;
Sizes[EGDS_MENU_HEIGHT] = 30;
@@ -68,36 +66,36 @@ GUISkin::GUISkin(EGUI_SKIN_TYPE type, video::IVideoDriver* driver)
Sizes[EGDS_TITLEBARTEXT_DISTANCE_X] = 2;
Sizes[EGDS_TITLEBARTEXT_DISTANCE_Y] = 0;
- }
- else
- {
- //0x80a6a8af
- Colors[EGDC_3D_DARK_SHADOW] = 0x60767982;
- //Colors[EGDC_3D_FACE] = 0xc0c9ccd4; // tab background
- Colors[EGDC_3D_FACE] = 0xc0cbd2d9; // tab background
- Colors[EGDC_3D_SHADOW] = 0x50e4e8f1; // tab background, and left-top highlight
- Colors[EGDC_3D_HIGH_LIGHT] = 0x40c7ccdc;
- Colors[EGDC_3D_LIGHT] = 0x802e313a;
- Colors[EGDC_ACTIVE_BORDER] = 0x80404040; // window title
- Colors[EGDC_ACTIVE_CAPTION] = 0xffd0d0d0;
- Colors[EGDC_APP_WORKSPACE] = 0xc0646464; // unused
- Colors[EGDC_BUTTON_TEXT] = 0xd0161616;
- Colors[EGDC_GRAY_TEXT] = 0x3c141414;
- Colors[EGDC_HIGH_LIGHT] = 0x6c606060;
- Colors[EGDC_HIGH_LIGHT_TEXT] = 0xd0e0e0e0;
- Colors[EGDC_INACTIVE_BORDER] = 0xf0a5a5a5;
- Colors[EGDC_INACTIVE_CAPTION] = 0xffd2d2d2;
- Colors[EGDC_TOOLTIP] = 0xf00f2033;
- Colors[EGDC_TOOLTIP_BACKGROUND] = 0xc0cbd2d9;
- Colors[EGDC_SCROLLBAR] = 0xf0e0e0e0;
- Colors[EGDC_WINDOW] = 0xf0f0f0f0;
- Colors[EGDC_WINDOW_SYMBOL] = 0xd0161616;
- Colors[EGDC_ICON] = 0xd0161616;
- Colors[EGDC_ICON_HIGH_LIGHT] = 0xd0606060;
- Colors[EGDC_GRAY_WINDOW_SYMBOL] = 0x3c101010;
- Colors[EGDC_EDITABLE] = 0xf0ffffff;
- Colors[EGDC_GRAY_EDITABLE] = 0xf0cccccc;
- Colors[EGDC_FOCUSED_EDITABLE] = 0xf0fffff0;
+ } else {
+ // 0x80a6a8af
+ Colors[EGDC_3D_DARK_SHADOW] = 0x60767982;
+ // Colors[EGDC_3D_FACE] = 0xc0c9ccd4; // tab
+ // background
+ Colors[EGDC_3D_FACE] = 0xc0cbd2d9; // tab background
+ Colors[EGDC_3D_SHADOW] =
+ 0x50e4e8f1; // tab background, and left-top highlight
+ Colors[EGDC_3D_HIGH_LIGHT] = 0x40c7ccdc;
+ Colors[EGDC_3D_LIGHT] = 0x802e313a;
+ Colors[EGDC_ACTIVE_BORDER] = 0x80404040; // window title
+ Colors[EGDC_ACTIVE_CAPTION] = 0xffd0d0d0;
+ Colors[EGDC_APP_WORKSPACE] = 0xc0646464; // unused
+ Colors[EGDC_BUTTON_TEXT] = 0xd0161616;
+ Colors[EGDC_GRAY_TEXT] = 0x3c141414;
+ Colors[EGDC_HIGH_LIGHT] = 0x6c606060;
+ Colors[EGDC_HIGH_LIGHT_TEXT] = 0xd0e0e0e0;
+ Colors[EGDC_INACTIVE_BORDER] = 0xf0a5a5a5;
+ Colors[EGDC_INACTIVE_CAPTION] = 0xffd2d2d2;
+ Colors[EGDC_TOOLTIP] = 0xf00f2033;
+ Colors[EGDC_TOOLTIP_BACKGROUND] = 0xc0cbd2d9;
+ Colors[EGDC_SCROLLBAR] = 0xf0e0e0e0;
+ Colors[EGDC_WINDOW] = 0xf0f0f0f0;
+ Colors[EGDC_WINDOW_SYMBOL] = 0xd0161616;
+ Colors[EGDC_ICON] = 0xd0161616;
+ Colors[EGDC_ICON_HIGH_LIGHT] = 0xd0606060;
+ Colors[EGDC_GRAY_WINDOW_SYMBOL] = 0x3c101010;
+ Colors[EGDC_EDITABLE] = 0xf0ffffff;
+ Colors[EGDC_GRAY_EDITABLE] = 0xf0cccccc;
+ Colors[EGDC_FOCUSED_EDITABLE] = 0xf0fffff0;
Sizes[EGDS_SCROLLBAR_SIZE] = 14;
Sizes[EGDS_MENU_HEIGHT] = 48;
@@ -160,18 +158,16 @@ GUISkin::GUISkin(EGUI_SKIN_TYPE type, video::IVideoDriver* driver)
Icons[EGDI_FILE] = 245;
Icons[EGDI_DIRECTORY] = 246;
- for (u32 i=0; i<EGDF_COUNT; ++i)
+ for (u32 i = 0; i < EGDF_COUNT; ++i)
Fonts[i] = 0;
- UseGradient = (Type == EGST_WINDOWS_METALLIC) || (Type == EGST_BURNING_SKIN) ;
+ UseGradient = (Type == EGST_WINDOWS_METALLIC) || (Type == EGST_BURNING_SKIN);
}
-
//! destructor
GUISkin::~GUISkin()
{
- for (u32 i=0; i<EGDF_COUNT; ++i)
- {
+ for (u32 i = 0; i < EGDF_COUNT; ++i) {
if (Fonts[i])
Fonts[i]->drop();
}
@@ -180,7 +176,6 @@ GUISkin::~GUISkin()
SpriteBank->drop();
}
-
//! returns default color
video::SColor GUISkin::getColor(EGUI_DEFAULT_COLOR color) const
{
@@ -190,7 +185,6 @@ video::SColor GUISkin::getColor(EGUI_DEFAULT_COLOR color) const
return video::SColor();
}
-
//! sets a default color
void GUISkin::setColor(EGUI_DEFAULT_COLOR which, video::SColor newColor)
{
@@ -198,7 +192,6 @@ void GUISkin::setColor(EGUI_DEFAULT_COLOR which, video::SColor newColor)
Colors[which] = newColor;
}
-
//! returns size for the given size type
s32 GUISkin::getSize(EGUI_DEFAULT_SIZE size) const
{
@@ -208,7 +201,6 @@ s32 GUISkin::getSize(EGUI_DEFAULT_SIZE size) const
return 0;
}
-
//! sets a default size
void GUISkin::setSize(EGUI_DEFAULT_SIZE which, s32 size)
{
@@ -216,9 +208,8 @@ void GUISkin::setSize(EGUI_DEFAULT_SIZE which, s32 size)
Sizes[which] = size;
}
-
//! returns the default font
-IGUIFont* GUISkin::getFont(EGUI_DEFAULT_FONT which) const
+IGUIFont *GUISkin::getFont(EGUI_DEFAULT_FONT which) const
{
if (((u32)which < EGDF_COUNT) && Fonts[which])
return Fonts[which];
@@ -226,15 +217,13 @@ IGUIFont* GUISkin::getFont(EGUI_DEFAULT_FONT which) const
return Fonts[EGDF_DEFAULT];
}
-
//! sets a default font
-void GUISkin::setFont(IGUIFont* font, EGUI_DEFAULT_FONT which)
+void GUISkin::setFont(IGUIFont *font, EGUI_DEFAULT_FONT which)
{
if ((u32)which >= EGDF_COUNT)
return;
- if (font)
- {
+ if (font) {
font->grab();
if (Fonts[which])
Fonts[which]->drop();
@@ -243,16 +232,14 @@ void GUISkin::setFont(IGUIFont* font, EGUI_DEFAULT_FONT which)
}
}
-
//! gets the sprite bank stored
-IGUISpriteBank* GUISkin::getSpriteBank() const
+IGUISpriteBank *GUISkin::getSpriteBank() const
{
return SpriteBank;
}
-
//! set a new sprite bank or remove one by passing 0
-void GUISkin::setSpriteBank(IGUISpriteBank* bank)
+void GUISkin::setSpriteBank(IGUISpriteBank *bank)
{
if (bank)
bank->grab();
@@ -263,7 +250,6 @@ void GUISkin::setSpriteBank(IGUISpriteBank* bank)
SpriteBank = bank;
}
-
//! Returns a default icon
u32 GUISkin::getIcon(EGUI_DEFAULT_ICON icon) const
{
@@ -273,7 +259,6 @@ u32 GUISkin::getIcon(EGUI_DEFAULT_ICON icon) const
return 0;
}
-
//! Sets a default icon
void GUISkin::setIcon(EGUI_DEFAULT_ICON icon, u32 index)
{
@@ -281,10 +266,9 @@ void GUISkin::setIcon(EGUI_DEFAULT_ICON icon, u32 index)
Icons[icon] = index;
}
-
//! Returns a default text. For example for Message box button captions:
//! "OK", "Cancel", "Yes", "No" and so on.
-const wchar_t* GUISkin::getDefaultText(EGUI_DEFAULT_TEXT text) const
+const wchar_t *GUISkin::getDefaultText(EGUI_DEFAULT_TEXT text) const
{
if ((u32)text < EGDT_COUNT)
return Texts[text].c_str();
@@ -292,16 +276,14 @@ const wchar_t* GUISkin::getDefaultText(EGUI_DEFAULT_TEXT text) const
return Texts[0].c_str();
}
-
//! Sets a default text. For example for Message box button captions:
//! "OK", "Cancel", "Yes", "No" and so on.
-void GUISkin::setDefaultText(EGUI_DEFAULT_TEXT which, const wchar_t* newText)
+void GUISkin::setDefaultText(EGUI_DEFAULT_TEXT which, const wchar_t *newText)
{
if ((u32)which < EGDT_COUNT)
Texts[which] = newText;
}
-
//! draws a standard 3d button pane
/** Used for drawing for example buttons in normal state.
It uses the colors EGDC_3D_DARK_SHADOW, EGDC_3D_HIGH_LIGHT, EGDC_3D_SHADOW and
@@ -312,10 +294,9 @@ EGDC_3D_FACE for this. See EGUI_DEFAULT_COLOR for details.
is usually not used by ISkin, but can be used for example by more complex
implementations to find out how to draw the part exactly. */
// PATCH
-void GUISkin::drawColored3DButtonPaneStandard(IGUIElement* element,
- const core::rect<s32>& r,
- const core::rect<s32>* clip,
- const video::SColor* colors)
+void GUISkin::drawColored3DButtonPaneStandard(IGUIElement *element,
+ const core::rect<s32> &r, const core::rect<s32> *clip,
+ const video::SColor *colors)
{
if (!Driver)
return;
@@ -325,15 +306,14 @@ void GUISkin::drawColored3DButtonPaneStandard(IGUIElement* element,
core::rect<s32> rect = r;
- if ( Type == EGST_BURNING_SKIN )
- {
+ if (Type == EGST_BURNING_SKIN) {
rect.UpperLeftCorner.X -= 1;
rect.UpperLeftCorner.Y -= 1;
rect.LowerRightCorner.X += 1;
rect.LowerRightCorner.Y += 1;
draw3DSunkenPane(element,
- colors[ EGDC_WINDOW ].getInterpolated( 0xFFFFFFFF, 0.9f )
- ,false, true, rect, clip);
+ colors[EGDC_WINDOW].getInterpolated(0xFFFFFFFF, 0.9f),
+ false, true, rect, clip);
return;
}
@@ -350,20 +330,17 @@ void GUISkin::drawColored3DButtonPaneStandard(IGUIElement* element,
rect.LowerRightCorner.X -= 1;
rect.LowerRightCorner.Y -= 1;
- if (!UseGradient)
- {
+ if (!UseGradient) {
Driver->draw2DRectangle(colors[EGDC_3D_FACE], rect, clip);
- }
- else
- {
+ } else {
const video::SColor c1 = colors[EGDC_3D_FACE];
- const video::SColor c2 = c1.getInterpolated(colors[EGDC_3D_DARK_SHADOW], 0.4f);
+ const video::SColor c2 =
+ c1.getInterpolated(colors[EGDC_3D_DARK_SHADOW], 0.4f);
Driver->draw2DRectangle(rect, c1, c1, c2, c2, clip);
}
}
// END PATCH
-
//! draws a pressed 3d button pane
/** Used for drawing for example buttons in pressed state.
It uses the colors EGDC_3D_DARK_SHADOW, EGDC_3D_HIGH_LIGHT, EGDC_3D_SHADOW and
@@ -374,10 +351,9 @@ EGDC_3D_FACE for this. See EGUI_DEFAULT_COLOR for details.
is usually not used by ISkin, but can be used for example by more complex
implementations to find out how to draw the part exactly. */
// PATCH
-void GUISkin::drawColored3DButtonPanePressed(IGUIElement* element,
- const core::rect<s32>& r,
- const core::rect<s32>* clip,
- const video::SColor* colors)
+void GUISkin::drawColored3DButtonPanePressed(IGUIElement *element,
+ const core::rect<s32> &r, const core::rect<s32> *clip,
+ const video::SColor *colors)
{
if (!Driver)
return;
@@ -399,20 +375,17 @@ void GUISkin::drawColored3DButtonPanePressed(IGUIElement* element,
rect.UpperLeftCorner.X += 1;
rect.UpperLeftCorner.Y += 1;
- if (!UseGradient)
- {
+ if (!UseGradient) {
Driver->draw2DRectangle(colors[EGDC_3D_FACE], rect, clip);
- }
- else
- {
+ } else {
const video::SColor c1 = colors[EGDC_3D_FACE];
- const video::SColor c2 = c1.getInterpolated(colors[EGDC_3D_DARK_SHADOW], 0.4f);
+ const video::SColor c2 =
+ c1.getInterpolated(colors[EGDC_3D_DARK_SHADOW], 0.4f);
Driver->draw2DRectangle(rect, c1, c1, c2, c2, clip);
}
}
// END PATCH
-
//! draws a sunken 3d pane
/** Used for drawing the background of edit, combo or check boxes.
\param element: Pointer to the element which wishes to draw this. This parameter
@@ -424,11 +397,9 @@ deep into the ground.
\param rect: Defining area where to draw.
\param clip: Clip area. */
// PATCH
-void GUISkin::drawColored3DSunkenPane(IGUIElement* element, video::SColor bgcolor,
- bool flat, bool fillBackGround,
- const core::rect<s32>& r,
- const core::rect<s32>* clip,
- const video::SColor* colors)
+void GUISkin::drawColored3DSunkenPane(IGUIElement *element, video::SColor bgcolor,
+ bool flat, bool fillBackGround, const core::rect<s32> &r,
+ const core::rect<s32> *clip, const video::SColor *colors)
{
if (!Driver)
return;
@@ -441,34 +412,31 @@ void GUISkin::drawColored3DSunkenPane(IGUIElement* element, video::SColor bgcolo
if (fillBackGround)
Driver->draw2DRectangle(bgcolor, rect, clip);
- if (flat)
- {
+ if (flat) {
// draw flat sunken pane
rect.LowerRightCorner.Y = rect.UpperLeftCorner.Y + 1;
- Driver->draw2DRectangle(colors[EGDC_3D_SHADOW], rect, clip); // top
+ Driver->draw2DRectangle(colors[EGDC_3D_SHADOW], rect, clip); // top
++rect.UpperLeftCorner.Y;
rect.LowerRightCorner.Y = r.LowerRightCorner.Y;
rect.LowerRightCorner.X = rect.UpperLeftCorner.X + 1;
- Driver->draw2DRectangle(colors[EGDC_3D_SHADOW], rect, clip); // left
+ Driver->draw2DRectangle(colors[EGDC_3D_SHADOW], rect, clip); // left
rect = r;
++rect.UpperLeftCorner.Y;
rect.UpperLeftCorner.X = rect.LowerRightCorner.X - 1;
- Driver->draw2DRectangle(colors[EGDC_3D_HIGH_LIGHT], rect, clip); // right
+ Driver->draw2DRectangle(colors[EGDC_3D_HIGH_LIGHT], rect, clip); // right
rect = r;
++rect.UpperLeftCorner.X;
rect.UpperLeftCorner.Y = r.LowerRightCorner.Y - 1;
--rect.LowerRightCorner.X;
- Driver->draw2DRectangle(colors[EGDC_3D_HIGH_LIGHT], rect, clip); // bottom
- }
- else
- {
+ Driver->draw2DRectangle(colors[EGDC_3D_HIGH_LIGHT], rect, clip); // bottom
+ } else {
// draw deep sunken pane
rect.LowerRightCorner.Y = rect.UpperLeftCorner.Y + 1;
- Driver->draw2DRectangle(colors[EGDC_3D_SHADOW], rect, clip); // top
+ Driver->draw2DRectangle(colors[EGDC_3D_SHADOW], rect, clip); // top
++rect.UpperLeftCorner.X;
++rect.UpperLeftCorner.Y;
--rect.LowerRightCorner.X;
@@ -476,10 +444,10 @@ void GUISkin::drawColored3DSunkenPane(IGUIElement* element, video::SColor bgcolo
Driver->draw2DRectangle(colors[EGDC_3D_DARK_SHADOW], rect, clip);
rect.UpperLeftCorner.X = r.UpperLeftCorner.X;
- rect.UpperLeftCorner.Y = r.UpperLeftCorner.Y+1;
+ rect.UpperLeftCorner.Y = r.UpperLeftCorner.Y + 1;
rect.LowerRightCorner.X = rect.UpperLeftCorner.X + 1;
rect.LowerRightCorner.Y = r.LowerRightCorner.Y;
- Driver->draw2DRectangle(colors[EGDC_3D_SHADOW], rect, clip); // left
+ Driver->draw2DRectangle(colors[EGDC_3D_SHADOW], rect, clip); // left
++rect.UpperLeftCorner.X;
++rect.UpperLeftCorner.Y;
++rect.LowerRightCorner.X;
@@ -489,7 +457,7 @@ void GUISkin::drawColored3DSunkenPane(IGUIElement* element, video::SColor bgcolo
rect = r;
rect.UpperLeftCorner.X = rect.LowerRightCorner.X - 1;
++rect.UpperLeftCorner.Y;
- Driver->draw2DRectangle(colors[EGDC_3D_HIGH_LIGHT], rect, clip); // right
+ Driver->draw2DRectangle(colors[EGDC_3D_HIGH_LIGHT], rect, clip); // right
--rect.UpperLeftCorner.X;
++rect.UpperLeftCorner.Y;
--rect.LowerRightCorner.X;
@@ -500,7 +468,7 @@ void GUISkin::drawColored3DSunkenPane(IGUIElement* element, video::SColor bgcolo
++rect.UpperLeftCorner.X;
rect.UpperLeftCorner.Y = r.LowerRightCorner.Y - 1;
--rect.LowerRightCorner.X;
- Driver->draw2DRectangle(colors[EGDC_3D_HIGH_LIGHT], rect, clip); // bottom
+ Driver->draw2DRectangle(colors[EGDC_3D_HIGH_LIGHT], rect, clip); // bottom
++rect.UpperLeftCorner.X;
--rect.UpperLeftCorner.Y;
--rect.LowerRightCorner.X;
@@ -513,17 +481,13 @@ void GUISkin::drawColored3DSunkenPane(IGUIElement* element, video::SColor bgcolo
//! draws a window background
// return where to draw title bar text.
// PATCH
-core::rect<s32> GUISkin::drawColored3DWindowBackground(IGUIElement* element,
- bool drawTitleBar, video::SColor titleBarColor,
- const core::rect<s32>& r,
- const core::rect<s32>* clip,
- core::rect<s32>* checkClientArea,
- const video::SColor* colors)
+core::rect<s32> GUISkin::drawColored3DWindowBackground(IGUIElement *element,
+ bool drawTitleBar, video::SColor titleBarColor, const core::rect<s32> &r,
+ const core::rect<s32> *clip, core::rect<s32> *checkClientArea,
+ const video::SColor *colors)
{
- if (!Driver)
- {
- if ( checkClientArea )
- {
+ if (!Driver) {
+ if (checkClientArea) {
*checkClientArea = r;
}
return r;
@@ -536,16 +500,14 @@ core::rect<s32> GUISkin::drawColored3DWindowBackground(IGUIElement* element,
// top border
rect.LowerRightCorner.Y = rect.UpperLeftCorner.Y + 1;
- if ( !checkClientArea )
- {
+ if (!checkClientArea) {
Driver->draw2DRectangle(colors[EGDC_3D_HIGH_LIGHT], rect, clip);
}
// left border
rect.LowerRightCorner.Y = r.LowerRightCorner.Y;
rect.LowerRightCorner.X = rect.UpperLeftCorner.X + 1;
- if ( !checkClientArea )
- {
+ if (!checkClientArea) {
Driver->draw2DRectangle(colors[EGDC_3D_HIGH_LIGHT], rect, clip);
}
@@ -554,8 +516,7 @@ core::rect<s32> GUISkin::drawColored3DWindowBackground(IGUIElement* element,
rect.LowerRightCorner.X = r.LowerRightCorner.X;
rect.UpperLeftCorner.Y = r.UpperLeftCorner.Y;
rect.LowerRightCorner.Y = r.LowerRightCorner.Y;
- if ( !checkClientArea )
- {
+ if (!checkClientArea) {
Driver->draw2DRectangle(colors[EGDC_3D_DARK_SHADOW], rect, clip);
}
@@ -564,8 +525,7 @@ core::rect<s32> GUISkin::drawColored3DWindowBackground(IGUIElement* element,
rect.LowerRightCorner.X -= 1;
rect.UpperLeftCorner.Y += 1;
rect.LowerRightCorner.Y -= 1;
- if ( !checkClientArea )
- {
+ if (!checkClientArea) {
Driver->draw2DRectangle(colors[EGDC_3D_SHADOW], rect, clip);
}
@@ -574,8 +534,7 @@ core::rect<s32> GUISkin::drawColored3DWindowBackground(IGUIElement* element,
rect.UpperLeftCorner.Y = r.LowerRightCorner.Y - 1;
rect.LowerRightCorner.Y = r.LowerRightCorner.Y;
rect.LowerRightCorner.X = r.LowerRightCorner.X;
- if ( !checkClientArea )
- {
+ if (!checkClientArea) {
Driver->draw2DRectangle(colors[EGDC_3D_DARK_SHADOW], rect, clip);
}
@@ -584,37 +543,31 @@ core::rect<s32> GUISkin::drawColored3DWindowBackground(IGUIElement* element,
rect.LowerRightCorner.X -= 1;
rect.UpperLeftCorner.Y -= 1;
rect.LowerRightCorner.Y -= 1;
- if ( !checkClientArea )
- {
+ if (!checkClientArea) {
Driver->draw2DRectangle(colors[EGDC_3D_SHADOW], rect, clip);
}
// client area for background
rect = r;
- rect.UpperLeftCorner.X +=1;
- rect.UpperLeftCorner.Y +=1;
+ rect.UpperLeftCorner.X += 1;
+ rect.UpperLeftCorner.Y += 1;
rect.LowerRightCorner.X -= 2;
rect.LowerRightCorner.Y -= 2;
- if (checkClientArea)
- {
+ if (checkClientArea) {
*checkClientArea = rect;
}
- if ( !checkClientArea )
- {
- if (!UseGradient)
- {
+ if (!checkClientArea) {
+ if (!UseGradient) {
Driver->draw2DRectangle(colors[EGDC_3D_FACE], rect, clip);
- }
- else if ( Type == EGST_BURNING_SKIN )
- {
- const video::SColor c1 = colors[EGDC_WINDOW].getInterpolated ( 0xFFFFFFFF, 0.9f );
- const video::SColor c2 = colors[EGDC_WINDOW].getInterpolated ( 0xFFFFFFFF, 0.8f );
+ } else if (Type == EGST_BURNING_SKIN) {
+ const video::SColor c1 = colors[EGDC_WINDOW].getInterpolated(
+ 0xFFFFFFFF, 0.9f);
+ const video::SColor c2 = colors[EGDC_WINDOW].getInterpolated(
+ 0xFFFFFFFF, 0.8f);
Driver->draw2DRectangle(rect, c1, c1, c2, c2, clip);
- }
- else
- {
+ } else {
const video::SColor c2 = colors[EGDC_3D_SHADOW];
const video::SColor c1 = colors[EGDC_3D_FACE];
Driver->draw2DRectangle(rect, c1, c1, c1, c2, clip);
@@ -626,29 +579,31 @@ core::rect<s32> GUISkin::drawColored3DWindowBackground(IGUIElement* element,
rect.UpperLeftCorner.X += 2;
rect.UpperLeftCorner.Y += 2;
rect.LowerRightCorner.X -= 2;
- rect.LowerRightCorner.Y = rect.UpperLeftCorner.Y + getSize(EGDS_WINDOW_BUTTON_WIDTH) + 2;
+ rect.LowerRightCorner.Y =
+ rect.UpperLeftCorner.Y + getSize(EGDS_WINDOW_BUTTON_WIDTH) + 2;
- if (drawTitleBar )
- {
- if (checkClientArea)
- {
+ if (drawTitleBar) {
+ if (checkClientArea) {
(*checkClientArea).UpperLeftCorner.Y = rect.LowerRightCorner.Y;
- }
- else
- {
+ } else {
// draw title bar
- //if (!UseGradient)
+ // if (!UseGradient)
// Driver->draw2DRectangle(titleBarColor, rect, clip);
- //else
- if ( Type == EGST_BURNING_SKIN )
- {
- const video::SColor c = titleBarColor.getInterpolated( video::SColor(titleBarColor.getAlpha(),255,255,255), 0.8f);
- Driver->draw2DRectangle(rect, titleBarColor, titleBarColor, c, c, clip);
- }
- else
- {
- const video::SColor c = titleBarColor.getInterpolated(video::SColor(titleBarColor.getAlpha(),0,0,0), 0.2f);
- Driver->draw2DRectangle(rect, titleBarColor, c, titleBarColor, c, clip);
+ // else
+ if (Type == EGST_BURNING_SKIN) {
+ const video::SColor c = titleBarColor.getInterpolated(
+ video::SColor(titleBarColor.getAlpha(),
+ 255, 255, 255),
+ 0.8f);
+ Driver->draw2DRectangle(rect, titleBarColor,
+ titleBarColor, c, c, clip);
+ } else {
+ const video::SColor c = titleBarColor.getInterpolated(
+ video::SColor(titleBarColor.getAlpha(), 0,
+ 0, 0),
+ 0.2f);
+ Driver->draw2DRectangle(rect, titleBarColor, c,
+ titleBarColor, c, clip);
}
}
}
@@ -657,7 +612,6 @@ core::rect<s32> GUISkin::drawColored3DWindowBackground(IGUIElement* element,
}
// END PATCH
-
//! draws a standard 3d menu pane
/** Used for drawing for menus and context menus.
It uses the colors EGDC_3D_DARK_SHADOW, EGDC_3D_HIGH_LIGHT, EGDC_3D_SHADOW and
@@ -668,9 +622,8 @@ implementations to find out how to draw the part exactly.
\param rect: Defining area where to draw.
\param clip: Clip area. */
// PATCH
-void GUISkin::drawColored3DMenuPane(IGUIElement* element,
- const core::rect<s32>& r, const core::rect<s32>* clip,
- const video::SColor* colors)
+void GUISkin::drawColored3DMenuPane(IGUIElement *element, const core::rect<s32> &r,
+ const core::rect<s32> *clip, const video::SColor *colors)
{
if (!Driver)
return;
@@ -680,8 +633,7 @@ void GUISkin::drawColored3DMenuPane(IGUIElement* element,
core::rect<s32> rect = r;
- if ( Type == EGST_BURNING_SKIN )
- {
+ if (Type == EGST_BURNING_SKIN) {
rect.UpperLeftCorner.Y -= 3;
draw3DButtonPaneStandard(element, rect, clip);
return;
@@ -727,15 +679,14 @@ void GUISkin::drawColored3DMenuPane(IGUIElement* element,
Driver->draw2DRectangle(colors[EGDC_3D_SHADOW], rect, clip);
rect = r;
- rect.UpperLeftCorner.X +=1;
- rect.UpperLeftCorner.Y +=1;
+ rect.UpperLeftCorner.X += 1;
+ rect.UpperLeftCorner.Y += 1;
rect.LowerRightCorner.X -= 2;
rect.LowerRightCorner.Y -= 2;
if (!UseGradient)
Driver->draw2DRectangle(colors[EGDC_3D_FACE], rect, clip);
- else
- {
+ else {
const video::SColor c1 = colors[EGDC_3D_FACE];
const video::SColor c2 = colors[EGDC_3D_SHADOW];
Driver->draw2DRectangle(rect, c1, c1, c2, c2, clip);
@@ -743,7 +694,6 @@ void GUISkin::drawColored3DMenuPane(IGUIElement* element,
}
// END PATCH
-
//! draws a standard 3d tool bar
/** Used for drawing for toolbars and menus.
\param element: Pointer to the element which wishes to draw this. This parameter
@@ -752,10 +702,8 @@ implementations to find out how to draw the part exactly.
\param rect: Defining area where to draw.
\param clip: Clip area. */
// PATCH
-void GUISkin::drawColored3DToolBar(IGUIElement* element,
- const core::rect<s32>& r,
- const core::rect<s32>* clip,
- const video::SColor* colors)
+void GUISkin::drawColored3DToolBar(IGUIElement *element, const core::rect<s32> &r,
+ const core::rect<s32> *clip, const video::SColor *colors)
{
if (!Driver)
return;
@@ -774,21 +722,15 @@ void GUISkin::drawColored3DToolBar(IGUIElement* element,
rect = r;
rect.LowerRightCorner.Y -= 1;
- if (!UseGradient)
- {
+ if (!UseGradient) {
Driver->draw2DRectangle(colors[EGDC_3D_FACE], rect, clip);
- }
- else
- if ( Type == EGST_BURNING_SKIN )
- {
+ } else if (Type == EGST_BURNING_SKIN) {
const video::SColor c1 = 0xF0000000 | colors[EGDC_3D_FACE].color;
const video::SColor c2 = 0xF0000000 | colors[EGDC_3D_SHADOW].color;
rect.LowerRightCorner.Y += 1;
Driver->draw2DRectangle(rect, c1, c2, c1, c2, clip);
- }
- else
- {
+ } else {
const video::SColor c1 = colors[EGDC_3D_FACE];
const video::SColor c2 = colors[EGDC_3D_SHADOW];
Driver->draw2DRectangle(rect, c1, c1, c2, c2, clip);
@@ -805,9 +747,9 @@ implementations to find out how to draw the part exactly.
\param rect: Defining area where to draw.
\param clip: Clip area. */
// PATCH
-void GUISkin::drawColored3DTabButton(IGUIElement* element, bool active,
- const core::rect<s32>& frameRect, const core::rect<s32>* clip, EGUI_ALIGNMENT alignment,
- const video::SColor* colors)
+void GUISkin::drawColored3DTabButton(IGUIElement *element, bool active,
+ const core::rect<s32> &frameRect, const core::rect<s32> *clip,
+ EGUI_ALIGNMENT alignment, const video::SColor *colors)
{
if (!Driver)
return;
@@ -817,8 +759,7 @@ void GUISkin::drawColored3DTabButton(IGUIElement* element, bool active,
core::rect<s32> tr = frameRect;
- if ( alignment == EGUIA_UPPERLEFT )
- {
+ if (alignment == EGUIA_UPPERLEFT) {
tr.LowerRightCorner.X -= 2;
tr.LowerRightCorner.Y = tr.UpperLeftCorner.Y + 1;
tr.UpperLeftCorner.X += 1;
@@ -846,9 +787,7 @@ void GUISkin::drawColored3DTabButton(IGUIElement* element, bool active,
tr.UpperLeftCorner.X += 1;
tr.UpperLeftCorner.Y += 1;
Driver->draw2DRectangle(colors[EGDC_3D_DARK_SHADOW], tr, clip);
- }
- else
- {
+ } else {
tr.LowerRightCorner.X -= 2;
tr.UpperLeftCorner.Y = tr.LowerRightCorner.Y - 1;
tr.UpperLeftCorner.X += 1;
@@ -871,7 +810,7 @@ void GUISkin::drawColored3DTabButton(IGUIElement* element, bool active,
// draw right middle gray shadow
tr.LowerRightCorner.X += 1;
tr.UpperLeftCorner.X = tr.LowerRightCorner.X - 1;
- //tr.LowerRightCorner.Y -= 1;
+ // tr.LowerRightCorner.Y -= 1;
Driver->draw2DRectangle(colors[EGDC_3D_SHADOW], tr, clip);
tr.LowerRightCorner.X += 1;
@@ -882,7 +821,6 @@ void GUISkin::drawColored3DTabButton(IGUIElement* element, bool active,
}
// END PATCH
-
//! draws a tab control body
/** \param element: Pointer to the element which wishes to draw this. This parameter
is usually not used by ISkin, but can be used for example by more complex
@@ -892,9 +830,9 @@ implementations to find out how to draw the part exactly.
\param rect: Defining area where to draw.
\param clip: Clip area. */
// PATCH
-void GUISkin::drawColored3DTabBody(IGUIElement* element, bool border, bool background,
- const core::rect<s32>& rect, const core::rect<s32>* clip, s32 tabHeight, EGUI_ALIGNMENT alignment,
- const video::SColor* colors)
+void GUISkin::drawColored3DTabBody(IGUIElement *element, bool border, bool background,
+ const core::rect<s32> &rect, const core::rect<s32> *clip, s32 tabHeight,
+ EGUI_ALIGNMENT alignment, const video::SColor *colors)
{
if (!Driver)
return;
@@ -904,14 +842,12 @@ void GUISkin::drawColored3DTabBody(IGUIElement* element, bool border, bool backg
core::rect<s32> tr = rect;
- if ( tabHeight == -1 )
+ if (tabHeight == -1)
tabHeight = getSize(gui::EGDS_BUTTON_HEIGHT);
// draw border.
- if (border)
- {
- if ( alignment == EGUIA_UPPERLEFT )
- {
+ if (border) {
+ if (alignment == EGUIA_UPPERLEFT) {
// draw left hightlight
tr.UpperLeftCorner.Y += tabHeight + 2;
tr.LowerRightCorner.X = tr.UpperLeftCorner.X + 1;
@@ -926,9 +862,7 @@ void GUISkin::drawColored3DTabBody(IGUIElement* element, bool border, bool backg
tr = rect;
tr.UpperLeftCorner.Y = tr.LowerRightCorner.Y - 1;
Driver->draw2DRectangle(colors[EGDC_3D_SHADOW], tr, clip);
- }
- else
- {
+ } else {
// draw left hightlight
tr.LowerRightCorner.Y -= tabHeight + 2;
tr.LowerRightCorner.X = tr.UpperLeftCorner.X + 1;
@@ -946,30 +880,25 @@ void GUISkin::drawColored3DTabBody(IGUIElement* element, bool border, bool backg
}
}
- if (background)
- {
- if ( alignment == EGUIA_UPPERLEFT )
- {
+ if (background) {
+ if (alignment == EGUIA_UPPERLEFT) {
tr = rect;
tr.UpperLeftCorner.Y += tabHeight + 2;
tr.LowerRightCorner.X -= 1;
tr.UpperLeftCorner.X += 1;
tr.LowerRightCorner.Y -= 1;
- }
- else
- {
+ } else {
tr = rect;
tr.UpperLeftCorner.X += 1;
tr.UpperLeftCorner.Y -= 1;
tr.LowerRightCorner.X -= 1;
tr.LowerRightCorner.Y -= tabHeight + 2;
- //tr.UpperLeftCorner.X += 1;
+ // tr.UpperLeftCorner.X += 1;
}
if (!UseGradient)
Driver->draw2DRectangle(colors[EGDC_3D_FACE], tr, clip);
- else
- {
+ else {
video::SColor c1 = colors[EGDC_3D_FACE];
video::SColor c2 = colors[EGDC_3D_SHADOW];
Driver->draw2DRectangle(tr, c1, c1, c2, c2, clip);
@@ -978,7 +907,6 @@ void GUISkin::drawColored3DTabBody(IGUIElement* element, bool border, bool backg
}
// END PATCH
-
//! draws an icon, usually from the skin's sprite bank
/** \param parent: Pointer to the element which wishes to draw this icon.
This parameter is usually not used by IGUISkin, but can be used for example
@@ -990,11 +918,9 @@ by more complex implementations to find out how to draw the part exactly.
\param loop: Whether the animation should loop or not
\param clip: Clip area. */
// PATCH
-void GUISkin::drawColoredIcon(IGUIElement* element, EGUI_DEFAULT_ICON icon,
- const core::position2di position,
- u32 starttime, u32 currenttime,
- bool loop, const core::rect<s32>* clip,
- const video::SColor* colors)
+void GUISkin::drawColoredIcon(IGUIElement *element, EGUI_DEFAULT_ICON icon,
+ const core::position2di position, u32 starttime, u32 currenttime,
+ bool loop, const core::rect<s32> *clip, const video::SColor *colors)
{
if (!SpriteBank)
return;
@@ -1004,74 +930,71 @@ void GUISkin::drawColoredIcon(IGUIElement* element, EGUI_DEFAULT_ICON icon,
bool gray = element && !element->isEnabled();
SpriteBank->draw2DSprite(Icons[icon], position, clip,
- colors[gray? EGDC_GRAY_WINDOW_SYMBOL : EGDC_WINDOW_SYMBOL], starttime, currenttime, loop, true);
+ colors[gray ? EGDC_GRAY_WINDOW_SYMBOL : EGDC_WINDOW_SYMBOL],
+ starttime, currenttime, loop, true);
}
// END PATCH
-
EGUI_SKIN_TYPE GUISkin::getType() const
{
return Type;
}
-
//! draws a 2d rectangle.
-void GUISkin::draw2DRectangle(IGUIElement* element,
- const video::SColor &color, const core::rect<s32>& pos,
- const core::rect<s32>* clip)
+void GUISkin::draw2DRectangle(IGUIElement *element, const video::SColor &color,
+ const core::rect<s32> &pos, const core::rect<s32> *clip)
{
Driver->draw2DRectangle(color, pos, clip);
}
-
//! Writes attributes of the object.
//! Implement this to expose the attributes of your scene node animator for
//! scripting languages, editors, debuggers or xml serialization purposes.
-void GUISkin::serializeAttributes(io::IAttributes* out, io::SAttributeReadWriteOptions* options) const
+void GUISkin::serializeAttributes(
+ io::IAttributes *out, io::SAttributeReadWriteOptions *options) const
{
u32 i;
- for (i=0; i<EGDC_COUNT; ++i)
+ for (i = 0; i < EGDC_COUNT; ++i)
out->addColor(GUISkinColorNames[i], Colors[i]);
- for (i=0; i<EGDS_COUNT; ++i)
+ for (i = 0; i < EGDS_COUNT; ++i)
out->addInt(GUISkinSizeNames[i], Sizes[i]);
- for (i=0; i<EGDT_COUNT; ++i)
+ for (i = 0; i < EGDT_COUNT; ++i)
out->addString(GUISkinTextNames[i], Texts[i].c_str());
- for (i=0; i<EGDI_COUNT; ++i)
+ for (i = 0; i < EGDI_COUNT; ++i)
out->addInt(GUISkinIconNames[i], Icons[i]);
}
-
//! Reads attributes of the object.
//! Implement this to set the attributes of your scene node animator for
//! scripting languages, editors, debuggers or xml deserialization purposes.
-void GUISkin::deserializeAttributes(io::IAttributes* in, io::SAttributeReadWriteOptions* options)
+void GUISkin::deserializeAttributes(
+ io::IAttributes *in, io::SAttributeReadWriteOptions *options)
{
- // TODO: This is not nice code for downward compatibility, whenever new values are added and users
- // load an old skin the corresponding values will be set to 0.
+ // TODO: This is not nice code for downward compatibility, whenever new values are
+ // added and users load an old skin the corresponding values will be set to 0.
u32 i;
- for (i=0; i<EGDC_COUNT; ++i)
+ for (i = 0; i < EGDC_COUNT; ++i)
Colors[i] = in->getAttributeAsColor(GUISkinColorNames[i]);
- for (i=0; i<EGDS_COUNT; ++i)
+ for (i = 0; i < EGDS_COUNT; ++i)
Sizes[i] = in->getAttributeAsInt(GUISkinSizeNames[i]);
- for (i=0; i<EGDT_COUNT; ++i)
+ for (i = 0; i < EGDT_COUNT; ++i)
Texts[i] = in->getAttributeAsStringW(GUISkinTextNames[i]);
- for (i=0; i<EGDI_COUNT; ++i)
+ for (i = 0; i < EGDI_COUNT; ++i)
Icons[i] = in->getAttributeAsInt(GUISkinIconNames[i]);
}
-
//! gets the colors
// PATCH
-void GUISkin::getColors(video::SColor* colors)
+void GUISkin::getColors(video::SColor *colors)
{
u32 i;
- for (i=0; i<EGDC_COUNT; ++i)
+ for (i = 0; i < EGDC_COUNT; ++i)
colors[i] = Colors[i];
}
// END PATCH
@@ -1079,6 +1002,4 @@ void GUISkin::getColors(video::SColor* colors)
} // end namespace gui
} // end namespace irr
-
#endif // _IRR_COMPILE_WITH_GUI_
-