From 6ccb5835ff55d85156be91473c598eca9d6cb9a6 Mon Sep 17 00:00:00 2001 From: Elias Fleckenstein Date: Wed, 4 Nov 2020 16:57:41 +0100 Subject: Revert "Make Lint Happy" This reverts commit ad148587dcf5244c2d2011dba339786c765c54c4. --- src/gui/guiSkin.cpp | 475 ++++++++++++++++++++++++++++++---------------------- 1 file changed, 277 insertions(+), 198 deletions(-) (limited to 'src/gui/guiSkin.cpp') diff --git a/src/gui/guiSkin.cpp b/src/gui/guiSkin.cpp index e2a6af5fd..8892a00b4 100644 --- a/src/gui/guiSkin.cpp +++ b/src/gui/guiSkin.cpp @@ -18,39 +18,41 @@ 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; @@ -66,36 +68,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; @@ -158,16 +160,18 @@ 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; idrop(); } @@ -176,6 +180,7 @@ GUISkin::~GUISkin() SpriteBank->drop(); } + //! returns default color video::SColor GUISkin::getColor(EGUI_DEFAULT_COLOR color) const { @@ -185,6 +190,7 @@ 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) { @@ -192,6 +198,7 @@ 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 { @@ -201,6 +208,7 @@ s32 GUISkin::getSize(EGUI_DEFAULT_SIZE size) const return 0; } + //! sets a default size void GUISkin::setSize(EGUI_DEFAULT_SIZE which, s32 size) { @@ -208,8 +216,9 @@ 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]; @@ -217,13 +226,15 @@ 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(); @@ -232,14 +243,16 @@ 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(); @@ -250,6 +263,7 @@ void GUISkin::setSpriteBank(IGUISpriteBank *bank) SpriteBank = bank; } + //! Returns a default icon u32 GUISkin::getIcon(EGUI_DEFAULT_ICON icon) const { @@ -259,6 +273,7 @@ u32 GUISkin::getIcon(EGUI_DEFAULT_ICON icon) const return 0; } + //! Sets a default icon void GUISkin::setIcon(EGUI_DEFAULT_ICON icon, u32 index) { @@ -266,9 +281,10 @@ 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(); @@ -276,14 +292,16 @@ 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 @@ -294,9 +312,10 @@ 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 &r, const core::rect *clip, - const video::SColor *colors) +void GUISkin::drawColored3DButtonPaneStandard(IGUIElement* element, + const core::rect& r, + const core::rect* clip, + const video::SColor* colors) { if (!Driver) return; @@ -306,14 +325,15 @@ void GUISkin::drawColored3DButtonPaneStandard(IGUIElement *element, core::rect 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; } @@ -330,17 +350,20 @@ 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 @@ -351,9 +374,10 @@ 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 &r, const core::rect *clip, - const video::SColor *colors) +void GUISkin::drawColored3DButtonPanePressed(IGUIElement* element, + const core::rect& r, + const core::rect* clip, + const video::SColor* colors) { if (!Driver) return; @@ -375,17 +399,20 @@ 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 @@ -397,9 +424,11 @@ 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 &r, - const core::rect *clip, const video::SColor *colors) +void GUISkin::drawColored3DSunkenPane(IGUIElement* element, video::SColor bgcolor, + bool flat, bool fillBackGround, + const core::rect& r, + const core::rect* clip, + const video::SColor* colors) { if (!Driver) return; @@ -412,31 +441,34 @@ 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; @@ -444,10 +476,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; @@ -457,7 +489,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; @@ -468,7 +500,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; @@ -481,13 +513,17 @@ void GUISkin::drawColored3DSunkenPane(IGUIElement *element, video::SColor bgcolo //! draws a window background // return where to draw title bar text. // PATCH -core::rect GUISkin::drawColored3DWindowBackground(IGUIElement *element, - bool drawTitleBar, video::SColor titleBarColor, const core::rect &r, - const core::rect *clip, core::rect *checkClientArea, - const video::SColor *colors) +core::rect GUISkin::drawColored3DWindowBackground(IGUIElement* element, + bool drawTitleBar, video::SColor titleBarColor, + const core::rect& r, + const core::rect* clip, + core::rect* checkClientArea, + const video::SColor* colors) { - if (!Driver) { - if (checkClientArea) { + if (!Driver) + { + if ( checkClientArea ) + { *checkClientArea = r; } return r; @@ -500,14 +536,16 @@ core::rect 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); } @@ -516,7 +554,8 @@ core::rect 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); } @@ -525,7 +564,8 @@ core::rect 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); } @@ -534,7 +574,8 @@ core::rect 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); } @@ -543,31 +584,37 @@ core::rect 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); @@ -579,31 +626,29 @@ core::rect 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); } } } @@ -612,6 +657,7 @@ core::rect 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 @@ -622,8 +668,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::drawColored3DMenuPane(IGUIElement *element, const core::rect &r, - const core::rect *clip, const video::SColor *colors) +void GUISkin::drawColored3DMenuPane(IGUIElement* element, + const core::rect& r, const core::rect* clip, + const video::SColor* colors) { if (!Driver) return; @@ -633,7 +680,8 @@ void GUISkin::drawColored3DMenuPane(IGUIElement *element, const core::rect core::rect rect = r; - if (Type == EGST_BURNING_SKIN) { + if ( Type == EGST_BURNING_SKIN ) + { rect.UpperLeftCorner.Y -= 3; draw3DButtonPaneStandard(element, rect, clip); return; @@ -679,14 +727,15 @@ void GUISkin::drawColored3DMenuPane(IGUIElement *element, const core::rect 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); @@ -694,6 +743,7 @@ void GUISkin::drawColored3DMenuPane(IGUIElement *element, const core::rect } // 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 @@ -702,8 +752,10 @@ 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 &r, - const core::rect *clip, const video::SColor *colors) +void GUISkin::drawColored3DToolBar(IGUIElement* element, + const core::rect& r, + const core::rect* clip, + const video::SColor* colors) { if (!Driver) return; @@ -722,15 +774,21 @@ void GUISkin::drawColored3DToolBar(IGUIElement *element, const core::rect & 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); @@ -747,9 +805,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 &frameRect, const core::rect *clip, - EGUI_ALIGNMENT alignment, const video::SColor *colors) +void GUISkin::drawColored3DTabButton(IGUIElement* element, bool active, + const core::rect& frameRect, const core::rect* clip, EGUI_ALIGNMENT alignment, + const video::SColor* colors) { if (!Driver) return; @@ -759,7 +817,8 @@ void GUISkin::drawColored3DTabButton(IGUIElement *element, bool active, core::rect 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; @@ -787,7 +846,9 @@ 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; @@ -810,7 +871,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; @@ -821,6 +882,7 @@ 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 @@ -830,9 +892,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 &rect, const core::rect *clip, s32 tabHeight, - EGUI_ALIGNMENT alignment, const video::SColor *colors) +void GUISkin::drawColored3DTabBody(IGUIElement* element, bool border, bool background, + const core::rect& rect, const core::rect* clip, s32 tabHeight, EGUI_ALIGNMENT alignment, + const video::SColor* colors) { if (!Driver) return; @@ -842,12 +904,14 @@ void GUISkin::drawColored3DTabBody(IGUIElement *element, bool border, bool backg core::rect 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; @@ -862,7 +926,9 @@ 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; @@ -880,25 +946,30 @@ 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); @@ -907,6 +978,7 @@ 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 @@ -918,9 +990,11 @@ 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 *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* clip, + const video::SColor* colors) { if (!SpriteBank) return; @@ -930,71 +1004,74 @@ 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 &pos, const core::rect *clip) +void GUISkin::draw2DRectangle(IGUIElement* element, + const video::SColor &color, const core::rect& pos, + const core::rect* 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; iaddColor(GUISkinColorNames[i], Colors[i]); - for (i = 0; i < EGDS_COUNT; ++i) + for (i=0; iaddInt(GUISkinSizeNames[i], Sizes[i]); - for (i = 0; i < EGDT_COUNT; ++i) + for (i=0; iaddString(GUISkinTextNames[i], Texts[i].c_str()); - for (i = 0; i < EGDI_COUNT; ++i) + for (i=0; iaddInt(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; igetAttributeAsColor(GUISkinColorNames[i]); - for (i = 0; i < EGDS_COUNT; ++i) + for (i=0; igetAttributeAsInt(GUISkinSizeNames[i]); - for (i = 0; i < EGDT_COUNT; ++i) + for (i=0; igetAttributeAsStringW(GUISkinTextNames[i]); - for (i = 0; i < EGDI_COUNT; ++i) + for (i=0; igetAttributeAsInt(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