[Libreoffice-commits] core.git: 5 commits - forms/source include/svtools include/vcl sc/source sd/source svtools/source svx/source sw/inc sw/source toolkit/source vcl/headless vcl/inc vcl/osx vcl/source vcl/unx vcl/win

Noel Grandin noel at peralex.com
Wed May 27 02:15:26 PDT 2015


 forms/source/richtext/richtextcontrol.cxx      |    2 
 forms/source/richtext/richtextimplcontrol.cxx  |    2 
 forms/source/richtext/richtextimplcontrol.hxx  |    2 
 forms/source/richtext/richtextvclcontrol.cxx   |    2 
 forms/source/richtext/richtextvclcontrol.hxx   |    2 
 include/svtools/brwbox.hxx                     |    2 
 include/svtools/editbrowsebox.hxx              |    2 
 include/svtools/filectrl.hxx                   |    2 
 include/svtools/headbar.hxx                    |    4 -
 include/vcl/button.hxx                         |   18 ++---
 include/vcl/combobox.hxx                       |    2 
 include/vcl/dialog.hxx                         |    2 
 include/vcl/edit.hxx                           |    2 
 include/vcl/fixed.hxx                          |   14 ++--
 include/vcl/group.hxx                          |    4 -
 include/vcl/imgctrl.hxx                        |    4 -
 include/vcl/lstbox.hxx                         |    2 
 include/vcl/scrbar.hxx                         |    2 
 include/vcl/spin.hxx                           |    2 
 include/vcl/spinfld.hxx                        |    2 
 include/vcl/tabpage.hxx                        |    2 
 include/vcl/vclmedit.hxx                       |    2 
 include/vcl/window.hxx                         |   81 +++++++++++++++----------
 sc/source/ui/view/gridwin.cxx                  |    2 
 sd/source/ui/slidesorter/shell/SlideSorter.cxx |    2 
 sd/source/ui/view/sdwindow.cxx                 |    2 
 svtools/source/brwbox/brwbox2.cxx              |    6 -
 svtools/source/brwbox/ebbcontrols.cxx          |    2 
 svtools/source/control/filectrl.cxx            |    2 
 svtools/source/control/headbar.cxx             |   10 +--
 svx/source/fmcomp/gridcell.cxx                 |    2 
 sw/inc/SidebarWin.hxx                          |    2 
 sw/source/core/view/viewsh.cxx                 |    2 
 sw/source/uibase/docvw/PostItMgr.cxx           |    2 
 sw/source/uibase/docvw/SidebarTxtControl.cxx   |    2 
 sw/source/uibase/docvw/SidebarTxtControl.hxx   |    2 
 sw/source/uibase/docvw/SidebarWin.cxx          |    2 
 sw/source/uibase/docvw/edtwin.cxx              |    2 
 toolkit/source/awt/vclxtabpagecontainer.cxx    |    2 
 toolkit/source/awt/vclxwindow.cxx              |    4 -
 toolkit/source/awt/vclxwindows.cxx             |    8 +-
 vcl/headless/svpframe.cxx                      |    2 
 vcl/inc/headless/svpframe.hxx                  |    2 
 vcl/inc/osx/salframe.h                         |    2 
 vcl/inc/salframe.hxx                           |    2 
 vcl/inc/unx/gtk/gtkframe.hxx                   |    4 -
 vcl/inc/unx/i18n_ic.hxx                        |    4 -
 vcl/inc/unx/salframe.h                         |    2 
 vcl/inc/win/salframe.h                         |    2 
 vcl/inc/window.h                               |    3 
 vcl/osx/salframe.cxx                           |    2 
 vcl/source/control/button.cxx                  |   61 +++++++++---------
 vcl/source/control/combobox.cxx                |   10 +--
 vcl/source/control/edit.cxx                    |   10 +--
 vcl/source/control/fixed.cxx                   |   40 ++++++------
 vcl/source/control/group.cxx                   |   22 +++---
 vcl/source/control/imgctrl.cxx                 |   12 +--
 vcl/source/control/lstbox.cxx                  |   10 +--
 vcl/source/control/scrbar.cxx                  |    4 -
 vcl/source/control/spinbtn.cxx                 |    4 -
 vcl/source/control/spinfld.cxx                 |    8 +-
 vcl/source/control/tabctrl.cxx                 |    2 
 vcl/source/edit/vclmedit.cxx                   |   14 ++--
 vcl/source/window/clipping.cxx                 |   34 ++--------
 vcl/source/window/dialog.cxx                   |    4 -
 vcl/source/window/dlgctrl.cxx                  |   44 ++++++-------
 vcl/source/window/event.cxx                    |    4 -
 vcl/source/window/floatwin.cxx                 |    2 
 vcl/source/window/mouse.cxx                    |    8 +-
 vcl/source/window/tabpage.cxx                  |    2 
 vcl/source/window/toolbox.cxx                  |    2 
 vcl/source/window/window.cxx                   |   10 +--
 vcl/source/window/window2.cxx                  |    4 -
 vcl/source/window/winproc.cxx                  |    4 -
 vcl/unx/generic/app/i18n_ic.cxx                |    2 
 vcl/unx/generic/window/salframe.cxx            |    2 
 vcl/unx/gtk/window/gtksalframe.cxx             |    6 -
 vcl/win/source/window/salframe.cxx             |    8 +-
 78 files changed, 289 insertions(+), 284 deletions(-)

New commits:
commit 66854d697f973f36e1b878080999901e0936dae6
Author: Noel Grandin <noel at peralex.com>
Date:   Wed May 27 09:37:41 2015 +0200

    convert WINDOW_DRAW flags to scoped enum
    
    Change-Id: I9400a286fab18d683b4c109007961685f01b6da3

diff --git a/forms/source/richtext/richtextcontrol.cxx b/forms/source/richtext/richtextcontrol.cxx
index 03d7087..b775f64 100644
--- a/forms/source/richtext/richtextcontrol.cxx
+++ b/forms/source/richtext/richtextcontrol.cxx
@@ -359,7 +359,7 @@ namespace frm
         if ( eTargetUnit != MAP_PIXEL )
             aPos = pTargetDevice->PixelToLogic( aPos );
 
-        pControl->Draw( pTargetDevice, aPos, aSize, WINDOW_DRAW_NOCONTROLS );
+        pControl->Draw( pTargetDevice, aPos, aSize, DrawFlags::NoControls );
     }
 
 
diff --git a/forms/source/richtext/richtextimplcontrol.cxx b/forms/source/richtext/richtextimplcontrol.cxx
index bc4a629..a37190d 100644
--- a/forms/source/richtext/richtextimplcontrol.cxx
+++ b/forms/source/richtext/richtextimplcontrol.cxx
@@ -569,7 +569,7 @@ namespace frm
     }
 
 
-    void RichTextControlImpl::Draw( OutputDevice* _pDev, const Point& _rPos, const Size& _rSize, sal_uLong /*_nFlags*/ )
+    void RichTextControlImpl::Draw( OutputDevice* _pDev, const Point& _rPos, const Size& _rSize, DrawFlags /*_nFlags*/ )
     {
         // need to normalize the map mode of the device - every paint operation on any device needs
         // to use the same map mode
diff --git a/forms/source/richtext/richtextimplcontrol.hxx b/forms/source/richtext/richtextimplcontrol.hxx
index ce4f221..aba1e06 100644
--- a/forms/source/richtext/richtextimplcontrol.hxx
+++ b/forms/source/richtext/richtextimplcontrol.hxx
@@ -142,7 +142,7 @@ namespace frm
         bool    GetHideInactiveSelection() const;
 
         /// draws the control onto a given output device
-        void    Draw( OutputDevice* _pDev, const Point& _rPos, const Size& _rSize, sal_uLong _nFlags );
+        void    Draw( OutputDevice* _pDev, const Point& _rPos, const Size& _rSize, DrawFlags _nFlags );
 
         /// handles command events arrived at the anti-impl control
         long    HandleCommand( const CommandEvent& _rEvent );
diff --git a/forms/source/richtext/richtextvclcontrol.cxx b/forms/source/richtext/richtextvclcontrol.cxx
index 8048137..a444551 100644
--- a/forms/source/richtext/richtextvclcontrol.cxx
+++ b/forms/source/richtext/richtextvclcontrol.cxx
@@ -296,7 +296,7 @@ namespace frm
     }
 
 
-    void RichTextControl::Draw( OutputDevice* _pDev, const Point& _rPos, const Size& _rSize, sal_uLong _nFlags )
+    void RichTextControl::Draw( OutputDevice* _pDev, const Point& _rPos, const Size& _rSize, DrawFlags _nFlags )
     {
         m_pImpl->Draw( _pDev, _rPos, _rSize, _nFlags );
     }
diff --git a/forms/source/richtext/richtextvclcontrol.hxx b/forms/source/richtext/richtextvclcontrol.hxx
index b5532ca..7abdcf5 100644
--- a/forms/source/richtext/richtextvclcontrol.hxx
+++ b/forms/source/richtext/richtextvclcontrol.hxx
@@ -100,7 +100,7 @@ namespace frm
               EditView& getView();
 
         // Window overridables
-        virtual void        Draw( OutputDevice* _pDev, const Point& _rPos, const Size& _rSize, sal_uLong _nFlags ) SAL_OVERRIDE;
+        virtual void        Draw( OutputDevice* _pDev, const Point& _rPos, const Size& _rSize, DrawFlags _nFlags ) SAL_OVERRIDE;
 
     protected:
         // Window overridables
diff --git a/include/svtools/brwbox.hxx b/include/svtools/brwbox.hxx
index 6c34655..8da4925 100644
--- a/include/svtools/brwbox.hxx
+++ b/include/svtools/brwbox.hxx
@@ -436,7 +436,7 @@ public:
     virtual void    GetFocus() SAL_OVERRIDE;
     virtual void    Resize() SAL_OVERRIDE;
     virtual void    Paint( vcl::RenderContext& rRenderContext, const Rectangle& rRect ) SAL_OVERRIDE;
-    virtual void    Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_uLong nFlags ) SAL_OVERRIDE;
+    virtual void    Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, DrawFlags nFlags ) SAL_OVERRIDE;
     virtual void    Command( const CommandEvent& rEvt ) SAL_OVERRIDE;
     virtual void    StartDrag( sal_Int8 _nAction, const Point& _rPosPixel ) SAL_OVERRIDE;
 
diff --git a/include/svtools/editbrowsebox.hxx b/include/svtools/editbrowsebox.hxx
index 5fdfc37..2e4bac8 100644
--- a/include/svtools/editbrowsebox.hxx
+++ b/include/svtools/editbrowsebox.hxx
@@ -291,7 +291,7 @@ namespace svt
         virtual void GetFocus() SAL_OVERRIDE;
         virtual bool PreNotify(NotifyEvent& rEvt) SAL_OVERRIDE;
         virtual void Paint(vcl::RenderContext& rRenderContext, const Rectangle& rClientRect) SAL_OVERRIDE;
-        virtual void Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_uLong nFlags ) SAL_OVERRIDE;
+        virtual void Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, DrawFlags nFlags ) SAL_OVERRIDE;
         virtual void StateChanged( StateChangedType nStateChange ) SAL_OVERRIDE;
         virtual void DataChanged( const DataChangedEvent& _rEvent ) SAL_OVERRIDE;
         virtual void Resize() SAL_OVERRIDE;
diff --git a/include/svtools/filectrl.hxx b/include/svtools/filectrl.hxx
index 8f6abd2..a0340b8 100644
--- a/include/svtools/filectrl.hxx
+++ b/include/svtools/filectrl.hxx
@@ -83,7 +83,7 @@ public:
     Edit&           GetEdit() { return *maEdit.get(); }
     PushButton&     GetButton() { return *maButton.get(); }
 
-    void            Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_uLong nFlags ) SAL_OVERRIDE;
+    void            Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, DrawFlags nFlags ) SAL_OVERRIDE;
 
     void            SetOpenDialog( bool bOpen )     { mbOpenDlg = bOpen; }
     bool            IsOpenDialog() const            { return mbOpenDlg; }
diff --git a/include/svtools/headbar.hxx b/include/svtools/headbar.hxx
index 9feeaa2..77d9bed 100644
--- a/include/svtools/headbar.hxx
+++ b/include/svtools/headbar.hxx
@@ -272,7 +272,7 @@ private:
     SVT_DLLPRIVATE sal_uInt16               ImplHitTest( const Point& rPos, long& nMouseOff, sal_uInt16& nPos ) const;
     SVT_DLLPRIVATE void             ImplInvertDrag( sal_uInt16 nStartPos, sal_uInt16 nEndPos );
     SVT_DLLPRIVATE void             ImplDrawItem(vcl::RenderContext& rRenderContext, sal_uInt16 nPos, bool bHigh, bool bDrag,
-                                                 const Rectangle& rItemRect, const Rectangle* pRect, sal_uLong nFlags);
+                                                 const Rectangle& rItemRect, const Rectangle* pRect, DrawFlags nFlags);
     SVT_DLLPRIVATE void             ImplDrawItem(vcl::RenderContext& rRenderContext, sal_uInt16 nPos, bool bHigh = false,
                                                  bool bDrag = false, const Rectangle* pRect = NULL);
     SVT_DLLPRIVATE void             ImplUpdate( sal_uInt16 nPos,
@@ -292,7 +292,7 @@ public:
     virtual void        MouseMove( const MouseEvent& rMEvt ) SAL_OVERRIDE;
     virtual void        Tracking( const TrackingEvent& rTEvt ) SAL_OVERRIDE;
     virtual void        Paint(vcl::RenderContext& rRenderContext, const Rectangle& rRect) SAL_OVERRIDE;
-    virtual void        Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_uLong nFlags ) SAL_OVERRIDE;
+    virtual void        Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, DrawFlags nFlags ) SAL_OVERRIDE;
     virtual void        Resize() SAL_OVERRIDE;
     virtual void        Command( const CommandEvent& rCEvt ) SAL_OVERRIDE;
     virtual void        RequestHelp( const HelpEvent& rHEvt ) SAL_OVERRIDE;
diff --git a/include/vcl/button.hxx b/include/vcl/button.hxx
index 6c79094..183b2b1 100644
--- a/include/vcl/button.hxx
+++ b/include/vcl/button.hxx
@@ -49,9 +49,9 @@ private:
 public:
     SAL_DLLPRIVATE DrawButtonFlags  ImplGetButtonState() const;
     SAL_DLLPRIVATE DrawButtonFlags& ImplGetButtonState();
-    SAL_DLLPRIVATE DrawTextFlags    ImplGetTextStyle( OUString& rText, WinBits nWinStyle, sal_uLong nDrawFlags );
+    SAL_DLLPRIVATE DrawTextFlags    ImplGetTextStyle( OUString& rText, WinBits nWinStyle, DrawFlags nDrawFlags );
     SAL_DLLPRIVATE void             ImplDrawAlignedImage(OutputDevice* pDev, Point& rPos, Size& rSize,
-                                              bool bLayout, sal_uLong nImageSep, sal_uLong nDrawFlags,
+                                              bool bLayout, sal_uLong nImageSep, DrawFlags nDrawFlags,
                                               DrawTextFlags nTextStyle, Rectangle *pSymbolRect=NULL, bool bAddImageSep = false );
     SAL_DLLPRIVATE void             ImplSetFocusRect( const Rectangle &rFocusRect );
     SAL_DLLPRIVATE const Rectangle& ImplGetFocusRect() const;
@@ -126,11 +126,11 @@ protected:
     SAL_DLLPRIVATE void            ImplInitPushButtonData();
     SAL_DLLPRIVATE WinBits         ImplInitStyle( const vcl::Window* pPrevWindow, WinBits nStyle );
     SAL_DLLPRIVATE void            ImplInitSettings( bool bFont, bool bForeground, bool bBackground );
-    SAL_DLLPRIVATE void            ImplDrawPushButtonContent(OutputDevice* pDev, sal_uLong nDrawFlags,
+    SAL_DLLPRIVATE void            ImplDrawPushButtonContent(OutputDevice* pDev, DrawFlags nDrawFlags,
                                                              const Rectangle& rRect, bool bLayout, bool bMenuBtnSep);
     SAL_DLLPRIVATE void            ImplDrawPushButton(vcl::RenderContext& rRenderContext, bool bLayout = false);
     using Button::ImplGetTextStyle;
-    SAL_DLLPRIVATE DrawTextFlags   ImplGetTextStyle( sal_uLong nDrawFlags ) const;
+    SAL_DLLPRIVATE DrawTextFlags   ImplGetTextStyle( DrawFlags nDrawFlags ) const;
     SAL_DLLPRIVATE bool            IsSymbol() const { return ( (meSymbol != SymbolType::DONTKNOW) && (meSymbol != SymbolType::IMAGE) ); }
     SAL_DLLPRIVATE bool            IsImage() const { return Button::HasImage(); }
 
@@ -165,7 +165,7 @@ public:
     virtual void    KeyInput( const KeyEvent& rKEvt ) SAL_OVERRIDE;
     virtual void    KeyUp( const KeyEvent& rKEvt ) SAL_OVERRIDE;
     virtual void    Paint( vcl::RenderContext& rRenderContext, const Rectangle& rRect ) SAL_OVERRIDE;
-    virtual void    Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_uLong nFlags ) SAL_OVERRIDE;
+    virtual void    Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, DrawFlags nFlags ) SAL_OVERRIDE;
     virtual void    Resize() SAL_OVERRIDE;
     virtual void    GetFocus() SAL_OVERRIDE;
     virtual void    LoseFocus() SAL_OVERRIDE;
@@ -298,7 +298,7 @@ private:
     SAL_DLLPRIVATE WinBits  ImplInitStyle( const vcl::Window* pPrevWindow, WinBits nStyle );
     SAL_DLLPRIVATE void     ImplInitSettings( bool bFont, bool bForeground, bool bBackground );
     SAL_DLLPRIVATE void     ImplDrawRadioButtonState(vcl::RenderContext& rRenderContext);
-    SAL_DLLPRIVATE void     ImplDraw( OutputDevice* pDev, sal_uLong nDrawFlags,
+    SAL_DLLPRIVATE void     ImplDraw( OutputDevice* pDev, DrawFlags nDrawFlags,
                               const Point& rPos, const Size& rSize,
                               const Size& rImageSize, Rectangle& rStateRect,
                               Rectangle& rMouseRect, bool bLayout = false );
@@ -347,7 +347,7 @@ public:
     virtual void    KeyInput( const KeyEvent& rKEvt ) SAL_OVERRIDE;
     virtual void    KeyUp( const KeyEvent& rKEvt ) SAL_OVERRIDE;
     virtual void    Paint( vcl::RenderContext& rRenderContext, const Rectangle& rRect ) SAL_OVERRIDE;
-    virtual void    Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_uLong nFlags ) SAL_OVERRIDE;
+    virtual void    Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, DrawFlags nFlags ) SAL_OVERRIDE;
     virtual void    Resize() SAL_OVERRIDE;
     virtual void    GetFocus() SAL_OVERRIDE;
     virtual void    LoseFocus() SAL_OVERRIDE;
@@ -426,7 +426,7 @@ private:
     SAL_DLLPRIVATE void         ImplInitCheckBoxData();
     SAL_DLLPRIVATE WinBits      ImplInitStyle( const vcl::Window* pPrevWindow, WinBits nStyle );
     SAL_DLLPRIVATE void         ImplInitSettings( bool bFont, bool bForeground, bool bBackground );
-    SAL_DLLPRIVATE void         ImplDraw( OutputDevice* pDev, sal_uLong nDrawFlags,
+    SAL_DLLPRIVATE void         ImplDraw( OutputDevice* pDev, DrawFlags nDrawFlags,
                                     const Point& rPos, const Size& rSize,
                                     const Size& rImageSize, Rectangle& rStateRect,
                                     Rectangle& rMouseRect, bool bLayout );
@@ -462,7 +462,7 @@ public:
     virtual void    KeyInput( const KeyEvent& rKEvt ) SAL_OVERRIDE;
     virtual void    KeyUp( const KeyEvent& rKEvt ) SAL_OVERRIDE;
     virtual void    Paint( vcl::RenderContext& rRenderContext, const Rectangle& rRect ) SAL_OVERRIDE;
-    virtual void    Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_uLong nFlags ) SAL_OVERRIDE;
+    virtual void    Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, DrawFlags nFlags ) SAL_OVERRIDE;
     virtual void    Resize() SAL_OVERRIDE;
     virtual void    GetFocus() SAL_OVERRIDE;
     virtual void    LoseFocus() SAL_OVERRIDE;
diff --git a/include/vcl/combobox.hxx b/include/vcl/combobox.hxx
index 50058fd..87e2b92 100644
--- a/include/vcl/combobox.hxx
+++ b/include/vcl/combobox.hxx
@@ -94,7 +94,7 @@ public:
     virtual         ~ComboBox();
     virtual void    dispose() SAL_OVERRIDE;
 
-    virtual void    Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_uLong nFlags ) SAL_OVERRIDE;
+    virtual void    Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, DrawFlags nFlags ) SAL_OVERRIDE;
     virtual void    Resize() SAL_OVERRIDE;
     virtual bool    PreNotify( NotifyEvent& rNEvt ) SAL_OVERRIDE;
     virtual bool    Notify( NotifyEvent& rNEvt ) SAL_OVERRIDE;
diff --git a/include/vcl/dialog.hxx b/include/vcl/dialog.hxx
index 2dc4cc3..8afe7748 100644
--- a/include/vcl/dialog.hxx
+++ b/include/vcl/dialog.hxx
@@ -71,7 +71,7 @@ public:
 protected:
     explicit        Dialog( WindowType nType );
     explicit        Dialog( vcl::Window* pParent, const OUString& rID, const OUString& rUIXMLDescription, WindowType nType, InitFlag eFlag = InitFlag::Default );
-    virtual void    Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_uLong nFlags ) SAL_OVERRIDE;
+    virtual void    Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, DrawFlags nFlags ) SAL_OVERRIDE;
     virtual void    settingOptimalLayoutSize(Window *pBox) SAL_OVERRIDE;
 
 protected:
diff --git a/include/vcl/edit.hxx b/include/vcl/edit.hxx
index 634722e..a116a1e 100644
--- a/include/vcl/edit.hxx
+++ b/include/vcl/edit.hxx
@@ -178,7 +178,7 @@ public:
     virtual void        KeyInput( const KeyEvent& rKEvt ) SAL_OVERRIDE;
     virtual void        Paint( vcl::RenderContext& rRenderContext, const Rectangle& rRect ) SAL_OVERRIDE;
     virtual void        Resize() SAL_OVERRIDE;
-    virtual void        Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_uLong nFlags ) SAL_OVERRIDE;
+    virtual void        Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, DrawFlags nFlags ) SAL_OVERRIDE;
     virtual void        GetFocus() SAL_OVERRIDE;
     virtual void        LoseFocus() SAL_OVERRIDE;
     virtual void        Tracking( const TrackingEvent& rTEvt ) SAL_OVERRIDE;
diff --git a/include/vcl/fixed.hxx b/include/vcl/fixed.hxx
index fc455d8..cfc7590 100644
--- a/include/vcl/fixed.hxx
+++ b/include/vcl/fixed.hxx
@@ -44,7 +44,7 @@ private:
     using Window::ImplInit;
     SAL_DLLPRIVATE void    ImplInit( vcl::Window* pParent, WinBits nStyle );
     SAL_DLLPRIVATE WinBits ImplInitStyle( WinBits nStyle );
-    SAL_DLLPRIVATE void    ImplDraw( OutputDevice* pDev, sal_uLong nDrawFlags,
+    SAL_DLLPRIVATE void    ImplDraw( OutputDevice* pDev, DrawFlags nDrawFlags,
                               const Point& rPos, const Size& rSize, bool bFillLayout = false ) const;
 public:
     SAL_DLLPRIVATE static DrawTextFlags ImplGetTextStyle( WinBits nWinBits );
@@ -66,7 +66,7 @@ public:
     virtual void    ApplySettings(vcl::RenderContext& rRenderContext) SAL_OVERRIDE;
 
     virtual void    Paint( vcl::RenderContext& rRenderContext, const Rectangle& rRect ) SAL_OVERRIDE;
-    virtual void    Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_uLong nFlags ) SAL_OVERRIDE;
+    virtual void    Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, DrawFlags nFlags ) SAL_OVERRIDE;
     virtual void    Resize() SAL_OVERRIDE;
     virtual void    StateChanged( StateChangedType nType ) SAL_OVERRIDE;
     virtual void    DataChanged( const DataChangedEvent& rDCEvt ) SAL_OVERRIDE;
@@ -120,7 +120,7 @@ public:
     virtual void    ApplySettings(vcl::RenderContext&) SAL_OVERRIDE;
 
     virtual void    Paint( vcl::RenderContext& rRenderContext, const Rectangle& rRect ) SAL_OVERRIDE;
-    virtual void    Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_uLong nFlags ) SAL_OVERRIDE;
+    virtual void    Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, DrawFlags nFlags ) SAL_OVERRIDE;
     virtual void    Resize() SAL_OVERRIDE;
     virtual void    StateChanged( StateChangedType nType ) SAL_OVERRIDE;
     virtual void    DataChanged( const DataChangedEvent& rDCEvt ) SAL_OVERRIDE;
@@ -138,7 +138,7 @@ private:
     using Window::ImplInit;
     SAL_DLLPRIVATE void    ImplInit( vcl::Window* pParent, WinBits nStyle );
     SAL_DLLPRIVATE WinBits ImplInitStyle( WinBits nStyle );
-    SAL_DLLPRIVATE void    ImplDraw( OutputDevice* pDev, sal_uLong nDrawFlags,
+    SAL_DLLPRIVATE void    ImplDraw( OutputDevice* pDev, DrawFlags nDrawFlags,
                               const Point& rPos, const Size& rSize );
 
 public:
@@ -147,7 +147,7 @@ public:
     virtual void    ApplySettings(vcl::RenderContext&) SAL_OVERRIDE;
 
     virtual void    Paint( vcl::RenderContext& rRenderContext, const Rectangle& rRect ) SAL_OVERRIDE;
-    virtual void    Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_uLong nFlags ) SAL_OVERRIDE;
+    virtual void    Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, DrawFlags nFlags ) SAL_OVERRIDE;
     virtual void    Resize() SAL_OVERRIDE;
     virtual void    StateChanged( StateChangedType nType ) SAL_OVERRIDE;
     virtual void    DataChanged( const DataChangedEvent& rDCEvt ) SAL_OVERRIDE;
@@ -174,7 +174,7 @@ private:
     SAL_DLLPRIVATE WinBits ImplInitStyle( WinBits nStyle );
 
 protected:
-    SAL_DLLPRIVATE void    ImplDraw( OutputDevice* pDev, sal_uLong nDrawFlags,
+    SAL_DLLPRIVATE void    ImplDraw( OutputDevice* pDev, DrawFlags nDrawFlags,
                               const Point& rPos, const Size& rSize );
     SAL_DLLPRIVATE void    ImplLoadRes( const ResId& rResId );
 
@@ -185,7 +185,7 @@ public:
     virtual void    ApplySettings(vcl::RenderContext&) SAL_OVERRIDE;
 
     virtual void    Paint( vcl::RenderContext& rRenderContext, const Rectangle& rRect ) SAL_OVERRIDE;
-    virtual void    Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_uLong nFlags ) SAL_OVERRIDE;
+    virtual void    Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, DrawFlags nFlags ) SAL_OVERRIDE;
     virtual void    Resize() SAL_OVERRIDE;
     virtual void    StateChanged( StateChangedType nType ) SAL_OVERRIDE;
     virtual void    DataChanged( const DataChangedEvent& rDCEvt ) SAL_OVERRIDE;
diff --git a/include/vcl/group.hxx b/include/vcl/group.hxx
index ec2e119..cacf2d3 100644
--- a/include/vcl/group.hxx
+++ b/include/vcl/group.hxx
@@ -36,7 +36,7 @@ private:
     SAL_DLLPRIVATE void     ImplInit( vcl::Window* pParent, WinBits nStyle );
     SAL_DLLPRIVATE WinBits  ImplInitStyle( WinBits nStyle );
     SAL_DLLPRIVATE void     ImplInitSettings( bool bFont, bool bForeground, bool bBackground );
-    SAL_DLLPRIVATE void     ImplDraw( OutputDevice* pDev, sal_uLong nDrawFlags,
+    SAL_DLLPRIVATE void     ImplDraw( OutputDevice* pDev, DrawFlags nDrawFlags,
                                       const Point& rPos, const Size& rSize, bool bLayout = false );
 
     virtual void    FillLayoutData() const SAL_OVERRIDE;
@@ -49,7 +49,7 @@ public:
     explicit        GroupBox( vcl::Window* pParent, WinBits nStyle = 0 );
 
     virtual void    Paint( vcl::RenderContext& rRenderContext, const Rectangle& rRect ) SAL_OVERRIDE;
-    virtual void    Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_uLong nFlags ) SAL_OVERRIDE;
+    virtual void    Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, DrawFlags nFlags ) SAL_OVERRIDE;
     virtual void    Resize() SAL_OVERRIDE;
     virtual void    StateChanged( StateChangedType nType ) SAL_OVERRIDE;
     virtual void    DataChanged( const DataChangedEvent& rDCEvt ) SAL_OVERRIDE;
diff --git a/include/vcl/imgctrl.hxx b/include/vcl/imgctrl.hxx
index 79f0780..6f7121f 100644
--- a/include/vcl/imgctrl.hxx
+++ b/include/vcl/imgctrl.hxx
@@ -42,13 +42,13 @@ public:
     ::sal_Int16     GetScaleMode() const { return mnScaleMode; }
 
     virtual void    Resize() SAL_OVERRIDE;
-    virtual void    Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_uLong nFlags ) SAL_OVERRIDE;
+    virtual void    Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, DrawFlags nFlags ) SAL_OVERRIDE;
     virtual void    Paint( vcl::RenderContext& rRenderContext, const Rectangle& rRect ) SAL_OVERRIDE;
     virtual void    GetFocus() SAL_OVERRIDE;
     virtual void    LoseFocus() SAL_OVERRIDE;
 
 protected:
-    void    ImplDraw( OutputDevice& rDev, sal_uLong nDrawFlags, const Point& rPos, const Size& rSize ) const;
+    void    ImplDraw( OutputDevice& rDev, DrawFlags nDrawFlags, const Point& rPos, const Size& rSize ) const;
 };
 
 #endif // INCLUDED_VCL_IMGCTRL_HXX
diff --git a/include/vcl/lstbox.hxx b/include/vcl/lstbox.hxx
index 8a5efc5..1197e68 100644
--- a/include/vcl/lstbox.hxx
+++ b/include/vcl/lstbox.hxx
@@ -86,7 +86,7 @@ public:
     virtual void        dispose() SAL_OVERRIDE;
 
     virtual void        ApplySettings(vcl::RenderContext& rRenderContext) SAL_OVERRIDE;
-    virtual void        Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_uLong nFlags ) SAL_OVERRIDE;
+    virtual void        Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, DrawFlags nFlags ) SAL_OVERRIDE;
     virtual void        Resize() SAL_OVERRIDE;
     virtual bool        PreNotify( NotifyEvent& rNEvt ) SAL_OVERRIDE;
     virtual void        StateChanged( StateChangedType nType ) SAL_OVERRIDE;
diff --git a/include/vcl/scrbar.hxx b/include/vcl/scrbar.hxx
index 0bc0d22..1c3c63f 100644
--- a/include/vcl/scrbar.hxx
+++ b/include/vcl/scrbar.hxx
@@ -97,7 +97,7 @@ public:
     virtual void Tracking(const TrackingEvent& rTEvt) SAL_OVERRIDE;
     virtual void KeyInput(const KeyEvent& rKEvt) SAL_OVERRIDE;
     virtual void Paint(vcl::RenderContext& rRenderContext, const Rectangle& rRect) SAL_OVERRIDE;
-    virtual void Draw(OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_uLong nFlags) SAL_OVERRIDE;
+    virtual void Draw(OutputDevice* pDev, const Point& rPos, const Size& rSize, DrawFlags nFlags) SAL_OVERRIDE;
     virtual void Resize() SAL_OVERRIDE;
     virtual void StateChanged(StateChangedType nType) SAL_OVERRIDE;
     virtual void DataChanged(const DataChangedEvent& rDCEvt) SAL_OVERRIDE;
diff --git a/include/vcl/spin.hxx b/include/vcl/spin.hxx
index 48c8b4e..c97b1b1 100644
--- a/include/vcl/spin.hxx
+++ b/include/vcl/spin.hxx
@@ -63,7 +63,7 @@ public:
 
     virtual void    Resize() SAL_OVERRIDE;
     virtual void    Paint( vcl::RenderContext& rRenderContext, const Rectangle& rRect ) SAL_OVERRIDE;
-    virtual void    Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_uLong nFlags ) SAL_OVERRIDE;
+    virtual void    Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, DrawFlags nFlags ) SAL_OVERRIDE;
     virtual void    MouseButtonDown( const MouseEvent& rMEvt ) SAL_OVERRIDE;
     virtual void    MouseButtonUp( const MouseEvent& rMEvt ) SAL_OVERRIDE;
     virtual void    MouseMove( const MouseEvent& rMEvt ) SAL_OVERRIDE;
diff --git a/include/vcl/spinfld.hxx b/include/vcl/spinfld.hxx
index bf4879b..9c2efcb 100644
--- a/include/vcl/spinfld.hxx
+++ b/include/vcl/spinfld.hxx
@@ -83,7 +83,7 @@ public:
     virtual void    MouseButtonUp( const MouseEvent& rMEvt ) SAL_OVERRIDE;
     virtual void    MouseMove( const MouseEvent& rMEvt ) SAL_OVERRIDE;
     virtual void    Paint( vcl::RenderContext& rRenderContext, const Rectangle& rRect ) SAL_OVERRIDE;
-    virtual void    Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_uLong nFlags ) SAL_OVERRIDE;
+    virtual void    Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, DrawFlags nFlags ) SAL_OVERRIDE;
     virtual void    Resize() SAL_OVERRIDE;
     virtual void    StateChanged( StateChangedType nType ) SAL_OVERRIDE;
     virtual void    DataChanged( const DataChangedEvent& rDCEvt ) SAL_OVERRIDE;
diff --git a/include/vcl/tabpage.hxx b/include/vcl/tabpage.hxx
index 86a81cb..6a022f8 100644
--- a/include/vcl/tabpage.hxx
+++ b/include/vcl/tabpage.hxx
@@ -45,7 +45,7 @@ public:
     virtual void    dispose() SAL_OVERRIDE;
 
     virtual void    Paint( vcl::RenderContext& rRenderContext, const Rectangle& rRect ) SAL_OVERRIDE;
-    virtual void    Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_uLong nFlags ) SAL_OVERRIDE;
+    virtual void    Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, DrawFlags nFlags ) SAL_OVERRIDE;
 
     virtual void    StateChanged( StateChangedType nStateChange ) SAL_OVERRIDE;
     virtual void    DataChanged( const DataChangedEvent& rDCEvt ) SAL_OVERRIDE;
diff --git a/include/vcl/vclmedit.hxx b/include/vcl/vclmedit.hxx
index d7eb480..5416521 100644
--- a/include/vcl/vclmedit.hxx
+++ b/include/vcl/vclmedit.hxx
@@ -123,7 +123,7 @@ public:
     Size            CalcBlockSize( sal_uInt16 nColumns, sal_uInt16 nLines ) const;
     void            GetMaxVisColumnsAndLines( sal_uInt16& rnCols, sal_uInt16& rnLines ) const;
 
-    void            Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_uLong nFlags ) SAL_OVERRIDE;
+    void            Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, DrawFlags nFlags ) SAL_OVERRIDE;
 
     void            SetLeftMargin( sal_uInt16 n );
 
diff --git a/include/vcl/window.hxx b/include/vcl/window.hxx
index ec12c25..8caf63f 100644
--- a/include/vcl/window.hxx
+++ b/include/vcl/window.hxx
@@ -337,16 +337,24 @@ enum class StateChangedType : sal_uInt16
 #define GETFOCUS_FLOATWIN_POPUPMODEEND_CANCEL ((sal_uInt16)0x0400)
 
 
-// Draw-Flags fuer Draw()
-#define WINDOW_DRAW_MONO                ((sal_uLong)0x00000001)
-#define WINDOW_DRAW_NOBORDER            ((sal_uLong)0x00000002)
-#define WINDOW_DRAW_NOCONTROLS          ((sal_uLong)0x00000004)
-#define WINDOW_DRAW_NODISABLE           ((sal_uLong)0x00000008)
-#define WINDOW_DRAW_NOMNEMONIC          ((sal_uLong)0x00000010)
-#define WINDOW_DRAW_NOSELECTION         ((sal_uLong)0x00000020)
-#define WINDOW_DRAW_NOFOCUS             ((sal_uLong)0x00000040)
-#define WINDOW_DRAW_NOBACKGROUND        ((sal_uLong)0x00000080)
-#define WINDOW_DRAW_ROLLOVER            ((sal_uLong)0x00000100)
+// Flags for Draw()
+enum class DrawFlags
+{
+    NONE                = 0x0000,
+    Mono                = 0x0001,
+    NoBorder            = 0x0002,
+    NoControls          = 0x0004,
+    NoDisable           = 0x0008,
+    NoMnemonic          = 0x0010,
+    NoSelection         = 0x0020,
+    NoFocus             = 0x0040,
+    NoBackground        = 0x0080,
+    NoRollover          = 0x0100,
+};
+namespace o3tl
+{
+    template<> struct typed_flags<DrawFlags> : is_typed_flags<DrawFlags, 0x01ff> {};
+}
 
 // DialogControl-Flags
 enum class DialogControlFlags
@@ -826,7 +834,7 @@ public:
         OutputDevice::Erase(rRect);
     }
 
-    virtual void                        Draw( ::OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_uLong nFlags );
+    virtual void                        Draw( ::OutputDevice* pDev, const Point& rPos, const Size& rSize, DrawFlags nFlags );
     virtual void                        Move();
     virtual void                        Resize();
     virtual void                        Activate();
diff --git a/svtools/source/brwbox/brwbox2.cxx b/svtools/source/brwbox/brwbox2.cxx
index 1fa03aa..ff53f44 100644
--- a/svtools/source/brwbox/brwbox2.cxx
+++ b/svtools/source/brwbox/brwbox2.cxx
@@ -701,9 +701,9 @@ void BrowseBox::Paint(vcl::RenderContext& rRenderContext, const Rectangle& rRect
 
 
 
-void BrowseBox::Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_uLong nFlags )
+void BrowseBox::Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, DrawFlags nFlags )
 {
-    bool bDrawSelection = (nFlags & WINDOW_DRAW_NOSELECTION) == 0;
+    bool bDrawSelection = !(nFlags & DrawFlags::NoSelection);
 
     // we need pixel coordinates
     Size aRealSize = pDev->LogicToPixel(rSize);
@@ -815,7 +815,7 @@ void BrowseBox::Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize,
     pDev->SetClipRegion( pDev->PixelToLogic( aRegion ) );
 
     // do we have to paint the background
-    bool bBackground = !(nFlags & WINDOW_DRAW_NOBACKGROUND) && GetDataWindow().IsControlBackground();
+    bool bBackground = !(nFlags & DrawFlags::NoBackground) && GetDataWindow().IsControlBackground();
     if ( bBackground )
     {
         Rectangle aRect( aRealPos, aRealSize );
diff --git a/svtools/source/brwbox/ebbcontrols.cxx b/svtools/source/brwbox/ebbcontrols.cxx
index a23e325..e55b90d 100644
--- a/svtools/source/brwbox/ebbcontrols.cxx
+++ b/svtools/source/brwbox/ebbcontrols.cxx
@@ -288,7 +288,7 @@ namespace svt
     }
 
 
-    void CheckBoxControl::Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_uLong nFlags )
+    void CheckBoxControl::Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, DrawFlags nFlags )
     {
         pBox->Draw(pDev,rPos,rSize,nFlags);
     }
diff --git a/svtools/source/control/filectrl.cxx b/svtools/source/control/filectrl.cxx
index ab07a4a..ab520bf 100644
--- a/svtools/source/control/filectrl.cxx
+++ b/svtools/source/control/filectrl.cxx
@@ -205,7 +205,7 @@ void FileControl::SetEditModifyHdl( const Link<>& rLink )
     maEdit->SetModifyHdl(rLink);
 }
 
-void FileControl::Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_uLong nFlags )
+void FileControl::Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, DrawFlags nFlags )
 {
     WinBits nOldEditStyle = GetEdit().GetStyle();
     if ( GetStyle() & WB_BORDER )
diff --git a/svtools/source/control/headbar.cxx b/svtools/source/control/headbar.cxx
index 87e9f58..68a435e 100644
--- a/svtools/source/control/headbar.cxx
+++ b/svtools/source/control/headbar.cxx
@@ -278,7 +278,7 @@ void HeaderBar::ImplInvertDrag( sal_uInt16 nStartPos, sal_uInt16 nEndPos )
 }
 
 void HeaderBar::ImplDrawItem(vcl::RenderContext& rRenderContext, sal_uInt16 nPos, bool bHigh, bool bDrag,
-                             const Rectangle& rItemRect, const Rectangle* pRect, sal_uLong )
+                             const Rectangle& rItemRect, const Rectangle* pRect, DrawFlags )
 {
     ImplControlValue aControlValue(0);
     Rectangle aCtrlRegion;
@@ -619,7 +619,7 @@ void HeaderBar::ImplDrawItem(vcl::RenderContext& rRenderContext, sal_uInt16 nPos
                              bool bHigh, bool bDrag, const Rectangle* pRect )
 {
     Rectangle aRect = ImplGetItemRect(nPos);
-    ImplDrawItem(rRenderContext, nPos, bHigh, bDrag, aRect, pRect, 0 );
+    ImplDrawItem(rRenderContext, nPos, bHigh, bDrag, aRect, pRect, DrawFlags::NONE );
 }
 
 void HeaderBar::ImplUpdate(sal_uInt16 nPos, bool bEnd, bool /*bDirect*/)
@@ -947,7 +947,7 @@ void HeaderBar::Paint(vcl::RenderContext& rRenderContext, const Rectangle& rRect
 }
 
 void HeaderBar::Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize,
-                      sal_uLong nFlags )
+                      DrawFlags nFlags )
 {
     Point       aPos  = pDev->LogicToPixel( rPos );
     Size        aSize = pDev->LogicToPixel( rSize );
@@ -957,13 +957,13 @@ void HeaderBar::Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize,
     pDev->Push();
     pDev->SetMapMode();
     pDev->SetFont( aFont );
-    if ( nFlags & WINDOW_DRAW_MONO )
+    if ( nFlags & DrawFlags::Mono )
         pDev->SetTextColor( Color( COL_BLACK ) );
     else
         pDev->SetTextColor( GetTextColor() );
     pDev->SetTextFillColor();
 
-    if ( !(nFlags & WINDOW_DRAW_NOBACKGROUND) )
+    if ( !(nFlags & DrawFlags::NoBackground) )
     {
         pDev->DrawWallpaper( aRect, GetBackground() );
         if ( mnBorderOff1 || mnBorderOff2 )
diff --git a/svx/source/fmcomp/gridcell.cxx b/svx/source/fmcomp/gridcell.cxx
index 52b8289..27763ce 100644
--- a/svx/source/fmcomp/gridcell.cxx
+++ b/svx/source/fmcomp/gridcell.cxx
@@ -992,7 +992,7 @@ void DbCellControl::PaintCell( OutputDevice& _rDev, const Rectangle& _rRect )
         m_pPainter->SetParentUpdateMode( true );
     }
     else
-        m_pPainter->Draw( &_rDev, _rRect.TopLeft(), _rRect.GetSize(), 0 );
+        m_pPainter->Draw( &_rDev, _rRect.TopLeft(), _rRect.GetSize(), DrawFlags::NONE );
 }
 
 
diff --git a/sw/inc/SidebarWin.hxx b/sw/inc/SidebarWin.hxx
index 9514ac0..e438ed0 100644
--- a/sw/inc/SidebarWin.hxx
+++ b/sw/inc/SidebarWin.hxx
@@ -177,7 +177,7 @@ class SwSidebarWin : public vcl::Window
         void ChangeSidebarItem( SwSidebarItem& rSidebarItem );
         virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > CreateAccessible() SAL_OVERRIDE;
 
-        virtual void    Draw(OutputDevice* pDev, const Point&, const Size&, sal_uLong) SAL_OVERRIDE;
+        virtual void    Draw(OutputDevice* pDev, const Point&, const Size&, DrawFlags) SAL_OVERRIDE;
 
     protected:
         virtual void    DataChanged( const DataChangedEvent& aEvent) SAL_OVERRIDE;
diff --git a/sw/source/uibase/docvw/PostItMgr.cxx b/sw/source/uibase/docvw/PostItMgr.cxx
index 727a9bb..44185b4 100644
--- a/sw/source/uibase/docvw/PostItMgr.cxx
+++ b/sw/source/uibase/docvw/PostItMgr.cxx
@@ -843,7 +843,7 @@ void SwPostItMgr::DrawNotesForPage(OutputDevice *pOutDev, sal_uInt32 nPage)
             continue;
         Point aPoint(mpEditWin->PixelToLogic(pPostIt->GetPosPixel()));
         Size aSize(pPostIt->PixelToLogic(pPostIt->GetSizePixel()));
-        pPostIt->Draw(pOutDev, aPoint, aSize, 0);
+        pPostIt->Draw(pOutDev, aPoint, aSize, DrawFlags::NONE);
     }
 }
 
diff --git a/sw/source/uibase/docvw/SidebarTxtControl.cxx b/sw/source/uibase/docvw/SidebarTxtControl.cxx
index 6524ad6..3d6be46 100644
--- a/sw/source/uibase/docvw/SidebarTxtControl.cxx
+++ b/sw/source/uibase/docvw/SidebarTxtControl.cxx
@@ -126,7 +126,7 @@ void SidebarTextControl::RequestHelp(const HelpEvent &rEvt)
     }
 }
 
-void SidebarTextControl::Draw(OutputDevice* pDev, const Point& rPt, const Size& rSz, sal_uLong)
+void SidebarTextControl::Draw(OutputDevice* pDev, const Point& rPt, const Size& rSz, DrawFlags)
 {
     //Take the control's height, but overwrite the scrollbar area if there was one
     Size aSize(PixelToLogic(GetSizePixel()));
diff --git a/sw/source/uibase/docvw/SidebarTxtControl.hxx b/sw/source/uibase/docvw/SidebarTxtControl.hxx
index 1a6d667..5230519 100644
--- a/sw/source/uibase/docvw/SidebarTxtControl.hxx
+++ b/sw/source/uibase/docvw/SidebarTxtControl.hxx
@@ -68,7 +68,7 @@ class SidebarTextControl : public Control
 
         virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > CreateAccessible() SAL_OVERRIDE;
 
-        virtual void Draw(OutputDevice* pDev, const Point&, const Size&, sal_uLong) SAL_OVERRIDE;
+        virtual void Draw(OutputDevice* pDev, const Point&, const Size&, DrawFlags) SAL_OVERRIDE;
 };
 
 } } // end of namespace sw::sidebarwindows
diff --git a/sw/source/uibase/docvw/SidebarWin.cxx b/sw/source/uibase/docvw/SidebarWin.cxx
index 6b81496..28da61c 100644
--- a/sw/source/uibase/docvw/SidebarWin.cxx
+++ b/sw/source/uibase/docvw/SidebarWin.cxx
@@ -234,7 +234,7 @@ void SwSidebarWin::Paint(vcl::RenderContext& rRenderContext, const Rectangle& rR
     }
 }
 
-void SwSidebarWin::Draw(OutputDevice* pDev, const Point& rPt, const Size& rSz, sal_uLong nInFlags)
+void SwSidebarWin::Draw(OutputDevice* pDev, const Point& rPt, const Size& rSz, DrawFlags nInFlags)
 {
     if (mpMetadataAuthor->IsVisible() )
     {
diff --git a/toolkit/source/awt/vclxtabpagecontainer.cxx b/toolkit/source/awt/vclxtabpagecontainer.cxx
index 7eb39fa..cd27901 100644
--- a/toolkit/source/awt/vclxtabpagecontainer.cxx
+++ b/toolkit/source/awt/vclxtabpagecontainer.cxx
@@ -70,7 +70,7 @@ void SAL_CALL VCLXTabPageContainer::draw( sal_Int32 nX, sal_Int32 nY ) throw(Run
             aPos  = pDev->PixelToLogic( aPos );
             aSize = pDev->PixelToLogic( aSize );
 
-            pTabPage->Draw( pDev, aPos, aSize, 0 );
+            pTabPage->Draw( pDev, aPos, aSize, DrawFlags::NONE );
         }
     }
 
diff --git a/toolkit/source/awt/vclxwindow.cxx b/toolkit/source/awt/vclxwindow.cxx
index b2fc478..f293581 100644
--- a/toolkit/source/awt/vclxwindow.cxx
+++ b/toolkit/source/awt/vclxwindow.cxx
@@ -2249,7 +2249,7 @@ void VCLXWindow::draw( sal_Int32 nX, sal_Int32 nY ) throw(::com::sun::star::uno:
             aPos  = pDev->PixelToLogic( aPos );
             aSize = pDev->PixelToLogic( aSize );
 
-            pTabPage->Draw( pDev, aPos, aSize, 0 );
+            pTabPage->Draw( pDev, aPos, aSize, DrawFlags::NONE );
             return;
         }
 
@@ -2306,7 +2306,7 @@ void VCLXWindow::draw( sal_Int32 nX, sal_Int32 nY ) throw(::com::sun::star::uno:
                                || ( pPDFExport != NULL );
             if ( bDrawSimple )
             {
-                pWindow->Draw( pDev, aP, aSz, WINDOW_DRAW_NOCONTROLS );
+                pWindow->Draw( pDev, aP, aSz, DrawFlags::NoControls );
             }
             else
             {
diff --git a/toolkit/source/awt/vclxwindows.cxx b/toolkit/source/awt/vclxwindows.cxx
index 64afdff..d5fb69e 100644
--- a/toolkit/source/awt/vclxwindows.cxx
+++ b/toolkit/source/awt/vclxwindows.cxx
@@ -2359,7 +2359,7 @@ void SAL_CALL VCLXDialog::draw( sal_Int32 nX, sal_Int32 nY ) throw(::com::sun::s
         Size aSize = pDev->PixelToLogic( pWindow->GetSizePixel() );
         Point aPos = pDev->PixelToLogic( Point( nX, nY ) );
 
-        pWindow->Draw( pDev, aPos, aSize, WINDOW_DRAW_NOCONTROLS );
+        pWindow->Draw( pDev, aPos, aSize, DrawFlags::NoControls );
     }
 }
 
@@ -2492,7 +2492,7 @@ throw(::com::sun::star::uno::RuntimeException, std::exception)
         Size aSize = pDev->PixelToLogic( pWindow->GetSizePixel() );
         Point aPos = pDev->PixelToLogic( Point( nX, nY ) );
 
-        pWindow->Draw( pDev, aPos, aSize, WINDOW_DRAW_NOCONTROLS );
+        pWindow->Draw( pDev, aPos, aSize, DrawFlags::NoControls );
     }
 }
 
@@ -2769,7 +2769,7 @@ throw(::com::sun::star::uno::RuntimeException, std::exception)
         Size aSize = pDev->PixelToLogic( pWindow->GetSizePixel() );
         Point aPos = pDev->PixelToLogic( Point( nX, nY ) );
 
-        pWindow->Draw( pDev, aPos, aSize, WINDOW_DRAW_NOCONTROLS );
+        pWindow->Draw( pDev, aPos, aSize, DrawFlags::NoControls );
     }
 }
 
@@ -6583,7 +6583,7 @@ throw(::com::sun::star::uno::RuntimeException, std::exception)
         Size aSize = pDev->PixelToLogic( pWindow->GetSizePixel() );
         Point aPos = pDev->PixelToLogic( Point( nX, nY ) );
 
-        pWindow->Draw( pDev, aPos, aSize, WINDOW_DRAW_NOCONTROLS );
+        pWindow->Draw( pDev, aPos, aSize, DrawFlags::NoControls );
     }
 }
 
diff --git a/vcl/source/control/button.cxx b/vcl/source/control/button.cxx
index 2259b39..2ee5d5e 100644
--- a/vcl/source/control/button.cxx
+++ b/vcl/source/control/button.cxx
@@ -210,12 +210,12 @@ void Button::ImplSetSeparatorX( long nX )
     mpButtonData->mnSeparatorX = nX;
 }
 
-DrawTextFlags Button::ImplGetTextStyle(OUString& rText, WinBits nWinStyle, sal_uLong nDrawFlags )
+DrawTextFlags Button::ImplGetTextStyle(OUString& rText, WinBits nWinStyle, DrawFlags nDrawFlags )
 {
     const StyleSettings& rStyleSettings = Application::GetSettings().GetStyleSettings();
     DrawTextFlags nTextStyle = FixedText::ImplGetTextStyle(nWinStyle & ~WB_DEFBUTTON);
 
-    if (nDrawFlags & WINDOW_DRAW_NOMNEMONIC)
+    if (nDrawFlags & DrawFlags::NoMnemonic)
     {
         if (nTextStyle & DrawTextFlags::Mnemonic)
         {
@@ -224,13 +224,13 @@ DrawTextFlags Button::ImplGetTextStyle(OUString& rText, WinBits nWinStyle, sal_u
         }
     }
 
-    if (!(nDrawFlags & WINDOW_DRAW_NODISABLE))
+    if (!(nDrawFlags & DrawFlags::NoDisable))
     {
         if (!IsEnabled())
             nTextStyle |= DrawTextFlags::Disable;
     }
 
-    if ((nDrawFlags & WINDOW_DRAW_MONO) ||
+    if ((nDrawFlags & DrawFlags::Mono) ||
         (rStyleSettings.GetOptions() & StyleSettingsOptions::Mono))
     {
         nTextStyle |= DrawTextFlags::Mono;
@@ -241,7 +241,7 @@ DrawTextFlags Button::ImplGetTextStyle(OUString& rText, WinBits nWinStyle, sal_u
 
 void Button::ImplDrawAlignedImage(OutputDevice* pDev, Point& rPos,
                                   Size& rSize, bool bLayout,
-                                  sal_uLong nImageSep, sal_uLong nDrawFlags,
+                                  sal_uLong nImageSep, DrawFlags nDrawFlags,
                                   DrawTextFlags nTextStyle, Rectangle *pSymbolRect,
                                   bool bAddImageSep)
 {
@@ -261,7 +261,7 @@ void Button::ImplDrawAlignedImage(OutputDevice* pDev, Point& rPos,
     ImageAlign eImageAlign = mpButtonData->meImageAlign;
     Size aImageSize = mpButtonData->maImage.GetSizePixel();
 
-    if ((nDrawFlags & WINDOW_DRAW_NOMNEMONIC) &&
+    if ((nDrawFlags & DrawFlags::NoMnemonic) &&
         (nTextStyle & DrawTextFlags::Mnemonic))
     {
         aText = GetNonMnemonicString(aText);
@@ -491,7 +491,7 @@ void Button::ImplDrawAlignedImage(OutputDevice* pDev, Point& rPos,
 
     DrawImageFlags nStyle = DrawImageFlags::NONE;
 
-    if (!(nDrawFlags & WINDOW_DRAW_NODISABLE) &&
+    if (!(nDrawFlags & DrawFlags::NoDisable) &&
         !IsEnabled())
     {
         nStyle |= DrawImageFlags::Disable;
@@ -746,14 +746,14 @@ bool PushButton::ImplHitTestPushButton( vcl::Window* pDev,
     return aTestRect.IsInside( rPos );
 }
 
-DrawTextFlags PushButton::ImplGetTextStyle( sal_uLong nDrawFlags ) const
+DrawTextFlags PushButton::ImplGetTextStyle( DrawFlags nDrawFlags ) const
 {
     const StyleSettings& rStyleSettings = GetSettings().GetStyleSettings();
 
     DrawTextFlags nTextStyle = DrawTextFlags::Mnemonic | DrawTextFlags::MultiLine | DrawTextFlags::EndEllipsis;
 
     if ( ( rStyleSettings.GetOptions() & StyleSettingsOptions::Mono ) ||
-         ( nDrawFlags & WINDOW_DRAW_MONO ) )
+         ( nDrawFlags & DrawFlags::Mono ) )
         nTextStyle |= DrawTextFlags::Mono;
 
     if ( GetStyle() & WB_WORDBREAK )
@@ -775,7 +775,7 @@ DrawTextFlags PushButton::ImplGetTextStyle( sal_uLong nDrawFlags ) const
     else
         nTextStyle |= DrawTextFlags::VCenter;
 
-    if ( ! ( (nDrawFlags & WINDOW_DRAW_NODISABLE) || IsEnabled() ) )
+    if ( ! ( (nDrawFlags & DrawFlags::NoDisable) || IsEnabled() ) )
         nTextStyle |= DrawTextFlags::Disable;
 
     return nTextStyle;
@@ -807,7 +807,7 @@ static void ImplDrawBtnDropDownArrow( OutputDevice* pDev,
     pDev->SetFillColor( aOldFillColor );
 }
 
-void PushButton::ImplDrawPushButtonContent(OutputDevice* pDev, sal_uLong nDrawFlags,
+void PushButton::ImplDrawPushButtonContent(OutputDevice* pDev, DrawFlags nDrawFlags,
                                            const Rectangle& rRect, bool bLayout, bool bMenuBtnSep)
 {
     const StyleSettings&    rStyleSettings = GetSettings().GetStyleSettings();
@@ -823,20 +823,20 @@ void PushButton::ImplDrawPushButtonContent(OutputDevice* pDev, sal_uLong nDrawFl
     pDev->Push( PushFlags::CLIPREGION );
     pDev->IntersectClipRegion( aInRect );
 
-    if ( nDrawFlags & WINDOW_DRAW_MONO )
+    if ( nDrawFlags & DrawFlags::Mono )
         aColor = Color( COL_BLACK );
-    else if( (nDrawFlags & WINDOW_DRAW_ROLLOVER) && IsNativeControlSupported(CTRL_PUSHBUTTON, PART_ENTIRE_CONTROL) )
+    else if( (nDrawFlags & DrawFlags::NoRollover) && IsNativeControlSupported(CTRL_PUSHBUTTON, PART_ENTIRE_CONTROL) )
         aColor = rStyleSettings.GetButtonRolloverTextColor();
     else if ( IsControlForeground() )
         aColor = GetControlForeground();
-    else if( nDrawFlags & WINDOW_DRAW_ROLLOVER )
+    else if( nDrawFlags & DrawFlags::NoRollover )
         aColor = rStyleSettings.GetButtonRolloverTextColor();
     else
         aColor = rStyleSettings.GetButtonTextColor();
 
     pDev->SetTextColor( aColor );
 
-    if ( IsEnabled() || (nDrawFlags & WINDOW_DRAW_NODISABLE) )
+    if ( IsEnabled() || (nDrawFlags & DrawFlags::NoDisable) )
         nStyle = DrawSymbolFlags::NONE;
     else
         nStyle = DrawSymbolFlags::Disable;
@@ -902,7 +902,7 @@ void PushButton::ImplDrawPushButtonContent(OutputDevice* pDev, sal_uLong nDrawFl
             bool bBlack = false;
             Color   aArrowColor( COL_BLACK );
 
-            if ( !(nDrawFlags & WINDOW_DRAW_MONO) )
+            if ( !(nDrawFlags & DrawFlags::Mono) )
             {
                 if ( !IsEnabled() )
                     aArrowColor = rStyleSettings.GetShadowColor();
@@ -1070,7 +1070,7 @@ void PushButton::ImplDrawPushButton(vcl::RenderContext& rRenderContext, bool bLa
         }
 
         // draw content using the same aInRect as non-native VCL would do
-        ImplDrawPushButtonContent(&rRenderContext, (nState&ControlState::ROLLOVER) ? WINDOW_DRAW_ROLLOVER : 0,
+        ImplDrawPushButtonContent(&rRenderContext, (nState&ControlState::ROLLOVER) ? DrawFlags::NoRollover : DrawFlags::NONE,
                                   aInRect, bLayout, bDrawMenuSep);
 
         if (HasFocus())
@@ -1097,7 +1097,7 @@ void PushButton::ImplDrawPushButton(vcl::RenderContext& rRenderContext, bool bLa
         }
 
         // draw content
-        ImplDrawPushButtonContent(&rRenderContext, 0, aInRect, bLayout, bDrawMenuSep);
+        ImplDrawPushButtonContent(&rRenderContext, DrawFlags::NONE, aInRect, bLayout, bDrawMenuSep);
 
         if (!bLayout && HasFocus())
         {
@@ -1349,7 +1349,7 @@ void PushButton::Paint(vcl::RenderContext& rRenderContext, const Rectangle&)
 }
 
 void PushButton::Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize,
-                       sal_uLong nFlags )
+                       DrawFlags nFlags )
 {
     Point       aPos  = pDev->LogicToPixel( rPos );
     Size        aSize = pDev->LogicToPixel( rSize );
@@ -1359,7 +1359,7 @@ void PushButton::Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize,
     pDev->Push();
     pDev->SetMapMode();
     pDev->SetFont( aFont );
-    if ( nFlags & WINDOW_DRAW_MONO )
+    if ( nFlags & DrawFlags::Mono )
     {
         pDev->SetTextColor( Color( COL_BLACK ) );
     }
@@ -1381,7 +1381,7 @@ void PushButton::Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize,
 
     DecorationView aDecoView( pDev );
     DrawButtonFlags nButtonStyle = DrawButtonFlags::NONE;
-    if ( nFlags & WINDOW_DRAW_MONO )
+    if ( nFlags & DrawFlags::Mono )
         nButtonStyle |= DrawButtonFlags::Mono;
     if ( IsChecked() )
         nButtonStyle |= DrawButtonFlags::Checked;
@@ -1630,9 +1630,8 @@ Size PushButton::CalcMinimumSize( long nMaxWidth ) const
     }
     if ( !PushButton::GetText().isEmpty() && ! (ImplGetButtonState() & DrawButtonFlags::NoText) )
     {
-        sal_uLong nDrawFlags = 0;
         Size textSize = GetTextRect( Rectangle( Point(), Size( nMaxWidth ? nMaxWidth : 0x7fffffff, 0x7fffffff ) ),
-                                     PushButton::GetText(), ImplGetTextStyle( nDrawFlags ) ).GetSize();
+                                     PushButton::GetText(), ImplGetTextStyle( DrawFlags::NONE ) ).GetSize();
         aSize.Width() += textSize.Width();
         aSize.Height() = std::max( aSize.Height(), long( textSize.Height() * 1.15 ) );
     }
@@ -1993,7 +1992,7 @@ void RadioButton::ImplDrawRadioButtonState(vcl::RenderContext& rRenderContext)
     }
 }
 
-void RadioButton::ImplDraw( OutputDevice* pDev, sal_uLong nDrawFlags,
+void RadioButton::ImplDraw( OutputDevice* pDev, DrawFlags nDrawFlags,
                             const Point& rPos, const Size& rSize,
                             const Size& rImageSize, Rectangle& rStateRect,
                             Rectangle& rMouseRect, bool bLayout )
@@ -2144,7 +2143,7 @@ void RadioButton::ImplDrawRadioButton(vcl::RenderContext& rRenderContext, bool b
     aImageSize.Height() = CalcZoom(aImageSize.Height());
 
     // Draw control text
-    ImplDraw(&rRenderContext, 0, Point(), GetOutputSizePixel(),
+    ImplDraw(&rRenderContext, DrawFlags::NONE, Point(), GetOutputSizePixel(),
              aImageSize, maStateRect, maMouseRect, bLayout);
 
     if (!bLayout || rRenderContext.IsNativeControlSupported(CTRL_RADIOBUTTON, PART_ENTIRE_CONTROL))
@@ -2445,7 +2444,7 @@ void RadioButton::Paint( vcl::RenderContext& rRenderContext, const Rectangle& )
 }
 
 void RadioButton::Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize,
-                        sal_uLong nFlags )
+                        DrawFlags nFlags )
 {
     if ( !maImage )
     {
@@ -2478,7 +2477,7 @@ void RadioButton::Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize
         pDev->Push();
         pDev->SetMapMode();
         pDev->SetFont( aFont );
-        if ( nFlags & WINDOW_DRAW_MONO )
+        if ( nFlags & DrawFlags::Mono )
             pDev->SetTextColor( Color( COL_BLACK ) );
         else
             pDev->SetTextColor( GetTextColor() );
@@ -3072,7 +3071,7 @@ void CheckBox::ImplDrawCheckBoxState(vcl::RenderContext& rRenderContext)
     }
 }
 
-void CheckBox::ImplDraw( OutputDevice* pDev, sal_uLong nDrawFlags,
+void CheckBox::ImplDraw( OutputDevice* pDev, DrawFlags nDrawFlags,
                          const Point& rPos, const Size& rSize,
                          const Size& rImageSize, Rectangle& rStateRect,
                          Rectangle& rMouseRect, bool bLayout )
@@ -3184,7 +3183,7 @@ void CheckBox::ImplDrawCheckBox(vcl::RenderContext& rRenderContext, bool bLayout
     if (!bLayout)
         HideFocus();
 
-    ImplDraw(&rRenderContext, 0, Point(), GetOutputSizePixel(),
+    ImplDraw(&rRenderContext, DrawFlags::NONE, Point(), GetOutputSizePixel(),
              aImageSize, maStateRect, maMouseRect, bLayout);
 
     if (!bLayout)
@@ -3348,7 +3347,7 @@ void CheckBox::Paint(vcl::RenderContext& rRenderContext, const Rectangle&)
 }
 
 void CheckBox::Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize,
-                     sal_uLong nFlags )
+                     DrawFlags nFlags )
 {
     MapMode     aResMapMode( MAP_100TH_MM );
     Point       aPos  = pDev->LogicToPixel( rPos );
@@ -3382,7 +3381,7 @@ void CheckBox::Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize,
     pDev->Push();
     pDev->SetMapMode();
     pDev->SetFont( aFont );
-    if ( nFlags & WINDOW_DRAW_MONO )
+    if ( nFlags & DrawFlags::Mono )
         pDev->SetTextColor( Color( COL_BLACK ) );
     else
         pDev->SetTextColor( GetTextColor() );
diff --git a/vcl/source/control/combobox.cxx b/vcl/source/control/combobox.cxx
index f16fd05..4ba8095 100644
--- a/vcl/source/control/combobox.cxx
+++ b/vcl/source/control/combobox.cxx
@@ -1129,7 +1129,7 @@ void ComboBox::GetMaxVisColumnsAndLines( sal_uInt16& rnCols, sal_uInt16& rnLines
     }
 }
 
-void ComboBox::Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_uLong nFlags )
+void ComboBox::Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, DrawFlags nFlags )
 {
     mpImplLB->GetMainWindow()->ApplySettings(*pDev);
 
@@ -1146,8 +1146,8 @@ void ComboBox::Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, s
     // Border/Background
     pDev->SetLineColor();
     pDev->SetFillColor();
-    bool bBorder = !(nFlags & WINDOW_DRAW_NOBORDER ) && (GetStyle() & WB_BORDER);
-    bool bBackground = !(nFlags & WINDOW_DRAW_NOBACKGROUND) && IsControlBackground();
+    bool bBorder = !(nFlags & DrawFlags::NoBorder ) && (GetStyle() & WB_BORDER);
+    bool bBackground = !(nFlags & DrawFlags::NoBackground) && IsControlBackground();
     if ( bBorder || bBackground )
     {
         Rectangle aRect( aPos, aSize );
@@ -1182,13 +1182,13 @@ void ComboBox::Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, s
         else
             nTextStyle |= DrawTextFlags::Left;
 
-        if ( ( nFlags & WINDOW_DRAW_MONO ) || ( eOutDevType == OUTDEV_PRINTER ) )
+        if ( ( nFlags & DrawFlags::Mono ) || ( eOutDevType == OUTDEV_PRINTER ) )
         {
             pDev->SetTextColor( Color( COL_BLACK ) );
         }
         else
         {
-            if ( !(nFlags & WINDOW_DRAW_NODISABLE ) && !IsEnabled() )
+            if ( !(nFlags & DrawFlags::NoDisable ) && !IsEnabled() )
             {
                 const StyleSettings& rStyleSettings = GetSettings().GetStyleSettings();
                 pDev->SetTextColor( rStyleSettings.GetDisableColor() );
diff --git a/vcl/source/control/edit.cxx b/vcl/source/control/edit.cxx
index e3079819..15cf93d 100644
--- a/vcl/source/control/edit.cxx
+++ b/vcl/source/control/edit.cxx
@@ -1793,7 +1793,7 @@ void Edit::Resize()
     }
 }
 
-void Edit::Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_uLong nFlags )
+void Edit::Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, DrawFlags nFlags )
 {
     Point aPos = pDev->LogicToPixel( rPos );
     Size aSize = pDev->LogicToPixel( rSize );
@@ -1808,8 +1808,8 @@ void Edit::Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_u
     // Border/Background
     pDev->SetLineColor();
     pDev->SetFillColor();
-    bool bBorder = !(nFlags & WINDOW_DRAW_NOBORDER ) && (GetStyle() & WB_BORDER);
-    bool bBackground = !(nFlags & WINDOW_DRAW_NOBACKGROUND) && IsControlBackground();
+    bool bBorder = !(nFlags & DrawFlags::NoBorder ) && (GetStyle() & WB_BORDER);
+    bool bBackground = !(nFlags & DrawFlags::NoBackground) && IsControlBackground();
     if ( bBorder || bBackground )
     {
         Rectangle aRect( aPos, aSize );
@@ -1825,11 +1825,11 @@ void Edit::Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_u
     }
 
     // Inhalt
-    if ( ( nFlags & WINDOW_DRAW_MONO ) || ( eOutDevType == OUTDEV_PRINTER ) )
+    if ( ( nFlags & DrawFlags::Mono ) || ( eOutDevType == OUTDEV_PRINTER ) )
         pDev->SetTextColor( Color( COL_BLACK ) );
     else
     {
-        if ( !(nFlags & WINDOW_DRAW_NODISABLE ) && !IsEnabled() )
+        if ( !(nFlags & DrawFlags::NoDisable ) && !IsEnabled() )
         {
             const StyleSettings& rStyleSettings = GetSettings().GetStyleSettings();
             pDev->SetTextColor( rStyleSettings.GetDisableColor() );
diff --git a/vcl/source/control/fixed.cxx b/vcl/source/control/fixed.cxx
index 92ff28c..c891061 100644
--- a/vcl/source/control/fixed.cxx
+++ b/vcl/source/control/fixed.cxx
@@ -159,7 +159,7 @@ DrawTextFlags FixedText::ImplGetTextStyle( WinBits nWinStyle )
     return nTextStyle;
 }
 
-void FixedText::ImplDraw(OutputDevice* pDev, sal_uLong nDrawFlags,
+void FixedText::ImplDraw(OutputDevice* pDev, DrawFlags nDrawFlags,
                          const Point& rPos, const Size& rSize,
                          bool bFillLayout) const
 {
@@ -177,7 +177,7 @@ void FixedText::ImplDraw(OutputDevice* pDev, sal_uLong nDrawFlags,
         nTextStyle &= ~DrawTextFlags(DrawTextFlags::EndEllipsis | DrawTextFlags::MultiLine | DrawTextFlags::WordBreak);
         nTextStyle |= DrawTextFlags::PathEllipsis;
     }
-    if ( nDrawFlags & WINDOW_DRAW_NOMNEMONIC )
+    if ( nDrawFlags & DrawFlags::NoMnemonic )
     {
         if ( nTextStyle & DrawTextFlags::Mnemonic )
         {
@@ -185,12 +185,12 @@ void FixedText::ImplDraw(OutputDevice* pDev, sal_uLong nDrawFlags,
             nTextStyle &= ~DrawTextFlags::Mnemonic;
         }
     }
-    if ( !(nDrawFlags & WINDOW_DRAW_NODISABLE) )
+    if ( !(nDrawFlags & DrawFlags::NoDisable) )
     {
         if ( !IsEnabled() )
             nTextStyle |= DrawTextFlags::Disable;
     }
-    if ( (nDrawFlags & WINDOW_DRAW_MONO) ||
+    if ( (nDrawFlags & DrawFlags::Mono) ||
          (rStyleSettings.GetOptions() & StyleSettingsOptions::Mono) )
         nTextStyle |= DrawTextFlags::Mono;
 
@@ -230,11 +230,11 @@ void FixedText::ApplySettings(vcl::RenderContext& rRenderContext)
 
 void FixedText::Paint( vcl::RenderContext& rRenderContext, const Rectangle& )
 {
-    ImplDraw(&rRenderContext, 0, Point(), GetOutputSizePixel());
+    ImplDraw(&rRenderContext, DrawFlags::NONE, Point(), GetOutputSizePixel());
 }
 
 void FixedText::Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize,
-                      sal_uLong nFlags )
+                      DrawFlags nFlags )
 {
     ApplySettings(*pDev);
 
@@ -245,14 +245,14 @@ void FixedText::Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize,
     pDev->Push();
     pDev->SetMapMode();
     pDev->SetFont( aFont );
-    if ( nFlags & WINDOW_DRAW_MONO )
+    if ( nFlags & DrawFlags::Mono )
         pDev->SetTextColor( Color( COL_BLACK ) );
     else
         pDev->SetTextColor( GetTextColor() );
     pDev->SetTextFillColor();
 
-    bool bBorder = !(nFlags & WINDOW_DRAW_NOBORDER ) && (GetStyle() & WB_BORDER);
-    bool bBackground = !(nFlags & WINDOW_DRAW_NOBACKGROUND) && IsControlBackground();
+    bool bBorder = !(nFlags & DrawFlags::NoBorder ) && (GetStyle() & WB_BORDER);
+    bool bBackground = !(nFlags & DrawFlags::NoBackground) && IsControlBackground();
     if ( bBorder || bBackground )
     {
         Rectangle aRect( aPos, aSize );
@@ -386,7 +386,7 @@ Size FixedText::GetOptimalSize() const
 void FixedText::FillLayoutData() const
 {
     mpControlData->mpLayoutData = new vcl::ControlLayoutData();
-    ImplDraw(const_cast<FixedText*>(this), 0, Point(), GetOutputSizePixel(), true);
+    ImplDraw(const_cast<FixedText*>(this), DrawFlags::NONE, Point(), GetOutputSizePixel(), true);
     //const_cast<FixedText*>(this)->Invalidate();
 }
 
@@ -641,7 +641,7 @@ void FixedLine::Paint(vcl::RenderContext& rRenderContext, const Rectangle&)
     ImplDraw(rRenderContext);
 }
 
-void FixedLine::Draw( OutputDevice*, const Point&, const Size&, sal_uLong )
+void FixedLine::Draw( OutputDevice*, const Point&, const Size&, DrawFlags )
 {
 }
 
@@ -727,7 +727,7 @@ FixedBitmap::FixedBitmap( vcl::Window* pParent, WinBits nStyle ) :
     ImplInit( pParent, nStyle );
 }
 
-void FixedBitmap::ImplDraw( OutputDevice* pDev, sal_uLong /* nDrawFlags */,
+void FixedBitmap::ImplDraw( OutputDevice* pDev, DrawFlags /* nDrawFlags */,
                             const Point& rPos, const Size& rSize )
 {
     Bitmap* pBitmap = &maBitmap;
@@ -770,11 +770,11 @@ void FixedBitmap::ApplySettings(vcl::RenderContext& rRenderContext)
 
 void FixedBitmap::Paint(vcl::RenderContext& rRenderContext, const Rectangle&)
 {
-    ImplDraw(&rRenderContext, 0, Point(), GetOutputSizePixel());
+    ImplDraw(&rRenderContext, DrawFlags::NONE, Point(), GetOutputSizePixel());
 }
 
 void FixedBitmap::Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize,
-                        sal_uLong nFlags )
+                        DrawFlags nFlags )
 {
     Point       aPos  = pDev->LogicToPixel( rPos );
     Size        aSize = pDev->LogicToPixel( rSize );
@@ -784,7 +784,7 @@ void FixedBitmap::Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize
     pDev->SetMapMode();
 
     // Border
-    if ( !(nFlags & WINDOW_DRAW_NOBORDER) && (GetStyle() & WB_BORDER) )
+    if ( !(nFlags & DrawFlags::NoBorder) && (GetStyle() & WB_BORDER) )
     {
         DecorationView aDecoView( pDev );
         aRect = aDecoView.DrawFrame( aRect, DrawFrameStyle::DoubleIn );
@@ -890,11 +890,11 @@ FixedImage::FixedImage( vcl::Window* pParent, const ResId& rResId ) :
         Show();
 }
 
-void FixedImage::ImplDraw( OutputDevice* pDev, sal_uLong nDrawFlags,
+void FixedImage::ImplDraw( OutputDevice* pDev, DrawFlags nDrawFlags,
                            const Point& rPos, const Size& rSize )
 {
     DrawImageFlags nStyle = DrawImageFlags::NONE;
-    if ( !(nDrawFlags & WINDOW_DRAW_NODISABLE) )
+    if ( !(nDrawFlags & DrawFlags::NoDisable) )
     {
         if ( !IsEnabled() )
             nStyle |= DrawImageFlags::Disable;
@@ -941,7 +941,7 @@ void FixedImage::ApplySettings(vcl::RenderContext& rRenderContext)
 
 void FixedImage::Paint(vcl::RenderContext& rRenderContext, const Rectangle&)
 {
-    ImplDraw(&rRenderContext, 0, Point(), GetOutputSizePixel());
+    ImplDraw(&rRenderContext, DrawFlags::NONE, Point(), GetOutputSizePixel());
 }
 
 Size FixedImage::GetOptimalSize() const
@@ -950,7 +950,7 @@ Size FixedImage::GetOptimalSize() const
 }
 
 void FixedImage::Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize,
-                       sal_uLong nFlags )
+                       DrawFlags nFlags )
 {
     Point       aPos  = pDev->LogicToPixel( rPos );
     Size        aSize = pDev->LogicToPixel( rSize );
@@ -960,7 +960,7 @@ void FixedImage::Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize,
     pDev->SetMapMode();
 
     // Border
-    if ( !(nFlags & WINDOW_DRAW_NOBORDER) && (GetStyle() & WB_BORDER) )
+    if ( !(nFlags & DrawFlags::NoBorder) && (GetStyle() & WB_BORDER) )
     {
         ImplDrawFrame( pDev, aRect );
     }
diff --git a/vcl/source/control/group.cxx b/vcl/source/control/group.cxx
index c3f2231..69dcca5 100644
--- a/vcl/source/control/group.cxx
+++ b/vcl/source/control/group.cxx
@@ -92,7 +92,7 @@ GroupBox::GroupBox( vcl::Window* pParent, WinBits nStyle ) :
     ImplInit( pParent, nStyle );
 }
 
-void GroupBox::ImplDraw( OutputDevice* pDev, sal_uLong nDrawFlags,
+void GroupBox::ImplDraw( OutputDevice* pDev, DrawFlags nDrawFlags,
                          const Point& rPos, const Size& rSize, bool bLayout )
 {
     long                    nTop;
@@ -104,7 +104,7 @@ void GroupBox::ImplDraw( OutputDevice* pDev, sal_uLong nDrawFlags,
 
     if ( GetStyle() & WB_NOLABEL )
         nTextStyle &= ~DrawTextFlags::Mnemonic;
-    if ( nDrawFlags & WINDOW_DRAW_NOMNEMONIC )
+    if ( nDrawFlags & DrawFlags::NoMnemonic )
     {
         if ( nTextStyle & DrawTextFlags::Mnemonic )
         {
@@ -112,16 +112,16 @@ void GroupBox::ImplDraw( OutputDevice* pDev, sal_uLong nDrawFlags,
             nTextStyle &= ~DrawTextFlags::Mnemonic;
         }
     }
-    if ( !(nDrawFlags & WINDOW_DRAW_NODISABLE) )
+    if ( !(nDrawFlags & DrawFlags::NoDisable) )
     {
         if ( !IsEnabled() )
             nTextStyle |= DrawTextFlags::Disable;
     }
-    if ( (nDrawFlags & WINDOW_DRAW_MONO) ||
+    if ( (nDrawFlags & DrawFlags::Mono) ||
          (rStyleSettings.GetOptions() & StyleSettingsOptions::Mono) )
     {
         nTextStyle |= DrawTextFlags::Mono;
-        nDrawFlags |= WINDOW_DRAW_MONO;
+        nDrawFlags |= DrawFlags::Mono;
     }
 
     if (aText.isEmpty())
@@ -141,7 +141,7 @@ void GroupBox::ImplDraw( OutputDevice* pDev, sal_uLong nDrawFlags,
 
     if( ! bLayout )
     {
-        if ( nDrawFlags & WINDOW_DRAW_MONO )
+        if ( nDrawFlags & DrawFlags::Mono )
             pDev->SetLineColor( Color( COL_BLACK ) );
         else
             pDev->SetLineColor( rStyleSettings.GetShadowColor() );
@@ -161,7 +161,7 @@ void GroupBox::ImplDraw( OutputDevice* pDev, sal_uLong nDrawFlags,
         // if we're drawing onto a printer, spare the 3D effect
         // #i46986# / 2005-04-13 / frank.schoenheit at sun.com
 
-        if ( !bIsPrinter && !(nDrawFlags & WINDOW_DRAW_MONO) )
+        if ( !bIsPrinter && !(nDrawFlags & DrawFlags::Mono) )
         {
             pDev->SetLineColor( rStyleSettings.GetLightColor() );
             if (aText.isEmpty())
@@ -185,16 +185,16 @@ void GroupBox::ImplDraw( OutputDevice* pDev, sal_uLong nDrawFlags,
 void GroupBox::FillLayoutData() const
 {
     mpControlData->mpLayoutData = new vcl::ControlLayoutData();
-    const_cast<GroupBox*>(this)->   ImplDraw( const_cast<GroupBox*>(this), 0, Point(), GetOutputSizePixel(), true );
+    const_cast<GroupBox*>(this)->ImplDraw( const_cast<GroupBox*>(this), DrawFlags::NONE, Point(), GetOutputSizePixel(), true );
 }
 
 void GroupBox::Paint( vcl::RenderContext& rRenderContext, const Rectangle& )
 {
-    ImplDraw(&rRenderContext, 0, Point(), GetOutputSizePixel());
+    ImplDraw(&rRenderContext, DrawFlags::NONE, Point(), GetOutputSizePixel());
 }
 
 void GroupBox::Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize,
-                     sal_uLong nFlags )
+                     DrawFlags nFlags )
 {
     Point       aPos  = pDev->LogicToPixel( rPos );
     Size        aSize = pDev->LogicToPixel( rSize );
@@ -203,7 +203,7 @@ void GroupBox::Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize,
     pDev->Push();
     pDev->SetMapMode();
     pDev->SetFont( aFont );
-    if ( nFlags & WINDOW_DRAW_MONO )
+    if ( nFlags & DrawFlags::Mono )
         pDev->SetTextColor( Color( COL_BLACK ) );
     else
         pDev->SetTextColor( GetTextColor() );
diff --git a/vcl/source/control/imgctrl.cxx b/vcl/source/control/imgctrl.cxx
index 8d9a5cb..a41f3f4 100644
--- a/vcl/source/control/imgctrl.cxx
+++ b/vcl/source/control/imgctrl.cxx
@@ -67,10 +67,10 @@ namespace
     }
 }
 
-void ImageControl::ImplDraw(OutputDevice& rDev, sal_uLong nDrawFlags, const Point& rPos, const Size& rSize) const
+void ImageControl::ImplDraw(OutputDevice& rDev, DrawFlags nDrawFlags, const Point& rPos, const Size& rSize) const
 {
     DrawImageFlags nStyle = DrawImageFlags::NONE;
-    if ( !(nDrawFlags & WINDOW_DRAW_NODISABLE) )
+    if ( !(nDrawFlags & DrawFlags::NoDisable) )
     {
         if ( !IsEnabled() )
             nStyle |= DrawImageFlags::Disable;
@@ -87,7 +87,7 @@ void ImageControl::ImplDraw(OutputDevice& rDev, sal_uLong nDrawFlags, const Poin
 
         WinBits nWinStyle = GetStyle();
         DrawTextFlags nTextStyle = FixedText::ImplGetTextStyle( nWinStyle );
-        if ( !(nDrawFlags & WINDOW_DRAW_NODISABLE) )
+        if ( !(nDrawFlags & DrawFlags::NoDisable) )
             if ( !IsEnabled() )
                 nTextStyle |= DrawTextFlags::Disable;
 
@@ -133,7 +133,7 @@ void ImageControl::ImplDraw(OutputDevice& rDev, sal_uLong nDrawFlags, const Poin
 
 void ImageControl::Paint(vcl::RenderContext& rRenderContext, const Rectangle& /*rRect*/)
 {
-    ImplDraw(rRenderContext, 0, Point(), GetOutputSizePixel());
+    ImplDraw(rRenderContext, DrawFlags::NONE, Point(), GetOutputSizePixel());
 
     if (HasFocus())
     {
@@ -157,7 +157,7 @@ void ImageControl::Paint(vcl::RenderContext& rRenderContext, const Rectangle& /*
     }
 }
 
-void ImageControl::Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_uLong nFlags )
+void ImageControl::Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, DrawFlags nFlags )
 {
     const Point     aPos  = pDev->LogicToPixel( rPos );
     const Size      aSize = pDev->LogicToPixel( rSize );
@@ -167,7 +167,7 @@ void ImageControl::Draw( OutputDevice* pDev, const Point& rPos, const Size& rSiz
     pDev->SetMapMode();
 
     // Border
-    if ( !(nFlags & WINDOW_DRAW_NOBORDER) && (GetStyle() & WB_BORDER) )
+    if ( !(nFlags & DrawFlags::NoBorder) && (GetStyle() & WB_BORDER) )
     {
         ImplDrawFrame( pDev, aRect );
     }
diff --git a/vcl/source/control/lstbox.cxx b/vcl/source/control/lstbox.cxx
index bb95cee..a1ad0eb 100644
--- a/vcl/source/control/lstbox.cxx
+++ b/vcl/source/control/lstbox.cxx
@@ -373,7 +373,7 @@ void ListBox::ApplySettings(vcl::RenderContext& rRenderContext)
     rRenderContext.SetBackground();
 }
 
-void ListBox::Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_uLong nFlags )
+void ListBox::Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, DrawFlags nFlags )
 {
     mpImplLB->GetMainWindow()->ApplySettings(*pDev);
 
@@ -390,8 +390,8 @@ void ListBox::Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, sa
     // Border/Background
     pDev->SetLineColor();
     pDev->SetFillColor();
-    bool bBorder = !(nFlags & WINDOW_DRAW_NOBORDER ) && (GetStyle() & WB_BORDER);
-    bool bBackground = !(nFlags & WINDOW_DRAW_NOBACKGROUND) && IsControlBackground();
+    bool bBorder = !(nFlags & DrawFlags::NoBorder ) && (GetStyle() & WB_BORDER);
+    bool bBackground = !(nFlags & DrawFlags::NoBackground) && IsControlBackground();
     if ( bBorder || bBackground )
     {
         Rectangle aRect( aPos, aSize );
@@ -407,13 +407,13 @@ void ListBox::Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, sa
     }
 
     // Content
-    if ( ( nFlags & WINDOW_DRAW_MONO ) || ( eOutDevType == OUTDEV_PRINTER ) )
+    if ( ( nFlags & DrawFlags::Mono ) || ( eOutDevType == OUTDEV_PRINTER ) )
     {
         pDev->SetTextColor( Color( COL_BLACK ) );
     }
     else
     {
-        if ( !(nFlags & WINDOW_DRAW_NODISABLE ) && !IsEnabled() )
+        if ( !(nFlags & DrawFlags::NoDisable ) && !IsEnabled() )
         {
             const StyleSettings& rStyleSettings = GetSettings().GetStyleSettings();
             pDev->SetTextColor( rStyleSettings.GetDisableColor() );
diff --git a/vcl/source/control/scrbar.cxx b/vcl/source/control/scrbar.cxx
index 2db7fc1..2d7fdc3 100644
--- a/vcl/source/control/scrbar.cxx
+++ b/vcl/source/control/scrbar.cxx
@@ -411,13 +411,13 @@ void ScrollBar::ImplCalc( bool bUpdate )
     ImplUpdateRects( bUpdate );
 }
 
-void ScrollBar::Draw( OutputDevice* pDev, const Point& rPos, const Size& /* rSize */, sal_uLong nFlags )
+void ScrollBar::Draw( OutputDevice* pDev, const Point& rPos, const Size& /* rSize */, DrawFlags nFlags )
 {
     Point aPos  = pDev->LogicToPixel( rPos );
 
     pDev->Push();
     pDev->SetMapMode();
-    if ( !(nFlags & WINDOW_DRAW_MONO) )
+    if ( !(nFlags & DrawFlags::Mono) )
     {
         // DecoView uses the FaceColor...
         AllSettings aSettings = pDev->GetSettings();
diff --git a/vcl/source/control/spinbtn.cxx b/vcl/source/control/spinbtn.cxx
index 6d1d5f3..ad47e9f 100644
--- a/vcl/source/control/spinbtn.cxx
+++ b/vcl/source/control/spinbtn.cxx
@@ -120,14 +120,14 @@ void SpinButton::Resize()
     Invalidate();
 }
 
-void SpinButton::Draw(OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_uLong nFlags)
+void SpinButton::Draw(OutputDevice* pDev, const Point& rPos, const Size& rSize, DrawFlags nFlags)
 {
     Point aPos  = pDev->LogicToPixel(rPos);
     Size aSize = pDev->LogicToPixel(rSize);
 
     pDev->Push();
     pDev->SetMapMode();
-    if ( !(nFlags & WINDOW_DRAW_MONO) )
+    if ( !(nFlags & DrawFlags::Mono) )
     {
         // DecoView uses the FaceColor...
         AllSettings aSettings = pDev->GetSettings();
diff --git a/vcl/source/control/spinfld.cxx b/vcl/source/control/spinfld.cxx
index f64c5a7..1db4d35 100644
--- a/vcl/source/control/spinfld.cxx
+++ b/vcl/source/control/spinfld.cxx
@@ -977,12 +977,12 @@ IMPL_LINK_TYPED( SpinField, ImplTimeout, Timer*, pTimer, void )
     }
 }
 
-void SpinField::Draw(OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_uLong nFlags)
+void SpinField::Draw(OutputDevice* pDev, const Point& rPos, const Size& rSize, DrawFlags nFlags)
 {
     Edit::Draw(pDev, rPos, rSize, nFlags);
 
     WinBits nFieldStyle = GetStyle();
-    if ( !(nFlags & WINDOW_DRAW_NOCONTROLS ) && ( nFieldStyle & (WB_SPIN|WB_DROPDOWN) ) )
+    if ( !(nFlags & DrawFlags::NoControls ) && ( nFieldStyle & (WB_SPIN|WB_DROPDOWN) ) )
     {
         Point aPos = pDev->LogicToPixel( rPos );
         Size aSize = pDev->LogicToPixel( rSize );
@@ -1010,7 +1010,7 @@ void SpinField::Draw(OutputDevice* pDev, const Point& rPos, const Size& rSize, s
         aDown.Move(aPos.X(), aPos.Y());
 
         Color aButtonTextColor;
-        if ((nFlags & WINDOW_DRAW_MONO) || (eOutDevType == OUTDEV_PRINTER))
+        if ((nFlags & DrawFlags::Mono) || (eOutDevType == OUTDEV_PRINTER))
             aButtonTextColor = Color( COL_BLACK );
         else
             aButtonTextColor = GetSettings().GetStyleSettings().GetButtonTextColor();
@@ -1024,7 +1024,7 @@ void SpinField::Draw(OutputDevice* pDev, const Point& rPos, const Size& rSize, s
             if (GetSettings().GetStyleSettings().GetOptions() & StyleSettingsOptions::SpinUpDown)
                 eSymbol = SymbolType::SPIN_UPDOWN;
 
-            DrawSymbolFlags nSymbolStyle = (IsEnabled() || (nFlags & WINDOW_DRAW_NODISABLE)) ? DrawSymbolFlags::NONE : DrawSymbolFlags::Disable;
+            DrawSymbolFlags nSymbolStyle = (IsEnabled() || (nFlags & DrawFlags::NoDisable)) ? DrawSymbolFlags::NONE : DrawSymbolFlags::Disable;
             aView.DrawSymbol(aInnerRect, eSymbol, aButtonTextColor, nSymbolStyle);
         }
 
diff --git a/vcl/source/edit/vclmedit.cxx b/vcl/source/edit/vclmedit.cxx
index a21c360..11471c8 100644
--- a/vcl/source/edit/vclmedit.cxx
+++ b/vcl/source/edit/vclmedit.cxx
@@ -1360,7 +1360,7 @@ void VclMultiLineEdit::DataChanged( const DataChangedEvent& rDCEvt )
         Control::DataChanged( rDCEvt );
 }
 
-void VclMultiLineEdit::Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_uLong nFlags )
+void VclMultiLineEdit::Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, DrawFlags nFlags )
 {
     ImplInitSettings( true, true, true );
 
@@ -1378,8 +1378,8 @@ void VclMultiLineEdit::Draw( OutputDevice* pDev, const Point& rPos, const Size&
     // Border/Background
     pDev->SetLineColor();
     pDev->SetFillColor();
-    bool bBorder = !(nFlags & WINDOW_DRAW_NOBORDER ) && (GetStyle() & WB_BORDER);
-    bool bBackground = !(nFlags & WINDOW_DRAW_NOBACKGROUND) && IsControlBackground();
+    bool bBorder = !(nFlags & DrawFlags::NoBorder ) && (GetStyle() & WB_BORDER);
+    bool bBackground = !(nFlags & DrawFlags::NoBackground) && IsControlBackground();
     if ( bBorder || bBackground )
     {
         Rectangle aRect( aPos, aSize );
@@ -1396,11 +1396,11 @@ void VclMultiLineEdit::Draw( OutputDevice* pDev, const Point& rPos, const Size&
     }
 
     // contents
-    if ( ( nFlags & WINDOW_DRAW_MONO ) || ( eOutDevType == OUTDEV_PRINTER ) )
+    if ( ( nFlags & DrawFlags::Mono ) || ( eOutDevType == OUTDEV_PRINTER ) )
         pDev->SetTextColor( Color( COL_BLACK ) );
     else
     {
-        if ( !(nFlags & WINDOW_DRAW_NODISABLE ) && !IsEnabled() )
+        if ( !(nFlags & DrawFlags::NoDisable ) && !IsEnabled() )
         {
             const StyleSettings& rStyleSettings = GetSettings().GetStyleSettings();
             pDev->SetTextColor( rStyleSettings.GetDisableColor() );
diff --git a/vcl/source/window/dialog.cxx b/vcl/source/window/dialog.cxx
index 2a0bf5d..a58c625 100644
--- a/vcl/source/window/dialog.cxx
+++ b/vcl/source/window/dialog.cxx
@@ -1093,7 +1093,7 @@ void Dialog::GetDrawWindowBorder( sal_Int32& rLeftBorder, sal_Int32& rTopBorder,
     aImplWin->GetBorder( rLeftBorder, rTopBorder, rRightBorder, rBottomBorder );
 }
 
-void Dialog::Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_uLong )
+void Dialog::Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, DrawFlags )
 {
     Point aPos = pDev->LogicToPixel( rPos );
     Size aSize = pDev->LogicToPixel( rSize );
diff --git a/vcl/source/window/tabpage.cxx b/vcl/source/window/tabpage.cxx
index 0f32675..170dbca 100644
--- a/vcl/source/window/tabpage.cxx
+++ b/vcl/source/window/tabpage.cxx
@@ -148,7 +148,7 @@ void TabPage::Paint( vcl::RenderContext& /*rRenderContext*/, const Rectangle& )
     }
 }
 
-void TabPage::Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_uLong )
+void TabPage::Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, DrawFlags )
 {
     Point aPos = pDev->LogicToPixel( rPos );
     Size aSize = pDev->LogicToPixel( rSize );
diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx
index 6bb652f..c93e6c0 100644
--- a/vcl/source/window/window.cxx
+++ b/vcl/source/window/window.cxx
@@ -1913,7 +1913,7 @@ void Window::KeyUp( const KeyEvent& rKEvt )
         mpWindowImpl->mbKeyUp = true;
 }
 
-void Window::Draw( OutputDevice*, const Point&, const Size&, sal_uLong )
+void Window::Draw( OutputDevice*, const Point&, const Size&, DrawFlags )
 {
 }
 
commit 9e3b1236b68069016d646b5682ce541335b5340c
Author: Noel Grandin <noel at peralex.com>
Date:   Tue May 26 15:22:10 2015 +0200

    convert WINDOW_DLGCTRL flags to scoped enum
    
    Change-Id: I6c3a95cdcb15e5b1d4adb13908a751b06a302e20

diff --git a/include/vcl/window.hxx b/include/vcl/window.hxx
index 9b9ebd2..ec12c25 100644
--- a/include/vcl/window.hxx
+++ b/include/vcl/window.hxx
@@ -349,10 +349,18 @@ enum class StateChangedType : sal_uInt16
 #define WINDOW_DRAW_ROLLOVER            ((sal_uLong)0x00000100)
 
 // DialogControl-Flags
-#define WINDOW_DLGCTRL_RETURN           ((sal_uInt16)0x0001)
-#define WINDOW_DLGCTRL_WANTFOCUS        ((sal_uInt16)0x0002)
-#define WINDOW_DLGCTRL_MOD1TAB          ((sal_uInt16)0x0004)
-#define WINDOW_DLGCTRL_FLOATWIN_POPUPMODEEND_CANCEL ((sal_uInt16)0x0008)
+enum class DialogControlFlags
+{
+    NONE                       = 0x0000,
+    Return                     = 0x0001,
+    WantFocus                  = 0x0002,
+    Mod1Tab                    = 0x0004,
+    FloatWinPopupModeEndCancel = 0x0008,
+};
+namespace o3tl
+{
+    template<> struct typed_flags<DialogControlFlags> : is_typed_flags<DialogControlFlags, 0x000f> {};
+}
 
 // EndExtTextInput() Flags
 enum class EndExtTextInputFlags
@@ -900,8 +908,8 @@ public:
     bool                                IsPaintTransparent() const;
     void                                SetDialogControlStart( bool bStart );
     bool                                IsDialogControlStart() const;
-    void                                SetDialogControlFlags( sal_uInt16 nFlags );
-    sal_uInt16                          GetDialogControlFlags() const;
+    void                                SetDialogControlFlags( DialogControlFlags nFlags );
+    DialogControlFlags                  GetDialogControlFlags() const;
 
     struct PointerState
     {
diff --git a/sc/source/ui/view/gridwin.cxx b/sc/source/ui/view/gridwin.cxx
index af80184..38d4560 100644
--- a/sc/source/ui/view/gridwin.cxx
+++ b/sc/source/ui/view/gridwin.cxx
@@ -528,7 +528,7 @@ ScGridWindow::ScGridWindow( vcl::Window* pParent, ScViewData* pData, ScSplitPos
 
     SetMapMode(pViewData->GetLogicMode(eWhich));
     EnableChildTransparentMode();
-    SetDialogControlFlags( WINDOW_DLGCTRL_RETURN | WINDOW_DLGCTRL_WANTFOCUS );
+    SetDialogControlFlags( DialogControlFlags::Return | DialogControlFlags::WantFocus );
 
     SetHelpId( HID_SC_WIN_GRIDWIN );
     SetUniqueId( HID_SC_WIN_GRIDWIN );
diff --git a/sd/source/ui/slidesorter/shell/SlideSorter.cxx b/sd/source/ui/slidesorter/shell/SlideSorter.cxx
index a97135c..fd45631 100644
--- a/sd/source/ui/slidesorter/shell/SlideSorter.cxx
+++ b/sd/source/ui/slidesorter/shell/SlideSorter.cxx
@@ -442,7 +442,7 @@ ContentWindow::ContentWindow(
     mrSlideSorter(rSlideSorter),
     mpCurrentFunction()
 {
-    SetDialogControlFlags(GetDialogControlFlags() & ~WINDOW_DLGCTRL_WANTFOCUS);
+    SetDialogControlFlags(GetDialogControlFlags() & ~DialogControlFlags::WantFocus);
     SetStyle(GetStyle() | WB_NOPOINTERFOCUS);
 }
 
diff --git a/sd/source/ui/view/sdwindow.cxx b/sd/source/ui/view/sdwindow.cxx
index 2b936a0..a4fdbd2 100644
--- a/sd/source/ui/view/sdwindow.cxx
+++ b/sd/source/ui/view/sdwindow.cxx
@@ -69,7 +69,7 @@ Window::Window(vcl::Window* pParent)
       mpViewShell(NULL),
       mbUseDropScroll (true)
 {
-    SetDialogControlFlags( WINDOW_DLGCTRL_RETURN | WINDOW_DLGCTRL_WANTFOCUS );
+    SetDialogControlFlags( DialogControlFlags::Return | DialogControlFlags::WantFocus );
 
     MapMode aMap(GetMapMode());
     aMap.SetMapUnit(MAP_100TH_MM);
diff --git a/sw/source/uibase/docvw/edtwin.cxx b/sw/source/uibase/docvw/edtwin.cxx
index 3921852..0d71473 100644
--- a/sw/source/uibase/docvw/edtwin.cxx
+++ b/sw/source/uibase/docvw/edtwin.cxx
@@ -4937,7 +4937,7 @@ SwEditWin::SwEditWin(vcl::Window *pParent, SwView &rMyView):
 {
     SetHelpId(HID_EDIT_WIN);
     EnableChildTransparentMode();
-    SetDialogControlFlags( WINDOW_DLGCTRL_RETURN | WINDOW_DLGCTRL_WANTFOCUS );
+    SetDialogControlFlags( DialogControlFlags::Return | DialogControlFlags::WantFocus );
 
     m_bMBPressed = m_bInsDraw = m_bInsFrm =
     m_bIsInDrag = m_bOldIdle = m_bOldIdleSet = m_bChainMode = m_bWasShdwCrsr = false;
diff --git a/vcl/inc/window.h b/vcl/inc/window.h
index b5216e0..bcb6f06 100644
--- a/vcl/inc/window.h
+++ b/vcl/inc/window.h
@@ -59,6 +59,7 @@ class SalObject;
 enum class MouseEventModifiers;
 enum class MouseNotifyEvent;
 enum class ActivateModeFlags;
+enum class DialogControlFlags;
 
 namespace com { namespace sun { namespace star {
 
@@ -276,7 +277,7 @@ public:
     sal_uInt16          mnGetFocusFlags;
     sal_uInt16          mnParentClipMode;
     ActivateModeFlags   mnActivateMode;
-    sal_uInt16          mnDlgCtrlFlags;
+    DialogControlFlags  mnDlgCtrlFlags;
     sal_uInt16          mnLockCount;
     AlwaysInputMode     meAlwaysInputMode;
     VclAlign            meHalign;
diff --git a/vcl/source/edit/vclmedit.cxx b/vcl/source/edit/vclmedit.cxx
index 00a721f..a21c360 100644
--- a/vcl/source/edit/vclmedit.cxx
+++ b/vcl/source/edit/vclmedit.cxx
@@ -250,7 +250,7 @@ void ImpVclMEdit::InitFromStyle( WinBits nWinStyle )
         mpTextWindow->SetIgnoreTab( false );
         // #103667# VclMultiLineEdit has the flag, but focusable window also needs this flag
         WinBits nStyle = mpTextWindow->GetStyle();
-        nStyle |= WINDOW_DLGCTRL_MOD1TAB;
+        nStyle |= WB_NODIALOGCONTROL;
         mpTextWindow->SetStyle( nStyle );
     }
 }
@@ -971,7 +971,7 @@ WinBits VclMultiLineEdit::ImplInitStyle( WinBits nStyle )
         nStyle |= WB_GROUP;
 
     if ( !(nStyle & WB_IGNORETAB ))
-        nStyle |= WINDOW_DLGCTRL_MOD1TAB;
+        nStyle |= WB_NODIALOGCONTROL;
 
     return nStyle;
 }
diff --git a/vcl/source/window/dlgctrl.cxx b/vcl/source/window/dlgctrl.cxx
index 243be07..ece10d9 100644
--- a/vcl/source/window/dlgctrl.cxx
+++ b/vcl/source/window/dlgctrl.cxx
@@ -596,7 +596,7 @@ bool Window::ImplDlgCtrl( const KeyEvent& rKEvt, bool bKeyInput )
     sal_uInt16  nIndex;
     sal_uInt16  nFormStart;
     sal_uInt16  nFormEnd;
-    sal_uInt16  nDlgCtrlFlags;
+    DialogControlFlags nDlgCtrlFlags;
 
     // we cannot take over control without Focus-window
     vcl::Window* pFocusWindow = Application::GetFocusWindow();
@@ -610,7 +610,7 @@ bool Window::ImplDlgCtrl( const KeyEvent& rKEvt, bool bKeyInput )
         return false;
     i = nIndex;
 
-    nDlgCtrlFlags = 0;
+    nDlgCtrlFlags = DialogControlFlags::NONE;
     pTempWindow = pSWindow;
     do
     {
@@ -639,7 +639,7 @@ bool Window::ImplDlgCtrl( const KeyEvent& rKEvt, bool bKeyInput )
                 pButtonWindow = NULL;
         }
 
-        if ( bKeyInput && !pButtonWindow && (nDlgCtrlFlags & WINDOW_DLGCTRL_RETURN) )
+        if ( bKeyInput && !pButtonWindow && (nDlgCtrlFlags & DialogControlFlags::Return) )
         {
             GetDlgWindowType nType;
             sal_uInt16  nGetFocusFlags = GETFOCUS_TAB;
@@ -801,8 +801,8 @@ bool Window::ImplDlgCtrl( const KeyEvent& rKEvt, bool bKeyInput )
                 {
                     // Only use Ctrl-TAB if it was allowed for the whole
                     // dialog or for the current control (#103667#)
-                    if ( !aKeyCode.IsMod1() || (nDlgCtrlFlags & WINDOW_DLGCTRL_MOD1TAB) ||
-                        ( pSWindow->GetStyle() & WINDOW_DLGCTRL_MOD1TAB) )
+                    if ( !aKeyCode.IsMod1() || (nDlgCtrlFlags & DialogControlFlags::Mod1Tab) ||
+                        ( pSWindow->GetStyle() & WB_NODIALOGCONTROL) )
                     {
                         if ( aKeyCode.IsShift() )
                         {
diff --git a/vcl/source/window/event.cxx b/vcl/source/window/event.cxx
index 3cc2c7c..eda79c0 100644
--- a/vcl/source/window/event.cxx
+++ b/vcl/source/window/event.cxx
@@ -180,7 +180,7 @@ bool Window::Notify( NotifyEvent& rNEvt )
         {
             ImplDlgCtrlFocusChanged( rNEvt.GetWindow(), rNEvt.GetType() == MouseNotifyEvent::GETFOCUS );
             if ( (rNEvt.GetWindow() == this) && (rNEvt.GetType() == MouseNotifyEvent::GETFOCUS) &&
-                 !(GetStyle() & WB_TABSTOP) && !(mpWindowImpl->mnDlgCtrlFlags & WINDOW_DLGCTRL_WANTFOCUS) )
+                 !(GetStyle() & WB_TABSTOP) && !(mpWindowImpl->mnDlgCtrlFlags & DialogControlFlags::WantFocus) )
             {
                 sal_uInt16 n = 0;
                 vcl::Window* pFirstChild = ImplGetDlgWindow( n, GetDlgWindowType::First );
diff --git a/vcl/source/window/floatwin.cxx b/vcl/source/window/floatwin.cxx
index 468d8cc..78dcefd 100644
--- a/vcl/source/window/floatwin.cxx
+++ b/vcl/source/window/floatwin.cxx
@@ -216,7 +216,7 @@ void FloatingWindow::dispose()
         if( mbPopupModeCanceled )
             // indicates that ESC key was pressed
             // will be handled in Window::ImplGrabFocus()
-            SetDialogControlFlags( GetDialogControlFlags() | WINDOW_DLGCTRL_FLOATWIN_POPUPMODEEND_CANCEL );
+            SetDialogControlFlags( GetDialogControlFlags() | DialogControlFlags::FloatWinPopupModeEndCancel );
 
         if ( IsInPopupMode() )
             EndPopupMode( FloatWinPopupEndFlags::Cancel | FloatWinPopupEndFlags::CloseAll | FloatWinPopupEndFlags::DontCallHdl );
diff --git a/vcl/source/window/mouse.cxx b/vcl/source/window/mouse.cxx
index e250c6b..1167ac4 100644
--- a/vcl/source/window/mouse.cxx
+++ b/vcl/source/window/mouse.cxx
@@ -216,7 +216,7 @@ void Window::ImplGrabFocus( sal_uInt16 nFlags )
         // ensure that dialogs on close pass the focus back to
         // the correct window
         if ( mpWindowImpl->mpLastFocusWindow && (mpWindowImpl->mpLastFocusWindow.get() != this) &&
-             !(mpWindowImpl->mnDlgCtrlFlags & WINDOW_DLGCTRL_WANTFOCUS) &&
+             !(mpWindowImpl->mnDlgCtrlFlags & DialogControlFlags::WantFocus) &&
              mpWindowImpl->mpLastFocusWindow->IsEnabled() &&
              mpWindowImpl->mpLastFocusWindow->IsInputEnabled() &&
              ! mpWindowImpl->mpLastFocusWindow->IsInModalMode()
@@ -232,7 +232,7 @@ void Window::ImplGrabFocus( sal_uInt16 nFlags )
         // ensure that dialogs on close pass the focus back to
         // the correct window
         if ( mpWindowImpl->mpLastFocusWindow && (mpWindowImpl->mpLastFocusWindow.get() != this) &&
-             !(mpWindowImpl->mnDlgCtrlFlags & WINDOW_DLGCTRL_WANTFOCUS) &&
+             !(mpWindowImpl->mnDlgCtrlFlags & DialogControlFlags::WantFocus) &&
              mpWindowImpl->mpLastFocusWindow->IsEnabled() &&
              mpWindowImpl->mpLastFocusWindow->IsInputEnabled() &&
              ! mpWindowImpl->mpLastFocusWindow->IsInModalMode()
@@ -380,7 +380,7 @@ void Window::ImplGrabFocus( sal_uInt16 nFlags )
                 // eg, toolboxes can select their recent active item
                 if( pOldFocusWindow &&
                     ! aOldFocusDel.IsDead() &&
-                    ( pOldFocusWindow->GetDialogControlFlags() & WINDOW_DLGCTRL_FLOATWIN_POPUPMODEEND_CANCEL ) )
+                    ( pOldFocusWindow->GetDialogControlFlags() & DialogControlFlags::FloatWinPopupModeEndCancel ) )
                     mpWindowImpl->mnGetFocusFlags |= GETFOCUS_FLOATWIN_POPUPMODEEND_CANCEL;
                 NotifyEvent aNEvt( MouseNotifyEvent::GETFOCUS, this );
                 if ( !ImplCallPreNotify( aNEvt ) && !aDogTag.IsDead() )
diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx
index c2d8bd9..6bb652f 100644
--- a/vcl/source/window/window.cxx
+++ b/vcl/source/window/window.cxx
@@ -648,7 +648,7 @@ WindowImpl::WindowImpl( WindowType nType )
     mnPaintFlags                        = 0;                         // Flags for ImplCallPaint
     mnParentClipMode                    = 0;                         // Flags for Parent-ClipChildren-Mode
     mnActivateMode                      = ActivateModeFlags::NONE;   // Will be converted in System/Overlap-Windows
-    mnDlgCtrlFlags                      = 0;                         // DialogControl-Flags
+    mnDlgCtrlFlags                      = DialogControlFlags::NONE;  // DialogControl-Flags
     mnLockCount                         = 0;                         // LockCount
     meAlwaysInputMode                   = AlwaysInputNone;           // neither AlwaysEnableInput nor AlwaysDisableInput called
     meHalign                            = VCL_ALIGN_FILL;
@@ -1927,7 +1927,7 @@ void Window::Deactivate() {}
 
 void Window::GetFocus()
 {
-    if ( HasFocus() && mpWindowImpl->mpLastFocusWindow && !(mpWindowImpl->mnDlgCtrlFlags & WINDOW_DLGCTRL_WANTFOCUS) )
+    if ( HasFocus() && mpWindowImpl->mpLastFocusWindow && !(mpWindowImpl->mnDlgCtrlFlags & DialogControlFlags::WantFocus) )
     {
         ImplDelData aDogtag( this );
         mpWindowImpl->mpLastFocusWindow->GrabFocus();
diff --git a/vcl/source/window/window2.cxx b/vcl/source/window/window2.cxx
index 17cc082..99fd9ce 100644
--- a/vcl/source/window/window2.cxx
+++ b/vcl/source/window/window2.cxx
@@ -1199,12 +1199,12 @@ bool Window::IsDialogControlStart() const
     return mpWindowImpl && mpWindowImpl->mbDlgCtrlStart;
 }
 
-void Window::SetDialogControlFlags( sal_uInt16 nFlags )
+void Window::SetDialogControlFlags( DialogControlFlags nFlags )
 {
     mpWindowImpl->mnDlgCtrlFlags = nFlags;
 }
 
-sal_uInt16 Window::GetDialogControlFlags() const
+DialogControlFlags Window::GetDialogControlFlags() const
 {
     return mpWindowImpl->mnDlgCtrlFlags;
 }
commit edc69a55c30ac6cc12de0bf18bddb7dc3f210be4
Author: Noel Grandin <noel at peralex.com>
Date:   Tue May 26 10:16:39 2015 +0200

    simplify GetWindowClipRegionPixel
    
    since it has only one call-site
    
    Change-Id: I80344faf4beab9aa9427ba8d448b0cf3fd30c7b6

diff --git a/include/vcl/window.hxx b/include/vcl/window.hxx
index e2578ac..9b9ebd2 100644
--- a/include/vcl/window.hxx
+++ b/include/vcl/window.hxx
@@ -354,10 +354,6 @@ enum class StateChangedType : sal_uInt16
 #define WINDOW_DLGCTRL_MOD1TAB          ((sal_uInt16)0x0004)
 #define WINDOW_DLGCTRL_FLOATWIN_POPUPMODEEND_CANCEL ((sal_uInt16)0x0008)
 
-// GetWindowClipRegionPixel-Flags
-#define WINDOW_GETCLIPREGION_NULL       ((sal_uInt16)0x0001)
-#define WINDOW_GETCLIPREGION_NOCHILDREN ((sal_uInt16)0x0002)
-
 // EndExtTextInput() Flags
 enum class EndExtTextInputFlags
 {
@@ -963,7 +959,7 @@ public:
     void                                SetWindowRegionPixel( const vcl::Region& rRegion );
     const vcl::Region&                  GetWindowRegionPixel() const;
     bool                                IsWindowRegionPixel() const;
-    vcl::Region                         GetWindowClipRegionPixel( sal_uInt16 nFlags = 0 ) const;
+    vcl::Region                         GetWindowClipRegionPixel() const;
     vcl::Region                         GetPaintRegion() const;
     bool                                IsInPaint() const;
     // while IsInPaint returns true ExpandPaintClipRegion adds the
diff --git a/sw/source/core/view/viewsh.cxx b/sw/source/core/view/viewsh.cxx
index 61dcf46..3c163d9 100644
--- a/sw/source/core/view/viewsh.cxx
+++ b/sw/source/core/view/viewsh.cxx
@@ -1196,7 +1196,7 @@ bool SwViewShell::SmoothScroll( long lXDiff, long lYDiff, const Rectangle *pRect
 
     // #i75172# isolated static conditions
     const bool bOnlyYScroll(!lXDiff && std::abs(lYDiff) != 0 && std::abs(lYDiff) < lMax);
-    const bool bAllowedWithChildWindows(GetWin()->GetWindowClipRegionPixel(WINDOW_GETCLIPREGION_NOCHILDREN|WINDOW_GETCLIPREGION_NULL).IsNull());
+    const bool bAllowedWithChildWindows(GetWin()->GetWindowClipRegionPixel().IsNull());
     const bool bSmoothScrollAllowed(bOnlyYScroll && mbEnableSmooth && GetViewOptions()->IsSmoothScroll() &&  bAllowedWithChildWindows);
 
     if(bSmoothScrollAllowed)
diff --git a/vcl/source/window/clipping.cxx b/vcl/source/window/clipping.cxx
index 38efc37..ef56b63cf 100644
--- a/vcl/source/window/clipping.cxx
+++ b/vcl/source/window/clipping.cxx
@@ -112,37 +112,19 @@ void Window::ExpandPaintClipRegion( const vcl::Region& rRegion )
     }
 }
 
-vcl::Region Window::GetWindowClipRegionPixel( sal_uInt16 nFlags ) const
+vcl::Region Window::GetWindowClipRegionPixel() const
 {
-
     vcl::Region aWinClipRegion;
 
-    if ( nFlags & WINDOW_GETCLIPREGION_NOCHILDREN )
-    {
-        if ( mpWindowImpl->mbInitWinClipRegion )
-            const_cast<vcl::Window*>(this)->ImplInitWinClipRegion();
-        aWinClipRegion = mpWindowImpl->maWinClipRegion;
-    }
-    else
-    {
-        vcl::Region* pWinChildClipRegion = const_cast<vcl::Window*>(this)->ImplGetWinChildClipRegion();
-        aWinClipRegion = *pWinChildClipRegion;
-        // --- RTL --- remirror clip region before passing it to somebody
-        if( ImplIsAntiparallel() )
-        {
-            const OutputDevice *pOutDev = GetOutDev();
-            pOutDev->ReMirror( aWinClipRegion );
-        }
-    }
+    if ( mpWindowImpl->mbInitWinClipRegion )
+        const_cast<vcl::Window*>(this)->ImplInitWinClipRegion();
+    aWinClipRegion = mpWindowImpl->maWinClipRegion;
 
-    if ( nFlags & WINDOW_GETCLIPREGION_NULL )
-    {
-        Rectangle   aWinRect( Point( mnOutOffX, mnOutOffY ), Size( mnOutWidth, mnOutHeight ) );
-        vcl::Region      aWinRegion( aWinRect );
+    Rectangle     aWinRect( Point( mnOutOffX, mnOutOffY ), Size( mnOutWidth, mnOutHeight ) );
+    vcl::Region   aWinRegion( aWinRect );
 
-        if ( aWinRegion == aWinClipRegion )
-            aWinClipRegion.SetNull();
-    }
+    if ( aWinRegion == aWinClipRegion )
+        aWinClipRegion.SetNull();
 
     aWinClipRegion.Move( -mnOutOffX, -mnOutOffY );
 
commit 5ad3886ec8d3d465c956d99fab42fffda656392c
Author: Noel Grandin <noel at peralex.com>
Date:   Tue May 26 09:30:27 2015 +0200

    convert EXTTEXTINPUT constants to scoped enum
    
    Change-Id: I1bb4ff2c13eaa2a9da3e32963ac0802e947e18d9

diff --git a/include/vcl/window.hxx b/include/vcl/window.hxx
index 32f3ea8..e2578ac 100644
--- a/include/vcl/window.hxx
+++ b/include/vcl/window.hxx
@@ -358,9 +358,16 @@ enum class StateChangedType : sal_uInt16
 #define WINDOW_GETCLIPREGION_NULL       ((sal_uInt16)0x0001)
 #define WINDOW_GETCLIPREGION_NOCHILDREN ((sal_uInt16)0x0002)
 
-// EndExtTextInput-Flags
-#define EXTTEXTINPUT_END_COMPLETE       ((sal_uInt16)0x0001)
-#define EXTTEXTINPUT_END_CANCEL         ((sal_uInt16)0x0002)
+// EndExtTextInput() Flags
+enum class EndExtTextInputFlags
+{
+    NONE           = 0x0000,
+    Complete       = 0x0001
+};
+namespace o3tl
+{
+    template<> struct typed_flags<EndExtTextInputFlags> : is_typed_flags<EndExtTextInputFlags, 0x0001> {};
+}
 
 #define IMPL_MINSIZE_BUTTON_WIDTH       70
 #define IMPL_MINSIZE_BUTTON_HEIGHT      22
@@ -912,7 +919,7 @@ public:
 
     void                                SetInputContext( const InputContext& rInputContext );
     const InputContext&                 GetInputContext() const;
-    void                                EndExtTextInput( sal_uInt16 nFlags );
+    void                                EndExtTextInput( EndExtTextInputFlags nFlags );
     void                                SetCursorRect( const Rectangle* pRect = NULL, long nExtTextInputWidth = 0 );
     const Rectangle*                    GetCursorRect() const;
     long                                GetCursorExtTextInputWidth() const;
diff --git a/vcl/headless/svpframe.cxx b/vcl/headless/svpframe.cxx
index e1218d7..362a91c 100644
--- a/vcl/headless/svpframe.cxx
+++ b/vcl/headless/svpframe.cxx
@@ -419,7 +419,7 @@ void SvpSalFrame::SetInputContext( SalInputContext* )
 {
 }
 
-void SvpSalFrame::EndExtTextInput( sal_uInt16 )
+void SvpSalFrame::EndExtTextInput( EndExtTextInputFlags )
 {
 }
 
diff --git a/vcl/inc/headless/svpframe.hxx b/vcl/inc/headless/svpframe.hxx
index b07c216..0598bf0 100644
--- a/vcl/inc/headless/svpframe.hxx
+++ b/vcl/inc/headless/svpframe.hxx
@@ -109,7 +109,7 @@ public:
     virtual void                Flush() SAL_OVERRIDE;
     virtual void                Sync() SAL_OVERRIDE;
     virtual void                SetInputContext( SalInputContext* pContext ) SAL_OVERRIDE;
-    virtual void                EndExtTextInput( sal_uInt16 nFlags ) SAL_OVERRIDE;
+    virtual void                EndExtTextInput( EndExtTextInputFlags nFlags ) SAL_OVERRIDE;
     virtual OUString            GetKeyName( sal_uInt16 nKeyCode ) SAL_OVERRIDE;
     virtual bool                MapUnicodeToKeyCode( sal_Unicode aUnicode, LanguageType aLangType, vcl::KeyCode& rKeyCode ) SAL_OVERRIDE;
     virtual LanguageType        GetInputLanguage() SAL_OVERRIDE;
diff --git a/vcl/inc/osx/salframe.h b/vcl/inc/osx/salframe.h
index b030d39..69ff3a1 100644
--- a/vcl/inc/osx/salframe.h
+++ b/vcl/inc/osx/salframe.h
@@ -134,7 +134,7 @@ public:
     virtual void                Flush( const Rectangle& ) SAL_OVERRIDE;
     virtual void                Sync() SAL_OVERRIDE;
     virtual void                SetInputContext( SalInputContext* pContext ) SAL_OVERRIDE;
-    virtual void                EndExtTextInput( sal_uInt16 nFlags ) SAL_OVERRIDE;
+    virtual void                EndExtTextInput( EndExtTextInputFlags nFlags ) SAL_OVERRIDE;
     virtual OUString            GetKeyName( sal_uInt16 nKeyCode ) SAL_OVERRIDE;
     virtual bool                MapUnicodeToKeyCode( sal_Unicode aUnicode, LanguageType aLangType, vcl::KeyCode& rKeyCode ) SAL_OVERRIDE;
     virtual LanguageType        GetInputLanguage() SAL_OVERRIDE;
diff --git a/vcl/inc/salframe.hxx b/vcl/inc/salframe.hxx
index 84cd1f5..acdb9b4 100644
--- a/vcl/inc/salframe.hxx
+++ b/vcl/inc/salframe.hxx
@@ -174,7 +174,7 @@ public:
     virtual void            Sync() = 0;
 
     virtual void            SetInputContext( SalInputContext* pContext ) = 0;
-    virtual void            EndExtTextInput( sal_uInt16 nFlags ) = 0;
+    virtual void            EndExtTextInput( EndExtTextInputFlags nFlags ) = 0;
 
     virtual OUString        GetKeyName( sal_uInt16 nKeyCode ) = 0;
 
diff --git a/vcl/inc/unx/gtk/gtkframe.hxx b/vcl/inc/unx/gtk/gtkframe.hxx
index de8903e..194a20d 100644
--- a/vcl/inc/unx/gtk/gtkframe.hxx
+++ b/vcl/inc/unx/gtk/gtkframe.hxx
@@ -155,7 +155,7 @@ class GtkSalFrame : public SalFrame, public X11WindowProvider
         void            createIMContext();
         void            deleteIMContext();
         void            updateIMSpotLocation();
-        void            endExtTextInput( sal_uInt16 nFlags );
+        void            endExtTextInput( EndExtTextInputFlags nFlags );
         bool            handleKeyEvent( GdkEventKey* pEvent );
         void            focusChanged( bool bFocusIn );
 
@@ -405,7 +405,7 @@ public:
     virtual void                Sync() SAL_OVERRIDE;
 
     virtual void                SetInputContext( SalInputContext* pContext ) SAL_OVERRIDE;
-    virtual void                EndExtTextInput( sal_uInt16 nFlags ) SAL_OVERRIDE;
+    virtual void                EndExtTextInput( EndExtTextInputFlags nFlags ) SAL_OVERRIDE;
 
     virtual OUString            GetKeyName( sal_uInt16 nKeyCode ) SAL_OVERRIDE;
     virtual bool                MapUnicodeToKeyCode( sal_Unicode aUnicode, LanguageType aLangType, vcl::KeyCode& rKeyCode ) SAL_OVERRIDE;
diff --git a/vcl/inc/unx/i18n_ic.hxx b/vcl/inc/unx/i18n_ic.hxx
index 656a3f0..b76ce3e 100644
--- a/vcl/inc/unx/i18n_ic.hxx
+++ b/vcl/inc/unx/i18n_ic.hxx
@@ -23,6 +23,8 @@
 #include <i18nlangtag/lang.h>
 #include "i18n_cb.hxx"
 
+enum class EndExtTextInputFlags;
+
 class SalI18N_InputContext
 {
 
@@ -65,7 +67,7 @@ public:
     void HandleDestroyIM();
 
     int  HandleKeyEvent( XKeyEvent *pEvent, SalFrame *pFrame ); // unused

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list