summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/svtools/ivctrl.hxx59
-rw-r--r--svtools/source/contnr/imivctl.hxx2
-rw-r--r--svtools/source/contnr/imivctl1.cxx36
-rw-r--r--svtools/source/contnr/ivctrl.cxx4
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);