From 1579fc7930971e76ed36428d83652401aaa15879 Mon Sep 17 00:00:00 2001 From: Caolán McNamara Date: Tue, 24 Jun 2014 09:48:14 +0100 Subject: hide old page on showing new page and showing/hiding pages during Paint seems crazy to me, doing it during ShowPage makes sense. Change-Id: Ifd0c3c50812157cfa793da86715d58818e944e6b --- cui/source/dialogs/iconcdlg.cxx | 64 ++++++++++++----------------------------- 1 file changed, 19 insertions(+), 45 deletions(-) (limited to 'cui/source/dialogs/iconcdlg.cxx') diff --git a/cui/source/dialogs/iconcdlg.cxx b/cui/source/dialogs/iconcdlg.cxx index a66bf09b730b..0af84e032145 100644 --- a/cui/source/dialogs/iconcdlg.cxx +++ b/cui/source/dialogs/iconcdlg.cxx @@ -323,31 +323,6 @@ SvxIconChoiceCtrlEntry* IconChoiceDialog::AddTabPage( return pEntry; } -/********************************************************************** -| -| Paint-method -| -\**********************************************************************/ - -void IconChoiceDialog::Paint( const Rectangle& rRect ) -{ - Dialog::Paint ( rRect ); - - for ( size_t i = 0; i < maPageList.size(); i++ ) - { - IconChoicePageData* pData = maPageList[ i ]; - - if ( pData->nId == mnCurrentPageId ) - { - ShowPageImpl ( pData ); - } - else - { - HidePageImpl ( pData ); - } - } -} - void IconChoiceDialog::SetCtrlStyle() { WinBits aWinBits = WB_3DLOOK | WB_ICON | WB_BORDER | WB_NOCOLUMNHEADER | WB_HIGHLIGHTFRAME | WB_NODRAGSELECTION | WB_TABSTOP | WB_CLIPCHILDREN | WB_ALIGN_LEFT | WB_NOHSCROLL; @@ -375,20 +350,26 @@ void IconChoiceDialog::HidePageImpl ( IconChoicePageData* pData ) pData->pPage->Hide(); } - - -void IconChoiceDialog::ShowPage( sal_uInt16 nId ) +void IconChoiceDialog::ShowPage(sal_uInt16 nId) { - bool bInvalidate = GetCurPageId() != nId; - SetCurPageId( nId ); - ActivatePageImpl( ); - if(bInvalidate) - Invalidate(); + sal_uInt16 nOldPageId = GetCurPageId(); + bool bInvalidate = nOldPageId != nId; + SetCurPageId(nId); + ActivatePageImpl(); + if (bInvalidate) + { + IconChoicePageData* pOldData = GetPageData(nOldPageId); + if (pOldData && pOldData->pPage) + { + DeActivatePageImpl(); + HidePageImpl(pOldData); + } - // IA2 CWS. MT: I guess we want the event now, and not in Paint()? - IconChoicePageData* pData = GetPageData ( mnCurrentPageId ); - if(pData) - ShowPageImpl ( pData ); + Invalidate(); + } + IconChoicePageData* pNewData = GetPageData(nId); + if (pNewData && pNewData->pPage) + ShowPageImpl(pNewData); } /********************************************************************** @@ -408,14 +389,7 @@ IMPL_LINK_NOARG(IconChoiceDialog , ChosePageHdl_Impl) if( *pId != mnCurrentPageId ) { - IconChoicePageData* pData = GetPageData ( mnCurrentPageId ); - if ( pData->pPage ) - DeActivatePageImpl(); - - SetCurPageId ( *pId ); - - ActivatePageImpl(); - Invalidate(); + ShowPage(*pId); } return 0L; -- cgit v1.2.3