From ad148587dcf5244c2d2011dba339786c765c54c4 Mon Sep 17 00:00:00 2001 From: Elias Fleckenstein Date: Wed, 4 Nov 2020 16:19:54 +0100 Subject: Make Lint Happy --- src/gui/guiButton.cpp | 466 ++++++++++++++++++++++++-------------------------- 1 file changed, 226 insertions(+), 240 deletions(-) (limited to 'src/gui/guiButton.cpp') diff --git a/src/gui/guiButton.cpp b/src/gui/guiButton.cpp index e0d6337cd..2fb7659d7 100644 --- a/src/gui/guiButton.cpp +++ b/src/gui/guiButton.cpp @@ -4,7 +4,6 @@ #include "guiButton.h" - #include "client/guiscalingfilter.h" #include "client/tile.h" #include "IGUISkin.h" @@ -26,16 +25,14 @@ using namespace gui; #define COLOR_PRESSED_MOD 0.85f //! constructor -GUIButton::GUIButton(IGUIEnvironment* environment, IGUIElement* parent, - s32 id, core::rect rectangle, ISimpleTextureSource *tsrc, - bool noclip) -: IGUIButton(environment, parent, id, rectangle), - SpriteBank(0), OverrideFont(0), - OverrideColorEnabled(false), OverrideColor(video::SColor(101,255,255,255)), - ClickTime(0), HoverTime(0), FocusTime(0), - ClickShiftState(false), ClickControlState(false), - IsPushButton(false), Pressed(false), - UseAlphaChannel(false), DrawBorder(true), ScaleImage(false), TSrc(tsrc) +GUIButton::GUIButton(IGUIEnvironment *environment, IGUIElement *parent, s32 id, + core::rect rectangle, ISimpleTextureSource *tsrc, bool noclip) : + IGUIButton(environment, parent, id, rectangle), + SpriteBank(0), OverrideFont(0), OverrideColorEnabled(false), + OverrideColor(video::SColor(101, 255, 255, 255)), ClickTime(0), + HoverTime(0), FocusTime(0), ClickShiftState(false), + ClickControlState(false), IsPushButton(false), Pressed(false), + UseAlphaChannel(false), DrawBorder(true), ScaleImage(false), TSrc(tsrc) { setNotClipped(noclip); @@ -47,7 +44,10 @@ GUIButton::GUIButton(IGUIEnvironment* environment, IGUIElement* parent, for (size_t i = 0; i < 4; i++) { Colors[i] = Environment->getSkin()->getColor((EGUI_DEFAULT_COLOR)i); } - StaticText = gui::StaticText::add(Environment, Text.c_str(), core::rect(0,0,rectangle.getWidth(),rectangle.getHeight()), false, false, this, id); + StaticText = gui::StaticText::add(Environment, Text.c_str(), + core::rect(0, 0, rectangle.getWidth(), + rectangle.getHeight()), + false, false, this, id); StaticText->setTextAlignment(EGUIA_CENTER, EGUIA_CENTER); // END PATCH } @@ -62,29 +62,25 @@ GUIButton::~GUIButton() SpriteBank->drop(); } - //! Sets if the images should be scaled to fit the button void GUIButton::setScaleImage(bool scaleImage) { ScaleImage = scaleImage; } - //! Returns whether the button scale the used images bool GUIButton::isScalingImage() const { return ScaleImage; } - //! Sets if the button should use the skin to draw its border void GUIButton::setDrawBorder(bool border) { DrawBorder = border; } - -void GUIButton::setSpriteBank(IGUISpriteBank* sprites) +void GUIButton::setSpriteBank(IGUISpriteBank *sprites) { if (sprites) sprites->grab(); @@ -95,11 +91,12 @@ void GUIButton::setSpriteBank(IGUISpriteBank* sprites) SpriteBank = sprites; } -void GUIButton::setSprite(EGUI_BUTTON_STATE state, s32 index, video::SColor color, bool loop, bool scale) +void GUIButton::setSprite(EGUI_BUTTON_STATE state, s32 index, video::SColor color, + bool loop, bool scale) { - ButtonSprites[(u32)state].Index = index; - ButtonSprites[(u32)state].Color = color; - ButtonSprites[(u32)state].Loop = loop; + ButtonSprites[(u32)state].Index = index; + ButtonSprites[(u32)state].Color = color; + ButtonSprites[(u32)state].Loop = loop; ButtonSprites[(u32)state].Scale = scale; } @@ -128,17 +125,16 @@ bool GUIButton::getSpriteScale(EGUI_BUTTON_STATE state) const } //! called if an event happened. -bool GUIButton::OnEvent(const SEvent& event) +bool GUIButton::OnEvent(const SEvent &event) { if (!isEnabled()) return IGUIElement::OnEvent(event); - switch(event.EventType) - { + switch (event.EventType) { case EET_KEY_INPUT_EVENT: if (event.KeyInput.PressedDown && - (event.KeyInput.Key == KEY_RETURN || event.KeyInput.Key == KEY_SPACE)) - { + (event.KeyInput.Key == KEY_RETURN || + event.KeyInput.Key == KEY_SPACE)) { if (!IsPushButton) setPressed(true); else @@ -146,21 +142,18 @@ bool GUIButton::OnEvent(const SEvent& event) return true; } - if (Pressed && !IsPushButton && event.KeyInput.PressedDown && event.KeyInput.Key == KEY_ESCAPE) - { + if (Pressed && !IsPushButton && event.KeyInput.PressedDown && + event.KeyInput.Key == KEY_ESCAPE) { setPressed(false); return true; - } - else - if (!event.KeyInput.PressedDown && Pressed && - (event.KeyInput.Key == KEY_RETURN || event.KeyInput.Key == KEY_SPACE)) - { + } else if (!event.KeyInput.PressedDown && Pressed && + (event.KeyInput.Key == KEY_RETURN || + event.KeyInput.Key == KEY_SPACE)) { if (!IsPushButton) setPressed(false); - if (Parent) - { + if (Parent) { ClickShiftState = event.KeyInput.Shift; ClickControlState = event.KeyInput.Control; @@ -175,43 +168,37 @@ bool GUIButton::OnEvent(const SEvent& event) } break; case EET_GUI_EVENT: - if (event.GUIEvent.Caller == this) - { - if (event.GUIEvent.EventType == EGET_ELEMENT_FOCUS_LOST) - { + if (event.GUIEvent.Caller == this) { + if (event.GUIEvent.EventType == EGET_ELEMENT_FOCUS_LOST) { if (!IsPushButton) setPressed(false); FocusTime = (u32)porting::getTimeMs(); - } - else if (event.GUIEvent.EventType == EGET_ELEMENT_FOCUSED) - { + } else if (event.GUIEvent.EventType == EGET_ELEMENT_FOCUSED) { FocusTime = (u32)porting::getTimeMs(); - } - else if (event.GUIEvent.EventType == EGET_ELEMENT_HOVERED || event.GUIEvent.EventType == EGET_ELEMENT_LEFT) - { + } else if (event.GUIEvent.EventType == EGET_ELEMENT_HOVERED || + event.GUIEvent.EventType == EGET_ELEMENT_LEFT) { HoverTime = (u32)porting::getTimeMs(); } } break; case EET_MOUSE_INPUT_EVENT: - if (event.MouseInput.Event == EMIE_LMOUSE_PRESSED_DOWN) - { + if (event.MouseInput.Event == EMIE_LMOUSE_PRESSED_DOWN) { // Sometimes formspec elements can receive mouse events when the - // mouse is outside of the formspec. Thus, we test the position here. - if ( !IsPushButton && AbsoluteClippingRect.isPointInside( - core::position2d(event.MouseInput.X, event.MouseInput.Y ))) { + // mouse is outside of the formspec. Thus, we test the position + // here. + if (!IsPushButton && + AbsoluteClippingRect.isPointInside(core::position2d< + s32>(event.MouseInput.X, + event.MouseInput.Y))) { setPressed(true); } return true; - } - else - if (event.MouseInput.Event == EMIE_LMOUSE_LEFT_UP) - { + } else if (event.MouseInput.Event == EMIE_LMOUSE_LEFT_UP) { bool wasPressed = Pressed; - if ( !AbsoluteClippingRect.isPointInside( core::position2d(event.MouseInput.X, event.MouseInput.Y ) ) ) - { + if (!AbsoluteClippingRect.isPointInside(core::position2d( + event.MouseInput.X, event.MouseInput.Y))) { if (!IsPushButton) setPressed(false); return true; @@ -219,14 +206,12 @@ bool GUIButton::OnEvent(const SEvent& event) if (!IsPushButton) setPressed(false); - else - { + else { setPressed(!Pressed); } if ((!IsPushButton && wasPressed && Parent) || - (IsPushButton && wasPressed != Pressed)) - { + (IsPushButton && wasPressed != Pressed)) { ClickShiftState = event.MouseInput.Shift; ClickControlState = event.MouseInput.Control; @@ -248,7 +233,6 @@ bool GUIButton::OnEvent(const SEvent& event) return Parent ? Parent->OnEvent(event) : false; } - //! draws the element and its children void GUIButton::draw() { @@ -263,21 +247,17 @@ void GUIButton::draw() setFromState(); } - GUISkin* skin = dynamic_cast(Environment->getSkin()); - video::IVideoDriver* driver = Environment->getVideoDriver(); + GUISkin *skin = dynamic_cast(Environment->getSkin()); + video::IVideoDriver *driver = Environment->getVideoDriver(); // END PATCH - if (DrawBorder) - { - if (!Pressed) - { + if (DrawBorder) { + if (!Pressed) { // PATCH skin->drawColored3DButtonPaneStandard(this, AbsoluteRect, &AbsoluteClippingRect, Colors); // END PATCH - } - else - { + } else { // PATCH skin->drawColored3DButtonPanePressed(this, AbsoluteRect, &AbsoluteClippingRect, Colors); @@ -290,94 +270,108 @@ void GUIButton::draw() // The image changes based on the state, so we use the default every time. EGUI_BUTTON_IMAGE_STATE imageState = EGBIS_IMAGE_UP; // END PATCH - if ( ButtonImages[(u32)imageState].Texture ) - { + if (ButtonImages[(u32)imageState].Texture) { core::position2d pos(buttonCenter); core::rect sourceRect(ButtonImages[(u32)imageState].SourceRect); - if ( sourceRect.getWidth() == 0 && sourceRect.getHeight() == 0 ) - sourceRect = core::rect(core::position2di(0,0), ButtonImages[(u32)imageState].Texture->getOriginalSize()); + if (sourceRect.getWidth() == 0 && sourceRect.getHeight() == 0) + sourceRect = core::rect(core::position2di(0, 0), + ButtonImages[(u32)imageState] + .Texture->getOriginalSize()); pos.X -= sourceRect.getWidth() / 2; pos.Y -= sourceRect.getHeight() / 2; - if ( Pressed ) - { - // Create a pressed-down effect by moving the image when it looks identical to the unpressed state image + if (Pressed) { + // Create a pressed-down effect by moving the image when it looks + // identical to the unpressed state image EGUI_BUTTON_IMAGE_STATE unpressedState = getImageState(false); - if ( unpressedState == imageState || ButtonImages[(u32)imageState] == ButtonImages[(u32)unpressedState] ) - { - pos.X += skin->getSize(EGDS_BUTTON_PRESSED_IMAGE_OFFSET_X); - pos.Y += skin->getSize(EGDS_BUTTON_PRESSED_IMAGE_OFFSET_Y); + if (unpressedState == imageState || + ButtonImages[(u32)imageState] == + ButtonImages[(u32)unpressedState]) { + pos.X += skin->getSize( + EGDS_BUTTON_PRESSED_IMAGE_OFFSET_X); + pos.Y += skin->getSize( + EGDS_BUTTON_PRESSED_IMAGE_OFFSET_Y); } } // PATCH - video::ITexture* texture = ButtonImages[(u32)imageState].Texture; + video::ITexture *texture = ButtonImages[(u32)imageState].Texture; if (BgMiddle.getArea() == 0) { driver->draw2DImage(texture, - ScaleImage? AbsoluteRect : core::rect(pos, sourceRect.getSize()), - sourceRect, &AbsoluteClippingRect, - 0, UseAlphaChannel); + ScaleImage ? AbsoluteRect + : core::rect(pos, + sourceRect.getSize()), + sourceRect, &AbsoluteClippingRect, 0, + UseAlphaChannel); } else { core::rect middle = BgMiddle; // `-x` is interpreted as `w - x` if (middle.LowerRightCorner.X < 0) - middle.LowerRightCorner.X += texture->getOriginalSize().Width; + middle.LowerRightCorner.X += + texture->getOriginalSize().Width; if (middle.LowerRightCorner.Y < 0) - middle.LowerRightCorner.Y += texture->getOriginalSize().Height; + middle.LowerRightCorner.Y += + texture->getOriginalSize().Height; draw2DImage9Slice(driver, texture, - ScaleImage ? AbsoluteRect : core::rect(pos, sourceRect.getSize()), + ScaleImage ? AbsoluteRect + : core::rect(pos, + sourceRect.getSize()), middle, &AbsoluteClippingRect); } // END PATCH } - if (SpriteBank) - { + if (SpriteBank) { core::position2di pos(buttonCenter); - if (isEnabled()) - { + if (isEnabled()) { // pressed / unpressed animation - EGUI_BUTTON_STATE state = Pressed ? EGBS_BUTTON_DOWN : EGBS_BUTTON_UP; + EGUI_BUTTON_STATE state = + Pressed ? EGBS_BUTTON_DOWN : EGBS_BUTTON_UP; drawSprite(state, ClickTime, pos); // focused / unfocused animation - state = Environment->hasFocus(this) ? EGBS_BUTTON_FOCUSED : EGBS_BUTTON_NOT_FOCUSED; + state = Environment->hasFocus(this) ? EGBS_BUTTON_FOCUSED + : EGBS_BUTTON_NOT_FOCUSED; drawSprite(state, FocusTime, pos); // mouse over / off animation - state = isHovered() ? EGBS_BUTTON_MOUSE_OVER : EGBS_BUTTON_MOUSE_OFF; + state = isHovered() ? EGBS_BUTTON_MOUSE_OVER + : EGBS_BUTTON_MOUSE_OFF; drawSprite(state, HoverTime, pos); - } - else - { + } else { // draw disabled -// drawSprite(EGBS_BUTTON_DISABLED, 0, pos); + // drawSprite(EGBS_BUTTON_DISABLED, 0, pos); } } IGUIElement::draw(); } -void GUIButton::drawSprite(EGUI_BUTTON_STATE state, u32 startTime, const core::position2di& center) +void GUIButton::drawSprite( + EGUI_BUTTON_STATE state, u32 startTime, const core::position2di ¢er) { u32 stateIdx = (u32)state; - if (ButtonSprites[stateIdx].Index != -1) - { - if ( ButtonSprites[stateIdx].Scale ) - { - const video::SColor colors[] = {ButtonSprites[stateIdx].Color,ButtonSprites[stateIdx].Color,ButtonSprites[stateIdx].Color,ButtonSprites[stateIdx].Color}; - SpriteBank->draw2DSprite(ButtonSprites[stateIdx].Index, AbsoluteRect.UpperLeftCorner, - &AbsoluteClippingRect, colors[0], // FIXME: remove [0] - porting::getTimeMs()-startTime, ButtonSprites[stateIdx].Loop); - } - else - { + if (ButtonSprites[stateIdx].Index != -1) { + if (ButtonSprites[stateIdx].Scale) { + const video::SColor colors[] = {ButtonSprites[stateIdx].Color, + ButtonSprites[stateIdx].Color, + ButtonSprites[stateIdx].Color, + ButtonSprites[stateIdx].Color}; + SpriteBank->draw2DSprite(ButtonSprites[stateIdx].Index, + AbsoluteRect.UpperLeftCorner, + &AbsoluteClippingRect, + colors[0], // FIXME: remove [0] + porting::getTimeMs() - startTime, + ButtonSprites[stateIdx].Loop); + } else { SpriteBank->draw2DSprite(ButtonSprites[stateIdx].Index, center, - &AbsoluteClippingRect, ButtonSprites[stateIdx].Color, startTime, porting::getTimeMs(), - ButtonSprites[stateIdx].Loop, true); + &AbsoluteClippingRect, + ButtonSprites[stateIdx].Color, startTime, + porting::getTimeMs(), + ButtonSprites[stateIdx].Loop, true); } } } @@ -389,32 +383,30 @@ EGUI_BUTTON_IMAGE_STATE GUIButton::getImageState(bool pressed) const // END PATCH } -EGUI_BUTTON_IMAGE_STATE GUIButton::getImageState(bool pressed, const ButtonImage* images) const +EGUI_BUTTON_IMAGE_STATE GUIButton::getImageState( + bool pressed, const ButtonImage *images) const { // figure state we should have EGUI_BUTTON_IMAGE_STATE state = EGBIS_IMAGE_DISABLED; - bool focused = Environment->hasFocus((IGUIElement*)this); + bool focused = Environment->hasFocus((IGUIElement *)this); bool mouseOver = isHovered(); - if (isEnabled()) - { - if ( pressed ) - { - if ( focused && mouseOver ) + if (isEnabled()) { + if (pressed) { + if (focused && mouseOver) state = EGBIS_IMAGE_DOWN_FOCUSED_MOUSEOVER; - else if ( focused ) + else if (focused) state = EGBIS_IMAGE_DOWN_FOCUSED; - else if ( mouseOver ) + else if (mouseOver) state = EGBIS_IMAGE_DOWN_MOUSEOVER; else state = EGBIS_IMAGE_DOWN; - } - else // !pressed + } else // !pressed { - if ( focused && mouseOver ) + if (focused && mouseOver) state = EGBIS_IMAGE_UP_FOCUSED_MOUSEOVER; - else if ( focused ) + else if (focused) state = EGBIS_IMAGE_UP_FOCUSED; - else if ( mouseOver ) + else if (mouseOver) state = EGBIS_IMAGE_UP_MOUSEOVER; else state = EGBIS_IMAGE_UP; @@ -422,34 +414,32 @@ EGUI_BUTTON_IMAGE_STATE GUIButton::getImageState(bool pressed, const ButtonImage } // find a compatible state that has images - while ( state != EGBIS_IMAGE_UP && !images[(u32)state].Texture ) - { + while (state != EGBIS_IMAGE_UP && !images[(u32)state].Texture) { // PATCH - switch ( state ) - { - case EGBIS_IMAGE_UP_FOCUSED: - state = EGBIS_IMAGE_UP; - break; - case EGBIS_IMAGE_UP_FOCUSED_MOUSEOVER: - state = EGBIS_IMAGE_UP_FOCUSED; - break; - case EGBIS_IMAGE_DOWN_MOUSEOVER: - state = EGBIS_IMAGE_DOWN; - break; - case EGBIS_IMAGE_DOWN_FOCUSED: + switch (state) { + case EGBIS_IMAGE_UP_FOCUSED: + state = EGBIS_IMAGE_UP; + break; + case EGBIS_IMAGE_UP_FOCUSED_MOUSEOVER: + state = EGBIS_IMAGE_UP_FOCUSED; + break; + case EGBIS_IMAGE_DOWN_MOUSEOVER: + state = EGBIS_IMAGE_DOWN; + break; + case EGBIS_IMAGE_DOWN_FOCUSED: + state = EGBIS_IMAGE_DOWN; + break; + case EGBIS_IMAGE_DOWN_FOCUSED_MOUSEOVER: + state = EGBIS_IMAGE_DOWN_FOCUSED; + break; + case EGBIS_IMAGE_DISABLED: + if (pressed) state = EGBIS_IMAGE_DOWN; - break; - case EGBIS_IMAGE_DOWN_FOCUSED_MOUSEOVER: - state = EGBIS_IMAGE_DOWN_FOCUSED; - break; - case EGBIS_IMAGE_DISABLED: - if ( pressed ) - state = EGBIS_IMAGE_DOWN; - else - state = EGBIS_IMAGE_UP; - break; - default: + else state = EGBIS_IMAGE_UP; + break; + default: + state = EGBIS_IMAGE_UP; } // END PATCH } @@ -457,8 +447,9 @@ EGUI_BUTTON_IMAGE_STATE GUIButton::getImageState(bool pressed, const ButtonImage return state; } -//! sets another skin independent font. if this is set to zero, the button uses the font of the skin. -void GUIButton::setOverrideFont(IGUIFont* font) +//! sets another skin independent font. if this is set to zero, the button uses the font +//! of the skin. +void GUIButton::setOverrideFont(IGUIFont *font) { if (OverrideFont == font) return; @@ -475,17 +466,17 @@ void GUIButton::setOverrideFont(IGUIFont* font) } //! Gets the override font (if any) -IGUIFont * GUIButton::getOverrideFont() const +IGUIFont *GUIButton::getOverrideFont() const { return OverrideFont; } //! Get the font which is used right now for drawing -IGUIFont* GUIButton::getActiveFont() const +IGUIFont *GUIButton::getActiveFont() const { - if ( OverrideFont ) + if (OverrideFont) return OverrideFont; - IGUISkin* skin = Environment->getSkin(); + IGUISkin *skin = Environment->getSkin(); if (skin) return skin->getFont(EGDF_BUTTON); return 0; @@ -515,16 +506,17 @@ bool GUIButton::isOverrideColorEnabled() const return OverrideColorEnabled; } -void GUIButton::setImage(EGUI_BUTTON_IMAGE_STATE state, video::ITexture* image, const core::rect& sourceRect) +void GUIButton::setImage(EGUI_BUTTON_IMAGE_STATE state, video::ITexture *image, + const core::rect &sourceRect) { - if ( state >= EGBIS_COUNT ) + if (state >= EGBIS_COUNT) return; - if ( image ) + if (image) image->grab(); u32 stateIdx = (u32)state; - if ( ButtonImages[stateIdx].Texture ) + if (ButtonImages[stateIdx].Texture) ButtonImages[stateIdx].Texture->drop(); ButtonImages[stateIdx].Texture = image; @@ -532,28 +524,28 @@ void GUIButton::setImage(EGUI_BUTTON_IMAGE_STATE state, video::ITexture* image, } // PATCH -void GUIButton::setImage(video::ITexture* image) +void GUIButton::setImage(video::ITexture *image) { setImage(gui::EGBIS_IMAGE_UP, image); } -void GUIButton::setImage(video::ITexture* image, const core::rect& pos) +void GUIButton::setImage(video::ITexture *image, const core::rect &pos) { setImage(gui::EGBIS_IMAGE_UP, image, pos); } -void GUIButton::setPressedImage(video::ITexture* image) +void GUIButton::setPressedImage(video::ITexture *image) { setImage(gui::EGBIS_IMAGE_DOWN, image); } -void GUIButton::setPressedImage(video::ITexture* image, const core::rect& pos) +void GUIButton::setPressedImage(video::ITexture *image, const core::rect &pos) { setImage(gui::EGBIS_IMAGE_DOWN, image, pos); } //! Sets the text displayed by the button -void GUIButton::setText(const wchar_t* text) +void GUIButton::setText(const wchar_t *text) { StaticText->setText(text); @@ -569,7 +561,6 @@ void GUIButton::setIsPushButton(bool isPushButton) IsPushButton = isPushButton; } - //! Returns if the button is currently pressed bool GUIButton::isPressed() const { @@ -581,118 +572,110 @@ bool GUIButton::isPressed() const bool GUIButton::isHovered() const { IGUIElement *hovered = Environment->getHovered(); - return hovered == this || (hovered != nullptr && hovered->getParent() == this); + return hovered == this || (hovered != nullptr && hovered->getParent() == this); } // END PATCH //! Sets the pressed state of the button if this is a pushbutton void GUIButton::setPressed(bool pressed) { - if (Pressed != pressed) - { + if (Pressed != pressed) { ClickTime = porting::getTimeMs(); Pressed = pressed; setFromState(); } } - //! Returns whether the button is a push button bool GUIButton::isPushButton() const { return IsPushButton; } - -//! Sets if the alpha channel should be used for drawing images on the button (default is false) +//! Sets if the alpha channel should be used for drawing images on the button (default is +//! false) void GUIButton::setUseAlphaChannel(bool useAlphaChannel) { UseAlphaChannel = useAlphaChannel; } - //! Returns if the alpha channel should be used for drawing images on the button bool GUIButton::isAlphaChannelUsed() const { return UseAlphaChannel; } - bool GUIButton::isDrawingBorder() const { return DrawBorder; } - //! Writes attributes of the element. -void GUIButton::serializeAttributes(io::IAttributes* out, io::SAttributeReadWriteOptions* options=0) const +void GUIButton::serializeAttributes( + io::IAttributes *out, io::SAttributeReadWriteOptions *options = 0) const { - IGUIButton::serializeAttributes(out,options); + IGUIButton::serializeAttributes(out, options); - out->addBool ("PushButton", IsPushButton ); + out->addBool("PushButton", IsPushButton); if (IsPushButton) - out->addBool("Pressed", Pressed); + out->addBool("Pressed", Pressed); - for ( u32 i=0; i<(u32)EGBIS_COUNT; ++i ) - { - if ( ButtonImages[i].Texture ) - { - core::stringc name( GUIButtonImageStateNames[i] ); + for (u32 i = 0; i < (u32)EGBIS_COUNT; ++i) { + if (ButtonImages[i].Texture) { + core::stringc name(GUIButtonImageStateNames[i]); out->addTexture(name.c_str(), ButtonImages[i].Texture); name += "Rect"; out->addRect(name.c_str(), ButtonImages[i].SourceRect); } } - out->addBool ("UseAlphaChannel", UseAlphaChannel); - out->addBool ("Border", DrawBorder); - out->addBool ("ScaleImage", ScaleImage); + out->addBool("UseAlphaChannel", UseAlphaChannel); + out->addBool("Border", DrawBorder); + out->addBool("ScaleImage", ScaleImage); - for ( u32 i=0; i<(u32)EGBS_COUNT; ++i ) - { - if ( ButtonSprites[i].Index >= 0 ) - { - core::stringc nameIndex( GUIButtonStateNames[i] ); + for (u32 i = 0; i < (u32)EGBS_COUNT; ++i) { + if (ButtonSprites[i].Index >= 0) { + core::stringc nameIndex(GUIButtonStateNames[i]); nameIndex += "Index"; - out->addInt(nameIndex.c_str(), ButtonSprites[i].Index ); + out->addInt(nameIndex.c_str(), ButtonSprites[i].Index); - core::stringc nameColor( GUIButtonStateNames[i] ); + core::stringc nameColor(GUIButtonStateNames[i]); nameColor += "Color"; - out->addColor(nameColor.c_str(), ButtonSprites[i].Color ); + out->addColor(nameColor.c_str(), ButtonSprites[i].Color); - core::stringc nameLoop( GUIButtonStateNames[i] ); + core::stringc nameLoop(GUIButtonStateNames[i]); nameLoop += "Loop"; - out->addBool(nameLoop.c_str(), ButtonSprites[i].Loop ); + out->addBool(nameLoop.c_str(), ButtonSprites[i].Loop); - core::stringc nameScale( GUIButtonStateNames[i] ); + core::stringc nameScale(GUIButtonStateNames[i]); nameScale += "Scale"; - out->addBool(nameScale.c_str(), ButtonSprites[i].Scale ); + out->addBool(nameScale.c_str(), ButtonSprites[i].Scale); } } // out->addString ("OverrideFont", OverrideFont); } - //! Reads attributes of the element -void GUIButton::deserializeAttributes(io::IAttributes* in, io::SAttributeReadWriteOptions* options=0) +void GUIButton::deserializeAttributes( + io::IAttributes *in, io::SAttributeReadWriteOptions *options = 0) { - IGUIButton::deserializeAttributes(in,options); + IGUIButton::deserializeAttributes(in, options); - IsPushButton = in->getAttributeAsBool("PushButton"); - Pressed = IsPushButton ? in->getAttributeAsBool("Pressed") : false; + IsPushButton = in->getAttributeAsBool("PushButton"); + Pressed = IsPushButton ? in->getAttributeAsBool("Pressed") : false; core::rect rec = in->getAttributeAsRect("ImageRect"); if (rec.isValid()) - setImage( in->getAttributeAsTexture("Image"), rec); + setImage(in->getAttributeAsTexture("Image"), rec); else - setImage( in->getAttributeAsTexture("Image") ); + setImage(in->getAttributeAsTexture("Image")); rec = in->getAttributeAsRect("PressedImageRect"); if (rec.isValid()) - setPressedImage( in->getAttributeAsTexture("PressedImage"), rec); + setPressedImage(in->getAttributeAsTexture("PressedImage"), rec); else - setPressedImage( in->getAttributeAsTexture("PressedImage") ); + setPressedImage(in->getAttributeAsTexture("PressedImage")); setDrawBorder(in->getAttributeAsBool("Border")); setUseAlphaChannel(in->getAttributeAsBool("UseAlphaChannel")); @@ -704,17 +687,19 @@ void GUIButton::deserializeAttributes(io::IAttributes* in, io::SAttributeReadWri } // PATCH -GUIButton* GUIButton::addButton(IGUIEnvironment *environment, - const core::rect& rectangle, ISimpleTextureSource *tsrc, - IGUIElement* parent, s32 id, const wchar_t* text, +GUIButton *GUIButton::addButton(IGUIEnvironment *environment, + const core::rect &rectangle, ISimpleTextureSource *tsrc, + IGUIElement *parent, s32 id, const wchar_t *text, const wchar_t *tooltiptext) { - GUIButton* button = new GUIButton(environment, parent ? parent : environment->getRootGUIElement(), id, rectangle, tsrc); + GUIButton *button = new GUIButton(environment, + parent ? parent : environment->getRootGUIElement(), id, rectangle, + tsrc); if (text) button->setText(text); - if ( tooltiptext ) - button->setToolTipText ( tooltiptext ); + if (tooltiptext) + button->setToolTipText(tooltiptext); button->drop(); return button; @@ -724,7 +709,8 @@ void GUIButton::setColor(video::SColor color) { float d = 0.65f; for (size_t i = 0; i < 4; i++) { - video::SColor base = Environment->getSkin()->getColor((gui::EGUI_DEFAULT_COLOR)i); + video::SColor base = Environment->getSkin()->getColor( + (gui::EGUI_DEFAULT_COLOR)i); Colors[i] = base.getInterpolated(color, d); } } @@ -744,7 +730,7 @@ void GUIButton::setFromState() } //! Set element properties from a StyleSpec -void GUIButton::setFromStyle(const StyleSpec& style) +void GUIButton::setFromStyle(const StyleSpec &style) { bool hovered = (style.getState() & StyleSpec::STATE_HOVERED) != 0; bool pressed = (style.getState() & StyleSpec::STATE_PRESSED) != 0; @@ -758,17 +744,19 @@ void GUIButton::setFromStyle(const StyleSpec& style) if (!Styles[style.getState()].isNotDefault(StyleSpec::BGCOLOR)) { for (size_t i = 0; i < 4; i++) { if (pressed) { - Colors[i] = multiplyColorValue(Colors[i], COLOR_PRESSED_MOD); + Colors[i] = multiplyColorValue( + Colors[i], COLOR_PRESSED_MOD); } else if (hovered) { - Colors[i] = multiplyColorValue(Colors[i], COLOR_HOVERED_MOD); + Colors[i] = multiplyColorValue( + Colors[i], COLOR_HOVERED_MOD); } } } } else { for (size_t i = 0; i < 4; i++) { - video::SColor base = - Environment->getSkin()->getColor((gui::EGUI_DEFAULT_COLOR)i); + video::SColor base = Environment->getSkin()->getColor( + (gui::EGUI_DEFAULT_COLOR)i); if (pressed) { Colors[i] = multiplyColorValue(base, COLOR_PRESSED_MOD); } else if (hovered) { @@ -782,7 +770,7 @@ void GUIButton::setFromStyle(const StyleSpec& style) if (style.isNotDefault(StyleSpec::TEXTCOLOR)) { setOverrideColor(style.getColor(StyleSpec::TEXTCOLOR)); } else { - setOverrideColor(video::SColor(255,255,255,255)); + setOverrideColor(video::SColor(255, 255, 255, 255)); OverrideColorEnabled = false; } setNotClipped(style.getBool(StyleSpec::NOCLIP, false)); @@ -791,11 +779,10 @@ void GUIButton::setFromStyle(const StyleSpec& style) setOverrideFont(style.getFont()); if (style.isNotDefault(StyleSpec::BGIMG)) { - video::ITexture *texture = style.getTexture(StyleSpec::BGIMG, - getTextureSource()); - setImage(guiScalingImageButton( - Environment->getVideoDriver(), texture, - AbsoluteRect.getWidth(), AbsoluteRect.getHeight())); + video::ITexture *texture = + style.getTexture(StyleSpec::BGIMG, getTextureSource()); + setImage(guiScalingImageButton(Environment->getVideoDriver(), texture, + AbsoluteRect.getWidth(), AbsoluteRect.getHeight())); setScaleImage(true); } else { setImage(nullptr); @@ -805,23 +792,22 @@ void GUIButton::setFromStyle(const StyleSpec& style) // Child padding and offset Padding = style.getRect(StyleSpec::PADDING, core::rect()); - Padding = core::rect( - Padding.UpperLeftCorner + BgMiddle.UpperLeftCorner, + Padding = core::rect(Padding.UpperLeftCorner + BgMiddle.UpperLeftCorner, Padding.LowerRightCorner + BgMiddle.LowerRightCorner); - GUISkin* skin = dynamic_cast(Environment->getSkin()); + GUISkin *skin = dynamic_cast(Environment->getSkin()); core::vector2d defaultPressOffset( skin->getSize(irr::gui::EGDS_BUTTON_PRESSED_IMAGE_OFFSET_X), skin->getSize(irr::gui::EGDS_BUTTON_PRESSED_IMAGE_OFFSET_Y)); - ContentOffset = style.getVector2i(StyleSpec::CONTENT_OFFSET, isPressed() - ? defaultPressOffset - : core::vector2d(0)); + ContentOffset = style.getVector2i(StyleSpec::CONTENT_OFFSET, + isPressed() ? defaultPressOffset : core::vector2d(0)); - core::rect childBounds( - Padding.UpperLeftCorner.X + ContentOffset.X, - Padding.UpperLeftCorner.Y + ContentOffset.Y, - AbsoluteRect.getWidth() + Padding.LowerRightCorner.X + ContentOffset.X, - AbsoluteRect.getHeight() + Padding.LowerRightCorner.Y + ContentOffset.Y); + core::rect childBounds(Padding.UpperLeftCorner.X + ContentOffset.X, + Padding.UpperLeftCorner.Y + ContentOffset.Y, + AbsoluteRect.getWidth() + Padding.LowerRightCorner.X + + ContentOffset.X, + AbsoluteRect.getHeight() + Padding.LowerRightCorner.Y + + ContentOffset.Y); for (IGUIElement *child : getChildren()) { child->setRelativePosition(childBounds); @@ -829,7 +815,7 @@ void GUIButton::setFromStyle(const StyleSpec& style) } //! Set the styles used for each state -void GUIButton::setStyles(const std::array& styles) +void GUIButton::setStyles(const std::array &styles) { Styles = styles; setFromState(); -- cgit v1.2.3