From e42faae8d9db2381295fcbc85c860d328a3fe121 Mon Sep 17 00:00:00 2001 From: Hugues Ross Date: Sat, 14 Dec 2019 18:05:36 -0500 Subject: Remove the dependency on FGIMG/BGIMG from the hovered/pressed variants - Make guiButtonImage support null images properly --- src/gui/guiButton.cpp | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'src/gui/guiButton.cpp') diff --git a/src/gui/guiButton.cpp b/src/gui/guiButton.cpp index 6518bbd1f..0d69ff143 100644 --- a/src/gui/guiButton.cpp +++ b/src/gui/guiButton.cpp @@ -778,18 +778,25 @@ void GUIButton::setFromStyle(const StyleSpec& style, ISimpleTextureSource *tsrc) setDrawBorder(style.getBool(StyleSpec::BORDER, DrawBorder)); setUseAlphaChannel(style.getBool(StyleSpec::ALPHA, true)); + const core::position2di buttonCenter(AbsoluteRect.getCenter()); + core::position2d geom(buttonCenter); if (style.isNotDefault(StyleSpec::BGIMG)) { video::ITexture *texture = style.getTexture(StyleSpec::BGIMG, tsrc); - video::ITexture *hovered_texture = style.getTexture(StyleSpec::BGIMG_HOVERED, tsrc, texture); - video::ITexture *pressed_texture = style.getTexture(StyleSpec::BGIMG_PRESSED, tsrc, texture); - - const core::position2di buttonCenter(AbsoluteRect.getCenter()); - core::position2d geom(buttonCenter); setImage(guiScalingImageButton( Environment->getVideoDriver(), texture, geom.X, geom.Y)); + setScaleImage(true); + } + if (style.isNotDefault(StyleSpec::BGIMG_HOVERED)) { + video::ITexture *hovered_texture = style.getTexture(StyleSpec::BGIMG_HOVERED, tsrc); + setHoveredImage(guiScalingImageButton( Environment->getVideoDriver(), hovered_texture, geom.X, geom.Y)); + setScaleImage(true); + } + if (style.isNotDefault(StyleSpec::BGIMG_PRESSED)) { + video::ITexture *pressed_texture = style.getTexture(StyleSpec::BGIMG_PRESSED, tsrc); + setPressedImage(guiScalingImageButton( Environment->getVideoDriver(), pressed_texture, geom.X, geom.Y)); setScaleImage(true); -- cgit v1.2.3