[Libreoffice-commits] core.git: 3 commits - cui/source dbaccess/source include/vcl sc/source svtools/source vcl/inc vcl/source

Noel Grandin noel at peralex.com
Tue May 12 23:55:18 PDT 2015


 cui/source/customize/cfg.cxx           |    8 -
 cui/source/dialogs/hangulhanjadlg.cxx  |    3 
 cui/source/options/optdict.cxx         |    2 
 dbaccess/source/ui/browser/sbagrid.cxx |    2 
 include/vcl/button.hxx                 |   11 -
 include/vcl/decoview.hxx               |   47 +++---
 include/vcl/event.hxx                  |   28 +--
 include/vcl/window.hxx                 |   19 ++
 sc/source/ui/cctrl/cbuttonw.cxx        |    4 
 sc/source/ui/view/select.cxx           |    2 
 svtools/source/contnr/imivctl1.cxx     |    8 -
 svtools/source/contnr/svlbitm.cxx      |   24 +--
 svtools/source/control/valueset.cxx    |    2 
 vcl/inc/brdwin.hxx                     |   71 ++++-----
 vcl/source/control/button.cxx          |  246 ++++++++++++++++-----------------
 vcl/source/control/scrbar.cxx          |   12 -
 vcl/source/control/slider.cxx          |    6 
 vcl/source/control/spinfld.cxx         |   14 -
 vcl/source/window/brdwin.cxx           |  140 +++++++++---------
 vcl/source/window/decoview.cxx         |   54 +++----
 vcl/source/window/dialog.cxx           |    2 
 vcl/source/window/mouse.cxx            |    4 
 vcl/source/window/toolbox.cxx          |    8 -
 vcl/source/window/window.cxx           |    4 
 vcl/source/window/window2.cxx          |   10 -
 vcl/source/window/winproc.cxx          |    8 -
 26 files changed, 378 insertions(+), 361 deletions(-)

New commits:
commit 4c27e84145fc8546b180b81c15f58d2382779ac9
Author: Noel Grandin <noel at peralex.com>
Date:   Tue May 12 08:15:34 2015 +0200

    convert ENDTRACK_ constants to scoped enum
    
    Change-Id: Iaccd9c3be1ae24f7f9861f9049cd5b52f155170f

diff --git a/dbaccess/source/ui/browser/sbagrid.cxx b/dbaccess/source/ui/browser/sbagrid.cxx
index d9537a8..c2509dc 100644
--- a/dbaccess/source/ui/browser/sbagrid.cxx
+++ b/dbaccess/source/ui/browser/sbagrid.cxx
@@ -599,7 +599,7 @@ bool SbaGridHeader::ImplStartColumnDrag(sal_Int8 _nAction, const Point& _rMouseP
     if (!bResizingCol)
     {
         // force the base class to end it's drag mode
-        EndTracking(ENDTRACK_CANCEL | ENDTRACK_END);
+        EndTracking(TrackingEventFlags::Cancel | TrackingEventFlags::End);
 
         // because we have 3d-buttons the select handler is called from MouseButtonUp, but StartDrag
         // occurs earlier (while the mouse button is down)
diff --git a/include/vcl/event.hxx b/include/vcl/event.hxx
index 89929d0..9732033 100644
--- a/include/vcl/event.hxx
+++ b/include/vcl/event.hxx
@@ -338,18 +338,6 @@ inline UserDrawEvent::UserDrawEvent( OutputDevice* pOut,
 }
 
 
-// - Tracking-Types -
-
-
-#define ENDTRACK_CANCEL         ((sal_uInt16)0x0001)
-#define ENDTRACK_KEY            ((sal_uInt16)0x0002)
-#define ENDTRACK_FOCUS          ((sal_uInt16)0x0004)
-#define ENDTRACK_END            ((sal_uInt16)0x1000)
-#define ENDTRACK_DONTCALLHDL    ((sal_uInt16)0x8000)
-
-#define TRACKING_REPEAT         ((sal_uInt16)0x0100)
-
-
 // - TrackingEvent -
 
 
@@ -357,32 +345,32 @@ class VCL_DLLPUBLIC TrackingEvent
 {
 private:
     MouseEvent          maMEvt;
-    sal_uInt16              mnFlags;
+    TrackingEventFlags  mnFlags;
 
 public:
     explicit            TrackingEvent();
     explicit            TrackingEvent( const MouseEvent&,
-                                       sal_uInt16 nTrackFlags = 0 );
+                                       TrackingEventFlags nTrackFlags = TrackingEventFlags::NONE );
 
     const MouseEvent&   GetMouseEvent() const { return maMEvt; }
 
     bool                IsTrackingRepeat() const
-                            { return ((mnFlags & TRACKING_REPEAT) != 0); }
+                            { return bool(mnFlags & TrackingEventFlags::Repeat); }
 
     bool                IsTrackingEnded() const
-                            { return ((mnFlags & ENDTRACK_END) != 0); }
+                            { return bool(mnFlags & TrackingEventFlags::End); }
     bool                IsTrackingCanceled() const
-                            { return ((mnFlags & ENDTRACK_CANCEL) != 0); }
-    sal_uInt16              GetTrackingFlags() const { return mnFlags; }
+                            { return bool(mnFlags & TrackingEventFlags::Cancel); }
+    TrackingEventFlags  GetTrackingFlags() const { return mnFlags; }
 };
 
 inline TrackingEvent::TrackingEvent()
 {
-    mnFlags = 0;
+    mnFlags = TrackingEventFlags::NONE;
 }
 
 inline TrackingEvent::TrackingEvent( const MouseEvent& rMEvt,
-                                     sal_uInt16 nTrackFlags ) :
+                                     TrackingEventFlags nTrackFlags ) :
             maMEvt( rMEvt )
 {
     mnFlags = nTrackFlags;
diff --git a/include/vcl/window.hxx b/include/vcl/window.hxx
index 04cdb0f..1b23608 100644
--- a/include/vcl/window.hxx
+++ b/include/vcl/window.hxx
@@ -122,6 +122,23 @@ namespace svt { class PopupWindowControllerImpl; }
 template<class T> class VclPtr;
 
 
+
+enum class TrackingEventFlags
+{
+    NONE           = 0x0000,
+    Cancel         = 0x0001,
+    Key            = 0x0002,
+    Focus          = 0x0004,
+    Repeat         = 0x0100,
+    End            = 0x1000,
+    DontCallHdl    = 0x8000,
+};
+namespace o3tl
+{
+    template<> struct typed_flags<TrackingEventFlags> : is_typed_flags<TrackingEventFlags, 0x9107> {};
+}
+
+
 // - WindowTypes -
 
 
@@ -1104,7 +1121,7 @@ public:
     void                                InvertTracking( const Polygon& rPoly, sal_uInt16 nFlags = 0 );
 
     void                                StartTracking( sal_uInt16 nFlags = 0 );
-    void                                EndTracking( sal_uInt16 nFlags = 0 );
+    void                                EndTracking( TrackingEventFlags nFlags = TrackingEventFlags::NONE );
     bool                                IsTracking() const;
 
     void                                StartAutoScroll( sal_uInt16 nFlags );
diff --git a/sc/source/ui/view/select.cxx b/sc/source/ui/view/select.cxx
index 3dcbe41..09169f1 100644
--- a/sc/source/ui/view/select.cxx
+++ b/sc/source/ui/view/select.cxx
@@ -204,7 +204,7 @@ void ScViewFunctionSet::BeginDrag()
 
                 vcl::Window* pWindow = pViewData->GetActiveWin();
                 if ( pWindow->IsTracking() )
-                    pWindow->EndTracking( ENDTRACK_CANCEL );    // abort selecting
+                    pWindow->EndTracking( TrackingEventFlags::Cancel );    // abort selecting
 
                 SC_MOD()->SetDragObject( pTransferObj, NULL );      // for internal D&D
                 pTransferObj->StartDrag( pWindow, nDragActions );
diff --git a/svtools/source/control/valueset.cxx b/svtools/source/control/valueset.cxx
index 75882c4..b2c84dd 100644
--- a/svtools/source/control/valueset.cxx
+++ b/svtools/source/control/valueset.cxx
@@ -2104,7 +2104,7 @@ void ValueSet::EndSelection()
     if ( mbHighlight )
     {
         if ( IsTracking() )
-            EndTracking( ENDTRACK_CANCEL );
+            EndTracking( TrackingEventFlags::Cancel );
 
         ImplHighlightItem( mnSelItemId );
         mbHighlight = false;
diff --git a/vcl/source/control/button.cxx b/vcl/source/control/button.cxx
index 09c3a21..d545f2d 100644
--- a/vcl/source/control/button.cxx
+++ b/vcl/source/control/button.cxx
@@ -1590,7 +1590,7 @@ void PushButton::SetPressed( bool bPressed )
 
 void PushButton::EndSelection()
 {
-    EndTracking( ENDTRACK_CANCEL );
+    EndTracking( TrackingEventFlags::Cancel );
     if ( !IsDisposed() &&
          ImplGetButtonState() & DrawButtonFlags::Pressed )
     {
diff --git a/vcl/source/window/dialog.cxx b/vcl/source/window/dialog.cxx
index b92e1a7..4aa3e15 100644
--- a/vcl/source/window/dialog.cxx
+++ b/vcl/source/window/dialog.cxx
@@ -777,7 +777,7 @@ bool Dialog::ImplStartExecuteModal()
 
     // stop capturing, in order to have control over the dialog
     if ( pSVData->maWinData.mpTrackWin )
-        pSVData->maWinData.mpTrackWin->EndTracking( ENDTRACK_CANCEL );
+        pSVData->maWinData.mpTrackWin->EndTracking( TrackingEventFlags::Cancel );
     if ( pSVData->maWinData.mpCaptureWin )
         pSVData->maWinData.mpCaptureWin->ReleaseMouse();
     EnableInput( true, true );
diff --git a/vcl/source/window/mouse.cxx b/vcl/source/window/mouse.cxx
index bbcd0ad..6dd6014 100644
--- a/vcl/source/window/mouse.cxx
+++ b/vcl/source/window/mouse.cxx
@@ -353,7 +353,7 @@ void Window::ImplGrabFocus( sal_uInt16 nFlags )
         {
             if ( pOldFocusWindow->IsTracking() &&
                  (pSVData->maWinData.mnTrackFlags & STARTTRACK_FOCUSCANCEL) )
-                pOldFocusWindow->EndTracking( ENDTRACK_CANCEL | ENDTRACK_FOCUS );
+                pOldFocusWindow->EndTracking( TrackingEventFlags::Cancel | TrackingEventFlags::Focus );
             NotifyEvent aNEvt( MouseNotifyEvent::LOSEFOCUS, pOldFocusWindow );
             if ( !ImplCallPreNotify( aNEvt ) )
                 pOldFocusWindow->LoseFocus();
@@ -455,7 +455,7 @@ void Window::CaptureMouse()
     if ( pSVData->maWinData.mpTrackWin.get() != this )
     {
         if ( pSVData->maWinData.mpTrackWin )
-            pSVData->maWinData.mpTrackWin->EndTracking( ENDTRACK_CANCEL );
+            pSVData->maWinData.mpTrackWin->EndTracking( TrackingEventFlags::Cancel );
     }
 
     if ( pSVData->maWinData.mpCaptureWin.get() != this )
diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx
index 677de2c..b42d724 100644
--- a/vcl/source/window/window.cxx
+++ b/vcl/source/window/window.cxx
@@ -2545,7 +2545,7 @@ void Window::Enable( bool bEnable, bool bChild )
         // the tracking mode will be stopped or the capture will be stolen
         // when a window is disabled,
         if ( IsTracking() )
-            EndTracking( ENDTRACK_CANCEL );
+            EndTracking( TrackingEventFlags::Cancel );
         if ( IsMouseCaptured() )
             ReleaseMouse();
         // try to pass focus to the next control
@@ -2634,7 +2634,7 @@ void Window::EnableInput( bool bEnable, bool bChild )
         if ( !bEnable )
         {
             if ( IsTracking() )
-                EndTracking( ENDTRACK_CANCEL );
+                EndTracking( TrackingEventFlags::Cancel );
             if ( IsMouseCaptured() )
                 ReleaseMouse();
         }
diff --git a/vcl/source/window/window2.cxx b/vcl/source/window/window2.cxx
index fd6cdf92..43d3ecd 100644
--- a/vcl/source/window/window2.cxx
+++ b/vcl/source/window/window2.cxx
@@ -365,7 +365,7 @@ IMPL_LINK_TYPED( Window, ImplTrackTimerHdl, Timer*, pTimer, void )
                            mpWindowImpl->mpFrameData->mnClickCount, MouseEventModifiers::NONE,
                            mpWindowImpl->mpFrameData->mnMouseCode,
                            mpWindowImpl->mpFrameData->mnMouseCode );
-    TrackingEvent   aTEvt( aMEvt, TRACKING_REPEAT );
+    TrackingEvent   aTEvt( aMEvt, TrackingEventFlags::Repeat );
     Tracking( aTEvt );
 }
 
@@ -376,7 +376,7 @@ void Window::StartTracking( sal_uInt16 nFlags )
     if ( pSVData->maWinData.mpTrackWin.get() != this )
     {
         if ( pSVData->maWinData.mpTrackWin )
-            pSVData->maWinData.mpTrackWin->EndTracking( ENDTRACK_CANCEL );
+            pSVData->maWinData.mpTrackWin->EndTracking( TrackingEventFlags::Cancel );
     }
 
     if ( nFlags & (STARTTRACK_SCROLLREPEAT | STARTTRACK_BUTTONREPEAT) )
@@ -396,7 +396,7 @@ void Window::StartTracking( sal_uInt16 nFlags )
     CaptureMouse();
 }
 
-void Window::EndTracking( sal_uInt16 nFlags )
+void Window::EndTracking( TrackingEventFlags nFlags )
 {
     ImplSVData* pSVData = ImplGetSVData();
 
@@ -418,7 +418,7 @@ void Window::EndTracking( sal_uInt16 nFlags )
         }
 
         // call EndTracking if required
-        if ( !(nFlags & ENDTRACK_DONTCALLHDL) )
+        if ( !(nFlags & TrackingEventFlags::DontCallHdl) )
         {
             Point           aMousePos( mpWindowImpl->mpFrameData->mnLastMouseX, mpWindowImpl->mpFrameData->mnLastMouseY );
             if( ImplIsAntiparallel() )
@@ -432,7 +432,7 @@ void Window::EndTracking( sal_uInt16 nFlags )
                                    mpWindowImpl->mpFrameData->mnClickCount, MouseEventModifiers::NONE,
                                    mpWindowImpl->mpFrameData->mnMouseCode,
                                    mpWindowImpl->mpFrameData->mnMouseCode );
-            TrackingEvent   aTEvt( aMEvt, nFlags | ENDTRACK_END );
+            TrackingEvent   aTEvt( aMEvt, nFlags | TrackingEventFlags::End );
             Tracking( aTEvt );
         }
     }
diff --git a/vcl/source/window/winproc.cxx b/vcl/source/window/winproc.cxx
index c2a7dc0..0874091 100644
--- a/vcl/source/window/winproc.cxx
+++ b/vcl/source/window/winproc.cxx
@@ -949,7 +949,7 @@ static bool ImplHandleKey( vcl::Window* pWindow, MouseNotifyEvent nSVEvent,
 
             if ( (nOrigCode == KEY_ESCAPE) && !(pSVData->maWinData.mnTrackFlags & STARTTRACK_NOKEYCANCEL) )
             {
-                pSVData->maWinData.mpTrackWin->EndTracking( ENDTRACK_CANCEL | ENDTRACK_KEY );
+                pSVData->maWinData.mpTrackWin->EndTracking( TrackingEventFlags::Cancel | TrackingEventFlags::Key );
                 if ( pSVData->maWinData.mpFirstFloat )
                 {
                     FloatingWindow* pLastLevelFloat = pSVData->maWinData.mpFirstFloat->ImplFindLastLevelFloat();
@@ -965,7 +965,7 @@ static bool ImplHandleKey( vcl::Window* pWindow, MouseNotifyEvent nSVEvent,
             }
             else if ( nOrigCode == KEY_RETURN )
             {
-                pSVData->maWinData.mpTrackWin->EndTracking( ENDTRACK_KEY );
+                pSVData->maWinData.mpTrackWin->EndTracking( TrackingEventFlags::Key );
                 return true;
             }
             else if ( !(pSVData->maWinData.mnTrackFlags & STARTTRACK_KEYINPUT) )
@@ -1909,7 +1909,7 @@ static void ImplHandleLoseFocus( vcl::Window* pWindow )
     if ( pSVData->maWinData.mpTrackWin )
     {
         if ( pSVData->maWinData.mpTrackWin->ImplGetWindowImpl()->mpFrameWindow == pWindow )
-            pSVData->maWinData.mpTrackWin->EndTracking( ENDTRACK_CANCEL );
+            pSVData->maWinData.mpTrackWin->EndTracking( TrackingEventFlags::Cancel );
     }
 
     // here we always terminate the popupmode, also when NOFOCUSCLOSE
@@ -1986,7 +1986,7 @@ void ImplHandleClose( vcl::Window* pWindow )
         pSVData->maWinData.mpAutoScrollWin->EndAutoScroll();
 
     if ( pSVData->maWinData.mpTrackWin )
-        pSVData->maWinData.mpTrackWin->EndTracking( ENDTRACK_CANCEL | ENDTRACK_KEY );
+        pSVData->maWinData.mpTrackWin->EndTracking( TrackingEventFlags::Cancel | TrackingEventFlags::Key );
 
     if (bWasPopup)
         return;
commit 670b7ade84ec972d831055349e2bdbc2b1218955
Author: Noel Grandin <noel at peralex.com>
Date:   Mon May 11 12:33:22 2015 +0200

    convert BUTTON_DRAW constants to scoped enum
    
    Change-Id: I6ad6558c855736a4a5268593ced9c8300235d4bd

diff --git a/cui/source/customize/cfg.cxx b/cui/source/customize/cfg.cxx
index 435bc82..1b454fc 100644
--- a/cui/source/customize/cfg.cxx
+++ b/cui/source/customize/cfg.cxx
@@ -4587,13 +4587,13 @@ void SvxToolbarEntriesListBox::BuildCheckBoxButtonImages( SvLBoxButtonData* pDat
     pVDev->SetOutputSizePixel( aSize );
 
     Image aImage = GetSizedImage( *pVDev.get(), aSize,
-        CheckBox::GetCheckImage( rSettings, BUTTON_DRAW_DEFAULT ));
+        CheckBox::GetCheckImage( rSettings, DrawButtonFlags::Default ));
 
     // Fill button data struct with new images
     pData->SetImage(SvBmp::UNCHECKED,     aImage);
-    pData->SetImage(SvBmp::CHECKED,       GetSizedImage( *pVDev.get(), aSize, CheckBox::GetCheckImage( rSettings, BUTTON_DRAW_CHECKED )) );
-    pData->SetImage(SvBmp::HICHECKED,     GetSizedImage( *pVDev.get(), aSize, CheckBox::GetCheckImage( rSettings, BUTTON_DRAW_CHECKED | BUTTON_DRAW_PRESSED )) );
-    pData->SetImage(SvBmp::HIUNCHECKED,   GetSizedImage( *pVDev.get(), aSize, CheckBox::GetCheckImage( rSettings, BUTTON_DRAW_DEFAULT | BUTTON_DRAW_PRESSED)) );
+    pData->SetImage(SvBmp::CHECKED,       GetSizedImage( *pVDev.get(), aSize, CheckBox::GetCheckImage( rSettings, DrawButtonFlags::Checked )) );
+    pData->SetImage(SvBmp::HICHECKED,     GetSizedImage( *pVDev.get(), aSize, CheckBox::GetCheckImage( rSettings, DrawButtonFlags::Checked | DrawButtonFlags::Pressed )) );
+    pData->SetImage(SvBmp::HIUNCHECKED,   GetSizedImage( *pVDev.get(), aSize, CheckBox::GetCheckImage( rSettings, DrawButtonFlags::Default | DrawButtonFlags::Pressed)) );
     pData->SetImage(SvBmp::TRISTATE,      GetSizedImage( *pVDev.get(), aSize, Image() ) ); // Use tristate bitmaps to have no checkbox for separator entries
     pData->SetImage(SvBmp::HITRISTATE,    GetSizedImage( *pVDev.get(), aSize, Image() ) );
 
diff --git a/cui/source/dialogs/hangulhanjadlg.cxx b/cui/source/dialogs/hangulhanjadlg.cxx
index 0ded6c5..56d6d5d 100644
--- a/cui/source/dialogs/hangulhanjadlg.cxx
+++ b/cui/source/dialogs/hangulhanjadlg.cxx
@@ -27,6 +27,7 @@
 #include <vcl/controllayout.hxx>
 #include <vcl/msgbox.hxx>
 #include <vcl/builderfactory.hxx>
+#include <vcl/decoview.hxx>
 #include <unotools/lingucfg.hxx>
 #include <unotools/linguprops.hxx>
 #include <com/sun/star/linguistic2/ConversionDictionaryType.hpp>
@@ -241,7 +242,7 @@ namespace svx
 
         // calculate the size of the radio image - we're to paint our text _after_ this image
         DBG_ASSERT( !GetModeRadioImage(), "RubyRadioButton::Paint: images not supported!" );
-        Size aImageSize = GetRadioImage( GetSettings(), 0 ).GetSizePixel();
+        Size aImageSize = GetRadioImage( GetSettings(), DrawButtonFlags::NONE ).GetSizePixel();
         aImageSize.Width()  = CalcZoom( aImageSize.Width() ) + 2;   // + 2 because otherwise the radiobuttons
         aImageSize.Height()  = CalcZoom( aImageSize.Height() ) + 2; // appear a bit cut from right and top.
 
diff --git a/cui/source/options/optdict.cxx b/cui/source/options/optdict.cxx
index b1c9973..a590931 100644
--- a/cui/source/options/optdict.cxx
+++ b/cui/source/options/optdict.cxx
@@ -362,7 +362,7 @@ void SvxEditDictionaryDialog::Paint( const Rectangle& rRect )
 
     //Rectangle aRect(aEditDictsBox.GetPosPixel(),aEditDictsBox.GetSizePixel());
 
-    sal_uInt16 nStyle=BUTTON_DRAW_NOFILL;
+    sal_uInt16 nStyle=DrawButtonFlags::NoFill;
 //    aDecoView.DrawButton( aRect, nStyle);
 }
 */
diff --git a/include/vcl/button.hxx b/include/vcl/button.hxx
index e0fc178..0732165 100644
--- a/include/vcl/button.hxx
+++ b/include/vcl/button.hxx
@@ -33,6 +33,7 @@
 
 class UserDrawEvent;
 class ImplCommonButtonData;
+enum class DrawButtonFlags;
 
 class VCL_DLLPUBLIC Button : public Control
 {
@@ -46,8 +47,8 @@ private:
                                     Button (const Button &) SAL_DELETED_FUNCTION;
                                     Button & operator= (const Button &) SAL_DELETED_FUNCTION;
 public:
-    SAL_DLLPRIVATE sal_uInt16       ImplGetButtonState() const;
-    SAL_DLLPRIVATE sal_uInt16&      ImplGetButtonState();
+    SAL_DLLPRIVATE DrawButtonFlags  ImplGetButtonState() const;
+    SAL_DLLPRIVATE DrawButtonFlags& ImplGetButtonState();
     SAL_DLLPRIVATE sal_uInt16       ImplGetTextStyle( OUString& rText, WinBits nWinStyle, sal_uLong nDrawFlags );
     SAL_DLLPRIVATE void             ImplDrawAlignedImage(OutputDevice* pDev, Point& rPos, Size& rSize,
                                               bool bLayout, sal_uLong nImageSep, sal_uLong nDrawFlags,
@@ -143,7 +144,7 @@ protected:
     using Window::ImplInit;
 public:
     SAL_DLLPRIVATE void            ImplSetDefButton( bool bSet );
-    SAL_DLLPRIVATE void            ImplDrawPushButtonFrame(vcl::RenderContext& rRenderContext, Rectangle& rRect, sal_uInt16 nStyle);
+    SAL_DLLPRIVATE void            ImplDrawPushButtonFrame(vcl::RenderContext& rRenderContext, Rectangle& rRect, DrawButtonFlags nStyle);
     SAL_DLLPRIVATE static bool     ImplHitTestPushButton(vcl::Window* pDev, const Point& rPos);
     SAL_DLLPRIVATE bool            ImplIsDefButton() const;
 
@@ -371,7 +372,7 @@ public:
     bool            GetSavedValue() const { return mbSaveValue; }
     bool            IsValueChangedFromSaved() const { return mbSaveValue != IsChecked(); }
 
-    static Image    GetRadioImage( const AllSettings& rSettings, sal_uInt16 nFlags );
+    static Image    GetRadioImage( const AllSettings& rSettings, DrawButtonFlags nFlags );
 
     Size            CalcMinimumSize( long nMaxWidth = 0 ) const;
     virtual Size    GetOptimalSize() const SAL_OVERRIDE;
@@ -482,7 +483,7 @@ public:
     TriState        GetSavedValue() const { return meSaveValue; }
     bool            IsValueChangedFromSaved() const { return meSaveValue != GetState(); }
 
-    static Image    GetCheckImage( const AllSettings& rSettings, sal_uInt16 nFlags );
+    static Image    GetCheckImage( const AllSettings& rSettings, DrawButtonFlags nFlags );
 
     Size            CalcMinimumSize( long nMaxWidth = 0 ) const;
     virtual Size    GetOptimalSize() const SAL_OVERRIDE;
diff --git a/include/vcl/decoview.hxx b/include/vcl/decoview.hxx
index ffe2b17..4a5bd17 100644
--- a/include/vcl/decoview.hxx
+++ b/include/vcl/decoview.hxx
@@ -75,19 +75,27 @@ enum class DrawHighlightFrameStyle
 };
 
 // Flags for DrawButton()
-#define BUTTON_DRAW_DEFAULT                 ((sal_uInt16)0x0001)
-#define BUTTON_DRAW_NOLIGHTBORDER           ((sal_uInt16)0x0002)
-#define BUTTON_DRAW_PRESSED                 ((sal_uInt16)0x0004)
-#define BUTTON_DRAW_CHECKED                 ((sal_uInt16)0x0008)
-#define BUTTON_DRAW_DONTKNOW                ((sal_uInt16)0x0010)
-#define BUTTON_DRAW_MONO                    ((sal_uInt16)0x0020)
-#define BUTTON_DRAW_NOFILL                  ((sal_uInt16)0x0040)
-#define BUTTON_DRAW_DISABLED                ((sal_uInt16)0x0080)
-#define BUTTON_DRAW_HIGHLIGHT               ((sal_uInt16)0x0100)
-#define BUTTON_DRAW_FLAT                    ((sal_uInt16)0x0200)
-#define BUTTON_DRAW_NOLEFTLIGHTBORDER       ((sal_uInt16)0x1000)
-#define BUTTON_DRAW_NOTEXT                  ((sal_uInt16)0x2000)
-#define BUTTON_DRAW_NOIMAGE                 ((sal_uInt16)0x4000)
+enum class DrawButtonFlags
+{
+    NONE                    = 0x0000,
+    Default                 = 0x0001,
+    NoLightBorder           = 0x0002,
+    Pressed                 = 0x0004,
+    Checked                 = 0x0008,
+    DontKnow                = 0x0010,
+    Mono                    = 0x0020,
+    NoFill                  = 0x0040,
+    Disabled                = 0x0080,
+    Highlight               = 0x0100,
+    Flat                    = 0x0200,
+    NoLeftLightBorder       = 0x1000,
+    NoText                  = 0x2000,
+    NoImage                 = 0x4000,
+};
+namespace o3tl
+{
+    template<> struct typed_flags<DrawButtonFlags> : is_typed_flags<DrawButtonFlags, 0x73ff> {};
+}
 
 class VCL_DLLPUBLIC DecorationView
 {
@@ -105,7 +113,7 @@ public:
     void                DrawHighlightFrame( const Rectangle& rRect,
                                             DrawHighlightFrameStyle nStyle = DrawHighlightFrameStyle::Out, bool bTestBackground = false );
     Rectangle           DrawFrame( const Rectangle& rRect, DrawFrameStyle nStyle = DrawFrameStyle::Out, DrawFrameFlags nFlags = DrawFrameFlags::NONE );
-    Rectangle           DrawButton( const Rectangle& rRect, sal_uInt16 nStyle );
+    Rectangle           DrawButton( const Rectangle& rRect, DrawButtonFlags nStyle );
     void                DrawSeparator( const Point& rStart, const Point& rStop, bool bVertical = true );
     void                DrawHandle(const Rectangle& rRectangle, bool bVertical = true);
 };
diff --git a/sc/source/ui/cctrl/cbuttonw.cxx b/sc/source/ui/cctrl/cbuttonw.cxx
index 08c2784..d8a95bd 100644
--- a/sc/source/ui/cctrl/cbuttonw.cxx
+++ b/sc/source/ui/cctrl/cbuttonw.cxx
@@ -70,10 +70,10 @@ void ScDDComboBoxButton::Draw( const Point& rAt,
 
     DecorationView aDecoView( pOut);
 
-    sal_uInt16 nButtonStyle = BUTTON_DRAW_DEFAULT;
+    DrawButtonFlags nButtonStyle = DrawButtonFlags::Default;
     if( bBtnIn )    // gedrueckt?
     {
-        nButtonStyle = BUTTON_DRAW_PRESSED;
+        nButtonStyle = DrawButtonFlags::Pressed;
     }
 
     aInnerRect=aDecoView.DrawButton( aBtnRect, nButtonStyle );
diff --git a/svtools/source/contnr/svlbitm.cxx b/svtools/source/contnr/svlbitm.cxx
index 63a58d5..3299046 100644
--- a/svtools/source/contnr/svlbitm.cxx
+++ b/svtools/source/contnr/svlbitm.cxx
@@ -141,21 +141,21 @@ void SvLBoxButtonData::SetDefaultImages( const Control* pCtrl )
 
     if ( pImpl->bShowRadioButton )
     {
-        SetImage(SvBmp::UNCHECKED,   RadioButton::GetRadioImage( rSettings, BUTTON_DRAW_DEFAULT ) );
-        SetImage(SvBmp::CHECKED,     RadioButton::GetRadioImage( rSettings, BUTTON_DRAW_CHECKED ) );
-        SetImage(SvBmp::HICHECKED,   RadioButton::GetRadioImage( rSettings, BUTTON_DRAW_CHECKED | BUTTON_DRAW_PRESSED ) );
-        SetImage(SvBmp::HIUNCHECKED, RadioButton::GetRadioImage( rSettings, BUTTON_DRAW_DEFAULT | BUTTON_DRAW_PRESSED ) );
-        SetImage(SvBmp::TRISTATE,    RadioButton::GetRadioImage( rSettings, BUTTON_DRAW_DONTKNOW ) );
-        SetImage(SvBmp::HITRISTATE,  RadioButton::GetRadioImage( rSettings, BUTTON_DRAW_DONTKNOW | BUTTON_DRAW_PRESSED ) );
+        SetImage(SvBmp::UNCHECKED,   RadioButton::GetRadioImage( rSettings, DrawButtonFlags::Default ) );
+        SetImage(SvBmp::CHECKED,     RadioButton::GetRadioImage( rSettings, DrawButtonFlags::Checked ) );
+        SetImage(SvBmp::HICHECKED,   RadioButton::GetRadioImage( rSettings, DrawButtonFlags::Checked | DrawButtonFlags::Pressed ) );
+        SetImage(SvBmp::HIUNCHECKED, RadioButton::GetRadioImage( rSettings, DrawButtonFlags::Default | DrawButtonFlags::Pressed ) );
+        SetImage(SvBmp::TRISTATE,    RadioButton::GetRadioImage( rSettings, DrawButtonFlags::DontKnow ) );
+        SetImage(SvBmp::HITRISTATE,  RadioButton::GetRadioImage( rSettings, DrawButtonFlags::DontKnow | DrawButtonFlags::Pressed ) );
     }
     else
     {
-        SetImage(SvBmp::UNCHECKED,   CheckBox::GetCheckImage( rSettings, BUTTON_DRAW_DEFAULT ) );
-        SetImage(SvBmp::CHECKED,     CheckBox::GetCheckImage( rSettings, BUTTON_DRAW_CHECKED ) );
-        SetImage(SvBmp::HICHECKED,   CheckBox::GetCheckImage( rSettings, BUTTON_DRAW_CHECKED | BUTTON_DRAW_PRESSED ) );
-        SetImage(SvBmp::HIUNCHECKED, CheckBox::GetCheckImage( rSettings, BUTTON_DRAW_DEFAULT | BUTTON_DRAW_PRESSED ) );
-        SetImage(SvBmp::TRISTATE,    CheckBox::GetCheckImage( rSettings, BUTTON_DRAW_DONTKNOW ) );
-        SetImage(SvBmp::HITRISTATE,  CheckBox::GetCheckImage( rSettings, BUTTON_DRAW_DONTKNOW | BUTTON_DRAW_PRESSED ) );
+        SetImage(SvBmp::UNCHECKED,   CheckBox::GetCheckImage( rSettings, DrawButtonFlags::Default ) );
+        SetImage(SvBmp::CHECKED,     CheckBox::GetCheckImage( rSettings, DrawButtonFlags::Checked ) );
+        SetImage(SvBmp::HICHECKED,   CheckBox::GetCheckImage( rSettings, DrawButtonFlags::Checked | DrawButtonFlags::Pressed ) );
+        SetImage(SvBmp::HIUNCHECKED, CheckBox::GetCheckImage( rSettings, DrawButtonFlags::Default | DrawButtonFlags::Pressed ) );
+        SetImage(SvBmp::TRISTATE,    CheckBox::GetCheckImage( rSettings, DrawButtonFlags::DontKnow ) );
+        SetImage(SvBmp::HITRISTATE,  CheckBox::GetCheckImage( rSettings, DrawButtonFlags::DontKnow | DrawButtonFlags::Pressed ) );
     }
 }
 
diff --git a/vcl/inc/brdwin.hxx b/vcl/inc/brdwin.hxx
index a82aa82..e118024 100644
--- a/vcl/inc/brdwin.hxx
+++ b/vcl/inc/brdwin.hxx
@@ -23,6 +23,7 @@
 #include <vcl/window.hxx>
 
 class ImplBorderWindowView;
+enum class DrawButtonFlags;
 
 #define BORDERWINDOW_STYLE_OVERLAP          ((sal_uInt16)0x0001)
 #define BORDERWINDOW_STYLE_BORDER           ((sal_uInt16)0x0002)
@@ -176,41 +177,41 @@ struct ImplBorderFrameData
 {
     VclPtr<ImplBorderWindow> mpBorderWindow;
     VclPtr<OutputDevice>     mpOutDev;
-    Rectangle               maTitleRect;
-    Rectangle               maPinRect;
-    Rectangle               maCloseRect;
-    Rectangle               maRollRect;
-    Rectangle               maDockRect;
-    Rectangle               maMenuRect;
-    Rectangle               maHideRect;
-    Rectangle               maHelpRect;
-    Point                   maMouseOff;
-    long                    mnWidth;
-    long                    mnHeight;
-    long                    mnTrackX;
-    long                    mnTrackY;
-    long                    mnTrackWidth;
-    long                    mnTrackHeight;
-    sal_Int32               mnLeftBorder;
-    sal_Int32               mnTopBorder;
-    sal_Int32               mnRightBorder;
-    sal_Int32               mnBottomBorder;
-    long                    mnNoTitleTop;
-    long                    mnBorderSize;
-    long                    mnTitleHeight;
-    long                    mnTitleOff;
-    sal_uInt16                  mnHitTest;
-    sal_uInt16                  mnPinState;
-    sal_uInt16                  mnCloseState;
-    sal_uInt16                  mnRollState;
-    sal_uInt16                  mnDockState;
-    sal_uInt16                  mnMenuState;
-    sal_uInt16                  mnHideState;
-    sal_uInt16                  mnHelpState;
-    sal_uInt16                  mnTitleType;
-    bool                    mbFloatWindow;
-    bool                    mbDragFull;
-    bool                    mbTitleClipped;
+    Rectangle                maTitleRect;
+    Rectangle                maPinRect;
+    Rectangle                maCloseRect;
+    Rectangle                maRollRect;
+    Rectangle                maDockRect;
+    Rectangle                maMenuRect;
+    Rectangle                maHideRect;
+    Rectangle                maHelpRect;
+    Point                    maMouseOff;
+    long                     mnWidth;
+    long                     mnHeight;
+    long                     mnTrackX;
+    long                     mnTrackY;
+    long                     mnTrackWidth;
+    long                     mnTrackHeight;
+    sal_Int32                mnLeftBorder;
+    sal_Int32                mnTopBorder;
+    sal_Int32                mnRightBorder;
+    sal_Int32                mnBottomBorder;
+    long                     mnNoTitleTop;
+    long                     mnBorderSize;
+    long                     mnTitleHeight;
+    long                     mnTitleOff;
+    sal_uInt16               mnHitTest;
+    DrawButtonFlags          mnPinState;
+    DrawButtonFlags          mnCloseState;
+    DrawButtonFlags          mnRollState;
+    DrawButtonFlags          mnDockState;
+    DrawButtonFlags          mnMenuState;
+    DrawButtonFlags          mnHideState;
+    DrawButtonFlags          mnHelpState;
+    sal_uInt16               mnTitleType;
+    bool                     mbFloatWindow;
+    bool                     mbDragFull;
+    bool                     mbTitleClipped;
 };
 
 class ImplBorderWindowView
diff --git a/vcl/source/control/button.cxx b/vcl/source/control/button.cxx
index 9dd23ed..09c3a21 100644
--- a/vcl/source/control/button.cxx
+++ b/vcl/source/control/button.cxx
@@ -66,7 +66,7 @@ class ImplCommonButtonData
 public:
     Rectangle       maFocusRect;
     long            mnSeparatorX;
-    sal_uInt16      mnButtonState;
+    DrawButtonFlags mnButtonState;
     bool            mbSmallSymbol;
 
     Image           maImage;
@@ -78,7 +78,7 @@ public:
                    ~ImplCommonButtonData();
 };
 
-ImplCommonButtonData::ImplCommonButtonData() : maFocusRect(), mnSeparatorX(0), mnButtonState(0),
+ImplCommonButtonData::ImplCommonButtonData() : maFocusRect(), mnSeparatorX(0), mnButtonState(DrawButtonFlags::NONE),
 mbSmallSymbol(false), maImage(), meImageAlign(IMAGEALIGN_TOP), meSymbolAlign(SymbolAlign::LEFT)
 {
 }
@@ -242,8 +242,8 @@ void Button::ImplDrawAlignedImage( OutputDevice* pDev, Point& rPos,
                                    bool bAddImageSep )
 {
     OUString        aText( GetText() );
-    bool            bDrawImage = HasImage() && ! ( ImplGetButtonState() & BUTTON_DRAW_NOIMAGE );
-    bool            bDrawText  = !aText.isEmpty() && ! ( ImplGetButtonState() & BUTTON_DRAW_NOTEXT );
+    bool            bDrawImage = HasImage() && ! ( ImplGetButtonState() & DrawButtonFlags::NoImage );
+    bool            bDrawText  = !aText.isEmpty() && ! ( ImplGetButtonState() & DrawButtonFlags::NoText );
     bool            bHasSymbol = pSymbolRect != nullptr;
 
     // No text and no image => nothing to do => return
@@ -533,12 +533,12 @@ const Rectangle& Button::ImplGetFocusRect() const
     return mpButtonData->maFocusRect;
 }
 
-sal_uInt16& Button::ImplGetButtonState()
+DrawButtonFlags& Button::ImplGetButtonState()
 {
     return mpButtonData->mnButtonState;
 }
 
-sal_uInt16 Button::ImplGetButtonState() const
+DrawButtonFlags Button::ImplGetButtonState() const
 {
     return mpButtonData->mnButtonState;
 }
@@ -560,17 +560,17 @@ void Button::SetSmallSymbol(bool bSmall)
 void Button::EnableImageDisplay( bool bEnable )
 {
     if( bEnable )
-        mpButtonData->mnButtonState &= ~BUTTON_DRAW_NOIMAGE;
+        mpButtonData->mnButtonState &= ~DrawButtonFlags::NoImage;
     else
-        mpButtonData->mnButtonState |= BUTTON_DRAW_NOIMAGE;
+        mpButtonData->mnButtonState |= DrawButtonFlags::NoImage;
 }
 
 void Button::EnableTextDisplay( bool bEnable )
 {
     if( bEnable )
-        mpButtonData->mnButtonState &= ~BUTTON_DRAW_NOTEXT;
+        mpButtonData->mnButtonState &= ~DrawButtonFlags::NoText;
     else
-        mpButtonData->mnButtonState |= BUTTON_DRAW_NOTEXT;
+        mpButtonData->mnButtonState |= DrawButtonFlags::NoText;
 }
 
 bool Button::IsSmallSymbol () const
@@ -636,7 +636,7 @@ void PushButton::ImplInit( vcl::Window* pParent, WinBits nStyle )
     Button::ImplInit( pParent, nStyle, NULL );
 
     if ( nStyle & WB_NOLIGHTBORDER )
-        ImplGetButtonState() |= BUTTON_DRAW_NOLIGHTBORDER;
+        ImplGetButtonState() |= DrawButtonFlags::NoLightBorder;
 
     ImplInitSettings( true, true, true );
 }
@@ -702,7 +702,7 @@ void PushButton::ImplInitSettings( bool bFont,
 }
 
 void PushButton::ImplDrawPushButtonFrame(vcl::RenderContext& rRenderContext,
-                                         Rectangle& rRect, sal_uInt16 nStyle)
+                                         Rectangle& rRect, DrawButtonFlags nStyle)
 {
     if (!(GetStyle() & (WB_RECTSTYLE | WB_SMALLSTYLE)))
     {
@@ -841,7 +841,7 @@ void PushButton::ImplDrawPushButtonContent(OutputDevice* pDev, sal_uLong nDrawFl
     {
         long nSeparatorX = 0;
         Rectangle aSymbolRect = aInRect;
-        if ( !aText.isEmpty() && ! (ImplGetButtonState() & BUTTON_DRAW_NOTEXT) )
+        if ( !aText.isEmpty() && ! (ImplGetButtonState() & DrawButtonFlags::NoText) )
         {
             // calculate symbol size
             long nSymbolSize    = pDev->GetTextHeight() / 2 + 1;
@@ -916,7 +916,7 @@ void PushButton::ImplDrawPushButton(vcl::RenderContext& rRenderContext, bool bLa
     if (!bLayout)
         HideFocus();
 
-    sal_uInt16 nButtonStyle = ImplGetButtonState();
+    DrawButtonFlags nButtonStyle = ImplGetButtonState();
     Point aPoint;
     Size aOutSz(GetOutputSizePixel());
     Rectangle aRect(aPoint, aOutSz);
@@ -925,7 +925,7 @@ void PushButton::ImplDrawPushButton(vcl::RenderContext& rRenderContext, bool bLa
 
     // adjust style if button should be rendered 'pressed'
     if (mbPressed)
-        nButtonStyle |= BUTTON_DRAW_PRESSED;
+        nButtonStyle |= DrawButtonFlags::Pressed;
 
     // TODO: move this to Window class or make it a member !!!
     ControlType aCtrlType = 0;
@@ -979,11 +979,11 @@ void PushButton::ImplDrawPushButton(vcl::RenderContext& rRenderContext, bool bLa
 
                 if (mbPressed)
                     nState |= ControlState::PRESSED;
-                if (ImplGetButtonState() & BUTTON_DRAW_PRESSED)
+                if (ImplGetButtonState() & DrawButtonFlags::Pressed)
                     nState |= ControlState::PRESSED;
                 if (HasFocus())
                     nState |= ControlState::FOCUSED;
-                if (ImplGetButtonState() & BUTTON_DRAW_DEFAULT)
+                if (ImplGetButtonState() & DrawButtonFlags::Default)
                     nState |= ControlState::DEFAULT;
                 if (Window::IsEnabled())
                     nState |= ControlState::ENABLED;
@@ -1015,11 +1015,11 @@ void PushButton::ImplDrawPushButton(vcl::RenderContext& rRenderContext, bool bLa
 
         if (mbPressed || IsChecked())
             nState |= ControlState::PRESSED;
-        if (ImplGetButtonState() & BUTTON_DRAW_PRESSED)
+        if (ImplGetButtonState() & DrawButtonFlags::Pressed)
             nState |= ControlState::PRESSED;
         if (HasFocus())
             nState |= ControlState::FOCUSED;
-        if (ImplGetButtonState() & BUTTON_DRAW_DEFAULT)
+        if (ImplGetButtonState() & DrawButtonFlags::Default)
             nState |= ControlState::DEFAULT;
         if (Window::IsEnabled())
             nState |= ControlState::ENABLED;
@@ -1031,10 +1031,10 @@ void PushButton::ImplDrawPushButton(vcl::RenderContext& rRenderContext, bool bLa
             aControlValue.mbBevelButton = true;
 
         // draw frame into invisible window to have aInRect modified correctly
-        // but do not shift the inner rect for pressed buttons (ie remove BUTTON_DRAW_PRESSED)
+        // but do not shift the inner rect for pressed buttons (ie remove DrawButtonFlags::Pressed)
         // this assumes the theme has enough visual cues to signalize the button was pressed
         //Window aWin( this );
-        //ImplDrawPushButtonFrame( &aWin, aInRect, nButtonStyle & ~BUTTON_DRAW_PRESSED );
+        //ImplDrawPushButtonFrame( &aWin, aInRect, nButtonStyle & ~DrawButtonFlags::Pressed );
 
         // looks better this way as symbols were displaced slightly using the above approach
         aInRect.Top()+=4;
@@ -1128,25 +1128,25 @@ void PushButton::ImplSetDefButton( bool bSet )
 
     if ( bSet )
     {
-        if( !(ImplGetButtonState() & BUTTON_DRAW_DEFAULT) && bSetPos )
+        if( !(ImplGetButtonState() & DrawButtonFlags::Default) && bSetPos )
         {
             // adjust pos/size when toggling from non-default to default
             aPos.Move(-dLeft, -dTop);
             aSize.Width() += dLeft + dRight;
             aSize.Height() += dTop + dBottom;
         }
-        ImplGetButtonState() |= BUTTON_DRAW_DEFAULT;
+        ImplGetButtonState() |= DrawButtonFlags::Default;
     }
     else
     {
-        if( (ImplGetButtonState() & BUTTON_DRAW_DEFAULT) && bSetPos )
+        if( (ImplGetButtonState() & DrawButtonFlags::Default) && bSetPos )
         {
             // adjust pos/size when toggling from default to non-default
             aPos.Move(dLeft, dTop);
             aSize.Width() -= dLeft + dRight;
             aSize.Height() -= dTop + dBottom;
         }
-        ImplGetButtonState() &= ~BUTTON_DRAW_DEFAULT;
+        ImplGetButtonState() &= ~DrawButtonFlags::Default;
     }
     if( bSetPos )
         setPosSizePixel( aPos.X(), aPos.Y(), aSize.Width(), aSize.Height(), WINDOW_POSSIZE_ALL );
@@ -1156,7 +1156,7 @@ void PushButton::ImplSetDefButton( bool bSet )
 
 bool PushButton::ImplIsDefButton() const
 {
-    return (ImplGetButtonState() & BUTTON_DRAW_DEFAULT) != 0;
+    return bool(ImplGetButtonState() & DrawButtonFlags::Default);
 }
 
 PushButton::PushButton( WindowType nType ) :
@@ -1196,7 +1196,7 @@ void PushButton::MouseButtonDown( const MouseEvent& rMEvt )
              ! ( GetStyle() & WB_TOGGLE ) )
             nTrackFlags |= STARTTRACK_BUTTONREPEAT;
 
-        ImplGetButtonState() |= BUTTON_DRAW_PRESSED;
+        ImplGetButtonState() |= DrawButtonFlags::Pressed;
         Invalidate();
         StartTracking( nTrackFlags );
 
@@ -1209,7 +1209,7 @@ void PushButton::Tracking( const TrackingEvent& rTEvt )
 {
     if ( rTEvt.IsTrackingEnded() )
     {
-        if ( ImplGetButtonState() & BUTTON_DRAW_PRESSED )
+        if ( ImplGetButtonState() & DrawButtonFlags::Pressed )
         {
             if ( !(GetStyle() & WB_NOPOINTERFOCUS) && !rTEvt.IsTrackingCanceled() )
                 GrabFocus();
@@ -1222,14 +1222,14 @@ void PushButton::Tracking( const TrackingEvent& rTEvt )
                     if ( IsChecked() )
                     {
                         Check( false );
-                        ImplGetButtonState() &= ~BUTTON_DRAW_PRESSED;
+                        ImplGetButtonState() &= ~DrawButtonFlags::Pressed;
                     }
                     else
                         Check( true );
                 }
             }
             else
-                ImplGetButtonState() &= ~BUTTON_DRAW_PRESSED;
+                ImplGetButtonState() &= ~DrawButtonFlags::Pressed;
 
             Invalidate();
 
@@ -1246,7 +1246,7 @@ void PushButton::Tracking( const TrackingEvent& rTEvt )
     {
         if ( ImplHitTestPushButton( this, rTEvt.GetMouseEvent().GetPosPixel() ) )
         {
-            if ( ImplGetButtonState() & BUTTON_DRAW_PRESSED )
+            if ( ImplGetButtonState() & DrawButtonFlags::Pressed )
             {
                 if ( rTEvt.IsTrackingRepeat() && (GetStyle() & WB_REPEAT) &&
                      ! ( GetStyle() & WB_TOGGLE ) )
@@ -1254,15 +1254,15 @@ void PushButton::Tracking( const TrackingEvent& rTEvt )
             }
             else
             {
-                ImplGetButtonState() |= BUTTON_DRAW_PRESSED;
+                ImplGetButtonState() |= DrawButtonFlags::Pressed;
                 Invalidate();
             }
         }
         else
         {
-            if ( ImplGetButtonState() & BUTTON_DRAW_PRESSED )
+            if ( ImplGetButtonState() & DrawButtonFlags::Pressed )
             {
-                ImplGetButtonState() &= ~BUTTON_DRAW_PRESSED;
+                ImplGetButtonState() &= ~DrawButtonFlags::Pressed;
                 Invalidate();
             }
         }
@@ -1276,9 +1276,9 @@ void PushButton::KeyInput( const KeyEvent& rKEvt )
     if ( !aKeyCode.GetModifier() &&
          ((aKeyCode.GetCode() == KEY_RETURN) || (aKeyCode.GetCode() == KEY_SPACE)) )
     {
-        if ( !(ImplGetButtonState() & BUTTON_DRAW_PRESSED) )
+        if ( !(ImplGetButtonState() & DrawButtonFlags::Pressed) )
         {
-            ImplGetButtonState() |= BUTTON_DRAW_PRESSED;
+            ImplGetButtonState() |= DrawButtonFlags::Pressed;
             Invalidate();
         }
 
@@ -1286,9 +1286,9 @@ void PushButton::KeyInput( const KeyEvent& rKEvt )
              ! ( GetStyle() & WB_TOGGLE ) )
             Click();
     }
-    else if ( (ImplGetButtonState() & BUTTON_DRAW_PRESSED) && (aKeyCode.GetCode() == KEY_ESCAPE) )
+    else if ( (ImplGetButtonState() & DrawButtonFlags::Pressed) && (aKeyCode.GetCode() == KEY_ESCAPE) )
     {
-        ImplGetButtonState() &= ~BUTTON_DRAW_PRESSED;
+        ImplGetButtonState() &= ~DrawButtonFlags::Pressed;
         Invalidate();
     }
     else
@@ -1299,7 +1299,7 @@ void PushButton::KeyUp( const KeyEvent& rKEvt )
 {
     vcl::KeyCode aKeyCode = rKEvt.GetKeyCode();
 
-    if ( (ImplGetButtonState() & BUTTON_DRAW_PRESSED) &&
+    if ( (ImplGetButtonState() & DrawButtonFlags::Pressed) &&
          ((aKeyCode.GetCode() == KEY_RETURN) || (aKeyCode.GetCode() == KEY_SPACE)) )
     {
         if ( GetStyle() & WB_TOGGLE )
@@ -1307,7 +1307,7 @@ void PushButton::KeyUp( const KeyEvent& rKEvt )
             if ( IsChecked() )
             {
                 Check( false );
-                ImplGetButtonState() &= ~BUTTON_DRAW_PRESSED;
+                ImplGetButtonState() &= ~DrawButtonFlags::Pressed;
             }
             else
                 Check( true );
@@ -1315,7 +1315,7 @@ void PushButton::KeyUp( const KeyEvent& rKEvt )
             Toggle();
         }
         else
-            ImplGetButtonState() &= ~BUTTON_DRAW_PRESSED;
+            ImplGetButtonState() &= ~DrawButtonFlags::Pressed;
 
         Invalidate();
 
@@ -1370,11 +1370,11 @@ void PushButton::Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize,
     pDev->SetTextFillColor();
 
     DecorationView aDecoView( pDev );
-    sal_uInt16 nButtonStyle = 0;
+    DrawButtonFlags nButtonStyle = DrawButtonFlags::NONE;
     if ( nFlags & WINDOW_DRAW_MONO )
-        nButtonStyle |= BUTTON_DRAW_MONO;
+        nButtonStyle |= DrawButtonFlags::Mono;
     if ( IsChecked() )
-        nButtonStyle |= BUTTON_DRAW_CHECKED;
+        nButtonStyle |= DrawButtonFlags::Checked;
     aRect = aDecoView.DrawButton( aRect, nButtonStyle );
 
     ImplDrawPushButtonContent( pDev, nFlags, aRect, false, true );
@@ -1562,16 +1562,16 @@ void PushButton::SetState( TriState eState )
     {
         meState = eState;
         if ( meState == TRISTATE_FALSE )
-            ImplGetButtonState() &= ~(BUTTON_DRAW_CHECKED | BUTTON_DRAW_DONTKNOW);
+            ImplGetButtonState() &= ~DrawButtonFlags(DrawButtonFlags::Checked | DrawButtonFlags::DontKnow);
         else if ( meState == TRISTATE_TRUE )
         {
-            ImplGetButtonState() &= ~BUTTON_DRAW_DONTKNOW;
-            ImplGetButtonState() |= BUTTON_DRAW_CHECKED;
+            ImplGetButtonState() &= ~DrawButtonFlags::DontKnow;
+            ImplGetButtonState() |= DrawButtonFlags::Checked;
         }
         else // TRISTATE_INDET
         {
-            ImplGetButtonState() &= ~BUTTON_DRAW_CHECKED;
-            ImplGetButtonState() |= BUTTON_DRAW_DONTKNOW;
+            ImplGetButtonState() &= ~DrawButtonFlags::Checked;
+            ImplGetButtonState() |= DrawButtonFlags::DontKnow;
         }
 
         StateChanged( StateChangedType::State );
@@ -1592,9 +1592,9 @@ void PushButton::EndSelection()
 {
     EndTracking( ENDTRACK_CANCEL );
     if ( !IsDisposed() &&
-         ImplGetButtonState() & BUTTON_DRAW_PRESSED )
+         ImplGetButtonState() & DrawButtonFlags::Pressed )
     {
-        ImplGetButtonState() &= ~BUTTON_DRAW_PRESSED;
+        ImplGetButtonState() &= ~DrawButtonFlags::Pressed;
         if ( !mbPressed )
             Invalidate();
     }
@@ -1611,14 +1611,14 @@ Size PushButton::CalcMinimumSize( long nMaxWidth ) const
         else
             aSize = Size( 26, 24 );
     }
-    else if ( IsImage() && ! (ImplGetButtonState() & BUTTON_DRAW_NOIMAGE) )
+    else if ( IsImage() && ! (ImplGetButtonState() & DrawButtonFlags::NoImage) )
         aSize = GetModeImage().GetSizePixel();
     if( mnDDStyle == PushButtonDropdownStyle::MenuButton )
     {
         long nSymbolSize = GetTextHeight() / 2 + 1;
         aSize.Width() += 2*nSymbolSize;
     }
-    if ( !PushButton::GetText().isEmpty() && ! (ImplGetButtonState() & BUTTON_DRAW_NOTEXT) )
+    if ( !PushButton::GetText().isEmpty() && ! (ImplGetButtonState() & DrawButtonFlags::NoText) )
     {
         sal_uLong nDrawFlags = 0;
         Size textSize = GetTextRect( Rectangle( Point(), Size( nMaxWidth ? nMaxWidth : 0x7fffffff, 0x7fffffff ) ),
@@ -1870,11 +1870,11 @@ void RadioButton::ImplDrawRadioButtonState(vcl::RenderContext& rRenderContext)
         Rectangle aCtrlRect(maStateRect.TopLeft(), maStateRect.GetSize());
         ControlState nState = ControlState::NONE;
 
-        if (ImplGetButtonState() & BUTTON_DRAW_PRESSED)
+        if (ImplGetButtonState() & DrawButtonFlags::Pressed)
             nState |= ControlState::PRESSED;
         if (HasFocus())
             nState |= ControlState::FOCUSED;
-        if (ImplGetButtonState() & BUTTON_DRAW_DEFAULT)
+        if (ImplGetButtonState() & DrawButtonFlags::Default)
             nState |= ControlState::DEFAULT;
         if (IsEnabled())
             nState |= ControlState::ENABLED;
@@ -1890,11 +1890,11 @@ void RadioButton::ImplDrawRadioButtonState(vcl::RenderContext& rRenderContext)
     {
         if (!maImage)
         {
-            sal_uInt16 nStyle = ImplGetButtonState();
+            DrawButtonFlags nStyle = ImplGetButtonState();
             if (!IsEnabled())
-                nStyle |= BUTTON_DRAW_DISABLED;
+                nStyle |= DrawButtonFlags::Disabled;
             if (mbChecked)
-                nStyle |= BUTTON_DRAW_CHECKED;
+                nStyle |= DrawButtonFlags::Checked;
             Image aImage = GetRadioImage(rRenderContext.GetSettings(), nStyle);
             if (IsZoom())
                 rRenderContext.DrawImage(maStateRect.TopLeft(), maStateRect.GetSize(), aImage);
@@ -1917,7 +1917,7 @@ void RadioButton::ImplDrawRadioButtonState(vcl::RenderContext& rRenderContext)
 
             // display border and selection status
             aImageRect = aDecoView.DrawFrame(aImageRect, nButtonStyle);
-            if ((ImplGetButtonState() & BUTTON_DRAW_PRESSED) || !bEnabled)
+            if ((ImplGetButtonState() & DrawButtonFlags::Pressed) || !bEnabled)
                 rRenderContext.SetFillColor( rStyleSettings.GetFaceColor());
             else
                 rRenderContext.SetFillColor(rStyleSettings.GetFieldColor());
@@ -1987,8 +1987,8 @@ void RadioButton::ImplDraw( OutputDevice* pDev, sal_uLong nDrawFlags,
     // no image radio button
     if ( !maImage )
     {
-        if ( ( !aText.isEmpty() && ! (ImplGetButtonState() & BUTTON_DRAW_NOTEXT) ) ||
-             ( HasImage() &&  ! (ImplGetButtonState() & BUTTON_DRAW_NOIMAGE) ) )
+        if ( ( !aText.isEmpty() && ! (ImplGetButtonState() & DrawButtonFlags::NoText) ) ||
+             ( HasImage() &&  ! (ImplGetButtonState() & DrawButtonFlags::NoImage) ) )
         {
             sal_uInt16 nTextStyle = Button::ImplGetTextStyle( aText, nWinStyle, nDrawFlags );
 
@@ -2071,7 +2071,7 @@ void RadioButton::ImplDraw( OutputDevice* pDev, sal_uLong nDrawFlags,
         long        nTextWidth  = pDev->GetCtrlTextWidth( aText );
 
         // calculate position and sizes
-        if ( !aText.isEmpty() && ! (ImplGetButtonState() & BUTTON_DRAW_NOTEXT) )
+        if ( !aText.isEmpty() && ! (ImplGetButtonState() & DrawButtonFlags::NoText) )
         {
             Size aTmpSize( (aImageSize.Width()+8), (aImageSize.Height()+8) );
             if ( bTopImage )
@@ -2321,7 +2321,7 @@ void RadioButton::MouseButtonDown( const MouseEvent& rMEvt )
 {
     if ( rMEvt.IsLeft() && maMouseRect.IsInside( rMEvt.GetPosPixel() ) )
     {
-        ImplGetButtonState() |= BUTTON_DRAW_PRESSED;
+        ImplGetButtonState() |= DrawButtonFlags::Pressed;
         Invalidate();
         Update();
         StartTracking();
@@ -2335,12 +2335,12 @@ void RadioButton::Tracking( const TrackingEvent& rTEvt )
 {
     if ( rTEvt.IsTrackingEnded() )
     {
-        if ( ImplGetButtonState() & BUTTON_DRAW_PRESSED )
+        if ( ImplGetButtonState() & DrawButtonFlags::Pressed )
         {
             if ( !(GetStyle() & WB_NOPOINTERFOCUS) && !rTEvt.IsTrackingCanceled() )
                 GrabFocus();
 
-            ImplGetButtonState() &= ~BUTTON_DRAW_PRESSED;
+            ImplGetButtonState() &= ~DrawButtonFlags::Pressed;
 
             // do not call click handler if aborted
             if ( !rTEvt.IsTrackingCanceled() )
@@ -2356,18 +2356,18 @@ void RadioButton::Tracking( const TrackingEvent& rTEvt )
     {
         if ( maMouseRect.IsInside( rTEvt.GetMouseEvent().GetPosPixel() ) )
         {
-            if ( !(ImplGetButtonState() & BUTTON_DRAW_PRESSED) )
+            if ( !(ImplGetButtonState() & DrawButtonFlags::Pressed) )
             {
-                ImplGetButtonState() |= BUTTON_DRAW_PRESSED;
+                ImplGetButtonState() |= DrawButtonFlags::Pressed;
                 Invalidate();
                 Update();
             }
         }
         else
         {
-            if ( ImplGetButtonState() & BUTTON_DRAW_PRESSED )
+            if ( ImplGetButtonState() & DrawButtonFlags::Pressed )
             {
-                ImplGetButtonState() &= ~BUTTON_DRAW_PRESSED;
+                ImplGetButtonState() &= ~DrawButtonFlags::Pressed;
                 Invalidate();
                 Update();
             }
@@ -2381,16 +2381,16 @@ void RadioButton::KeyInput( const KeyEvent& rKEvt )
 
     if ( !aKeyCode.GetModifier() && (aKeyCode.GetCode() == KEY_SPACE) )
     {
-        if ( !(ImplGetButtonState() & BUTTON_DRAW_PRESSED) )
+        if ( !(ImplGetButtonState() & DrawButtonFlags::Pressed) )
         {
-            ImplGetButtonState() |= BUTTON_DRAW_PRESSED;
+            ImplGetButtonState() |= DrawButtonFlags::Pressed;
             Invalidate();
             Update();
         }
     }
-    else if ( (ImplGetButtonState() & BUTTON_DRAW_PRESSED) && (aKeyCode.GetCode() == KEY_ESCAPE) )
+    else if ( (ImplGetButtonState() & DrawButtonFlags::Pressed) && (aKeyCode.GetCode() == KEY_ESCAPE) )
     {
-        ImplGetButtonState() &= ~BUTTON_DRAW_PRESSED;
+        ImplGetButtonState() &= ~DrawButtonFlags::Pressed;
         Invalidate();
         Update();
     }
@@ -2402,9 +2402,9 @@ void RadioButton::KeyUp( const KeyEvent& rKEvt )
 {
     vcl::KeyCode aKeyCode = rKEvt.GetKeyCode();
 
-    if ( (ImplGetButtonState() & BUTTON_DRAW_PRESSED) && (aKeyCode.GetCode() == KEY_SPACE) )
+    if ( (ImplGetButtonState() & DrawButtonFlags::Pressed) && (aKeyCode.GetCode() == KEY_SPACE) )
     {
-        ImplGetButtonState() &= ~BUTTON_DRAW_PRESSED;
+        ImplGetButtonState() &= ~DrawButtonFlags::Pressed;
         ImplCallClick();
     }
     else
@@ -2511,9 +2511,9 @@ void RadioButton::GetFocus()
 
 void RadioButton::LoseFocus()
 {
-    if ( ImplGetButtonState() & BUTTON_DRAW_PRESSED )
+    if ( ImplGetButtonState() & DrawButtonFlags::Pressed )
     {
-        ImplGetButtonState() &= ~BUTTON_DRAW_PRESSED;
+        ImplGetButtonState() &= ~DrawButtonFlags::Pressed;
         Invalidate();
         Update();
     }
@@ -2735,7 +2735,7 @@ Size RadioButton::ImplGetRadioImageSize() const
         }
     }
     if( bDefaultSize )
-        aSize = GetRadioImage( GetSettings(), 0 ).GetSizePixel();
+        aSize = GetRadioImage( GetSettings(), DrawButtonFlags::NONE ).GetSizePixel();
     return aSize;
 }
 
@@ -2765,7 +2765,7 @@ static void LoadThemedImageList (const StyleSettings &rStyleSettings,
         aColorAry1, aColorAry2, sizeof(aColorAry1) / sizeof(Color));
 }
 
-Image RadioButton::GetRadioImage( const AllSettings& rSettings, sal_uInt16 nFlags )
+Image RadioButton::GetRadioImage( const AllSettings& rSettings, DrawButtonFlags nFlags )
 {
     ImplSVData*             pSVData = ImplGetSVData();
     const StyleSettings&    rStyleSettings = rSettings.GetStyleSettings();
@@ -2798,23 +2798,23 @@ Image RadioButton::GetRadioImage( const AllSettings& rSettings, sal_uInt16 nFlag
     }
 
     sal_uInt16 nId;
-    if ( nFlags & BUTTON_DRAW_DISABLED )
+    if ( nFlags & DrawButtonFlags::Disabled )
     {
-        if ( nFlags & BUTTON_DRAW_CHECKED )
+        if ( nFlags & DrawButtonFlags::Checked )
             nId = 6;
         else
             nId = 5;
     }
-    else if ( nFlags & BUTTON_DRAW_PRESSED )
+    else if ( nFlags & DrawButtonFlags::Pressed )
     {
-        if ( nFlags & BUTTON_DRAW_CHECKED )
+        if ( nFlags & DrawButtonFlags::Checked )
             nId = 4;
         else
             nId = 3;
     }
     else
     {
-        if ( nFlags & BUTTON_DRAW_CHECKED )
+        if ( nFlags & DrawButtonFlags::Checked )
             nId = 2;
         else
             nId = 1;
@@ -2862,7 +2862,7 @@ Size RadioButton::CalcMinimumSize( long nMaxWidth ) const
     }
 
     OUString aText = GetText();
-    if ( !aText.isEmpty() && ! (ImplGetButtonState() & BUTTON_DRAW_NOTEXT) )
+    if ( !aText.isEmpty() && ! (ImplGetButtonState() & DrawButtonFlags::NoText) )
     {
         bool bTopImage = (GetStyle() & WB_TOP) != 0;
 
@@ -2993,9 +2993,9 @@ void CheckBox::ImplDrawCheckBoxState(vcl::RenderContext& rRenderContext)
 
         if (HasFocus())
             nState |= ControlState::FOCUSED;
-        if (ImplGetButtonState() & BUTTON_DRAW_DEFAULT)
+        if (ImplGetButtonState() & DrawButtonFlags::Default)
             nState |= ControlState::DEFAULT;
-        if (ImplGetButtonState() & BUTTON_DRAW_PRESSED)
+        if (ImplGetButtonState() & DrawButtonFlags::Pressed)
             nState |= ControlState::PRESSED;
         if (IsEnabled())
             nState |= ControlState::ENABLED;
@@ -3014,13 +3014,13 @@ void CheckBox::ImplDrawCheckBoxState(vcl::RenderContext& rRenderContext)
 
     if (!bNativeOK)
     {
-        sal_uInt16 nStyle = ImplGetButtonState();
+        DrawButtonFlags nStyle = ImplGetButtonState();
         if (!IsEnabled())
-            nStyle |= BUTTON_DRAW_DISABLED;
+            nStyle |= DrawButtonFlags::Disabled;
         if (meState == TRISTATE_INDET)
-            nStyle |= BUTTON_DRAW_DONTKNOW;
+            nStyle |= DrawButtonFlags::DontKnow;
         else if (meState == TRISTATE_TRUE)
-            nStyle |= BUTTON_DRAW_CHECKED;
+            nStyle |= DrawButtonFlags::Checked;
         Image aImage = GetCheckImage(GetSettings(), nStyle);
         if (IsZoom())
             rRenderContext.DrawImage(maStateRect.TopLeft(), maStateRect.GetSize(), aImage);
@@ -3041,8 +3041,8 @@ void CheckBox::ImplDraw( OutputDevice* pDev, sal_uLong nDrawFlags,
     pDev->IntersectClipRegion( Rectangle( rPos, rSize ) );
 
     long nLineY = rPos.Y() + (rSize.Height()-1)/2;
-    if ( ( !aText.isEmpty() && ! (ImplGetButtonState() & BUTTON_DRAW_NOTEXT) ) ||
-         ( HasImage() && !  (ImplGetButtonState() & BUTTON_DRAW_NOIMAGE) ) )
+    if ( ( !aText.isEmpty() && ! (ImplGetButtonState() & DrawButtonFlags::NoText) ) ||
+         ( HasImage() && !  (ImplGetButtonState() & DrawButtonFlags::NoImage) ) )
     {
         sal_uInt16 nTextStyle = Button::ImplGetTextStyle( aText, nWinStyle, nDrawFlags );
 
@@ -3203,7 +3203,7 @@ void CheckBox::MouseButtonDown( const MouseEvent& rMEvt )
 {
     if ( rMEvt.IsLeft() && maMouseRect.IsInside( rMEvt.GetPosPixel() ) )
     {
-        ImplGetButtonState() |= BUTTON_DRAW_PRESSED;
+        ImplGetButtonState() |= DrawButtonFlags::Pressed;
         Invalidate();
         Update();
         StartTracking();
@@ -3217,12 +3217,12 @@ void CheckBox::Tracking( const TrackingEvent& rTEvt )
 {
     if ( rTEvt.IsTrackingEnded() )
     {
-        if ( ImplGetButtonState() & BUTTON_DRAW_PRESSED )
+        if ( ImplGetButtonState() & DrawButtonFlags::Pressed )
         {
             if ( !(GetStyle() & WB_NOPOINTERFOCUS) && !rTEvt.IsTrackingCanceled() )
                 GrabFocus();
 
-            ImplGetButtonState() &= ~BUTTON_DRAW_PRESSED;
+            ImplGetButtonState() &= ~DrawButtonFlags::Pressed;
 
             // do not call click handler if aborted
             if ( !rTEvt.IsTrackingCanceled() )
@@ -3238,18 +3238,18 @@ void CheckBox::Tracking( const TrackingEvent& rTEvt )
     {
         if ( maMouseRect.IsInside( rTEvt.GetMouseEvent().GetPosPixel() ) )
         {
-            if ( !(ImplGetButtonState() & BUTTON_DRAW_PRESSED) )
+            if ( !(ImplGetButtonState() & DrawButtonFlags::Pressed) )
             {
-                ImplGetButtonState() |= BUTTON_DRAW_PRESSED;
+                ImplGetButtonState() |= DrawButtonFlags::Pressed;
                 Invalidate();
                 Update();
             }
         }
         else
         {
-            if ( ImplGetButtonState() & BUTTON_DRAW_PRESSED )
+            if ( ImplGetButtonState() & DrawButtonFlags::Pressed )
             {
-                ImplGetButtonState() &= ~BUTTON_DRAW_PRESSED;
+                ImplGetButtonState() &= ~DrawButtonFlags::Pressed;
                 Invalidate();
                 Update();
             }
@@ -3263,16 +3263,16 @@ void CheckBox::KeyInput( const KeyEvent& rKEvt )
 
     if ( !aKeyCode.GetModifier() && (aKeyCode.GetCode() == KEY_SPACE) )
     {
-        if ( !(ImplGetButtonState() & BUTTON_DRAW_PRESSED) )
+        if ( !(ImplGetButtonState() & DrawButtonFlags::Pressed) )
         {
-            ImplGetButtonState() |= BUTTON_DRAW_PRESSED;
+            ImplGetButtonState() |= DrawButtonFlags::Pressed;
             Invalidate();
             Update();
         }
     }
-    else if ( (ImplGetButtonState() & BUTTON_DRAW_PRESSED) && (aKeyCode.GetCode() == KEY_ESCAPE) )
+    else if ( (ImplGetButtonState() & DrawButtonFlags::Pressed) && (aKeyCode.GetCode() == KEY_ESCAPE) )
     {
-        ImplGetButtonState() &= ~BUTTON_DRAW_PRESSED;
+        ImplGetButtonState() &= ~DrawButtonFlags::Pressed;
         Invalidate();
         Update();
     }
@@ -3284,9 +3284,9 @@ void CheckBox::KeyUp( const KeyEvent& rKEvt )
 {
     vcl::KeyCode aKeyCode = rKEvt.GetKeyCode();
 
-    if ( (ImplGetButtonState() & BUTTON_DRAW_PRESSED) && (aKeyCode.GetCode() == KEY_SPACE) )
+    if ( (ImplGetButtonState() & DrawButtonFlags::Pressed) && (aKeyCode.GetCode() == KEY_SPACE) )
     {
-        ImplGetButtonState() &= ~BUTTON_DRAW_PRESSED;
+        ImplGetButtonState() &= ~DrawButtonFlags::Pressed;
         ImplCheck();
     }
     else
@@ -3410,7 +3410,7 @@ void CheckBox::Resize()
 
 void CheckBox::GetFocus()
 {
-    if ( GetText().isEmpty() || (ImplGetButtonState() & BUTTON_DRAW_NOTEXT) )
+    if ( GetText().isEmpty() || (ImplGetButtonState() & DrawButtonFlags::NoText) )
     {
         // increase button size to have space for focus rect
         // checkboxes without text will draw focusrect around the check
@@ -3432,9 +3432,9 @@ void CheckBox::GetFocus()
 
 void CheckBox::LoseFocus()
 {
-    if ( ImplGetButtonState() & BUTTON_DRAW_PRESSED )
+    if ( ImplGetButtonState() & DrawButtonFlags::Pressed )
     {
-        ImplGetButtonState() &= ~BUTTON_DRAW_PRESSED;
+        ImplGetButtonState() &= ~DrawButtonFlags::Pressed;
         Invalidate();
         Update();
     }
@@ -3442,7 +3442,7 @@ void CheckBox::LoseFocus()
     HideFocus();
     Button::LoseFocus();
 
-    if ( GetText().isEmpty() || (ImplGetButtonState() & BUTTON_DRAW_NOTEXT) )
+    if ( GetText().isEmpty() || (ImplGetButtonState() & DrawButtonFlags::NoText) )
     {
         // decrease button size again (see GetFocus())
         // checkboxes without text will draw focusrect around the check
@@ -3610,11 +3610,11 @@ Size CheckBox::ImplGetCheckImageSize() const
         }
     }
     if( bDefaultSize )
-        aSize = GetCheckImage( GetSettings(), 0 ).GetSizePixel();
+        aSize = GetCheckImage( GetSettings(), DrawButtonFlags::NONE ).GetSizePixel();
     return aSize;
 }
 
-Image CheckBox::GetCheckImage( const AllSettings& rSettings, sal_uInt16 nFlags )
+Image CheckBox::GetCheckImage( const AllSettings& rSettings, DrawButtonFlags nFlags )
 {
     ImplSVData*             pSVData = ImplGetSVData();
     const StyleSettings&    rStyleSettings = rSettings.GetStyleSettings();
@@ -3646,29 +3646,29 @@ Image CheckBox::GetCheckImage( const AllSettings& rSettings, sal_uInt16 nFlags )
     }
 
     sal_uInt16 nId;
-    if ( nFlags & BUTTON_DRAW_DISABLED )
+    if ( nFlags & DrawButtonFlags::Disabled )
     {
-        if ( nFlags & BUTTON_DRAW_DONTKNOW )
+        if ( nFlags & DrawButtonFlags::DontKnow )
             nId = 9;
-        else if ( nFlags & BUTTON_DRAW_CHECKED )
+        else if ( nFlags & DrawButtonFlags::Checked )
             nId = 6;
         else
             nId = 5;
     }
-    else if ( nFlags & BUTTON_DRAW_PRESSED )
+    else if ( nFlags & DrawButtonFlags::Pressed )
     {
-        if ( nFlags & BUTTON_DRAW_DONTKNOW )
+        if ( nFlags & DrawButtonFlags::DontKnow )
             nId = 8;
-        else if ( nFlags & BUTTON_DRAW_CHECKED )
+        else if ( nFlags & DrawButtonFlags::Checked )
             nId = 4;
         else
             nId = 3;
     }
     else
     {
-        if ( nFlags & BUTTON_DRAW_DONTKNOW )
+        if ( nFlags & DrawButtonFlags::DontKnow )
             nId = 7;
-        else if ( nFlags & BUTTON_DRAW_CHECKED )
+        else if ( nFlags & DrawButtonFlags::Checked )
             nId = 2;
         else
             nId = 1;
@@ -3709,7 +3709,7 @@ Size CheckBox::CalcMinimumSize( long nMaxWidth ) const
     nMaxWidth -= aSize.Width();
 
     OUString aText = GetText();
-    if ( !aText.isEmpty() && ! (ImplGetButtonState() & BUTTON_DRAW_NOTEXT) )
+    if ( !aText.isEmpty() && ! (ImplGetButtonState() & DrawButtonFlags::NoText) )
     {
         // subtract what will be added later
         nMaxWidth-=2;
@@ -3813,7 +3813,7 @@ void DisclosureButton::ImplDrawCheckBoxState(vcl::RenderContext& rRenderContext)
 
     if (HasFocus())
         nState |= ControlState::FOCUSED;
-    if (ImplGetButtonState() & BUTTON_DRAW_DEFAULT)
+    if (ImplGetButtonState() & DrawButtonFlags::Default)
         nState |= ControlState::DEFAULT;
     if (Window::IsEnabled())
         nState |= ControlState::ENABLED;
diff --git a/vcl/source/control/scrbar.cxx b/vcl/source/control/scrbar.cxx
index 912e17c..e801838 100644
--- a/vcl/source/control/scrbar.cxx
+++ b/vcl/source/control/scrbar.cxx
@@ -631,7 +631,7 @@ void ScrollBar::ImplDraw(vcl::RenderContext& rRenderContext, sal_uInt16 nDrawFla
 {
     DecorationView aDecoView(&rRenderContext);
     Rectangle aTempRect;
-    sal_uInt16 nStyle;
+    DrawButtonFlags nStyle;
     const StyleSettings& rStyleSettings = rRenderContext.GetSettings().GetStyleSettings();
     SymbolType eSymbolType;
     bool bEnabled = IsEnabled();
@@ -653,9 +653,9 @@ void ScrollBar::ImplDraw(vcl::RenderContext& rRenderContext, sal_uInt16 nDrawFla
 
     if ((nDrawFlags & SCRBAR_DRAW_BTN1) && (!pWin || !ImplDrawNative(rRenderContext, SCRBAR_DRAW_BTN1)))
     {
-        nStyle = BUTTON_DRAW_NOLIGHTBORDER;
+        nStyle = DrawButtonFlags::NoLightBorder;
         if (mnStateFlags & SCRBAR_STATE_BTN1_DOWN)
-            nStyle |= BUTTON_DRAW_PRESSED;
+            nStyle |= DrawButtonFlags::Pressed;
         aTempRect = aDecoView.DrawButton( maBtn1Rect, nStyle );
         ImplCalcSymbolRect( aTempRect );
         DrawSymbolFlags nSymbolStyle = DrawSymbolFlags::NONE;
@@ -680,9 +680,9 @@ void ScrollBar::ImplDraw(vcl::RenderContext& rRenderContext, sal_uInt16 nDrawFla
 
     if ((nDrawFlags & SCRBAR_DRAW_BTN2) && (!pWin || !ImplDrawNative(rRenderContext, SCRBAR_DRAW_BTN2)))
     {
-        nStyle = BUTTON_DRAW_NOLIGHTBORDER;
+        nStyle = DrawButtonFlags::NoLightBorder;
         if (mnStateFlags & SCRBAR_STATE_BTN2_DOWN)
-            nStyle |= BUTTON_DRAW_PRESSED;
+            nStyle |= DrawButtonFlags::Pressed;
         aTempRect = aDecoView.DrawButton(maBtn2Rect, nStyle);
         ImplCalcSymbolRect(aTempRect);
         DrawSymbolFlags nSymbolStyle = DrawSymbolFlags::NONE;
@@ -713,7 +713,7 @@ void ScrollBar::ImplDraw(vcl::RenderContext& rRenderContext, sal_uInt16 nDrawFla
         {
             if (bEnabled)
             {
-                nStyle = BUTTON_DRAW_NOLIGHTBORDER;
+                nStyle = DrawButtonFlags::NoLightBorder;
                 aTempRect = aDecoView.DrawButton(maThumbRect, nStyle);
             }
             else
diff --git a/vcl/source/control/slider.cxx b/vcl/source/control/slider.cxx
index ac4418a..fb566e8 100644
--- a/vcl/source/control/slider.cxx
+++ b/vcl/source/control/slider.cxx
@@ -308,7 +308,7 @@ void Slider::ImplCalc( bool bUpdate )
 void Slider::ImplDraw(vcl::RenderContext& rRenderContext, sal_uInt16 nDrawFlags)
 {
     DecorationView aDecoView(&rRenderContext);
-    sal_uInt16 nStyle;
+    DrawButtonFlags nStyle;
     const StyleSettings& rStyleSettings = rRenderContext.GetSettings().GetStyleSettings();
     bool bEnabled = IsEnabled();
 
@@ -428,9 +428,9 @@ void Slider::ImplDraw(vcl::RenderContext& rRenderContext, sal_uInt16 nDrawFlags)
         {
             if (bEnabled)
             {
-                nStyle = 0;
+                nStyle = DrawButtonFlags::NONE;
                 if (mnStateFlags & SLIDER_STATE_THUMB_DOWN)
-                    nStyle |= BUTTON_DRAW_PRESSED;
+                    nStyle |= DrawButtonFlags::Pressed;
                 aDecoView.DrawButton(maThumbRect, nStyle);
             }
             else
diff --git a/vcl/source/control/spinfld.cxx b/vcl/source/control/spinfld.cxx
index 6ba5d91..00f9a08 100644
--- a/vcl/source/control/spinfld.cxx
+++ b/vcl/source/control/spinfld.cxx
@@ -143,7 +143,7 @@ void ImplDrawSpinButton(vcl::RenderContext& rRenderContext, vcl::Window* pWindow
 {
     DecorationView aDecoView(&rRenderContext);
 
-    sal_uInt16 nStyle = BUTTON_DRAW_NOLEFTLIGHTBORDER;
+    DrawButtonFlags nStyle = DrawButtonFlags::NoLeftLightBorder;
     DrawSymbolFlags nSymStyle = DrawSymbolFlags::NONE;
 
     SymbolType eType1, eType2;
@@ -178,9 +178,9 @@ void ImplDrawSpinButton(vcl::RenderContext& rRenderContext, vcl::Window* pWindow
     }
 
     // draw upper/left Button
-    sal_uInt16 nTempStyle = nStyle;
+    DrawButtonFlags nTempStyle = nStyle;
     if ( bUpperIn )
-        nTempStyle |= BUTTON_DRAW_PRESSED;
+        nTempStyle |= DrawButtonFlags::Pressed;
 
     bool bNativeOK = false;
     Rectangle aUpRect;
@@ -224,7 +224,7 @@ void ImplDrawSpinButton(vcl::RenderContext& rRenderContext, vcl::Window* pWindow
 
     // draw lower/right Button
     if (bLowerIn)
-        nStyle |= BUTTON_DRAW_PRESSED;
+        nStyle |= DrawButtonFlags::Pressed;
     Rectangle aLowRect;
     if(!bNativeOK)
         aLowRect = aDecoView.DrawButton(rLowerRect, nStyle);
@@ -613,9 +613,9 @@ void SpinField::Paint( vcl::RenderContext& rRenderContext, const Rectangle& rRec
     {
         DecorationView aView(&rRenderContext);
 
-        sal_uInt16 nStyle = BUTTON_DRAW_NOLIGHTBORDER;
+        DrawButtonFlags nStyle = DrawButtonFlags::NoLightBorder;
         if (mbInDropDown)
-            nStyle |= BUTTON_DRAW_PRESSED;
+            nStyle |= DrawButtonFlags::Pressed;
         Rectangle aInnerRect = aView.DrawButton(maDropDownRect, nStyle);
 
         SymbolType eSymbol = SymbolType::SPIN_DOWN;
@@ -1023,7 +1023,7 @@ void SpinField::Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize,
         if ( GetStyle() & WB_DROPDOWN )
         {
             DecorationView aView( pDev );
-            sal_uInt16 nStyle = BUTTON_DRAW_NOLIGHTBORDER;
+            DrawButtonFlags nStyle = DrawButtonFlags::NoLightBorder;
             Rectangle aInnerRect = aView.DrawButton( aDD, nStyle );
             SymbolType eSymbol = SymbolType::SPIN_DOWN;
             if ( GetSettings().GetStyleSettings().GetOptions() & STYLE_OPTION_SPINUPDOWN )
diff --git a/vcl/source/window/brdwin.cxx b/vcl/source/window/brdwin.cxx
index 5336d01..38fd84c 100644
--- a/vcl/source/window/brdwin.cxx
+++ b/vcl/source/window/brdwin.cxx
@@ -41,7 +41,7 @@ using namespace ::com::sun::star::uno;
 // useful caption height for title bar buttons
 #define MIN_CAPTION_HEIGHT 18
 
-static void ImplGetPinImage( sal_uInt16 nStyle, bool bPinIn, Image& rImage )
+static void ImplGetPinImage( DrawButtonFlags nStyle, bool bPinIn, Image& rImage )
 {
     // load ImageList if not available yet
     ImplSVData* pSVData = ImplGetSVData();
@@ -60,7 +60,7 @@ static void ImplGetPinImage( sal_uInt16 nStyle, bool bPinIn, Image& rImage )
 
     // get and return Image
     sal_uInt16 nId;
-    if ( nStyle & BUTTON_DRAW_PRESSED )
+    if ( nStyle & DrawButtonFlags::Pressed )
     {
         if ( bPinIn )
             nId = 4;
@@ -112,10 +112,10 @@ static void ImplDrawBrdWinSymbol( vcl::RenderContext* pDev,
 
 static void ImplDrawBrdWinSymbolButton( vcl::RenderContext* pDev,
                                         const Rectangle& rRect,
-                                        SymbolType eSymbol, sal_uInt16 nState )
+                                        SymbolType eSymbol, DrawButtonFlags nState )
 {
-    bool bMouseOver = (nState & BUTTON_DRAW_HIGHLIGHT) != 0;
-    nState &= ~BUTTON_DRAW_HIGHLIGHT;
+    bool bMouseOver(nState & DrawButtonFlags::Highlight);
+    nState &= ~DrawButtonFlags::Highlight;
 
     Rectangle aTempRect;
     vcl::Window *pWin = dynamic_cast< vcl::Window* >(pDev);
@@ -127,7 +127,7 @@ static void ImplDrawBrdWinSymbolButton( vcl::RenderContext* pDev,
             pDev->SetFillColor( pDev->GetSettings().GetStyleSettings().GetWindowColor() );
             pDev->SetLineColor();
             pDev->DrawRect( rRect );
-            pWin->DrawSelectionBackground( rRect, 2, (nState & BUTTON_DRAW_PRESSED) != 0,
+            pWin->DrawSelectionBackground( rRect, 2, bool(nState & DrawButtonFlags::Pressed),
                                             true, false );
         }
         aTempRect = rRect;
@@ -139,7 +139,7 @@ static void ImplDrawBrdWinSymbolButton( vcl::RenderContext* pDev,
     else
     {
         DecorationView aDecoView( pDev );
-        aTempRect = aDecoView.DrawButton( rRect, nState|BUTTON_DRAW_FLAT );
+        aTempRect = aDecoView.DrawButton( rRect, nState|DrawButtonFlags::Flat );
     }
     ImplDrawBrdWinSymbol( pDev, aTempRect, eSymbol );
 }
@@ -288,10 +288,10 @@ sal_uInt16 ImplBorderWindowView::ImplHitTest( ImplBorderFrameData* pData, const
 
 bool ImplBorderWindowView::ImplMouseMove( ImplBorderFrameData* pData, const MouseEvent& rMEvt )
 {
-    sal_uInt16 oldCloseState = pData->mnCloseState;
-    sal_uInt16 oldMenuState = pData->mnMenuState;
-    pData->mnCloseState &= ~BUTTON_DRAW_HIGHLIGHT;
-    pData->mnMenuState &= ~BUTTON_DRAW_HIGHLIGHT;
+    DrawButtonFlags oldCloseState = pData->mnCloseState;
+    DrawButtonFlags oldMenuState = pData->mnMenuState;
+    pData->mnCloseState &= ~DrawButtonFlags::Highlight;
+    pData->mnMenuState &= ~DrawButtonFlags::Highlight;
 
     Point aMousePos = rMEvt.GetPosPixel();
     sal_uInt16 nHitTest = ImplHitTest( pData, aMousePos );
@@ -313,9 +313,9 @@ bool ImplBorderWindowView::ImplMouseMove( ImplBorderFrameData* pData, const Mous
     else if ( nHitTest & BORDERWINDOW_HITTEST_BOTTOMLEFT )
         ePtrStyle = POINTER_WINDOW_SWSIZE;
     else if ( nHitTest & BORDERWINDOW_HITTEST_CLOSE )
-        pData->mnCloseState |= BUTTON_DRAW_HIGHLIGHT;
+        pData->mnCloseState |= DrawButtonFlags::Highlight;
     else if ( nHitTest & BORDERWINDOW_HITTEST_MENU )
-        pData->mnMenuState |= BUTTON_DRAW_HIGHLIGHT;
+        pData->mnMenuState |= DrawButtonFlags::Highlight;
     pData->mpBorderWindow->SetPointer( Pointer( ePtrStyle ) );
 
     if( pData->mnCloseState != oldCloseState )
@@ -342,22 +342,22 @@ bool ImplBorderWindowView::ImplMouseButtonDown( ImplBorderFrameData* pData, cons
 
             if ( pData->mnHitTest & BORDERWINDOW_HITTEST_CLOSE )
             {
-                pData->mnCloseState |= BUTTON_DRAW_PRESSED;
+                pData->mnCloseState |= DrawButtonFlags::Pressed;
                 DrawWindow( BORDERWINDOW_DRAW_CLOSE );
             }
             else if ( pData->mnHitTest & BORDERWINDOW_HITTEST_ROLL )
             {
-                pData->mnRollState |= BUTTON_DRAW_PRESSED;
+                pData->mnRollState |= DrawButtonFlags::Pressed;
                 DrawWindow( BORDERWINDOW_DRAW_ROLL );
             }
             else if ( pData->mnHitTest & BORDERWINDOW_HITTEST_DOCK )
             {
-                pData->mnDockState |= BUTTON_DRAW_PRESSED;
+                pData->mnDockState |= DrawButtonFlags::Pressed;
                 DrawWindow( BORDERWINDOW_DRAW_DOCK );
             }
             else if ( pData->mnHitTest & BORDERWINDOW_HITTEST_MENU )
             {
-                pData->mnMenuState |= BUTTON_DRAW_PRESSED;
+                pData->mnMenuState |= DrawButtonFlags::Pressed;
                 DrawWindow( BORDERWINDOW_DRAW_MENU );
 
                 // call handler already on mouse down
@@ -369,17 +369,17 @@ bool ImplBorderWindowView::ImplMouseButtonDown( ImplBorderFrameData* pData, cons
             }
             else if ( pData->mnHitTest & BORDERWINDOW_HITTEST_HIDE )
             {
-                pData->mnHideState |= BUTTON_DRAW_PRESSED;
+                pData->mnHideState |= DrawButtonFlags::Pressed;
                 DrawWindow( BORDERWINDOW_DRAW_HIDE );
             }
             else if ( pData->mnHitTest & BORDERWINDOW_HITTEST_HELP )
             {
-                pData->mnHelpState |= BUTTON_DRAW_PRESSED;
+                pData->mnHelpState |= DrawButtonFlags::Pressed;
                 DrawWindow( BORDERWINDOW_DRAW_HELP );
             }
             else if ( pData->mnHitTest & BORDERWINDOW_HITTEST_PIN )
             {
-                pData->mnPinState |= BUTTON_DRAW_PRESSED;
+                pData->mnPinState |= DrawButtonFlags::Pressed;
                 DrawWindow( BORDERWINDOW_DRAW_PIN );
             }
             else
@@ -455,9 +455,9 @@ bool ImplBorderWindowView::ImplTracking( ImplBorderFrameData* pData, const Track
 
         if ( nHitTest & BORDERWINDOW_HITTEST_CLOSE )
         {
-            if ( pData->mnCloseState & BUTTON_DRAW_PRESSED )
+            if ( pData->mnCloseState & DrawButtonFlags::Pressed )
             {
-                pData->mnCloseState &= ~BUTTON_DRAW_PRESSED;
+                pData->mnCloseState &= ~DrawButtonFlags::Pressed;
                 DrawWindow( BORDERWINDOW_DRAW_CLOSE );
 
                 // do not call a Click-Handler when aborting
@@ -477,9 +477,9 @@ bool ImplBorderWindowView::ImplTracking( ImplBorderFrameData* pData, const Track
         }
         else if ( nHitTest & BORDERWINDOW_HITTEST_ROLL )
         {
-            if ( pData->mnRollState & BUTTON_DRAW_PRESSED )
+            if ( pData->mnRollState & DrawButtonFlags::Pressed )
             {
-                pData->mnRollState &= ~BUTTON_DRAW_PRESSED;
+                pData->mnRollState &= ~DrawButtonFlags::Pressed;
                 DrawWindow( BORDERWINDOW_DRAW_ROLL );
 
                 // do not call a Click-Handler when aborting
@@ -499,9 +499,9 @@ bool ImplBorderWindowView::ImplTracking( ImplBorderFrameData* pData, const Track
         }
         else if ( nHitTest & BORDERWINDOW_HITTEST_DOCK )
         {
-            if ( pData->mnDockState & BUTTON_DRAW_PRESSED )
+            if ( pData->mnDockState & DrawButtonFlags::Pressed )
             {
-                pData->mnDockState &= ~BUTTON_DRAW_PRESSED;
+                pData->mnDockState &= ~DrawButtonFlags::Pressed;
                 DrawWindow( BORDERWINDOW_DRAW_DOCK );
 
                 // do not call a Click-Handler when aborting
@@ -517,9 +517,9 @@ bool ImplBorderWindowView::ImplTracking( ImplBorderFrameData* pData, const Track
         }
         else if ( nHitTest & BORDERWINDOW_HITTEST_MENU )
         {
-            if ( pData->mnMenuState & BUTTON_DRAW_PRESSED )
+            if ( pData->mnMenuState & DrawButtonFlags::Pressed )
             {
-                pData->mnMenuState &= ~BUTTON_DRAW_PRESSED;
+                pData->mnMenuState &= ~DrawButtonFlags::Pressed;
                 DrawWindow( BORDERWINDOW_DRAW_MENU );
 
                 // handler already called on mouse down
@@ -527,9 +527,9 @@ bool ImplBorderWindowView::ImplTracking( ImplBorderFrameData* pData, const Track
         }
         else if ( nHitTest & BORDERWINDOW_HITTEST_HIDE )
         {
-            if ( pData->mnHideState & BUTTON_DRAW_PRESSED )
+            if ( pData->mnHideState & DrawButtonFlags::Pressed )
             {
-                pData->mnHideState &= ~BUTTON_DRAW_PRESSED;
+                pData->mnHideState &= ~DrawButtonFlags::Pressed;
                 DrawWindow( BORDERWINDOW_DRAW_HIDE );
 
                 // do not call a Click-Handler when aborting
@@ -545,9 +545,9 @@ bool ImplBorderWindowView::ImplTracking( ImplBorderFrameData* pData, const Track
         }
         else if ( nHitTest & BORDERWINDOW_HITTEST_HELP )
         {
-            if ( pData->mnHelpState & BUTTON_DRAW_PRESSED )
+            if ( pData->mnHelpState & DrawButtonFlags::Pressed )
             {
-                pData->mnHelpState &= ~BUTTON_DRAW_PRESSED;
+                pData->mnHelpState &= ~DrawButtonFlags::Pressed;
                 DrawWindow( BORDERWINDOW_DRAW_HELP );
 
                 // do not call a Click-Handler when aborting
@@ -558,9 +558,9 @@ bool ImplBorderWindowView::ImplTracking( ImplBorderFrameData* pData, const Track
         }
         else if ( nHitTest & BORDERWINDOW_HITTEST_PIN )
         {
-            if ( pData->mnPinState & BUTTON_DRAW_PRESSED )
+            if ( pData->mnPinState & DrawButtonFlags::Pressed )
             {
-                pData->mnPinState &= ~BUTTON_DRAW_PRESSED;
+                pData->mnPinState &= ~DrawButtonFlags::Pressed;
                 DrawWindow( BORDERWINDOW_DRAW_PIN );
 
                 // do not call a Click-Handler when aborting
@@ -608,17 +608,17 @@ bool ImplBorderWindowView::ImplTracking( ImplBorderFrameData* pData, const Track
         {
             if ( pData->maCloseRect.IsInside( aMousePos ) )
             {
-                if ( !(pData->mnCloseState & BUTTON_DRAW_PRESSED) )
+                if ( !(pData->mnCloseState & DrawButtonFlags::Pressed) )
                 {
-                    pData->mnCloseState |= BUTTON_DRAW_PRESSED;
+                    pData->mnCloseState |= DrawButtonFlags::Pressed;
                     DrawWindow( BORDERWINDOW_DRAW_CLOSE );
                 }
             }
             else
             {
-                if ( pData->mnCloseState & BUTTON_DRAW_PRESSED )
+                if ( pData->mnCloseState & DrawButtonFlags::Pressed )
                 {
-                    pData->mnCloseState &= ~BUTTON_DRAW_PRESSED;
+                    pData->mnCloseState &= ~DrawButtonFlags::Pressed;
                     DrawWindow( BORDERWINDOW_DRAW_CLOSE );
                 }
             }
@@ -627,17 +627,17 @@ bool ImplBorderWindowView::ImplTracking( ImplBorderFrameData* pData, const Track
         {
             if ( pData->maRollRect.IsInside( aMousePos ) )
             {
-                if ( !(pData->mnRollState & BUTTON_DRAW_PRESSED) )
+                if ( !(pData->mnRollState & DrawButtonFlags::Pressed) )
                 {
-                    pData->mnRollState |= BUTTON_DRAW_PRESSED;
+                    pData->mnRollState |= DrawButtonFlags::Pressed;
                     DrawWindow( BORDERWINDOW_DRAW_ROLL );
                 }
             }
             else
             {
-                if ( pData->mnRollState & BUTTON_DRAW_PRESSED )
+                if ( pData->mnRollState & DrawButtonFlags::Pressed )
                 {
-                    pData->mnRollState &= ~BUTTON_DRAW_PRESSED;
+                    pData->mnRollState &= ~DrawButtonFlags::Pressed;
                     DrawWindow( BORDERWINDOW_DRAW_ROLL );
                 }
             }
@@ -646,17 +646,17 @@ bool ImplBorderWindowView::ImplTracking( ImplBorderFrameData* pData, const Track
         {
             if ( pData->maDockRect.IsInside( aMousePos ) )
             {
-                if ( !(pData->mnDockState & BUTTON_DRAW_PRESSED) )
+                if ( !(pData->mnDockState & DrawButtonFlags::Pressed) )
                 {
-                    pData->mnDockState |= BUTTON_DRAW_PRESSED;
+                    pData->mnDockState |= DrawButtonFlags::Pressed;
                     DrawWindow( BORDERWINDOW_DRAW_DOCK );
                 }
             }
             else
             {
-                if ( pData->mnDockState & BUTTON_DRAW_PRESSED )
+                if ( pData->mnDockState & DrawButtonFlags::Pressed )
                 {
-                    pData->mnDockState &= ~BUTTON_DRAW_PRESSED;
+                    pData->mnDockState &= ~DrawButtonFlags::Pressed;
                     DrawWindow( BORDERWINDOW_DRAW_DOCK );
                 }
             }
@@ -665,18 +665,18 @@ bool ImplBorderWindowView::ImplTracking( ImplBorderFrameData* pData, const Track
         {
             if ( pData->maMenuRect.IsInside( aMousePos ) )
             {
-                if ( !(pData->mnMenuState & BUTTON_DRAW_PRESSED) )
+                if ( !(pData->mnMenuState & DrawButtonFlags::Pressed) )
                 {
-                    pData->mnMenuState |= BUTTON_DRAW_PRESSED;
+                    pData->mnMenuState |= DrawButtonFlags::Pressed;
                     DrawWindow( BORDERWINDOW_DRAW_MENU );
 
                 }
             }
             else
             {
-                if ( pData->mnMenuState & BUTTON_DRAW_PRESSED )
+                if ( pData->mnMenuState & DrawButtonFlags::Pressed )
                 {
-                    pData->mnMenuState &= ~BUTTON_DRAW_PRESSED;
+                    pData->mnMenuState &= ~DrawButtonFlags::Pressed;
                     DrawWindow( BORDERWINDOW_DRAW_MENU );
                 }
             }
@@ -685,17 +685,17 @@ bool ImplBorderWindowView::ImplTracking( ImplBorderFrameData* pData, const Track
         {
             if ( pData->maHideRect.IsInside( aMousePos ) )
             {
-                if ( !(pData->mnHideState & BUTTON_DRAW_PRESSED) )
+                if ( !(pData->mnHideState & DrawButtonFlags::Pressed) )
                 {
-                    pData->mnHideState |= BUTTON_DRAW_PRESSED;
+                    pData->mnHideState |= DrawButtonFlags::Pressed;
                     DrawWindow( BORDERWINDOW_DRAW_HIDE );
                 }
             }
             else
             {
-                if ( pData->mnHideState & BUTTON_DRAW_PRESSED )
+                if ( pData->mnHideState & DrawButtonFlags::Pressed )
                 {
-                    pData->mnHideState &= ~BUTTON_DRAW_PRESSED;
+                    pData->mnHideState &= ~DrawButtonFlags::Pressed;
                     DrawWindow( BORDERWINDOW_DRAW_HIDE );
                 }
             }
@@ -704,17 +704,17 @@ bool ImplBorderWindowView::ImplTracking( ImplBorderFrameData* pData, const Track
         {
             if ( pData->maHelpRect.IsInside( aMousePos ) )
             {
-                if ( !(pData->mnHelpState & BUTTON_DRAW_PRESSED) )
+                if ( !(pData->mnHelpState & DrawButtonFlags::Pressed) )
                 {
-                    pData->mnHelpState |= BUTTON_DRAW_PRESSED;
+                    pData->mnHelpState |= DrawButtonFlags::Pressed;
                     DrawWindow( BORDERWINDOW_DRAW_HELP );
                 }
             }
             else
             {
-                if ( pData->mnHelpState & BUTTON_DRAW_PRESSED )
+                if ( pData->mnHelpState & DrawButtonFlags::Pressed )
                 {
-                    pData->mnHelpState &= ~BUTTON_DRAW_PRESSED;
+                    pData->mnHelpState &= ~DrawButtonFlags::Pressed;
                     DrawWindow( BORDERWINDOW_DRAW_HELP );
                 }
             }
@@ -723,17 +723,17 @@ bool ImplBorderWindowView::ImplTracking( ImplBorderFrameData* pData, const Track
         {
             if ( pData->maPinRect.IsInside( aMousePos ) )
             {
-                if ( !(pData->mnPinState & BUTTON_DRAW_PRESSED) )
+                if ( !(pData->mnPinState & DrawButtonFlags::Pressed) )
                 {
-                    pData->mnPinState |= BUTTON_DRAW_PRESSED;
+                    pData->mnPinState |= DrawButtonFlags::Pressed;
                     DrawWindow( BORDERWINDOW_DRAW_PIN );
                 }
             }
             else
             {
-                if ( pData->mnPinState & BUTTON_DRAW_PRESSED )
+                if ( pData->mnPinState & DrawButtonFlags::Pressed )
                 {
-                    pData->mnPinState &= ~BUTTON_DRAW_PRESSED;
+                    pData->mnPinState &= ~DrawButtonFlags::Pressed;
                     DrawWindow( BORDERWINDOW_DRAW_PIN );
                 }
             }
@@ -1353,13 +1353,13 @@ ImplStdBorderWindowView::ImplStdBorderWindowView( ImplBorderWindow* pBorderWindo
     maFrameData.mpBorderWindow  = pBorderWindow;
     maFrameData.mbDragFull      = false;
     maFrameData.mnHitTest       = 0;
-    maFrameData.mnPinState      = 0;
-    maFrameData.mnCloseState    = 0;
-    maFrameData.mnRollState     = 0;
-    maFrameData.mnDockState     = 0;
-    maFrameData.mnMenuState     = 0;
-    maFrameData.mnHideState     = 0;
-    maFrameData.mnHelpState     = 0;
+    maFrameData.mnPinState      = DrawButtonFlags::NONE;
+    maFrameData.mnCloseState    = DrawButtonFlags::NONE;
+    maFrameData.mnRollState     = DrawButtonFlags::NONE;
+    maFrameData.mnDockState     = DrawButtonFlags::NONE;
+    maFrameData.mnMenuState     = DrawButtonFlags::NONE;
+    maFrameData.mnHideState     = DrawButtonFlags::NONE;
+    maFrameData.mnHelpState     = DrawButtonFlags::NONE;
     maFrameData.mbTitleClipped  = false;
 
     mpATitleVirDev              = NULL;
@@ -1459,7 +1459,7 @@ void ImplStdBorderWindowView::Init( OutputDevice* pDev, long nWidth, long nHeigh
             if ( pBorderWindow->GetStyle() & WB_PINABLE )
             {
                 Image aImage;
-                ImplGetPinImage( 0, false, aImage );
+                ImplGetPinImage( DrawButtonFlags::NONE, false, aImage );
                 pData->maPinRect.Top()    = nItemTop;
                 pData->maPinRect.Bottom() = nItemBottom;
                 pData->maPinRect.Left()   = nLeft;
diff --git a/vcl/source/window/decoview.cxx b/vcl/source/window/decoview.cxx
index e4e2717..ca26498 100644
--- a/vcl/source/window/decoview.cxx
+++ b/vcl/source/window/decoview.cxx
@@ -23,10 +23,10 @@
 #include <vcl/window.hxx>
 #include <vcl/ctrl.hxx>
 
-#define BUTTON_DRAW_FLATTEST    (BUTTON_DRAW_FLAT |             \
-                                 BUTTON_DRAW_PRESSED |          \
-                                 BUTTON_DRAW_CHECKED |          \
-                                 BUTTON_DRAW_HIGHLIGHT)
+#define BUTTON_DRAW_FLATTEST    (DrawButtonFlags::Flat |             \
+                                 DrawButtonFlags::Pressed |          \
+                                 DrawButtonFlags::Checked |          \
+                                 DrawButtonFlags::Highlight)
 
 using namespace std;
 
@@ -490,16 +490,16 @@ void ImplDraw2ColorFrame( OutputDevice *const pDev, Rectangle& rRect,
 }
 
 void ImplDrawButton( OutputDevice *const pDev, Rectangle aFillRect,
-                     const sal_uInt16 nStyle )
+                     const DrawButtonFlags nStyle )
 {
     const StyleSettings& rStyleSettings = pDev->GetSettings().GetStyleSettings();
 
-    if ( (nStyle & BUTTON_DRAW_MONO) ||
+    if ( (nStyle & DrawButtonFlags::Mono) ||
          (rStyleSettings.GetOptions() & STYLE_OPTION_MONO) )
     {
         const Color aBlackColor( COL_BLACK );
 
-        if ( nStyle & BUTTON_DRAW_DEFAULT )
+        if ( nStyle & DrawButtonFlags::Default )
         {
             // default selection shows a wider border
             ImplDrawDPILineRect( pDev, aFillRect, &aBlackColor );
@@ -520,7 +520,7 @@ void ImplDrawButton( OutputDevice *const pDev, Rectangle aFillRect,
         pDev->SetLineColor();
         pDev->SetFillColor( aBlackColor );
         const Rectangle aOrigFillRect(aFillRect);
-        if ( nStyle & (BUTTON_DRAW_PRESSED | BUTTON_DRAW_CHECKED) )
+        if ( nStyle & (DrawButtonFlags::Pressed | DrawButtonFlags::Checked) )
         {
             // shrink fill rect
             aFillRect.Left() += aBrdSize.Width();
@@ -543,7 +543,7 @@ void ImplDrawButton( OutputDevice *const pDev, Rectangle aFillRect,
                                        aOrigFillRect.Right(), aOrigFillRect.Bottom() ) );
         }
 
-        if ( !(nStyle & BUTTON_DRAW_NOFILL) )
+        if ( !(nStyle & DrawButtonFlags::NoFill) )
         {
             // Hack: in monochrome mode on printers we like to have grey buttons
             if ( pDev->GetOutDevType() == OUTDEV_PRINTER )
@@ -555,13 +555,13 @@ void ImplDrawButton( OutputDevice *const pDev, Rectangle aFillRect,
     }
     else
     {
-        if ( nStyle & BUTTON_DRAW_DEFAULT )
+        if ( nStyle & DrawButtonFlags::Default )
         {
             const Color aDefBtnColor = rStyleSettings.GetDarkShadowColor();
             ImplDrawDPILineRect( pDev, aFillRect, &aDefBtnColor );
         }
 
-        if ( nStyle & BUTTON_DRAW_NOLEFTLIGHTBORDER )
+        if ( nStyle & DrawButtonFlags::NoLeftLightBorder )
         {
             pDev->SetLineColor( rStyleSettings.GetLightBorderColor() );
             pDev->DrawLine( Point( aFillRect.Left(), aFillRect.Top() ),
@@ -571,18 +571,18 @@ void ImplDrawButton( OutputDevice *const pDev, Rectangle aFillRect,
 
         Color aColor1;
         Color aColor2;
-        if ( nStyle & (BUTTON_DRAW_PRESSED | BUTTON_DRAW_CHECKED) )
+        if ( nStyle & (DrawButtonFlags::Pressed | DrawButtonFlags::Checked) )
         {
             aColor1 = rStyleSettings.GetDarkShadowColor();
             aColor2 = rStyleSettings.GetLightColor();
         }
         else
         {
-            if ( nStyle & BUTTON_DRAW_NOLIGHTBORDER )
+            if ( nStyle & DrawButtonFlags::NoLightBorder )
                 aColor1 = rStyleSettings.GetLightBorderColor();
             else
                 aColor1 = rStyleSettings.GetLightColor();
-            if ( (nStyle & BUTTON_DRAW_FLATTEST) == BUTTON_DRAW_FLAT )
+            if ( (nStyle & BUTTON_DRAW_FLATTEST) == DrawButtonFlags::Flat )
                 aColor2 = rStyleSettings.GetShadowColor();
             else
                 aColor2 = rStyleSettings.GetDarkShadowColor();
@@ -590,16 +590,16 @@ void ImplDrawButton( OutputDevice *const pDev, Rectangle aFillRect,
 
         ImplDraw2ColorFrame( pDev, aFillRect, aColor1, aColor2 );
 
-        if ( !((nStyle & BUTTON_DRAW_FLATTEST) == BUTTON_DRAW_FLAT) )
+        if ( !((nStyle & BUTTON_DRAW_FLATTEST) == DrawButtonFlags::Flat) )
         {
-            if ( nStyle & (BUTTON_DRAW_PRESSED | BUTTON_DRAW_CHECKED) )
+            if ( nStyle & (DrawButtonFlags::Pressed | DrawButtonFlags::Checked) )
             {
                 aColor1 = rStyleSettings.GetShadowColor();
                 aColor2 = rStyleSettings.GetLightBorderColor();
             }
             else
             {
-                if ( nStyle & BUTTON_DRAW_NOLIGHTBORDER )
+                if ( nStyle & DrawButtonFlags::NoLightBorder )
                     aColor1 = rStyleSettings.GetLightColor();
                 else
                     aColor1 = rStyleSettings.GetLightBorderColor();
@@ -608,10 +608,10 @@ void ImplDrawButton( OutputDevice *const pDev, Rectangle aFillRect,
             ImplDraw2ColorFrame( pDev, aFillRect, aColor1, aColor2 );
         }
 
-        if ( !(nStyle & BUTTON_DRAW_NOFILL) )
+        if ( !(nStyle & DrawButtonFlags::NoFill) )
         {
             pDev->SetLineColor();
-            if ( nStyle & (BUTTON_DRAW_CHECKED | BUTTON_DRAW_DONTKNOW) )
+            if ( nStyle & (DrawButtonFlags::Checked | DrawButtonFlags::DontKnow) )
                 pDev->SetFillColor( rStyleSettings.GetCheckedColor() );
             else
                 pDev->SetFillColor( rStyleSettings.GetFaceColor() );
@@ -969,7 +969,7 @@ Rectangle DecorationView::DrawFrame( const Rectangle& rRect, DrawFrameStyle nSty
     return aRect;
 }
 
-Rectangle DecorationView::DrawButton( const Rectangle& rRect, sal_uInt16 nStyle )
+Rectangle DecorationView::DrawButton( const Rectangle& rRect, DrawButtonFlags nStyle )
 {
     if ( rRect.IsEmpty() )
     {
@@ -997,17 +997,17 @@ Rectangle DecorationView::DrawButton( const Rectangle& rRect, sal_uInt16 nStyle
     --aRect.Right();
     --aRect.Bottom();
 
-    if ( nStyle & BUTTON_DRAW_NOLIGHTBORDER )
+    if ( nStyle & DrawButtonFlags::NoLightBorder )
     {
         ++aRect.Left();
         ++aRect.Top();
     }
-    else if ( nStyle & BUTTON_DRAW_NOLEFTLIGHTBORDER )
+    else if ( nStyle & DrawButtonFlags::NoLeftLightBorder )
     {
         ++aRect.Left();
     }
 
-    if ( nStyle & BUTTON_DRAW_PRESSED )
+    if ( nStyle & DrawButtonFlags::Pressed )
     {
         if ( (aRect.GetHeight() > 10) && (aRect.GetWidth() > 10) )
         {
@@ -1024,7 +1024,7 @@ Rectangle DecorationView::DrawButton( const Rectangle& rRect, sal_uInt16 nStyle
             aRect.Bottom() -= 2;
         }
     }
-    else if ( nStyle & BUTTON_DRAW_CHECKED )
+    else if ( nStyle & DrawButtonFlags::Checked )
     {
         aRect.Left()   += 3;
         aRect.Top()    += 3;
diff --git a/vcl/source/window/toolbox.cxx b/vcl/source/window/toolbox.cxx
index ce89b27..ca0eca0 100644
--- a/vcl/source/window/toolbox.cxx
+++ b/vcl/source/window/toolbox.cxx
@@ -2981,7 +2981,7 @@ void ToolBox::ImplDrawItem(vcl::RenderContext& rRenderContext, sal_uInt16 nPos,
     long    nOffY       = SMALLBUTTON_OFF_NORMAL_Y;
     long    nImageOffX  = 0;
     long    nImageOffY  = 0;
-    sal_uInt16  nStyle      = 0;
+    DrawButtonFlags nStyle      = DrawButtonFlags::NONE;
 
     // draw separators in flat style only
     if ( !bLayout &&
@@ -3056,15 +3056,15 @@ void ToolBox::ImplDrawItem(vcl::RenderContext& rRenderContext, sal_uInt16 nPos,
 
     if ( pItem->meState == TRISTATE_TRUE )
     {
-        nStyle |= BUTTON_DRAW_CHECKED;
+        nStyle |= DrawButtonFlags::Checked;
     }
     else if ( pItem->meState == TRISTATE_INDET )
     {
-        nStyle |= BUTTON_DRAW_DONTKNOW;
+        nStyle |= DrawButtonFlags::DontKnow;
     }
     if ( nHighlight == 1 )
     {
-        nStyle |= BUTTON_DRAW_PRESSED;
+        nStyle |= DrawButtonFlags::Pressed;
     }
 
     if( ! bLayout )
commit d61f0a8c8634827ad427ebb4609d389164c0cc79
Author: Noel Grandin <noel at peralex.com>
Date:   Mon May 11 10:58:11 2015 +0200

    convert FRAME_HIGHLIGHT constants to scoped enum
    
    Change-Id: I44bd2c54c8b1d6cafd7c15eaf0d77a336ac3fa65

diff --git a/include/vcl/decoview.hxx b/include/vcl/decoview.hxx
index a57c527..ffe2b17 100644
--- a/include/vcl/decoview.hxx
+++ b/include/vcl/decoview.hxx
@@ -68,10 +68,11 @@ namespace o3tl
 }
 
 // Flags for DrawHighlightFrame()
-#define FRAME_HIGHLIGHT_IN                  ((sal_uInt16)0x0001)
-#define FRAME_HIGHLIGHT_OUT                 ((sal_uInt16)0x0002)
-#define FRAME_HIGHLIGHT_TESTBACKGROUND      ((sal_uInt16)0x4000)
-#define FRAME_HIGHLIGHT_STYLE               ((sal_uInt16)0x000F)
+enum class DrawHighlightFrameStyle
+{
+    In                  = 1,
+    Out                 = 2,
+};
 
 // Flags for DrawButton()
 #define BUTTON_DRAW_DEFAULT                 ((sal_uInt16)0x0001)
@@ -102,7 +103,7 @@ public:
                                    const Color& rLeftTopColor,
                                    const Color& rRightBottomColor );
     void                DrawHighlightFrame( const Rectangle& rRect,
-                                            sal_uInt16 nStyle = FRAME_HIGHLIGHT_OUT );
+                                            DrawHighlightFrameStyle nStyle = DrawHighlightFrameStyle::Out, bool bTestBackground = false );
     Rectangle           DrawFrame( const Rectangle& rRect, DrawFrameStyle nStyle = DrawFrameStyle::Out, DrawFrameFlags nFlags = DrawFrameFlags::NONE );
     Rectangle           DrawButton( const Rectangle& rRect, sal_uInt16 nStyle );
     void                DrawSeparator( const Point& rStart, const Point& rStop, bool bVertical = true );
diff --git a/svtools/source/contnr/imivctl1.cxx b/svtools/source/contnr/imivctl1.cxx
index d28af60..d5f610c 100644
--- a/svtools/source/contnr/imivctl1.cxx
+++ b/svtools/source/contnr/imivctl1.cxx
@@ -3574,12 +3574,12 @@ void SvxIconChoiceCtrl_Impl::DrawHighlightFrame(vcl::RenderContext& rRenderConte
     else
     {
         DecorationView aDecoView(&rRenderContext);
-        sal_uInt16 nDecoFlags;
+        DrawHighlightFrameStyle nDecoFlags;
         if (bHighlightFramePressed)
-            nDecoFlags = FRAME_HIGHLIGHT_TESTBACKGROUND | FRAME_HIGHLIGHT_IN;
+            nDecoFlags = DrawHighlightFrameStyle::In;
         else
-            nDecoFlags = FRAME_HIGHLIGHT_TESTBACKGROUND | FRAME_HIGHLIGHT_OUT;
-        aDecoView.DrawHighlightFrame(aBmpRect, nDecoFlags);
+            nDecoFlags = DrawHighlightFrameStyle::Out;
+        aDecoView.DrawHighlightFrame(aBmpRect, nDecoFlags, true/*bTestBackground*/);
     }
 }
 
diff --git a/vcl/source/window/decoview.cxx b/vcl/source/window/decoview.cxx
index 76d5d58..e4e2717 100644
--- a/vcl/source/window/decoview.cxx
+++ b/vcl/source/window/decoview.cxx
@@ -889,7 +889,7 @@ void DecorationView::DrawFrame( const Rectangle& rRect,
 }
 
 void DecorationView::DrawHighlightFrame( const Rectangle& rRect,
-                                         sal_uInt16 nStyle )
+                                         DrawHighlightFrameStyle nStyle, bool bTestBackground )
 {
     const StyleSettings& rStyleSettings = mpOutDev->GetSettings().GetStyleSettings();
     Color aLightColor = rStyleSettings.GetLightColor();
@@ -901,7 +901,7 @@ void DecorationView::DrawHighlightFrame( const Rectangle& rRect,
         aLightColor = Color( COL_BLACK );
         aShadowColor = Color( COL_BLACK );
     }
-    else if ( nStyle & FRAME_HIGHLIGHT_TESTBACKGROUND )
+    else if ( bTestBackground )
     {
         Wallpaper aBackground = mpOutDev->GetBackground();
         if ( aBackground.IsBitmap() || aBackground.IsGradient() )
@@ -926,7 +926,7 @@ void DecorationView::DrawHighlightFrame( const Rectangle& rRect,
         }
     }
 
-    if ( (nStyle & FRAME_HIGHLIGHT_STYLE) == FRAME_HIGHLIGHT_IN )
+    if ( nStyle == DrawHighlightFrameStyle::In )
     {
         Color aTempColor = aLightColor;
         aLightColor = aShadowColor;


More information about the Libreoffice-commits mailing list