From 45be2df19699716b238e3e57f2d6b4ac2c9201b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mart=C3=ADn=20Lucas=20Golini?= Date: Mon, 2 Apr 2018 21:30:25 -0300 Subject: [PATCH] Added some bacgkround and border helper functions for UINode. Minor fixes. --HG-- branch : dev --- include/eepp/ui/uinode.hpp | 12 ++++++++++++ src/eepp/ui/uinode.cpp | 32 ++++++++++++++++++++++++++++++++ src/eepp/ui/uiwidget.cpp | 12 ++++++------ 3 files changed, 50 insertions(+), 6 deletions(-) diff --git a/include/eepp/ui/uinode.hpp b/include/eepp/ui/uinode.hpp index 5d2b6f371..cf7ff412f 100644 --- a/include/eepp/ui/uinode.hpp +++ b/include/eepp/ui/uinode.hpp @@ -88,6 +88,18 @@ class EE_API UINode : public Node { UIBorder * setBorderEnabled( bool enabled ); + UINode * setBackgroundDrawable( Drawable * drawable , bool ownIt = false ); + + UINode * setBackgroundColor( const Color& color ); + + UINode * setBackgroundCorners( const unsigned int& corners ); + + UINode * setBackgroundBlendMode( const BlendMode& blendMode ); + + UINode * setBorderColor( const Color& color ); + + UINode * setBorderWidth( const unsigned int& width ); + const Uint32& getFlags() const; virtual UINode * setFlags( const Uint32& flags ); diff --git a/src/eepp/ui/uinode.cpp b/src/eepp/ui/uinode.cpp index 4ae434aa6..f180abd81 100644 --- a/src/eepp/ui/uinode.cpp +++ b/src/eepp/ui/uinode.cpp @@ -386,9 +386,41 @@ UIBorder * UINode::setBorderEnabled( bool enabled ) { } } + invalidateDraw(); + return mBorder; } +UINode * UINode::setBackgroundDrawable( Drawable * drawable, bool ownIt ) { + setBackgroundFillEnabled( true )->setDrawable( drawable, ownIt ); + return this; +} + +UINode * UINode::setBackgroundColor( const Color& color ) { + setBackgroundFillEnabled( true )->setColor( color ); + return this; +} + +UINode * UINode::setBackgroundCorners( const unsigned int& corners ) { + setBackgroundFillEnabled( true )->setCorners( corners ); + return this; +} + +UINode * UINode::setBackgroundBlendMode( const BlendMode& blendMode ) { + setBackgroundFillEnabled( true )->setBlendMode( blendMode ); + return this; +} + +UINode * UINode::setBorderColor( const Color& color ) { + setBorderEnabled( true )->setColor( color ); + return this; +} + +UINode * UINode::setBorderWidth( const unsigned int& width ) { + setBorderEnabled( true )->setWidth( width ); + return this; +} + const Uint32& UINode::getFlags() const { return mFlags; } diff --git a/src/eepp/ui/uiwidget.cpp b/src/eepp/ui/uiwidget.cpp index ef484265a..5cf8f2f01 100644 --- a/src/eepp/ui/uiwidget.cpp +++ b/src/eepp/ui/uiwidget.cpp @@ -471,18 +471,18 @@ void UIWidget::loadFromXmlNode( const pugi::xml_node& node ) { setInternalHeight( PixelDensity::toDpFromStringI( ait->as_string() ) ); notifyLayoutAttrChange(); } else if ( "backgroundcolor" == name ) { - setBackgroundFillEnabled( true )->setColor( Color::fromString( ait->as_string() ) ); + setBackgroundColor( Color::fromString( ait->as_string() ) ); } else if ( "bordercolor" == name ) { - setBorderEnabled( true )->setColor( Color::fromString( ait->as_string() ) ); + setBorderColor( Color::fromString( ait->as_string() ) ); } else if ( "borderwidth" == name ) { - setBorderEnabled( true )->setWidth( PixelDensity::toDpFromStringI( ait->as_string("1") ) ); + setBorderWidth( PixelDensity::toDpFromStringI( ait->as_string("1") ) ); } else if ( "bordercorners" == name || "backgroundcorners" == name ) { - setBackgroundFillEnabled( true )->setCorners( 6 ); + setBackgroundCorners( ait->as_uint() ); } else if ( "background" == name ) { Drawable * res = NULL; if ( NULL != ( res = DrawableSearcher::searchByName( ait->as_string() ) ) ) { - setBackgroundFillEnabled( true )->setDrawable( res, res->getDrawableType() == Drawable::SPRITE ); + setBackgroundDrawable( res, res->getDrawableType() == Drawable::SPRITE ); } } else if ( "visible" == name ) { setVisible( ait->as_bool() ); @@ -664,7 +664,7 @@ void UIWidget::loadFromXmlNode( const pugi::xml_node& node ) { } else if ( "blendmode" == name ) { setBlendMode( toBlendMode( ait->as_string() ) ); } else if ( "backgroundblendmode" == name ) { - setBackgroundFillEnabled( true )->setBlendMode( toBlendMode( ait->as_string() ) ); + setBackgroundBlendMode( toBlendMode( ait->as_string() ) ); } }