]> git.lizzy.rs Git - dragonfireclient.git/blobdiff - src/gui/guiButton.cpp
add airjump and remove unused headers
[dragonfireclient.git] / src / gui / guiButton.cpp
index e0d6337cdadca382224e41b09e6edaa7128b74b5..d6dbddf54afb0920014af99b0a45bd164d3e2d9c 100644 (file)
@@ -313,11 +313,12 @@ void GUIButton::draw()
 \r
                // PATCH\r
                video::ITexture* texture = ButtonImages[(u32)imageState].Texture;\r
+               video::SColor image_colors[] = { BgColor, BgColor, BgColor, BgColor };\r
                if (BgMiddle.getArea() == 0) {\r
                        driver->draw2DImage(texture,\r
                                        ScaleImage? AbsoluteRect : core::rect<s32>(pos, sourceRect.getSize()),\r
                                        sourceRect, &AbsoluteClippingRect,\r
-                                       0, UseAlphaChannel);\r
+                                       image_colors, UseAlphaChannel);\r
                } else {\r
                        core::rect<s32> middle = BgMiddle;\r
                        // `-x` is interpreted as `w - x`\r
@@ -327,7 +328,7 @@ void GUIButton::draw()
                                middle.LowerRightCorner.Y += texture->getOriginalSize().Height;\r
                        draw2DImage9Slice(driver, texture,\r
                                        ScaleImage ? AbsoluteRect : core::rect<s32>(pos, sourceRect.getSize()),\r
-                                       middle, &AbsoluteClippingRect);\r
+                                       middle, &AbsoluteClippingRect, image_colors);\r
                }\r
                // END PATCH\r
        }\r
@@ -505,6 +506,13 @@ video::SColor GUIButton::getOverrideColor() const
        return OverrideColor;\r
 }\r
 \r
+#if IRRLICHT_VERSION_MAJOR == 1 && IRRLICHT_VERSION_MINOR > 8\r
+video::SColor GUIButton::getActiveColor() const\r
+{\r
+       return video::SColor(0,0,0,0); // unused?\r
+}\r
+#endif\r
+\r
 void GUIButton::enableOverrideColor(bool enable)\r
 {\r
        OverrideColorEnabled = enable;\r
@@ -722,6 +730,8 @@ GUIButton* GUIButton::addButton(IGUIEnvironment *environment,
 \r
 void GUIButton::setColor(video::SColor color)\r
 {\r
+       BgColor = color;\r
+\r
        float d = 0.65f;\r
        for (size_t i = 0; i < 4; i++) {\r
                video::SColor base = Environment->getSkin()->getColor((gui::EGUI_DEFAULT_COLOR)i);\r
@@ -750,22 +760,26 @@ void GUIButton::setFromStyle(const StyleSpec& style)
        bool pressed = (style.getState() & StyleSpec::STATE_PRESSED) != 0;\r
 \r
        if (style.isNotDefault(StyleSpec::BGCOLOR)) {\r
-\r
                setColor(style.getColor(StyleSpec::BGCOLOR));\r
 \r
                // If we have a propagated hover/press color, we need to automatically\r
                // lighten/darken it\r
                if (!Styles[style.getState()].isNotDefault(StyleSpec::BGCOLOR)) {\r
-                       for (size_t i = 0; i < 4; i++) {\r
                                if (pressed) {\r
-                                       Colors[i] = multiplyColorValue(Colors[i], COLOR_PRESSED_MOD);\r
+                                       BgColor = multiplyColorValue(BgColor, COLOR_PRESSED_MOD);\r
+\r
+                                       for (size_t i = 0; i < 4; i++)\r
+                                               Colors[i] = multiplyColorValue(Colors[i], COLOR_PRESSED_MOD);\r
                                } else if (hovered) {\r
-                                       Colors[i] = multiplyColorValue(Colors[i], COLOR_HOVERED_MOD);\r
+                                       BgColor = multiplyColorValue(BgColor, COLOR_HOVERED_MOD);\r
+\r
+                                       for (size_t i = 0; i < 4; i++)\r
+                                               Colors[i] = multiplyColorValue(Colors[i], COLOR_HOVERED_MOD);\r
                                }\r
-                       }\r
                }\r
 \r
        } else {\r
+               BgColor = video::SColor(255, 255, 255, 255);\r
                for (size_t i = 0; i < 4; i++) {\r
                        video::SColor base =\r
                                        Environment->getSkin()->getColor((gui::EGUI_DEFAULT_COLOR)i);\r