X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Fgui%2Fskins2%2Fsrc%2Fgeneric_layout.cpp;h=68a16517535a20b2a479ea9c525809cac531195b;hb=494ace96d068ee8e4b6b689da0ae469c0c0e4fe3;hp=8d12ff1d60392529b666e8a07c3f76facdcde83e;hpb=b9864a81adc15e47b3058d4e51cfe5be513359fb;p=vlc diff --git a/modules/gui/skins2/src/generic_layout.cpp b/modules/gui/skins2/src/generic_layout.cpp index 8d12ff1d60..68a1651753 100644 --- a/modules/gui/skins2/src/generic_layout.cpp +++ b/modules/gui/skins2/src/generic_layout.cpp @@ -27,6 +27,7 @@ #include "os_factory.hpp" #include "os_graphics.hpp" #include "var_manager.hpp" +#include "anchor.hpp" #include "../controls/ctrl_generic.hpp" #include "../controls/ctrl_video.hpp" #include "../utils/var_bool.hpp" @@ -35,8 +36,8 @@ GenericLayout::GenericLayout( intf_thread_t *pIntf, int width, int height, int minWidth, int maxWidth, int minHeight, int maxHeight ): - SkinObject( pIntf ), m_pWindow( NULL ), m_width( width ), - m_height( height ), m_minWidth( minWidth ), m_maxWidth( maxWidth ), + SkinObject( pIntf ), m_pWindow( NULL ), m_rect( 0, 0, width, height ), + m_minWidth( minWidth ), m_maxWidth( maxWidth ), m_minHeight( minHeight ), m_maxHeight( maxHeight ), m_pVideoControl( NULL ), m_visible( false ), m_pVarActive( NULL ) { @@ -57,6 +58,11 @@ GenericLayout::~GenericLayout() { delete m_pImage; } + list::const_iterator it; + for( it = m_anchorList.begin(); it != m_anchorList.end(); it++ ) + { + delete *it; + } } @@ -100,7 +106,7 @@ void GenericLayout::addControl( CtrlGeneric *pControl, pControl->draw( *m_pImage, rPosition.getLeft(), rPosition.getTop() ); // Add the control in the list. - // This list must remain sorted by layer order + // This list must remain sorted by layer order list::iterator it; for( it = m_controlList.begin(); it != m_controlList.end(); it++ ) { @@ -159,8 +165,7 @@ void GenericLayout::onControlUpdate( const CtrlGeneric &rCtrl, void GenericLayout::resize( int width, int height ) { // Update the window size - m_width = width; - m_height = height; + m_rect = SkinsRect( 0, 0 , width, height ); // Recreate a new image if( m_pImage ) @@ -193,7 +198,7 @@ void GenericLayout::resize( int width, int height ) void GenericLayout::refreshAll() { - refreshRect( 0, 0, m_width, m_height ); + refreshRect( 0, 0, m_rect.getWidth(), m_rect.getHeight() ); } @@ -225,10 +230,10 @@ void GenericLayout::refreshRect( int x, int y, int width, int height ) x = 0; if( y < 0) y = 0; - if( x + width > m_width ) - width = m_width - x; - if( y + height > m_height ) - height = m_height - y; + if( x + width > m_rect.getWidth() ) + width = m_rect.getWidth() - x; + if( y + height > m_rect.getHeight() ) + height = m_rect.getHeight() - y; // Refresh the window... but do not paint on a visible video control! if( !m_pVideoControl || !m_pVideoControl->isVisible() )