]> git.sesse.net Git - vlc/blobdiff - modules/gui/skins2/controls/ctrl_checkbox.cpp
* skins2: When a control changes, refresh only the needed part of the layout
[vlc] / modules / gui / skins2 / controls / ctrl_checkbox.cpp
index 4e36fc87538cbcd1a285aa8b1e8ce80491c4e74a..f0daae0e1d8e6f99d5051b4abf0d22977c0f96f1 100755 (executable)
@@ -177,8 +177,9 @@ void CtrlCheckbox::transUpOverDownOver( SkinObject *pCtrl )
 {
     CtrlCheckbox *pThis = (CtrlCheckbox*)pCtrl;
     pThis->captureMouse();
+    const OSGraphics *pOldImg = pThis->m_pImgCurrent;
     pThis->m_pImgCurrent = pThis->m_pImgDown;
-    pThis->notifyLayout();
+    pThis->notifyLayoutMaxSize( pOldImg, pThis->m_pImgCurrent );
 }
 
 
@@ -188,8 +189,9 @@ void CtrlCheckbox::transDownOverUpOver( SkinObject *pCtrl )
     pThis->releaseMouse();
 
     // Invert the state variable
+    const OSGraphics *pOldImg = pThis->m_pImgCurrent;
     pThis->m_pImgCurrent = pThis->m_pImgUp;
-    pThis->notifyLayout();
+    pThis->notifyLayoutMaxSize( pOldImg, pThis->m_pImgCurrent );
 
     // Execute the command
     pThis->m_pCommand->execute();
@@ -199,32 +201,36 @@ void CtrlCheckbox::transDownOverUpOver( SkinObject *pCtrl )
 void CtrlCheckbox::transDownOverDown( SkinObject *pCtrl )
 {
     CtrlCheckbox *pThis = (CtrlCheckbox*)pCtrl;
+    const OSGraphics *pOldImg = pThis->m_pImgCurrent;
     pThis->m_pImgCurrent = pThis->m_pImgUp;
-    pThis->notifyLayout();
+    pThis->notifyLayoutMaxSize( pOldImg, pThis->m_pImgCurrent );
 }
 
 
 void CtrlCheckbox::transDownDownOver( SkinObject *pCtrl )
 {
     CtrlCheckbox *pThis = (CtrlCheckbox*)pCtrl;
+    const OSGraphics *pOldImg = pThis->m_pImgCurrent;
     pThis->m_pImgCurrent = pThis->m_pImgDown;
-    pThis->notifyLayout();
+    pThis->notifyLayoutMaxSize( pOldImg, pThis->m_pImgCurrent );
 }
 
 
 void CtrlCheckbox::transUpUpOver( SkinObject *pCtrl )
 {
     CtrlCheckbox *pThis = (CtrlCheckbox*)pCtrl;
+    const OSGraphics *pOldImg = pThis->m_pImgCurrent;
     pThis->m_pImgCurrent = pThis->m_pImgOver;
-    pThis->notifyLayout();
+    pThis->notifyLayoutMaxSize( pOldImg, pThis->m_pImgCurrent );
 }
 
 
 void CtrlCheckbox::transUpOverUp( SkinObject *pCtrl )
 {
     CtrlCheckbox *pThis = (CtrlCheckbox*)pCtrl;
+    const OSGraphics *pOldImg = pThis->m_pImgCurrent;
     pThis->m_pImgCurrent = pThis->m_pImgUp;
-    pThis->notifyLayout();
+    pThis->notifyLayoutMaxSize( pOldImg, pThis->m_pImgCurrent );
 }
 
 
@@ -238,16 +244,18 @@ void CtrlCheckbox::transDownUp( SkinObject *pCtrl )
 void CtrlCheckbox::transUpHidden( SkinObject *pCtrl )
 {
     CtrlCheckbox *pThis = (CtrlCheckbox*)pCtrl;
+    const OSGraphics *pOldImg = pThis->m_pImgCurrent;
     pThis->m_pImgCurrent = NULL;
-    pThis->notifyLayout();
+    pThis->notifyLayoutMaxSize( pOldImg, pThis->m_pImgCurrent );
 }
 
 
 void CtrlCheckbox::transHiddenUp( SkinObject *pCtrl )
 {
     CtrlCheckbox *pThis = (CtrlCheckbox*)pCtrl;
+    const OSGraphics *pOldImg = pThis->m_pImgCurrent;
     pThis->m_pImgCurrent = pThis->m_pImgUp;
-    pThis->notifyLayout();
+    pThis->notifyLayoutMaxSize( pOldImg, pThis->m_pImgCurrent );
 }