diff options
-rw-r--r-- | include/svtools/ivctrl.hxx | 59 | ||||
-rw-r--r-- | svtools/source/contnr/imivctl.hxx | 2 | ||||
-rw-r--r-- | svtools/source/contnr/imivctl1.cxx | 36 | ||||
-rw-r--r-- | svtools/source/contnr/ivctrl.cxx | 4 |
4 files changed, 55 insertions, 46 deletions
diff --git a/include/svtools/ivctrl.hxx b/include/svtools/ivctrl.hxx index db64201768b5..c48803c88ee9 100644 --- a/include/svtools/ivctrl.hxx +++ b/include/svtools/ivctrl.hxx @@ -26,21 +26,30 @@ #include <tools/contnr.hxx> #include <vcl/image.hxx> #include <vcl/seleng.hxx> +#include <o3tl/typed_flags_set.hxx> class ResId; class Point; class SvxIconChoiceCtrl_Impl; class Image; -#define ICNVIEW_FLAG_POS_LOCKED 0x0001 -#define ICNVIEW_FLAG_SELECTED 0x0002 -#define ICNVIEW_FLAG_FOCUSED 0x0004 -#define ICNVIEW_FLAG_IN_USE 0x0008 -#define ICNVIEW_FLAG_CURSORED 0x0010 // Border around image -#define ICNVIEW_FLAG_POS_MOVED 0x0020 // Moved by Drag and Drop, but not logged -#define ICNVIEW_FLAG_DROP_TARGET 0x0040 // Set in QueryDrop -#define ICNVIEW_FLAG_BLOCK_EMPHASIS 0x0080 // Do not paint Emphasis -#define ICNVIEW_FLAG_PRED_SET 0x0400 // Predecessor moved +enum class SvxIconViewFlags +{ + NONE = 0x0000, + POS_LOCKED = 0x0001, + SELECTED = 0x0002, + FOCUSED = 0x0004, + IN_USE = 0x0008, + CURSORED = 0x0010, // Border around image + POS_MOVED = 0x0020, // Moved by Drag and Drop, but not logged + DROP_TARGET = 0x0040, // Set in QueryDrop + BLOCK_EMPHASIS = 0x0080, // Do not paint Emphasis + PRED_SET = 0x0400, // Predecessor moved +}; +namespace o3tl +{ + template<> struct typed_flags<SvxIconViewFlags> : is_typed_flags<SvxIconViewFlags, 0x04ff> {}; +} enum SvxIconChoiceCtrlTextMode { @@ -84,12 +93,12 @@ class SvxIconChoiceCtrlEntry SvxIconChoiceCtrlEntry* pflink; // forward (rechter neighbour) SvxIconChoiceCtrlTextMode eTextMode; - sal_uInt16 nX,nY; // for keyboard control - sal_uInt16 nFlags; + sal_uInt16 nX,nY; // for keyboard control + SvxIconViewFlags nFlags; - void ClearFlags( sal_uInt16 nMask ) { nFlags &= (~nMask); } - void SetFlags( sal_uInt16 nMask ) { nFlags |= nMask; } - void AssignFlags( sal_uInt16 _nFlags ) { nFlags = _nFlags; } + void ClearFlags( SvxIconViewFlags nMask ) { nFlags &= (~nMask); } + void SetFlags( SvxIconViewFlags nMask ) { nFlags |= nMask; } + void AssignFlags( SvxIconViewFlags _nFlags ) { nFlags = _nFlags; } // set left neighbour (A <-> B ==> A <-> this <-> B) void SetBacklink( SvxIconChoiceCtrlEntry* pA ) @@ -109,7 +118,7 @@ class SvxIconChoiceCtrlEntry } public: - SvxIconChoiceCtrlEntry( const OUString& rText, const Image& rImage, sal_uInt16 nFlags = 0 ); + SvxIconChoiceCtrlEntry( const OUString& rText, const Image& rImage, SvxIconViewFlags nFlags = SvxIconViewFlags::NONE ); ~SvxIconChoiceCtrlEntry () {} void SetImage ( const Image& rImage ) { aImage = rImage; } @@ -125,17 +134,17 @@ public: const Rectangle & GetBoundRect() const { return aRect; } void SetFocus ( bool bSet ) - { nFlags = ( bSet ? nFlags | ICNVIEW_FLAG_FOCUSED : nFlags & ~ICNVIEW_FLAG_FOCUSED ); } + { nFlags = ( bSet ? nFlags | SvxIconViewFlags::FOCUSED : nFlags & ~SvxIconViewFlags::FOCUSED ); } SvxIconChoiceCtrlTextMode GetTextMode() const { return eTextMode; } - sal_uInt16 GetFlags() const { return nFlags; } - bool IsSelected() const { return ((nFlags & ICNVIEW_FLAG_SELECTED) !=0); } - bool IsFocused() const { return ((nFlags & ICNVIEW_FLAG_FOCUSED) !=0); } - bool IsInUse() const { return ((nFlags & ICNVIEW_FLAG_IN_USE) !=0); } - bool IsCursored() const { return ((nFlags & ICNVIEW_FLAG_CURSORED) !=0); } - bool IsDropTarget() const { return ((nFlags & ICNVIEW_FLAG_DROP_TARGET) !=0); } - bool IsBlockingEmphasis() const { return ((nFlags & ICNVIEW_FLAG_BLOCK_EMPHASIS) !=0); } - bool IsPosLocked() const { return ((nFlags & ICNVIEW_FLAG_POS_LOCKED) !=0); } + SvxIconViewFlags GetFlags() const { return nFlags; } + bool IsSelected() const { return bool(nFlags & SvxIconViewFlags::SELECTED); } + bool IsFocused() const { return bool(nFlags & SvxIconViewFlags::FOCUSED); } + bool IsInUse() const { return bool(nFlags & SvxIconViewFlags::IN_USE); } + bool IsCursored() const { return bool(nFlags & SvxIconViewFlags::CURSORED); } + bool IsDropTarget() const { return bool(nFlags & SvxIconViewFlags::DROP_TARGET); } + bool IsBlockingEmphasis() const { return bool(nFlags & SvxIconViewFlags::BLOCK_EMPHASIS); } + bool IsPosLocked() const { return bool(nFlags & SvxIconViewFlags::POS_LOCKED); } // Only set at AutoArrange. The head of the list is accessible via SvxIconChoiceCtrl::GetPredecessorHead SvxIconChoiceCtrlEntry* GetSuccessor() const { return pflink; } SvxIconChoiceCtrlEntry* GetPredecessor() const { return pblink; } @@ -281,7 +290,7 @@ public: const Image& rImage, sal_uLong nPos = CONTAINER_APPEND, const Point* pPos = 0, - sal_uInt16 nFlags = 0 + SvxIconViewFlags nFlags = SvxIconViewFlags::NONE ); /** creates automatic mnemonics for all icon texts in the control diff --git a/svtools/source/contnr/imivctl.hxx b/svtools/source/contnr/imivctl.hxx index da249561ffe4..b1dcdf86ede6 100644 --- a/svtools/source/contnr/imivctl.hxx +++ b/svtools/source/contnr/imivctl.hxx @@ -298,7 +298,7 @@ class SvxIconChoiceCtrl_Impl bool bSelect, bool bSyncPaint ); - void RepaintEntries( sal_uInt16 nEntryFlagsMask ); + void RepaintEntries( SvxIconViewFlags nEntryFlagsMask ); void SetListPositions(); void SetDefaultTextSize(); bool IsAutoArrange() const diff --git a/svtools/source/contnr/imivctl1.cxx b/svtools/source/contnr/imivctl1.cxx index c46df0507255..f7e131aa88bc 100644 --- a/svtools/source/contnr/imivctl1.cxx +++ b/svtools/source/contnr/imivctl1.cxx @@ -283,7 +283,7 @@ void SvxIconChoiceCtrl_Impl::InsertEntry( SvxIconChoiceCtrlEntry* pEntry, size_t Size aSize( CalcBoundingSize( pEntry ) ); SetBoundingRect_Impl( pEntry, *pPos, aSize ); SetEntryPos( pEntry, *pPos, false, true, true /*keep grid map*/ ); - pEntry->nFlags |= ICNVIEW_FLAG_POS_MOVED; + pEntry->nFlags |= SvxIconViewFlags::POS_MOVED; SetEntriesMoved( true ); } else @@ -377,10 +377,10 @@ void SvxIconChoiceCtrl_Impl::SelectEntry( SvxIconChoiceCtrlEntry* pEntry, bool b if( pEntry->IsSelected() != bSelect ) { pHdlEntry = pEntry; - sal_uInt16 nEntryFlags = pEntry->GetFlags(); + SvxIconViewFlags nEntryFlags = pEntry->GetFlags(); if( bSelect ) { - nEntryFlags |= ICNVIEW_FLAG_SELECTED; + nEntryFlags |= SvxIconViewFlags::SELECTED; pEntry->AssignFlags( nEntryFlags ); nSelectionCount++; if( bCallHdl ) @@ -388,7 +388,7 @@ void SvxIconChoiceCtrl_Impl::SelectEntry( SvxIconChoiceCtrlEntry* pEntry, bool b } else { - nEntryFlags &= ~( ICNVIEW_FLAG_SELECTED); + nEntryFlags &= ~( SvxIconViewFlags::SELECTED); pEntry->AssignFlags( nEntryFlags ); nSelectionCount--; if( bCallHdl ) @@ -447,7 +447,7 @@ void SvxIconChoiceCtrl_Impl::ResetVirtSize() for( size_t nCur = 0; nCur < nCount; nCur++ ) { SvxIconChoiceCtrlEntry* pCur = aEntries[ nCur ]; - pCur->ClearFlags( ICNVIEW_FLAG_POS_MOVED ); + pCur->ClearFlags( SvxIconViewFlags::POS_MOVED ); if( pCur->IsPosLocked() ) { // adapt (among others) VirtSize @@ -521,8 +521,8 @@ void SvxIconChoiceCtrl_Impl::InitPredecessors() SvxIconChoiceCtrlEntry* pPrev = aEntries[ 0 ]; for( size_t nCur = 1; nCur <= nCount; nCur++ ) { - pPrev->ClearFlags( ICNVIEW_FLAG_POS_LOCKED | ICNVIEW_FLAG_POS_MOVED | - ICNVIEW_FLAG_PRED_SET); + pPrev->ClearFlags( SvxIconViewFlags::POS_LOCKED | SvxIconViewFlags::POS_MOVED | + SvxIconViewFlags::PRED_SET); SvxIconChoiceCtrlEntry* pNext; if( nCur == nCount ) @@ -550,7 +550,7 @@ void SvxIconChoiceCtrl_Impl::ClearPredecessors() SvxIconChoiceCtrlEntry* pCur = aEntries[ nCur ]; pCur->pflink = 0; pCur->pblink = 0; - pCur->ClearFlags( ICNVIEW_FLAG_PRED_SET ); + pCur->ClearFlags( SvxIconViewFlags::PRED_SET ); } pHead = 0; } @@ -719,7 +719,7 @@ void SvxIconChoiceCtrl_Impl::Paint( const Rectangle& rRect ) pView->SetClipRegion(); } -void SvxIconChoiceCtrl_Impl::RepaintEntries( sal_uInt16 nEntryFlagsMask ) +void SvxIconChoiceCtrl_Impl::RepaintEntries( SvxIconViewFlags nEntryFlagsMask ) { const size_t nCount = pZOrderList->size(); if( !nCount ) @@ -1510,10 +1510,10 @@ void SvxIconChoiceCtrl_Impl::CheckScrollBars() void SvxIconChoiceCtrl_Impl::GetFocus() { - RepaintEntries( ICNVIEW_FLAG_SELECTED ); + RepaintEntries( SvxIconViewFlags::SELECTED ); if( pCursor ) { - pCursor->SetFlags( ICNVIEW_FLAG_FOCUSED ); + pCursor->SetFlags( SvxIconViewFlags::FOCUSED ); ShowCursor( true ); } } @@ -1522,13 +1522,13 @@ void SvxIconChoiceCtrl_Impl::LoseFocus() { StopEditTimer(); if( pCursor ) - pCursor->ClearFlags( ICNVIEW_FLAG_FOCUSED ); + pCursor->ClearFlags( SvxIconViewFlags::FOCUSED ); ShowCursor( false ); // HideFocus (); // pView->Invalidate ( aFocus.aRect ); - RepaintEntries( ICNVIEW_FLAG_SELECTED ); + RepaintEntries( SvxIconViewFlags::SELECTED ); } void SvxIconChoiceCtrl_Impl::SetUpdateMode( bool bUpdate ) @@ -2178,14 +2178,14 @@ void SvxIconChoiceCtrl_Impl::SetCursor( SvxIconChoiceCtrlEntry* pEntry, bool bSy pCursor = pEntry; if( pOldCursor ) { - pOldCursor->ClearFlags( ICNVIEW_FLAG_FOCUSED ); + pOldCursor->ClearFlags( SvxIconViewFlags::FOCUSED ); if( eSelectionMode == SINGLE_SELECTION && bSyncSingleSelection ) SelectEntry( pOldCursor, false, true ); // deselect old cursor } if( pCursor ) { ToTop( pCursor ); - pCursor->SetFlags( ICNVIEW_FLAG_FOCUSED ); + pCursor->SetFlags( SvxIconViewFlags::FOCUSED ); if( eSelectionMode == SINGLE_SELECTION && bSyncSingleSelection ) SelectEntry( pCursor, true, true ); if( !bShowFocusAsync ) @@ -2943,7 +2943,7 @@ void SvxIconChoiceCtrl_Impl::AdjustAtGrid( const SvxIconChoiceCtrlEntryPtrVec& r if( aNewPos != rBoundRect.TopLeft() ) { SetEntryPos( pCur, aNewPos ); - pCur->SetFlags( ICNVIEW_FLAG_POS_MOVED ); + pCur->SetFlags( SvxIconViewFlags::POS_MOVED ); nFlags |= F_MOVED_ENTRIES; } nCurRight = aNewPos.X() + nWidth; @@ -3461,7 +3461,7 @@ void SvxIconChoiceCtrl_Impl::SetPositionMode( SvxIconChoiceCtrlPositionMode eMod for( size_t nCur = 0; nCur < nCount; nCur++ ) { SvxIconChoiceCtrlEntry* pEntry = aEntries[ nCur ]; - if( pEntry->GetFlags() & (ICNVIEW_FLAG_POS_LOCKED | ICNVIEW_FLAG_POS_MOVED)) + if( pEntry->GetFlags() & SvxIconViewFlags(SvxIconViewFlags::POS_LOCKED | SvxIconViewFlags::POS_MOVED)) SetEntryPos(pEntry, GetEntryBoundRect( pEntry ).TopLeft()); } @@ -3520,7 +3520,7 @@ void SvxIconChoiceCtrl_Impl::SetEntryPredecessor( SvxIconChoiceCtrlEntry* pEntry } if( bSetHead ) pHead = pEntry; - pEntry->SetFlags( ICNVIEW_FLAG_PRED_SET ); + pEntry->SetFlags( SvxIconViewFlags::PRED_SET ); aAutoArrangeIdle.Start(); } diff --git a/svtools/source/contnr/ivctrl.cxx b/svtools/source/contnr/ivctrl.cxx index ce1c05c49f64..38f2d5ad82d2 100644 --- a/svtools/source/contnr/ivctrl.cxx +++ b/svtools/source/contnr/ivctrl.cxx @@ -35,7 +35,7 @@ using namespace ::com::sun::star::accessibility; SvxIconChoiceCtrlEntry::SvxIconChoiceCtrlEntry( const OUString& rText, const Image& rImage, - sal_uInt16 _nFlags ) + SvxIconViewFlags _nFlags ) : aImage(rImage) , aText(rText) , pUserData(NULL) @@ -92,7 +92,7 @@ SvtIconChoiceCtrl::~SvtIconChoiceCtrl() delete _pImp; } -SvxIconChoiceCtrlEntry* SvtIconChoiceCtrl::InsertEntry( const OUString& rText, const Image& rImage, sal_uLong nPos, const Point* pPos, sal_uInt16 nFlags ) +SvxIconChoiceCtrlEntry* SvtIconChoiceCtrl::InsertEntry( const OUString& rText, const Image& rImage, sal_uLong nPos, const Point* pPos, SvxIconViewFlags nFlags ) { SvxIconChoiceCtrlEntry* pEntry = new SvxIconChoiceCtrlEntry( rText, rImage, nFlags); |