[Libreoffice-commits] core.git: include/vcl

Noel Grandin (via logerrit) logerrit at kemper.freedesktop.org
Thu Oct 31 11:38:30 UTC 2019


 include/vcl/BitmapAlphaClampFilter.hxx              |    2 
 include/vcl/BitmapColorQuantizationFilter.hxx       |    2 
 include/vcl/BitmapDuoToneFilter.hxx                 |    2 
 include/vcl/BitmapEmbossGreyFilter.hxx              |    2 
 include/vcl/BitmapGaussianSeparableBlurFilter.hxx   |    2 
 include/vcl/BitmapMedianFilter.hxx                  |    2 
 include/vcl/BitmapMonochromeFilter.hxx              |    2 
 include/vcl/BitmapMosaicFilter.hxx                  |    2 
 include/vcl/BitmapPopArtFilter.hxx                  |    2 
 include/vcl/BitmapSeparableUnsharpenFilter.hxx      |    2 
 include/vcl/BitmapSepiaFilter.hxx                   |    2 
 include/vcl/BitmapSharpenFilter.hxx                 |    2 
 include/vcl/BitmapSimpleColorQuantizationFilter.hxx |    2 
 include/vcl/BitmapSmoothenFilter.hxx                |    2 
 include/vcl/BitmapSobelGreyFilter.hxx               |    2 
 include/vcl/BitmapSolarizeFilter.hxx                |    2 
 include/vcl/OptionalBox.hxx                         |    2 
 include/vcl/button.hxx                              |    9 
 include/vcl/configsettings.hxx                      |    2 
 include/vcl/debugevent.hxx                          |    2 
 include/vcl/dndhelp.hxx                             |    2 
 include/vcl/dockingarea.hxx                         |    2 
 include/vcl/errinf.hxx                              |    4 
 include/vcl/field.hxx                               |   15 -
 include/vcl/filter/pdfdocument.hxx                  |    8 
 include/vcl/fixed.hxx                               |    4 
 include/vcl/imapcirc.hxx                            |    4 
 include/vcl/imappoly.hxx                            |    4 
 include/vcl/imaprect.hxx                            |    4 
 include/vcl/ivctrl.hxx                              |    2 
 include/vcl/layout.hxx                              |   36 +--
 include/vcl/lazydelete.hxx                          |    4 
 include/vcl/longcurr.hxx                            |    4 
 include/vcl/lstbox.hxx                              |    2 
 include/vcl/menubtn.hxx                             |    2 
 include/vcl/metaact.hxx                             |  211 +++++++++-----------
 include/vcl/notebookbar.hxx                         |    2 
 include/vcl/oldprintadaptor.hxx                     |    2 
 include/vcl/pdfwriter.hxx                           |   14 -
 include/vcl/prgsbar.hxx                             |    2 
 include/vcl/salnativewidgets.hxx                    |   18 -
 include/vcl/scrbar.hxx                              |    2 
 include/vcl/slider.hxx                              |    2 
 include/vcl/textview.hxx                            |    4 
 include/vcl/threadex.hxx                            |    2 
 include/vcl/toolkit/morebtn.hxx                     |    2 
 include/vcl/toolkit/tabdlg.hxx                      |    2 
 include/vcl/toolkit/throbber.hxx                    |    6 
 include/vcl/transfer.hxx                            |    4 
 include/vcl/txtattr.hxx                             |    6 
 include/vcl/uitest/uiobject.hxx                     |   52 ++--
 include/vcl/unohelp2.hxx                            |    2 
 include/vcl/vclevent.hxx                            |    6 
 include/vcl/vclmedit.hxx                            |    2 
 include/vcl/vclptr.hxx                              |    4 
 include/vcl/vclstatuslistener.hxx                   |    2 
 include/vcl/weld.hxx                                |    6 
 57 files changed, 238 insertions(+), 259 deletions(-)

New commits:
commit 54bc266e319e3cae10b72ca9173afb600176a831
Author:     Noel Grandin <noel.grandin at collabora.co.uk>
AuthorDate: Thu Oct 31 09:32:42 2019 +0200
Commit:     Noel Grandin <noel.grandin at collabora.co.uk>
CommitDate: Thu Oct 31 12:37:50 2019 +0100

    loplugin:finalclasses in vcl
    
    Change-Id: Id6dd59d0a335d84c513059ed7870135cf9959af8
    Reviewed-on: https://gerrit.libreoffice.org/81827
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>

diff --git a/include/vcl/BitmapAlphaClampFilter.hxx b/include/vcl/BitmapAlphaClampFilter.hxx
index d99e731b292a..100eb6bb0726 100644
--- a/include/vcl/BitmapAlphaClampFilter.hxx
+++ b/include/vcl/BitmapAlphaClampFilter.hxx
@@ -15,7 +15,7 @@
 
 /** If the alpha is beyond a certain threshold, make it fully transparent
  */
-class VCL_DLLPUBLIC BitmapAlphaClampFilter : public BitmapFilter
+class VCL_DLLPUBLIC BitmapAlphaClampFilter final : public BitmapFilter
 {
 public:
     BitmapAlphaClampFilter(sal_uInt8 cThreshold)
diff --git a/include/vcl/BitmapColorQuantizationFilter.hxx b/include/vcl/BitmapColorQuantizationFilter.hxx
index c3fd049de0ff..0c2f9ad7fbf3 100644
--- a/include/vcl/BitmapColorQuantizationFilter.hxx
+++ b/include/vcl/BitmapColorQuantizationFilter.hxx
@@ -13,7 +13,7 @@
 
 #include <vcl/BitmapFilter.hxx>
 
-class VCL_DLLPUBLIC BitmapColorQuantizationFilter : public BitmapFilter
+class VCL_DLLPUBLIC BitmapColorQuantizationFilter final : public BitmapFilter
 {
 public:
     /** Reduce number of colors for the bitmap using the POPULAR algorithm
diff --git a/include/vcl/BitmapDuoToneFilter.hxx b/include/vcl/BitmapDuoToneFilter.hxx
index 3b6ee1523a4e..8dddfb16bfe2 100644
--- a/include/vcl/BitmapDuoToneFilter.hxx
+++ b/include/vcl/BitmapDuoToneFilter.hxx
@@ -15,7 +15,7 @@
 
 class BitmapEx;
 
-class VCL_DLLPUBLIC BitmapDuoToneFilter : public BitmapFilter
+class VCL_DLLPUBLIC BitmapDuoToneFilter final : public BitmapFilter
 {
 public:
     BitmapDuoToneFilter(sal_uLong nColorOne, sal_uLong nColorTwo)
diff --git a/include/vcl/BitmapEmbossGreyFilter.hxx b/include/vcl/BitmapEmbossGreyFilter.hxx
index e81d3e7b7493..96b1173dfb9b 100644
--- a/include/vcl/BitmapEmbossGreyFilter.hxx
+++ b/include/vcl/BitmapEmbossGreyFilter.hxx
@@ -15,7 +15,7 @@
 
 class BitmapEx;
 
-class VCL_DLLPUBLIC BitmapEmbossGreyFilter : public BitmapFilter
+class VCL_DLLPUBLIC BitmapEmbossGreyFilter final : public BitmapFilter
 {
 public:
     BitmapEmbossGreyFilter(sal_uInt16 nAzimuthAngle100, sal_uInt16 nElevationAngle100)
diff --git a/include/vcl/BitmapGaussianSeparableBlurFilter.hxx b/include/vcl/BitmapGaussianSeparableBlurFilter.hxx
index c3814e69bb95..63188a2c5968 100644
--- a/include/vcl/BitmapGaussianSeparableBlurFilter.hxx
+++ b/include/vcl/BitmapGaussianSeparableBlurFilter.hxx
@@ -16,7 +16,7 @@
 
 class BitmapEx;
 
-class VCL_DLLPUBLIC BitmapGaussianSeparableBlurFilter : public BitmapFilter
+class VCL_DLLPUBLIC BitmapGaussianSeparableBlurFilter final : public BitmapFilter
 {
 public:
     BitmapGaussianSeparableBlurFilter(double fRadius)
diff --git a/include/vcl/BitmapMedianFilter.hxx b/include/vcl/BitmapMedianFilter.hxx
index b9d2fc555759..941ba0dae5d2 100644
--- a/include/vcl/BitmapMedianFilter.hxx
+++ b/include/vcl/BitmapMedianFilter.hxx
@@ -15,7 +15,7 @@
 
 class BitmapEx;
 
-class VCL_DLLPUBLIC BitmapMedianFilter : public BitmapFilter
+class VCL_DLLPUBLIC BitmapMedianFilter final : public BitmapFilter
 {
 public:
     BitmapMedianFilter() {}
diff --git a/include/vcl/BitmapMonochromeFilter.hxx b/include/vcl/BitmapMonochromeFilter.hxx
index 6ce71a69d92c..8d5773d8896f 100644
--- a/include/vcl/BitmapMonochromeFilter.hxx
+++ b/include/vcl/BitmapMonochromeFilter.hxx
@@ -13,7 +13,7 @@
 
 #include <vcl/BitmapFilter.hxx>
 
-class VCL_DLLPUBLIC BitmapMonochromeFilter : public BitmapFilter
+class VCL_DLLPUBLIC BitmapMonochromeFilter final : public BitmapFilter
 {
 public:
     /** Convert to 2 color bitmap.
diff --git a/include/vcl/BitmapMosaicFilter.hxx b/include/vcl/BitmapMosaicFilter.hxx
index f52a947a151d..9d242eb89c40 100644
--- a/include/vcl/BitmapMosaicFilter.hxx
+++ b/include/vcl/BitmapMosaicFilter.hxx
@@ -19,7 +19,7 @@
 
 class BitmapEx;
 
-class VCL_DLLPUBLIC BitmapMosaicFilter : public BitmapFilter
+class VCL_DLLPUBLIC BitmapMosaicFilter final : public BitmapFilter
 {
 public:
     BitmapMosaicFilter(sal_uLong nTileWidth, sal_uLong nTileHeight)
diff --git a/include/vcl/BitmapPopArtFilter.hxx b/include/vcl/BitmapPopArtFilter.hxx
index 9312c7b9367a..e5733f7338cc 100644
--- a/include/vcl/BitmapPopArtFilter.hxx
+++ b/include/vcl/BitmapPopArtFilter.hxx
@@ -13,7 +13,7 @@
 
 #include <vcl/BitmapFilter.hxx>
 
-class VCL_DLLPUBLIC BitmapPopArtFilter : public BitmapFilter
+class VCL_DLLPUBLIC BitmapPopArtFilter final : public BitmapFilter
 {
 public:
     BitmapPopArtFilter() {}
diff --git a/include/vcl/BitmapSeparableUnsharpenFilter.hxx b/include/vcl/BitmapSeparableUnsharpenFilter.hxx
index daa063aef547..d19ea0f0b423 100644
--- a/include/vcl/BitmapSeparableUnsharpenFilter.hxx
+++ b/include/vcl/BitmapSeparableUnsharpenFilter.hxx
@@ -18,7 +18,7 @@ class BitmapEx;
 /** Separable Unsharpen Mask filter is actually a subtracted blurred
     image from the original image.
  */
-class VCL_DLLPUBLIC BitmapSeparableUnsharpenFilter : public BitmapFilter
+class VCL_DLLPUBLIC BitmapSeparableUnsharpenFilter final : public BitmapFilter
 {
 public:
     BitmapSeparableUnsharpenFilter(double fRadius)
diff --git a/include/vcl/BitmapSepiaFilter.hxx b/include/vcl/BitmapSepiaFilter.hxx
index 787a15e3f9f3..3121987ed06c 100644
--- a/include/vcl/BitmapSepiaFilter.hxx
+++ b/include/vcl/BitmapSepiaFilter.hxx
@@ -15,7 +15,7 @@
 
 class BitmapEx;
 
-class VCL_DLLPUBLIC BitmapSepiaFilter : public BitmapFilter
+class VCL_DLLPUBLIC BitmapSepiaFilter final : public BitmapFilter
 {
 public:
     BitmapSepiaFilter(double nSepiaPercent)
diff --git a/include/vcl/BitmapSharpenFilter.hxx b/include/vcl/BitmapSharpenFilter.hxx
index 66cb56f3a1d5..079e1d418d80 100644
--- a/include/vcl/BitmapSharpenFilter.hxx
+++ b/include/vcl/BitmapSharpenFilter.hxx
@@ -13,7 +13,7 @@
 
 #include <vcl/BitmapConvolutionMatrixFilter.hxx>
 
-class VCL_DLLPUBLIC BitmapSharpenFilter : public BitmapConvolutionMatrixFilter
+class VCL_DLLPUBLIC BitmapSharpenFilter final : public BitmapConvolutionMatrixFilter
 {
 public:
     BitmapSharpenFilter();
diff --git a/include/vcl/BitmapSimpleColorQuantizationFilter.hxx b/include/vcl/BitmapSimpleColorQuantizationFilter.hxx
index b311f8fc266d..88d8adfe5ce6 100644
--- a/include/vcl/BitmapSimpleColorQuantizationFilter.hxx
+++ b/include/vcl/BitmapSimpleColorQuantizationFilter.hxx
@@ -13,7 +13,7 @@
 
 #include <vcl/BitmapFilter.hxx>
 
-class VCL_DLLPUBLIC BitmapSimpleColorQuantizationFilter : public BitmapFilter
+class VCL_DLLPUBLIC BitmapSimpleColorQuantizationFilter final : public BitmapFilter
 {
 public:
     /** Reduce number of colors for the bitmap using the POPULAR algorithm
diff --git a/include/vcl/BitmapSmoothenFilter.hxx b/include/vcl/BitmapSmoothenFilter.hxx
index 90503ef3789d..87eccb96b9a8 100644
--- a/include/vcl/BitmapSmoothenFilter.hxx
+++ b/include/vcl/BitmapSmoothenFilter.hxx
@@ -15,7 +15,7 @@
 
 class BitmapEx;
 
-class VCL_DLLPUBLIC BitmapSmoothenFilter : public BitmapFilter
+class VCL_DLLPUBLIC BitmapSmoothenFilter final : public BitmapFilter
 {
 public:
     BitmapSmoothenFilter(double fRadius)
diff --git a/include/vcl/BitmapSobelGreyFilter.hxx b/include/vcl/BitmapSobelGreyFilter.hxx
index 4ce6ef60b7d6..31e56bf5aeb3 100644
--- a/include/vcl/BitmapSobelGreyFilter.hxx
+++ b/include/vcl/BitmapSobelGreyFilter.hxx
@@ -13,7 +13,7 @@
 
 #include <vcl/BitmapFilter.hxx>
 
-class VCL_DLLPUBLIC BitmapSobelGreyFilter : public BitmapFilter
+class VCL_DLLPUBLIC BitmapSobelGreyFilter final : public BitmapFilter
 {
 public:
     BitmapSobelGreyFilter() {}
diff --git a/include/vcl/BitmapSolarizeFilter.hxx b/include/vcl/BitmapSolarizeFilter.hxx
index ff6b35f328a5..654a52387401 100644
--- a/include/vcl/BitmapSolarizeFilter.hxx
+++ b/include/vcl/BitmapSolarizeFilter.hxx
@@ -15,7 +15,7 @@
 
 class BitmapEx;
 
-class VCL_DLLPUBLIC BitmapSolarizeFilter : public BitmapFilter
+class VCL_DLLPUBLIC BitmapSolarizeFilter final : public BitmapFilter
 {
 public:
     BitmapSolarizeFilter(double cSolarGreyThreshold)
diff --git a/include/vcl/OptionalBox.hxx b/include/vcl/OptionalBox.hxx
index 0b6731bd15c1..956e98a1c252 100644
--- a/include/vcl/OptionalBox.hxx
+++ b/include/vcl/OptionalBox.hxx
@@ -26,7 +26,7 @@
 #include <vcl/floatwin.hxx>
 #include <vcl/toolbox.hxx>
 
-class OptionalBox : public VclHBox, public vcl::IPrioritable
+class OptionalBox final : public VclHBox, public vcl::IPrioritable
 {
 private:
     bool m_bInFullView;
diff --git a/include/vcl/button.hxx b/include/vcl/button.hxx
index 0f55d7e2ccb9..0b32b85f341c 100644
--- a/include/vcl/button.hxx
+++ b/include/vcl/button.hxx
@@ -247,7 +247,7 @@ public:
     virtual void    Click() override;
 };
 
-class VCL_DLLPUBLIC CloseButton : public CancelButton
+class VCL_DLLPUBLIC CloseButton final : public CancelButton
 {
 public:
     explicit CloseButton(vcl::Window* pParent, WinBits nStyle = 0);
@@ -484,7 +484,7 @@ inline bool CheckBox::IsChecked() const
     return (GetState() == TRISTATE_TRUE);
 }
 
-class VCL_DLLPUBLIC ImageButton : public PushButton
+class VCL_DLLPUBLIC ImageButton final : public PushButton
 {
 protected:
     using PushButton::ImplInitStyle;
@@ -508,7 +508,7 @@ public:
     explicit        ImageRadioButton( vcl::Window* pParent );
 };
 
-class VCL_DLLPUBLIC TriStateBox : public CheckBox
+class VCL_DLLPUBLIC TriStateBox final : public CheckBox
 {
                     TriStateBox( const TriStateBox & ) = delete;
                     TriStateBox & operator= ( const TriStateBox & ) = delete;
@@ -517,9 +517,8 @@ public:
     explicit        TriStateBox( vcl::Window* pParent, WinBits nStyle );
 };
 
-class VCL_DLLPUBLIC DisclosureButton : public CheckBox
+class VCL_DLLPUBLIC DisclosureButton final : public CheckBox
 {
-protected:
     SAL_DLLPRIVATE virtual void ImplDrawCheckBoxState(vcl::RenderContext& rRenderContext) override;
 
 public:
diff --git a/include/vcl/configsettings.hxx b/include/vcl/configsettings.hxx
index cd2779eaac1d..967387499b9d 100644
--- a/include/vcl/configsettings.hxx
+++ b/include/vcl/configsettings.hxx
@@ -35,7 +35,7 @@ namespace vcl
 
     //= SettingsConfigItem
 
-    class VCL_DLLPUBLIC SettingsConfigItem : public ::utl::ConfigItem
+    class VCL_DLLPUBLIC SettingsConfigItem final : public ::utl::ConfigItem
     {
     private:
         std::unordered_map< OUString, SmallOUStrMap > m_aSettings;
diff --git a/include/vcl/debugevent.hxx b/include/vcl/debugevent.hxx
index fe0eefcce74a..e0d498761d29 100644
--- a/include/vcl/debugevent.hxx
+++ b/include/vcl/debugevent.hxx
@@ -16,7 +16,7 @@
 
 namespace vcl { class Window; }
 
-class VCL_DLLPUBLIC DebugEventInjector : private Timer {
+class VCL_DLLPUBLIC DebugEventInjector final : private Timer {
   sal_uInt32 mnEventsLeft;
   DebugEventInjector( sal_uInt32 nMaxEvents );
 
diff --git a/include/vcl/dndhelp.hxx b/include/vcl/dndhelp.hxx
index 20b09c3ecbb9..b5a1d98c7491 100644
--- a/include/vcl/dndhelp.hxx
+++ b/include/vcl/dndhelp.hxx
@@ -74,7 +74,7 @@ public:
     virtual void dragOver( const css::datatransfer::dnd::DropTargetDragEvent& dtde );
 };
 
-class VCL_DLLPUBLIC DragAndDropWrapper :
+class VCL_DLLPUBLIC DragAndDropWrapper final :
                             public css::datatransfer::dnd::XDragGestureListener,
                             public css::datatransfer::dnd::XDragSourceListener,
                             public css::datatransfer::dnd::XDropTargetListener,
diff --git a/include/vcl/dockingarea.hxx b/include/vcl/dockingarea.hxx
index 6f6e045c1451..a376d3b5c351 100644
--- a/include/vcl/dockingarea.hxx
+++ b/include/vcl/dockingarea.hxx
@@ -25,7 +25,7 @@
 
 //  A simple container for docked toolbars
 //  - its main purpose is theming support
-class VCL_DLLPUBLIC DockingAreaWindow : public vcl::Window
+class VCL_DLLPUBLIC DockingAreaWindow final : public vcl::Window
 {
     class ImplData;
 
diff --git a/include/vcl/errinf.hxx b/include/vcl/errinf.hxx
index 7d4f07207f46..37805b7f710c 100644
--- a/include/vcl/errinf.hxx
+++ b/include/vcl/errinf.hxx
@@ -160,7 +160,7 @@ private:
 
 };
 
-class SAL_WARN_UNUSED VCL_DLLPUBLIC StringErrorInfo : public DynamicErrorInfo
+class SAL_WARN_UNUSED VCL_DLLPUBLIC StringErrorInfo final : public DynamicErrorInfo
 {
 public:
                             StringErrorInfo(ErrCode nUserId,
@@ -174,7 +174,7 @@ private:
 
 };
 
-class SAL_WARN_UNUSED VCL_DLLPUBLIC TwoStringErrorInfo: public DynamicErrorInfo
+class SAL_WARN_UNUSED VCL_DLLPUBLIC TwoStringErrorInfo final : public DynamicErrorInfo
 {
 public:
     TwoStringErrorInfo(ErrCode nUserID, const OUString & rTheArg1,
diff --git a/include/vcl/field.hxx b/include/vcl/field.hxx
index a0d6b4e5833c..3fb2a5468861 100644
--- a/include/vcl/field.hxx
+++ b/include/vcl/field.hxx
@@ -422,7 +422,7 @@ public:
 };
 
 
-class VCL_DLLPUBLIC PatternField : public SpinField, public PatternFormatter
+class VCL_DLLPUBLIC PatternField final : public SpinField, public PatternFormatter
 {
 public:
     explicit                PatternField( vcl::Window* pParent, WinBits nWinStyle );
@@ -521,7 +521,7 @@ public:
 };
 
 
-class VCL_DLLPUBLIC CurrencyField : public SpinField, public CurrencyFormatter
+class VCL_DLLPUBLIC CurrencyField final : public SpinField, public CurrencyFormatter
 {
 public:
     CurrencyField( vcl::Window* pParent, WinBits nWinStyle );
@@ -571,13 +571,12 @@ public:
 };
 
 
-class VCL_DLLPUBLIC TimeField : public SpinField, public TimeFormatter
+class VCL_DLLPUBLIC TimeField final : public SpinField, public TimeFormatter
 {
 private:
     tools::Time                    maFirst;
     tools::Time                    maLast;
 
-protected:
     SAL_DLLPRIVATE void     ImplTimeSpinArea( bool bUp );
 
 public:
@@ -604,7 +603,7 @@ public:
 };
 
 
-class VCL_DLLPUBLIC PatternBox : public ComboBox, public PatternFormatter
+class VCL_DLLPUBLIC PatternBox final : public ComboBox, public PatternFormatter
 {
 public:
                             PatternBox( vcl::Window* pParent, WinBits nWinStyle );
@@ -666,7 +665,7 @@ public:
 };
 
 
-class VCL_DLLPUBLIC CurrencyBox : public ComboBox, public CurrencyFormatter
+class VCL_DLLPUBLIC CurrencyBox final : public ComboBox, public CurrencyFormatter
 {
 public:
     explicit                CurrencyBox( vcl::Window* pParent, WinBits nWinStyle );
@@ -683,7 +682,7 @@ public:
 };
 
 
-class VCL_DLLPUBLIC DateBox : public ComboBox, public DateFormatter
+class VCL_DLLPUBLIC DateBox final : public ComboBox, public DateFormatter
 {
 public:
     explicit                DateBox( vcl::Window* pParent, WinBits nWinStyle );
@@ -699,7 +698,7 @@ public:
 };
 
 
-class VCL_DLLPUBLIC TimeBox : public ComboBox, public TimeFormatter
+class VCL_DLLPUBLIC TimeBox final : public ComboBox, public TimeFormatter
 {
 public:
     explicit                TimeBox( vcl::Window* pParent, WinBits nWinStyle );
diff --git a/include/vcl/filter/pdfdocument.hxx b/include/vcl/filter/pdfdocument.hxx
index 023882b8e8a2..65e84880c789 100644
--- a/include/vcl/filter/pdfdocument.hxx
+++ b/include/vcl/filter/pdfdocument.hxx
@@ -76,7 +76,7 @@ public:
 };
 
 /// Indirect object: something with a unique ID.
-class VCL_DLLPUBLIC PDFObjectElement : public PDFElement
+class VCL_DLLPUBLIC PDFObjectElement final : public PDFElement
 {
     /// The document owning this element.
     PDFDocument& m_rDoc;
@@ -198,7 +198,7 @@ public:
 };
 
 /// Name object: a key string.
-class VCL_DLLPUBLIC PDFNameElement : public PDFElement
+class VCL_DLLPUBLIC PDFNameElement final : public PDFElement
 {
     OString m_aValue;
     /// Offset after the '/' token.
@@ -297,7 +297,7 @@ public:
 };
 
 /// Hex string: in <AABB> form.
-class VCL_DLLPUBLIC PDFHexStringElement : public PDFElement
+class VCL_DLLPUBLIC PDFHexStringElement final : public PDFElement
 {
     OString m_aValue;
 
@@ -307,7 +307,7 @@ public:
 };
 
 /// Literal string: in (asdf) form.
-class VCL_DLLPUBLIC PDFLiteralStringElement : public PDFElement
+class VCL_DLLPUBLIC PDFLiteralStringElement final : public PDFElement
 {
     OString m_aValue;
 
diff --git a/include/vcl/fixed.hxx b/include/vcl/fixed.hxx
index 2dcc8a4769e8..289402b43440 100644
--- a/include/vcl/fixed.hxx
+++ b/include/vcl/fixed.hxx
@@ -75,7 +75,7 @@ public:
     vcl::Window*    get_mnemonic_widget() const { return m_pMnemonicWindow; }
 };
 
-class VCL_DLLPUBLIC SelectableFixedText : public Edit
+class VCL_DLLPUBLIC SelectableFixedText final : public Edit
 {
 public:
     explicit SelectableFixedText( vcl::Window* pParent, WinBits nStyle );
@@ -115,7 +115,7 @@ public:
     virtual Size    GetOptimalSize() const override;
 };
 
-class VCL_DLLPUBLIC FixedBitmap : public Control
+class VCL_DLLPUBLIC FixedBitmap final : public Control
 {
 private:
     BitmapEx        maBitmap;
diff --git a/include/vcl/imapcirc.hxx b/include/vcl/imapcirc.hxx
index eed22b2d5e06..11e369d09621 100644
--- a/include/vcl/imapcirc.hxx
+++ b/include/vcl/imapcirc.hxx
@@ -26,15 +26,13 @@
 
 class Fraction;
 
-class VCL_DLLPUBLIC IMapCircleObject : public IMapObject
+class VCL_DLLPUBLIC IMapCircleObject final : public IMapObject
 {
     Point               aCenter;
     sal_Int32               nRadius;
 
     void                ImpConstruct( const Point& rCenter, sal_uLong nRad, bool bPixel );
 
-protected:
-
     // binary import/export
     virtual void        WriteIMapObject( SvStream& rOStm ) const override;
     virtual void        ReadIMapObject(  SvStream& rIStm ) override;
diff --git a/include/vcl/imappoly.hxx b/include/vcl/imappoly.hxx
index a285085e8a69..7bf48b6d5aa7 100644
--- a/include/vcl/imappoly.hxx
+++ b/include/vcl/imappoly.hxx
@@ -26,7 +26,7 @@
 
 class Fraction;
 
-class VCL_DLLPUBLIC IMapPolygonObject : public IMapObject
+class VCL_DLLPUBLIC IMapPolygonObject final : public IMapObject
 {
     tools::Polygon aPoly;
     tools::Rectangle           aEllipse;
@@ -34,8 +34,6 @@ class VCL_DLLPUBLIC IMapPolygonObject : public IMapObject
 
     VCL_DLLPRIVATE void ImpConstruct( const tools::Polygon& rPoly, bool bPixel );
 
-protected:
-
     // binary import/export
     virtual void        WriteIMapObject( SvStream& rOStm ) const override;
     virtual void        ReadIMapObject(  SvStream& rIStm ) override;
diff --git a/include/vcl/imaprect.hxx b/include/vcl/imaprect.hxx
index 49fabcff5147..9f9ab842a71b 100644
--- a/include/vcl/imaprect.hxx
+++ b/include/vcl/imaprect.hxx
@@ -25,14 +25,12 @@
 
 class Fraction;
 
-class VCL_DLLPUBLIC IMapRectangleObject : public IMapObject
+class VCL_DLLPUBLIC IMapRectangleObject final : public IMapObject
 {
     tools::Rectangle           aRect;
 
     VCL_DLLPRIVATE void             ImpConstruct( const tools::Rectangle& rRect, bool bPixel );
 
-protected:
-
     // binary import/export
     virtual void        WriteIMapObject( SvStream& rOStm ) const override;
     virtual void        ReadIMapObject(  SvStream& rIStm ) override;
diff --git a/include/vcl/ivctrl.hxx b/include/vcl/ivctrl.hxx
index 16bead7c913f..3328d8202b69 100644
--- a/include/vcl/ivctrl.hxx
+++ b/include/vcl/ivctrl.hxx
@@ -280,7 +280,7 @@ public:
 
 struct VerticalTabPageData;
 
-class VerticalTabControl : public VclHBox
+class VerticalTabControl final : public VclHBox
 {
     VclPtr<SvtIconChoiceCtrl> m_xChooser;
     VclPtr<VclVBox> m_xBox;
diff --git a/include/vcl/layout.hxx b/include/vcl/layout.hxx
index ec3fcc5041a9..5fd0a792fe09 100644
--- a/include/vcl/layout.hxx
+++ b/include/vcl/layout.hxx
@@ -263,7 +263,7 @@ protected:
     }
 };
 
-class VCL_DLLPUBLIC VclHButtonBox : public VclButtonBox
+class VCL_DLLPUBLIC VclHButtonBox final : public VclButtonBox
 {
 public:
     VclHButtonBox(vcl::Window *pParent)
@@ -271,7 +271,7 @@ public:
     {
         m_bVerticalContainer = false;
     }
-protected:
+private:
     virtual long getPrimaryDimension(const Size &rSize) const override
     {
         return rSize.getWidth();
@@ -302,7 +302,7 @@ protected:
     }
 };
 
-class VCL_DLLPUBLIC VclGrid : public VclContainer
+class VCL_DLLPUBLIC VclGrid final : public VclContainer
 {
 private:
     bool m_bRowHomogeneous;
@@ -384,7 +384,7 @@ public:
     void set_position(long nPosition) { m_nPosition = nPosition; }
 };
 
-class VCL_DLLPUBLIC VclVPaned : public VclPaned
+class VCL_DLLPUBLIC VclVPaned final : public VclPaned
 {
 private:
     DECL_LINK(SplitHdl, Splitter*, void);
@@ -396,7 +396,7 @@ public:
     virtual void setAllocation(const Size &rAllocation) override;
 };
 
-class VCL_DLLPUBLIC VclHPaned : public VclPaned
+class VCL_DLLPUBLIC VclHPaned final : public VclPaned
 {
 private:
     DECL_LINK(SplitHdl, Splitter*, void);
@@ -408,7 +408,7 @@ public:
     virtual void setAllocation(const Size &rAllocation) override;
 };
 
-class VCL_DLLPUBLIC VclFrame : public VclBin
+class VCL_DLLPUBLIC VclFrame final : public VclBin
 {
 private:
     VclPtr<vcl::Window> m_pLabel;
@@ -431,13 +431,13 @@ public:
     vcl::Window *get_label_widget();
     const vcl::Window *get_label_widget() const;
     virtual boost::property_tree::ptree DumpAsPropertyTree() override;
-protected:
+private:
     virtual Size calculateRequisition() const override;
     virtual void setAllocation(const Size &rAllocation) override;
     virtual OUString getDefaultAccessibleName() const override;
 };
 
-class VCL_DLLPUBLIC VclAlignment : public VclBin
+class VCL_DLLPUBLIC VclAlignment final : public VclBin
 {
 public:
     VclAlignment(vcl::Window *pParent)
@@ -449,17 +449,16 @@ public:
     {
     }
     virtual bool set_property(const OString &rKey, const OUString &rValue) override;
-protected:
+private:
     virtual Size calculateRequisition() const override;
     virtual void setAllocation(const Size &rAllocation) override;
-private:
     sal_Int32 m_nBottomPadding;
     sal_Int32 m_nLeftPadding;
     sal_Int32 m_nRightPadding;
     sal_Int32 m_nTopPadding;
 };
 
-class VCL_DLLPUBLIC VclExpander : public VclBin
+class VCL_DLLPUBLIC VclExpander final : public VclBin
 {
 public:
     VclExpander(vcl::Window *pParent)
@@ -489,17 +488,16 @@ public:
     }
     virtual void StateChanged(StateChangedType nType) override;
     void  SetExpandedHdl( const Link<VclExpander&,void>& rLink ) { maExpandedHdl = rLink; }
-protected:
+private:
     virtual Size calculateRequisition() const override;
     virtual void setAllocation(const Size &rAllocation) override;
-private:
     bool m_bResizeTopLevel;
     VclPtr<DisclosureButton> m_pDisclosureButton;
     Link<VclExpander&,void> maExpandedHdl;
     DECL_DLLPRIVATE_LINK(ClickHdl, CheckBox&, void);
 };
 
-class VCL_DLLPUBLIC VclScrolledWindow : public VclBin
+class VCL_DLLPUBLIC VclScrolledWindow final : public VclBin
 {
 public:
     VclScrolledWindow(vcl::Window *pParent );
@@ -527,7 +525,7 @@ private:
     VclPtr<ScrollBarBox> m_aScrollBarBox;
 };
 
-class VCL_DLLPUBLIC VclViewport : public VclBin
+class VCL_DLLPUBLIC VclViewport final : public VclBin
 {
 public:
     VclViewport(vcl::Window *pParent)
@@ -535,9 +533,8 @@ public:
         , m_bInitialAllocation(true)
     {
     }
-protected:
-    virtual void setAllocation(const Size &rAllocation) override;
 private:
+    virtual void setAllocation(const Size &rAllocation) override;
     bool m_bInitialAllocation;
 };
 
@@ -546,7 +543,7 @@ private:
 //
 //by default the Commands are discarded, inherit from this
 //and implement "Command" to get them
-class VCL_DLLPUBLIC VclEventBox : public VclBin
+class VCL_DLLPUBLIC VclEventBox final : public VclBin
 {
 private:
     //Any Commands an EventBoxHelper receives are forwarded to its parent
@@ -570,7 +567,6 @@ private:
     };
 
     VclPtr<EventBoxHelper> m_aEventBoxHelper;
-protected:
     virtual void dispose() override;
     virtual ~VclEventBox() override;
 public:
@@ -631,7 +627,7 @@ public:
     void set_property(const OString &rKey, const OUString &rValue);
 };
 
-class VCL_DLLPUBLIC VclDrawingArea : public Control
+class VCL_DLLPUBLIC VclDrawingArea final : public Control
 {
 private:
     FactoryFunction m_pFactoryFunction;
diff --git a/include/vcl/lazydelete.hxx b/include/vcl/lazydelete.hxx
index dd50f7f13092..1e253e54ee1d 100644
--- a/include/vcl/lazydelete.hxx
+++ b/include/vcl/lazydelete.hxx
@@ -65,7 +65,7 @@ namespace vcl
     };
 
     template < typename T >
-    class DeleteOnDeinit : public DeleteOnDeinitBase
+    class DeleteOnDeinit final : public DeleteOnDeinitBase
     {
         std::unique_ptr<T> m_pT;
         virtual void doCleanup() override { m_pT.reset(); }
@@ -92,7 +92,7 @@ namespace vcl
                 \<do something with xFactory>
     */
     template <typename I>
-    class DeleteUnoReferenceOnDeinit : public vcl::DeleteOnDeinitBase
+    class DeleteUnoReferenceOnDeinit final : public vcl::DeleteOnDeinitBase
     {
         css::uno::Reference<I> m_xI;
         virtual void doCleanup() override { set(nullptr); }
diff --git a/include/vcl/longcurr.hxx b/include/vcl/longcurr.hxx
index 11f4329c8b9b..f9ef3a008128 100644
--- a/include/vcl/longcurr.hxx
+++ b/include/vcl/longcurr.hxx
@@ -69,7 +69,7 @@ private:
 };
 
 
-class VCL_DLLPUBLIC LongCurrencyField : public SpinField, public LongCurrencyFormatter
+class VCL_DLLPUBLIC LongCurrencyField final : public SpinField, public LongCurrencyFormatter
 {
     friend void ImplNewLongCurrencyFieldValue(LongCurrencyField*, const BigInt&);
 
@@ -98,7 +98,7 @@ public:
 };
 
 
-class VCL_DLLPUBLIC LongCurrencyBox : public ComboBox, public LongCurrencyFormatter
+class VCL_DLLPUBLIC LongCurrencyBox final : public ComboBox, public LongCurrencyFormatter
 {
 public:
                     LongCurrencyBox( vcl::Window* pParent, WinBits nWinStyle );
diff --git a/include/vcl/lstbox.hxx b/include/vcl/lstbox.hxx
index 9ecf470b7c6e..3124454f922b 100644
--- a/include/vcl/lstbox.hxx
+++ b/include/vcl/lstbox.hxx
@@ -286,7 +286,7 @@ public:
     virtual boost::property_tree::ptree DumpAsPropertyTree() override;
 };
 
-class VCL_DLLPUBLIC MultiListBox : public ListBox
+class VCL_DLLPUBLIC MultiListBox final : public ListBox
 {
 public:
     explicit        MultiListBox( vcl::Window* pParent, WinBits nStyle );
diff --git a/include/vcl/menubtn.hxx b/include/vcl/menubtn.hxx
index f087023af6aa..744ed69241f1 100644
--- a/include/vcl/menubtn.hxx
+++ b/include/vcl/menubtn.hxx
@@ -86,7 +86,7 @@ public:
 };
 
 
-class VCL_DLLPUBLIC MenuToggleButton : public MenuButton
+class VCL_DLLPUBLIC MenuToggleButton final : public MenuButton
 {
 public:
     explicit        MenuToggleButton( vcl::Window* pParent, WinBits nStyle );
diff --git a/include/vcl/metaact.hxx b/include/vcl/metaact.hxx
index 7dea93dce676..2666edb5f334 100644
--- a/include/vcl/metaact.hxx
+++ b/include/vcl/metaact.hxx
@@ -92,7 +92,7 @@ public:
     static MetaAction*  ReadMetaAction( SvStream& rIStm, ImplMetaReadData* pData );
 };
 
-class VCL_DLLPUBLIC MetaPixelAction : public MetaAction
+class VCL_DLLPUBLIC MetaPixelAction final : public MetaAction
 {
 private:
     Point               maPt;
@@ -104,7 +104,7 @@ public:
     MetaPixelAction(MetaPixelAction &&) = default;
     MetaPixelAction & operator =(MetaPixelAction const &) = delete; // due to MetaAction
     MetaPixelAction & operator =(MetaPixelAction &&) = delete; // due to MetaAction
-protected:
+private:
     virtual             ~MetaPixelAction() override;
 public:
     virtual void        Execute( OutputDevice* pOut ) override;
@@ -121,7 +121,7 @@ public:
     const Color&        GetColor() const { return maColor; }
 };
 
-class VCL_DLLPUBLIC MetaPointAction : public MetaAction
+class VCL_DLLPUBLIC MetaPointAction final : public MetaAction
 {
 private:
     Point               maPt;
@@ -132,7 +132,7 @@ public:
     MetaPointAction(MetaPointAction &&) = default;
     MetaPointAction & operator =(MetaPointAction const &) = delete; // due to MetaAction
     MetaPointAction & operator =(MetaPointAction &&) = delete; // due to MetaAction
-protected:
+private:
     virtual             ~MetaPointAction() override;
 public:
     virtual void        Execute( OutputDevice* pOut ) override;
@@ -148,7 +148,7 @@ public:
     const Point&        GetPoint() const { return maPt; }
 };
 
-class VCL_DLLPUBLIC MetaLineAction : public MetaAction
+class VCL_DLLPUBLIC MetaLineAction final : public MetaAction
 {
 private:
 
@@ -162,7 +162,7 @@ public:
     MetaLineAction(MetaLineAction &&) = default;
     MetaLineAction & operator =(MetaLineAction const &) = delete; // due to MetaAction
     MetaLineAction & operator =(MetaLineAction &&) = delete; // due to MetaAction
-protected:
+private:
     virtual             ~MetaLineAction() override;
 public:
     virtual void        Execute( OutputDevice* pOut ) override;
@@ -182,7 +182,7 @@ public:
     const LineInfo&     GetLineInfo() const { return maLineInfo; }
 };
 
-class VCL_DLLPUBLIC MetaRectAction : public MetaAction
+class VCL_DLLPUBLIC MetaRectAction final : public MetaAction
 {
 private:
 
@@ -194,7 +194,7 @@ public:
     MetaRectAction(MetaRectAction &&) = default;
     MetaRectAction & operator =(MetaRectAction const &) = delete; // due to MetaAction
     MetaRectAction & operator =(MetaRectAction &&) = delete; // due to MetaAction
-protected:
+private:
     virtual             ~MetaRectAction() override;
 public:
     virtual void        Execute( OutputDevice* pOut ) override;
@@ -210,7 +210,7 @@ public:
     const tools::Rectangle&    GetRect() const { return maRect; }
 };
 
-class VCL_DLLPUBLIC MetaRoundRectAction : public MetaAction
+class VCL_DLLPUBLIC MetaRoundRectAction final : public MetaAction
 {
 private:
 
@@ -224,7 +224,7 @@ public:
     MetaRoundRectAction(MetaRoundRectAction &&) = default;
     MetaRoundRectAction & operator =(MetaRoundRectAction const &) = delete; // due to MetaAction
     MetaRoundRectAction & operator =(MetaRoundRectAction &&) = delete; // due to MetaAction
-protected:
+private:
     virtual             ~MetaRoundRectAction() override;
 public:
     virtual void        Execute( OutputDevice* pOut ) override;
@@ -243,7 +243,7 @@ public:
     sal_uInt32          GetVertRound() const { return mnVertRound; }
 };
 
-class VCL_DLLPUBLIC MetaEllipseAction : public MetaAction
+class VCL_DLLPUBLIC MetaEllipseAction final : public MetaAction
 {
 private:
 
@@ -255,7 +255,7 @@ public:
     MetaEllipseAction(MetaEllipseAction &&) = default;
     MetaEllipseAction & operator =(MetaEllipseAction const &) = delete; // due to MetaAction
     MetaEllipseAction & operator =(MetaEllipseAction &&) = delete; // due to MetaAction
-protected:
+private:
     virtual             ~MetaEllipseAction() override;
 public:
     virtual void        Execute( OutputDevice* pOut ) override;
@@ -271,7 +271,7 @@ public:
     const tools::Rectangle&    GetRect() const { return maRect; }
 };
 
-class VCL_DLLPUBLIC MetaArcAction : public MetaAction
+class VCL_DLLPUBLIC MetaArcAction final : public MetaAction
 {
 private:
 
@@ -285,7 +285,7 @@ public:
     MetaArcAction(MetaArcAction &&) = default;
     MetaArcAction & operator =(MetaArcAction const &) = delete; // due to MetaAction
     MetaArcAction & operator =(MetaArcAction &&) = delete; // due to MetaAction
-protected:
+private:
     virtual             ~MetaArcAction() override;
 public:
     virtual void        Execute( OutputDevice* pOut ) override;
@@ -304,7 +304,7 @@ public:
     const Point&        GetEndPoint() const { return maEndPt; }
 };
 
-class VCL_DLLPUBLIC MetaPieAction : public MetaAction
+class VCL_DLLPUBLIC MetaPieAction final : public MetaAction
 {
 private:
 
@@ -318,7 +318,7 @@ public:
     MetaPieAction(MetaPieAction &&) = default;
     MetaPieAction & operator =(MetaPieAction const &) = delete; // due to MetaAction
     MetaPieAction & operator =(MetaPieAction &&) = delete; // due to MetaAction
-protected:
+private:
     virtual             ~MetaPieAction() override;
 public:
     virtual void        Execute( OutputDevice* pOut ) override;
@@ -337,7 +337,7 @@ public:
     const Point&        GetEndPoint() const { return maEndPt; }
 };
 
-class VCL_DLLPUBLIC MetaChordAction : public MetaAction
+class VCL_DLLPUBLIC MetaChordAction final : public MetaAction
 {
 private:
 
@@ -351,7 +351,7 @@ public:
     MetaChordAction(MetaChordAction &&) = default;
     MetaChordAction & operator =(MetaChordAction const &) = delete; // due to MetaAction
     MetaChordAction & operator =(MetaChordAction &&) = delete; // due to MetaAction
-protected:
+private:
     virtual             ~MetaChordAction() override;
 public:
     virtual void        Execute( OutputDevice* pOut ) override;
@@ -370,7 +370,7 @@ public:
     const Point&        GetEndPoint() const { return maEndPt; }
 };
 
-class VCL_DLLPUBLIC MetaPolyLineAction : public MetaAction
+class VCL_DLLPUBLIC MetaPolyLineAction final : public MetaAction
 {
 private:
 
@@ -383,7 +383,7 @@ public:
     MetaPolyLineAction(MetaPolyLineAction &&) = default;
     MetaPolyLineAction & operator =(MetaPolyLineAction const &) = delete; // due to MetaAction
     MetaPolyLineAction & operator =(MetaPolyLineAction &&) = delete; // due to MetaAction
-protected:
+private:
     virtual             ~MetaPolyLineAction() override;
 public:
     virtual void        Execute( OutputDevice* pOut ) override;
@@ -401,7 +401,7 @@ public:
     const LineInfo&     GetLineInfo() const { return maLineInfo; }
 };
 
-class VCL_DLLPUBLIC MetaPolygonAction : public MetaAction
+class VCL_DLLPUBLIC MetaPolygonAction final : public MetaAction
 {
 private:
 
@@ -413,7 +413,7 @@ public:
     MetaPolygonAction(MetaPolygonAction &&) = default;
     MetaPolygonAction & operator =(MetaPolygonAction const &) = delete; // due to MetaAction
     MetaPolygonAction & operator =(MetaPolygonAction &&) = delete; // due to MetaAction
-protected:
+private:
     virtual             ~MetaPolygonAction() override;
 public:
     virtual void        Execute( OutputDevice* pOut ) override;
@@ -429,7 +429,7 @@ public:
     const tools::Polygon& GetPolygon() const { return maPoly; }
 };
 
-class VCL_DLLPUBLIC MetaPolyPolygonAction : public MetaAction
+class VCL_DLLPUBLIC MetaPolyPolygonAction final : public MetaAction
 {
 private:
 
@@ -441,7 +441,7 @@ public:
     MetaPolyPolygonAction(MetaPolyPolygonAction &&) = default;
     MetaPolyPolygonAction & operator =(MetaPolyPolygonAction const &) = delete; // due to MetaAction
     MetaPolyPolygonAction & operator =(MetaPolyPolygonAction &&) = delete; // due to MetaAction
-protected:
+private:
     virtual             ~MetaPolyPolygonAction() override;
 public:
     virtual void        Execute( OutputDevice* pOut ) override;
@@ -457,7 +457,7 @@ public:
     const tools::PolyPolygon&  GetPolyPolygon() const { return maPolyPoly; }
 };
 
-class VCL_DLLPUBLIC MetaTextAction : public MetaAction
+class VCL_DLLPUBLIC MetaTextAction final : public MetaAction
 {
 private:
 
@@ -472,7 +472,7 @@ public:
     MetaTextAction(MetaTextAction &&) = default;
     MetaTextAction & operator =(MetaTextAction const &) = delete; // due to MetaAction
     MetaTextAction & operator =(MetaTextAction &&) = delete; // due to MetaAction
-protected:
+private:
     virtual             ~MetaTextAction() override;
 public:
     virtual void        Execute( OutputDevice* pOut ) override;
@@ -492,7 +492,7 @@ public:
     sal_Int32       GetLen() const { return mnLen; }
 };
 
-class VCL_DLLPUBLIC MetaTextArrayAction : public MetaAction
+class VCL_DLLPUBLIC MetaTextArrayAction final : public MetaAction
 {
 private:
 
@@ -503,7 +503,6 @@ private:
     sal_Int32   mnIndex;
     sal_Int32   mnLen;
 
-protected:
     virtual             ~MetaTextArrayAction() override;
 
 public:
@@ -530,7 +529,7 @@ public:
     long*           GetDXArray() const { return mpDXAry.get(); }
 };
 
-class VCL_DLLPUBLIC MetaStretchTextAction : public MetaAction
+class VCL_DLLPUBLIC MetaStretchTextAction final : public MetaAction
 {
 private:
 
@@ -546,7 +545,7 @@ public:
     MetaStretchTextAction(MetaStretchTextAction &&) = default;
     MetaStretchTextAction & operator =(MetaStretchTextAction const &) = delete; // due to MetaAction
     MetaStretchTextAction & operator =(MetaStretchTextAction &&) = delete; // due to MetaAction
-protected:
+private:
     virtual             ~MetaStretchTextAction() override;
 public:
     virtual void        Execute( OutputDevice* pOut ) override;
@@ -568,7 +567,7 @@ public:
     sal_Int32       GetLen() const { return mnLen; }
 };
 
-class VCL_DLLPUBLIC MetaTextRectAction : public MetaAction
+class VCL_DLLPUBLIC MetaTextRectAction final : public MetaAction
 {
 private:
 
@@ -582,7 +581,7 @@ public:
     MetaTextRectAction(MetaTextRectAction &&) = default;
     MetaTextRectAction & operator =(MetaTextRectAction const &) = delete; // due to MetaAction
     MetaTextRectAction & operator =(MetaTextRectAction &&) = delete; // due to MetaAction
-protected:
+private:
     virtual             ~MetaTextRectAction() override;
 public:
     virtual void        Execute( OutputDevice* pOut ) override;
@@ -601,7 +600,7 @@ public:
     DrawTextFlags       GetStyle() const { return mnStyle; }
 };
 
-class VCL_DLLPUBLIC MetaTextLineAction : public MetaAction
+class VCL_DLLPUBLIC MetaTextLineAction final : public MetaAction
 {
 private:
 
@@ -617,7 +616,7 @@ public:
     MetaTextLineAction(MetaTextLineAction &&) = default;
     MetaTextLineAction & operator =(MetaTextLineAction const &) = delete; // due to MetaAction
     MetaTextLineAction & operator =(MetaTextLineAction &&) = delete; // due to MetaAction
-protected:
+private:
     virtual             ~MetaTextLineAction() override;
 public:
     virtual void        Execute( OutputDevice* pOut ) override;
@@ -639,7 +638,7 @@ public:
     FontLineStyle       GetOverline()  const { return meOverline; }
 };
 
-class VCL_DLLPUBLIC MetaBmpAction : public MetaAction
+class VCL_DLLPUBLIC MetaBmpAction final : public MetaAction
 {
 private:
 
@@ -652,7 +651,7 @@ public:
     MetaBmpAction(MetaBmpAction &&) = default;
     MetaBmpAction & operator =(MetaBmpAction const &) = delete; // due to MetaAction
     MetaBmpAction & operator =(MetaBmpAction &&) = delete; // due to MetaAction
-protected:
+private:
     virtual             ~MetaBmpAction() override;
 public:
     virtual void        Execute( OutputDevice* pOut ) override;
@@ -669,7 +668,7 @@ public:
     const Point&        GetPoint() const { return maPt; }
 };
 
-class VCL_DLLPUBLIC MetaBmpScaleAction : public MetaAction
+class VCL_DLLPUBLIC MetaBmpScaleAction final : public MetaAction
 {
 private:
 
@@ -683,7 +682,7 @@ public:
     MetaBmpScaleAction(MetaBmpScaleAction &&) = default;
     MetaBmpScaleAction & operator =(MetaBmpScaleAction const &) = delete; // due to MetaAction
     MetaBmpScaleAction & operator =(MetaBmpScaleAction &&) = delete; // due to MetaAction
-protected:
+private:
     virtual             ~MetaBmpScaleAction() override;
 public:
     virtual void        Execute( OutputDevice* pOut ) override;
@@ -702,7 +701,7 @@ public:
     const Size&         GetSize() const { return maSz; }
 };
 
-class VCL_DLLPUBLIC MetaBmpScalePartAction : public MetaAction
+class VCL_DLLPUBLIC MetaBmpScalePartAction final : public MetaAction
 {
 private:
 
@@ -718,7 +717,7 @@ public:
     MetaBmpScalePartAction(MetaBmpScalePartAction &&) = default;
     MetaBmpScalePartAction & operator =(MetaBmpScalePartAction const &) = delete; // due to MetaAction
     MetaBmpScalePartAction & operator =(MetaBmpScalePartAction &&) = delete; // due to MetaAction
-protected:
+private:
     virtual             ~MetaBmpScalePartAction() override;
 public:
     virtual void        Execute( OutputDevice* pOut ) override;
@@ -740,7 +739,7 @@ public:
     const Size&         GetSrcSize() const { return maSrcSz; }
 };
 
-class VCL_DLLPUBLIC MetaBmpExAction : public MetaAction
+class VCL_DLLPUBLIC MetaBmpExAction final : public MetaAction
 {
 private:
 
@@ -753,7 +752,7 @@ public:
     MetaBmpExAction(MetaBmpExAction &&) = default;
     MetaBmpExAction & operator =(MetaBmpExAction const &) = delete; // due to MetaAction
     MetaBmpExAction & operator =(MetaBmpExAction &&) = delete; // due to MetaAction
-protected:
+private:
     virtual             ~MetaBmpExAction() override;
 public:
     virtual void        Execute( OutputDevice* pOut ) override;
@@ -770,7 +769,7 @@ public:
     const Point&        GetPoint() const { return maPt; }
 };
 
-class VCL_DLLPUBLIC MetaBmpExScaleAction : public MetaAction
+class VCL_DLLPUBLIC MetaBmpExScaleAction final : public MetaAction
 {
 private:
 
@@ -784,7 +783,7 @@ public:
     MetaBmpExScaleAction(MetaBmpExScaleAction &&) = default;
     MetaBmpExScaleAction & operator =(MetaBmpExScaleAction const &) = delete; // due to MetaAction
     MetaBmpExScaleAction & operator =(MetaBmpExScaleAction &&) = delete; // due to MetaAction
-protected:
+private:
     virtual             ~MetaBmpExScaleAction() override;
 public:
     virtual void        Execute( OutputDevice* pOut ) override;
@@ -803,7 +802,7 @@ public:
     const Size&         GetSize() const { return maSz; }
 };
 
-class VCL_DLLPUBLIC MetaBmpExScalePartAction : public MetaAction
+class VCL_DLLPUBLIC MetaBmpExScalePartAction final : public MetaAction
 {
 private:
 
@@ -819,7 +818,7 @@ public:
     MetaBmpExScalePartAction(MetaBmpExScalePartAction &&) = default;
     MetaBmpExScalePartAction & operator =(MetaBmpExScalePartAction const &) = delete; // due to MetaAction
     MetaBmpExScalePartAction & operator =(MetaBmpExScalePartAction &&) = delete; // due to MetaAction
-protected:
+private:
     virtual             ~MetaBmpExScalePartAction() override;
 public:
     virtual void        Execute( OutputDevice* pOut ) override;
@@ -841,7 +840,7 @@ public:
     const Size&         GetSrcSize() const { return maSrcSz; }
 };
 
-class VCL_DLLPUBLIC MetaMaskAction : public MetaAction
+class VCL_DLLPUBLIC MetaMaskAction final : public MetaAction
 {
 private:
 
@@ -855,7 +854,7 @@ public:
     MetaMaskAction(MetaMaskAction &&) = default;
     MetaMaskAction & operator =(MetaMaskAction const &) = delete; // due to MetaAction
     MetaMaskAction & operator =(MetaMaskAction &&) = delete; // due to MetaAction
-protected:
+private:
     virtual             ~MetaMaskAction() override;
 public:
     virtual void        Execute( OutputDevice* pOut ) override;
@@ -875,7 +874,7 @@ public:
     const Point&        GetPoint() const { return maPt; }
 };
 
-class VCL_DLLPUBLIC MetaMaskScaleAction : public MetaAction
+class VCL_DLLPUBLIC MetaMaskScaleAction final : public MetaAction
 {
 private:
 
@@ -890,7 +889,7 @@ public:
     MetaMaskScaleAction(MetaMaskScaleAction &&) = default;
     MetaMaskScaleAction & operator =(MetaMaskScaleAction const &) = delete; // due to MetaAction
     MetaMaskScaleAction & operator =(MetaMaskScaleAction &&) = delete; // due to MetaAction
-protected:
+private:
     virtual             ~MetaMaskScaleAction() override;
 public:
     virtual void        Execute( OutputDevice* pOut ) override;
@@ -911,7 +910,7 @@ public:
     const Size&         GetSize() const { return maSz; }
 };
 
-class VCL_DLLPUBLIC MetaMaskScalePartAction : public MetaAction
+class VCL_DLLPUBLIC MetaMaskScalePartAction final : public MetaAction
 {
 private:
 
@@ -928,7 +927,7 @@ public:
     MetaMaskScalePartAction(MetaMaskScalePartAction &&) = default;
     MetaMaskScalePartAction & operator =(MetaMaskScalePartAction const &) = delete; // due to MetaAction
     MetaMaskScalePartAction & operator =(MetaMaskScalePartAction &&) = delete; // due to MetaAction
-protected:
+private:
     virtual             ~MetaMaskScalePartAction() override;
 public:
     virtual void        Execute( OutputDevice* pOut ) override;
@@ -952,7 +951,7 @@ public:
     const Size&         GetSrcSize() const { return maSrcSz; }
 };
 
-class VCL_DLLPUBLIC MetaGradientAction : public MetaAction
+class VCL_DLLPUBLIC MetaGradientAction final : public MetaAction
 {
 private:
 
@@ -965,7 +964,7 @@ public:
     MetaGradientAction(MetaGradientAction &&) = default;
     MetaGradientAction & operator =(MetaGradientAction const &) = delete; // due to MetaAction
     MetaGradientAction & operator =(MetaGradientAction &&) = delete; // due to MetaAction
-protected:
+private:
     virtual             ~MetaGradientAction() override;
 public:
     virtual void        Execute( OutputDevice* pOut ) override;
@@ -982,7 +981,7 @@ public:
     const Gradient&     GetGradient() const { return maGradient; }
 };
 
-class VCL_DLLPUBLIC MetaGradientExAction : public MetaAction
+class VCL_DLLPUBLIC MetaGradientExAction final : public MetaAction
 {
 private:
 
@@ -995,7 +994,7 @@ public:
     MetaGradientExAction(MetaGradientExAction &&) = default;
     MetaGradientExAction & operator =(MetaGradientExAction const &) = delete; // due to MetaAction
     MetaGradientExAction & operator =(MetaGradientExAction &&) = delete; // due to MetaAction
-protected:
+private:
     virtual             ~MetaGradientExAction() override;
 public:
     virtual void        Execute( OutputDevice* pOut ) override;
@@ -1012,7 +1011,7 @@ public:
     const Gradient&     GetGradient() const { return maGradient; }
 };
 
-class VCL_DLLPUBLIC MetaHatchAction : public MetaAction
+class VCL_DLLPUBLIC MetaHatchAction final : public MetaAction
 {
 private:
 
@@ -1025,7 +1024,7 @@ public:
     MetaHatchAction(MetaHatchAction &&) = default;
     MetaHatchAction & operator =(MetaHatchAction const &) = delete; // due to MetaAction
     MetaHatchAction & operator =(MetaHatchAction &&) = delete; // due to MetaAction
-protected:
+private:
     virtual             ~MetaHatchAction() override;
 public:
     virtual void        Execute( OutputDevice* pOut ) override;
@@ -1042,7 +1041,7 @@ public:
     const Hatch&        GetHatch() const { return maHatch; }
 };
 
-class VCL_DLLPUBLIC MetaWallpaperAction : public MetaAction
+class VCL_DLLPUBLIC MetaWallpaperAction final : public MetaAction
 {
 private:
 
@@ -1055,7 +1054,7 @@ public:
     MetaWallpaperAction(MetaWallpaperAction &&) = default;
     MetaWallpaperAction & operator =(MetaWallpaperAction const &) = delete; // due to MetaAction
     MetaWallpaperAction & operator =(MetaWallpaperAction &&) = delete; // due to MetaAction
-protected:
+private:
     virtual             ~MetaWallpaperAction() override;
 public:
     virtual void        Execute( OutputDevice* pOut ) override;
@@ -1073,7 +1072,7 @@ public:
     const Wallpaper&    GetWallpaper() const { return maWallpaper; }
 };
 
-class VCL_DLLPUBLIC MetaClipRegionAction : public MetaAction
+class VCL_DLLPUBLIC MetaClipRegionAction final : public MetaAction
 {
 private:
 
@@ -1086,7 +1085,7 @@ public:
     MetaClipRegionAction(MetaClipRegionAction &&) = default;
     MetaClipRegionAction & operator =(MetaClipRegionAction const &) = delete; // due to MetaAction
     MetaClipRegionAction & operator =(MetaClipRegionAction &&) = delete; // due to MetaAction
-protected:
+private:
     virtual             ~MetaClipRegionAction() override;
 public:
     virtual void        Execute( OutputDevice* pOut ) override;
@@ -1103,7 +1102,7 @@ public:
     bool                IsClipping() const { return mbClip; }
 };
 
-class VCL_DLLPUBLIC MetaISectRectClipRegionAction : public MetaAction
+class VCL_DLLPUBLIC MetaISectRectClipRegionAction final : public MetaAction
 {
 private:
 
@@ -1115,7 +1114,7 @@ public:
     MetaISectRectClipRegionAction(MetaISectRectClipRegionAction &&) = default;
     MetaISectRectClipRegionAction & operator =(MetaISectRectClipRegionAction const &) = delete; // due to MetaAction
     MetaISectRectClipRegionAction & operator =(MetaISectRectClipRegionAction &&) = delete; // due to MetaAction
-protected:
+private:
     virtual             ~MetaISectRectClipRegionAction() override;
 public:
     virtual void        Execute( OutputDevice* pOut ) override;
@@ -1131,7 +1130,7 @@ public:
     const tools::Rectangle&    GetRect() const { return maRect; }
 };
 
-class VCL_DLLPUBLIC MetaISectRegionClipRegionAction : public MetaAction
+class VCL_DLLPUBLIC MetaISectRegionClipRegionAction final : public MetaAction
 {
 private:
 
@@ -1143,7 +1142,7 @@ public:
     MetaISectRegionClipRegionAction(MetaISectRegionClipRegionAction &&) = default;
     MetaISectRegionClipRegionAction & operator =(MetaISectRegionClipRegionAction const &) = delete; // due to MetaAction
     MetaISectRegionClipRegionAction & operator =(MetaISectRegionClipRegionAction &&) = delete; // due to MetaAction
-protected:
+private:
     virtual             ~MetaISectRegionClipRegionAction() override;
 public:
     virtual void        Execute( OutputDevice* pOut ) override;
@@ -1159,7 +1158,7 @@ public:
     const vcl::Region&  GetRegion() const { return maRegion; }
 };
 
-class VCL_DLLPUBLIC MetaMoveClipRegionAction : public MetaAction
+class VCL_DLLPUBLIC MetaMoveClipRegionAction final : public MetaAction
 {
 private:
 
@@ -1172,7 +1171,7 @@ public:
     MetaMoveClipRegionAction(MetaMoveClipRegionAction &&) = default;
     MetaMoveClipRegionAction & operator =(MetaMoveClipRegionAction const &) = delete; // due to MetaAction
     MetaMoveClipRegionAction & operator =(MetaMoveClipRegionAction &&) = delete; // due to MetaAction
-protected:
+private:
     virtual             ~MetaMoveClipRegionAction() override;
 public:
     virtual void        Execute( OutputDevice* pOut ) override;
@@ -1188,7 +1187,7 @@ public:
     long                GetVertMove() const { return mnVertMove; }
 };
 
-class VCL_DLLPUBLIC MetaLineColorAction : public MetaAction
+class VCL_DLLPUBLIC MetaLineColorAction final : public MetaAction
 {
 private:
 
@@ -1201,7 +1200,7 @@ public:
     MetaLineColorAction(MetaLineColorAction &&) = default;
     MetaLineColorAction & operator =(MetaLineColorAction const &) = delete; // due to MetaAction
     MetaLineColorAction & operator =(MetaLineColorAction &&) = delete; // due to MetaAction
-protected:
+private:
     virtual             ~MetaLineColorAction() override;
 public:
     virtual void        Execute( OutputDevice* pOut ) override;
@@ -1215,7 +1214,7 @@ public:
     bool                IsSetting() const { return mbSet; }
 };
 
-class VCL_DLLPUBLIC MetaFillColorAction : public MetaAction
+class VCL_DLLPUBLIC MetaFillColorAction final : public MetaAction
 {
 private:
 
@@ -1228,7 +1227,7 @@ public:
     MetaFillColorAction(MetaFillColorAction &&) = default;
     MetaFillColorAction & operator =(MetaFillColorAction const &) = delete; // due to MetaAction
     MetaFillColorAction & operator =(MetaFillColorAction &&) = delete; // due to MetaAction
-protected:
+private:
     virtual             ~MetaFillColorAction() override;
 public:
     virtual void        Execute( OutputDevice* pOut ) override;
@@ -1242,7 +1241,7 @@ public:
     bool                IsSetting() const { return mbSet; }
 };
 
-class VCL_DLLPUBLIC MetaTextColorAction : public MetaAction
+class VCL_DLLPUBLIC MetaTextColorAction final : public MetaAction
 {
 private:
 
@@ -1254,7 +1253,7 @@ public:
     MetaTextColorAction(MetaTextColorAction &&) = default;
     MetaTextColorAction & operator =(MetaTextColorAction const &) = delete; // due to MetaAction
     MetaTextColorAction & operator =(MetaTextColorAction &&) = delete; // due to MetaAction
-protected:
+private:
     virtual             ~MetaTextColorAction() override;
 public:
     virtual void        Execute( OutputDevice* pOut ) override;
@@ -1267,7 +1266,7 @@ public:
     const Color&        GetColor() const { return maColor; }
 };
 
-class VCL_DLLPUBLIC MetaTextFillColorAction : public MetaAction
+class VCL_DLLPUBLIC MetaTextFillColorAction final : public MetaAction
 {
 private:
 
@@ -1280,7 +1279,7 @@ public:
     MetaTextFillColorAction(MetaTextFillColorAction &&) = default;
     MetaTextFillColorAction & operator =(MetaTextFillColorAction const &) = delete; // due to MetaAction
     MetaTextFillColorAction & operator =(MetaTextFillColorAction &&) = delete; // due to MetaAction
-protected:
+private:
     virtual             ~MetaTextFillColorAction() override;
 public:
     virtual void        Execute( OutputDevice* pOut ) override;
@@ -1294,7 +1293,7 @@ public:
     bool                IsSetting() const { return mbSet; }
 };
 
-class VCL_DLLPUBLIC MetaTextLineColorAction : public MetaAction
+class VCL_DLLPUBLIC MetaTextLineColorAction final : public MetaAction
 {
 private:
 
@@ -1307,7 +1306,7 @@ public:
     MetaTextLineColorAction(MetaTextLineColorAction &&) = default;
     MetaTextLineColorAction & operator =(MetaTextLineColorAction const &) = delete; // due to MetaAction
     MetaTextLineColorAction & operator =(MetaTextLineColorAction &&) = delete; // due to MetaAction
-protected:
+private:
     virtual             ~MetaTextLineColorAction() override;
 public:
     virtual void        Execute( OutputDevice* pOut ) override;
@@ -1321,7 +1320,7 @@ public:
     bool                IsSetting() const { return mbSet; }
 };
 
-class VCL_DLLPUBLIC MetaOverlineColorAction : public MetaAction
+class VCL_DLLPUBLIC MetaOverlineColorAction final : public MetaAction
 {
 private:
 
@@ -1334,7 +1333,7 @@ public:
     MetaOverlineColorAction(MetaOverlineColorAction &&) = default;
     MetaOverlineColorAction & operator =(MetaOverlineColorAction const &) = delete; // due to MetaAction
     MetaOverlineColorAction & operator =(MetaOverlineColorAction &&) = delete; // due to MetaAction
-protected:
+private:
     virtual             ~MetaOverlineColorAction() override;
 public:
     virtual void        Execute( OutputDevice* pOut ) override;
@@ -1348,7 +1347,7 @@ public:
     bool                IsSetting() const { return mbSet; }
 };
 
-class VCL_DLLPUBLIC MetaTextAlignAction : public MetaAction
+class VCL_DLLPUBLIC MetaTextAlignAction final : public MetaAction
 {
 private:
 
@@ -1360,7 +1359,7 @@ public:
     MetaTextAlignAction(MetaTextAlignAction &&) = default;
     MetaTextAlignAction & operator =(MetaTextAlignAction const &) = delete; // due to MetaAction
     MetaTextAlignAction & operator =(MetaTextAlignAction &&) = delete; // due to MetaAction
-protected:
+private:
     virtual             ~MetaTextAlignAction() override;
 public:
     virtual void        Execute( OutputDevice* pOut ) override;
@@ -1373,7 +1372,7 @@ public:
     TextAlign           GetTextAlign() const { return maAlign; }
 };
 
-class VCL_DLLPUBLIC MetaMapModeAction : public MetaAction
+class VCL_DLLPUBLIC MetaMapModeAction final : public MetaAction
 {
 private:
 
@@ -1385,7 +1384,7 @@ public:
     MetaMapModeAction(MetaMapModeAction &&) = default;
     MetaMapModeAction & operator =(MetaMapModeAction const &) = delete; // due to MetaAction
     MetaMapModeAction & operator =(MetaMapModeAction &&) = delete; // due to MetaAction
-protected:
+private:
     virtual             ~MetaMapModeAction() override;
 public:
     virtual void        Execute( OutputDevice* pOut ) override;
@@ -1400,7 +1399,7 @@ public:
     const MapMode&      GetMapMode() const { return maMapMode; }
 };
 
-class VCL_DLLPUBLIC MetaFontAction : public MetaAction
+class VCL_DLLPUBLIC MetaFontAction final : public MetaAction
 {
 private:
 
@@ -1412,7 +1411,7 @@ public:
     MetaFontAction(MetaFontAction &&) = default;
     MetaFontAction & operator =(MetaFontAction const &) = delete; // due to MetaAction
     MetaFontAction & operator =(MetaFontAction &&) = delete; // due to MetaAction
-protected:
+private:
     virtual             ~MetaFontAction() override;
 public:
     virtual void        Execute( OutputDevice* pOut ) override;
@@ -1427,7 +1426,7 @@ public:
     const vcl::Font&    GetFont() const { return maFont; }
 };
 
-class VCL_DLLPUBLIC MetaPushAction : public MetaAction
+class VCL_DLLPUBLIC MetaPushAction final : public MetaAction
 {
 private:
 
@@ -1439,7 +1438,7 @@ public:
     MetaPushAction(MetaPushAction &&) = default;
     MetaPushAction & operator =(MetaPushAction const &) = delete; // due to MetaAction
     MetaPushAction & operator =(MetaPushAction &&) = delete; // due to MetaAction
-protected:
+private:
     virtual             ~MetaPushAction() override;
 public:
     virtual void        Execute( OutputDevice* pOut ) override;
@@ -1452,7 +1451,7 @@ public:
     PushFlags           GetFlags() const { return mnFlags; }
 };
 
-class VCL_DLLPUBLIC MetaPopAction : public MetaAction
+class VCL_DLLPUBLIC MetaPopAction final : public MetaAction
 {
 public:
 
@@ -1461,7 +1460,7 @@ public:
     MetaPopAction(MetaPopAction &&) = default;
     MetaPopAction & operator =(MetaPopAction const &) = delete; // due to MetaAction
     MetaPopAction & operator =(MetaPopAction &&) = delete; // due to MetaAction
-protected:
+private:
     virtual             ~MetaPopAction() override;
 public:
     virtual void        Execute( OutputDevice* pOut ) override;
@@ -1470,7 +1469,7 @@ public:
     virtual void        Read( SvStream& rIStm, ImplMetaReadData* pData ) override;
 };
 
-class VCL_DLLPUBLIC MetaRasterOpAction : public MetaAction
+class VCL_DLLPUBLIC MetaRasterOpAction final : public MetaAction
 {
 private:
 
@@ -1482,7 +1481,7 @@ public:
     MetaRasterOpAction(MetaRasterOpAction &&) = default;
     MetaRasterOpAction & operator =(MetaRasterOpAction const &) = delete; // due to MetaAction
     MetaRasterOpAction & operator =(MetaRasterOpAction &&) = delete; // due to MetaAction
-protected:
+private:
     virtual             ~MetaRasterOpAction() override;
 public:
     virtual void        Execute( OutputDevice* pOut ) override;
@@ -1495,7 +1494,7 @@ public:
     RasterOp            GetRasterOp() const { return meRasterOp; }
 };
 
-class VCL_DLLPUBLIC MetaTransparentAction : public MetaAction
+class VCL_DLLPUBLIC MetaTransparentAction final : public MetaAction
 {
 private:
 
@@ -1508,7 +1507,7 @@ public:
     MetaTransparentAction(MetaTransparentAction &&) = default;
     MetaTransparentAction & operator =(MetaTransparentAction const &) = delete; // due to MetaAction
     MetaTransparentAction & operator =(MetaTransparentAction &&) = delete; // due to MetaAction
-protected:
+private:
     virtual             ~MetaTransparentAction() override;
 public:
     virtual void        Execute( OutputDevice* pOut ) override;
@@ -1525,7 +1524,7 @@ public:
     sal_uInt16              GetTransparence() const { return mnTransPercent; }
 };
 
-class VCL_DLLPUBLIC MetaFloatTransparentAction : public MetaAction
+class VCL_DLLPUBLIC MetaFloatTransparentAction final : public MetaAction
 {
 private:
 
@@ -1540,7 +1539,7 @@ public:
     MetaFloatTransparentAction(MetaFloatTransparentAction &&) = default;
     MetaFloatTransparentAction & operator =(MetaFloatTransparentAction const &) = delete; // due to MetaAction
     MetaFloatTransparentAction & operator =(MetaFloatTransparentAction &&) = delete; // due to MetaAction
-protected:
+private:
     virtual             ~MetaFloatTransparentAction() override;
 public:
     virtual void        Execute( OutputDevice* pOut ) override;
@@ -1560,7 +1559,7 @@ public:
     const Gradient&     GetGradient() const { return maGradient; }
 };
 
-class VCL_DLLPUBLIC MetaEPSAction : public MetaAction
+class VCL_DLLPUBLIC MetaEPSAction final : public MetaAction
 {
 private:
 
@@ -1575,7 +1574,7 @@ public:
     MetaEPSAction(MetaEPSAction &&) = default;
     MetaEPSAction & operator =(MetaEPSAction const &) = delete; // due to MetaAction
     MetaEPSAction & operator =(MetaEPSAction &&) = delete; // due to MetaAction
-protected:
+private:
     virtual             ~MetaEPSAction() override;
 public:
     virtual void        Execute( OutputDevice* pOut ) override;
@@ -1595,7 +1594,7 @@ public:
     const Size&         GetSize() const { return maSize; }
 };
 
-class VCL_DLLPUBLIC MetaRefPointAction : public MetaAction
+class VCL_DLLPUBLIC MetaRefPointAction final : public MetaAction
 {
 private:
 
@@ -1608,7 +1607,7 @@ public:
     MetaRefPointAction(MetaRefPointAction &&) = default;
     MetaRefPointAction & operator =(MetaRefPointAction const &) = delete; // due to MetaAction
     MetaRefPointAction & operator =(MetaRefPointAction &&) = delete; // due to MetaAction
-protected:
+private:
     virtual             ~MetaRefPointAction() override;
 public:
     virtual void        Execute( OutputDevice* pOut ) override;
@@ -1622,7 +1621,7 @@ public:
     bool                IsSetting() const { return mbSet; }
 };
 
-class VCL_DLLPUBLIC MetaCommentAction : public MetaAction
+class VCL_DLLPUBLIC MetaCommentAction final : public MetaAction
 {
 private:
 
@@ -1634,7 +1633,7 @@ private:
 
     SAL_DLLPRIVATE void ImplInitDynamicData( const sal_uInt8* pData, sal_uInt32 nDataSize );
 
-protected:
+private:
     virtual             ~MetaCommentAction() override;
 
 public:
@@ -1656,7 +1655,7 @@ public:
     const sal_uInt8*    GetData() const { return mpData.get(); }
 };
 
-class VCL_DLLPUBLIC MetaLayoutModeAction : public MetaAction
+class VCL_DLLPUBLIC MetaLayoutModeAction final : public MetaAction
 {
 private:
 
@@ -1668,7 +1667,7 @@ public:
     MetaLayoutModeAction(MetaLayoutModeAction &&) = default;
     MetaLayoutModeAction & operator =(MetaLayoutModeAction const &) = delete; // due to MetaAction
     MetaLayoutModeAction & operator =(MetaLayoutModeAction &&) = delete; // due to MetaAction
-protected:
+private:
     virtual             ~MetaLayoutModeAction() override;
 public:
     virtual void        Execute( OutputDevice* pOut ) override;
@@ -1681,7 +1680,7 @@ public:
     ComplexTextLayoutFlags  GetLayoutMode() const { return mnLayoutMode; }
 };
 
-class VCL_DLLPUBLIC MetaTextLanguageAction : public MetaAction
+class VCL_DLLPUBLIC MetaTextLanguageAction final : public MetaAction
 {
 private:
 
@@ -1693,7 +1692,7 @@ public:
     MetaTextLanguageAction(MetaTextLanguageAction &&) = default;
     MetaTextLanguageAction & operator =(MetaTextLanguageAction const &) = delete; // due to MetaAction
     MetaTextLanguageAction & operator =(MetaTextLanguageAction &&) = delete; // due to MetaAction
-protected:
+private:
     virtual             ~MetaTextLanguageAction() override;
 public:
     virtual void        Execute( OutputDevice* pOut ) override;
diff --git a/include/vcl/notebookbar.hxx b/include/vcl/notebookbar.hxx
index 4d69ced959b4..af904ca2ae5f 100644
--- a/include/vcl/notebookbar.hxx
+++ b/include/vcl/notebookbar.hxx
@@ -22,7 +22,7 @@ class NotebookbarContextControl;
 class SystemWindow;
 
 /// This implements Widget Layout-based notebook-like menu bar.
-class VCL_DLLPUBLIC NotebookBar : public Control, public VclBuilderContainer
+class VCL_DLLPUBLIC NotebookBar final : public Control, public VclBuilderContainer
 {
 friend class NotebookBarContextChangeEventListener;
 public:
diff --git a/include/vcl/oldprintadaptor.hxx b/include/vcl/oldprintadaptor.hxx
index 3e8e60bf82fb..a98ba85a0c86 100644
--- a/include/vcl/oldprintadaptor.hxx
+++ b/include/vcl/oldprintadaptor.hxx
@@ -31,7 +31,7 @@ namespace weld
 namespace vcl
 {
     struct ImplOldStyleAdaptorData;
-    class VCL_DLLPUBLIC OldStylePrintAdaptor : public PrinterController
+    class VCL_DLLPUBLIC OldStylePrintAdaptor final : public PrinterController
     {
         std::unique_ptr<ImplOldStyleAdaptorData>  mpData;
     public:
diff --git a/include/vcl/pdfwriter.hxx b/include/vcl/pdfwriter.hxx
index fe24e50ad11f..e109cf6a76eb 100644
--- a/include/vcl/pdfwriter.hxx
+++ b/include/vcl/pdfwriter.hxx
@@ -286,7 +286,7 @@ public:
         AnyWidget& operator=( const AnyWidget& );  // never implemented
     };
 
-    struct PushButtonWidget : public AnyWidget
+    struct PushButtonWidget final : public AnyWidget
     {
         /* If Dest is set to a valid link destination,
            Then pressing the button will act as a goto
@@ -326,7 +326,7 @@ public:
         }
     };
 
-    struct CheckBoxWidget : public AnyWidget
+    struct CheckBoxWidget final : public AnyWidget
     {
         bool                Checked;
 
@@ -341,7 +341,7 @@ public:
         }
     };
 
-    struct RadioButtonWidget : public AnyWidget
+    struct RadioButtonWidget final : public AnyWidget
     {
         bool                Selected;
         sal_Int32           RadioGroup;
@@ -367,7 +367,7 @@ public:
         // in the group
     };
 
-    struct EditWidget : public AnyWidget
+    struct EditWidget final : public AnyWidget
     {
         bool                MultiLine;  // whether multiple lines are allowed
         bool                Password;   // visible echo off
@@ -388,7 +388,7 @@ public:
         }
     };
 
-    struct ListBoxWidget : public AnyWidget
+    struct ListBoxWidget final : public AnyWidget
     {
         bool                            DropDown;
         bool                            MultiSelect;
@@ -411,7 +411,7 @@ public:
     };
 
     // note: PDF only supports dropdown comboboxes
-    struct ComboBoxWidget : public AnyWidget
+    struct ComboBoxWidget final : public AnyWidget
     {
         std::vector<OUString>      Entries;
         // set the current value in AnyWidget::Text
@@ -426,7 +426,7 @@ public:
         }
     };
 
-    struct SignatureWidget: public AnyWidget
+    struct SignatureWidget final : public AnyWidget
     {
         SignatureWidget()
                 : AnyWidget( vcl::PDFWriter::Signature )
diff --git a/include/vcl/prgsbar.hxx b/include/vcl/prgsbar.hxx
index 773379e4822c..292c54a13254 100644
--- a/include/vcl/prgsbar.hxx
+++ b/include/vcl/prgsbar.hxx
@@ -46,7 +46,7 @@
  ************************************************************************/
 
 
-class VCL_DLLPUBLIC ProgressBar : public vcl::Window
+class VCL_DLLPUBLIC ProgressBar final : public vcl::Window
 {
 private:
     Point               maPos;
diff --git a/include/vcl/salnativewidgets.hxx b/include/vcl/salnativewidgets.hxx
index d4401aec0a24..5e7ebc47de73 100644
--- a/include/vcl/salnativewidgets.hxx
+++ b/include/vcl/salnativewidgets.hxx
@@ -289,7 +289,7 @@ class VCL_DLLPUBLIC ImplControlValue
  *
  *   Value container for scrollbars.
  */
-class VCL_DLLPUBLIC ScrollbarValue : public ImplControlValue
+class VCL_DLLPUBLIC ScrollbarValue final : public ImplControlValue
 {
     public:
         long            mnMin;
@@ -319,7 +319,7 @@ class VCL_DLLPUBLIC ScrollbarValue : public ImplControlValue
         ScrollbarValue & operator =(ScrollbarValue &&) = delete; // due to ImplControlValue
 };
 
-class VCL_DLLPUBLIC SliderValue : public ImplControlValue
+class VCL_DLLPUBLIC SliderValue final : public ImplControlValue
 {
     public:
         long            mnMin;
@@ -341,7 +341,7 @@ class VCL_DLLPUBLIC SliderValue : public ImplControlValue
         SliderValue & operator =(SliderValue &&) = delete; // due to ImplControlValue
 };
 
-class VCL_DLLPUBLIC TabPaneValue : public ImplControlValue
+class VCL_DLLPUBLIC TabPaneValue final : public ImplControlValue
 {
 public:
     tools::Rectangle m_aTabHeaderRect;
@@ -383,7 +383,7 @@ namespace o3tl
     template<> struct typed_flags<TabitemFlags> : is_typed_flags<TabitemFlags, 0x0f> {};
 }
 
-class VCL_DLLPUBLIC TabitemValue : public ImplControlValue
+class VCL_DLLPUBLIC TabitemValue final : public ImplControlValue
 {
     public:
         TabitemFlags    mnAlignment;
@@ -418,7 +418,7 @@ class VCL_DLLPUBLIC TabitemValue : public ImplControlValue
  *   Note: the other parameters of DrawNativeControl will have no meaning
  *         all parameters for spinbuttons are carried here
  */
-class VCL_DLLPUBLIC SpinbuttonValue : public ImplControlValue
+class VCL_DLLPUBLIC SpinbuttonValue final : public ImplControlValue
 {
     public:
         tools::Rectangle       maUpperRect;
@@ -450,7 +450,7 @@ class VCL_DLLPUBLIC SpinbuttonValue : public ImplControlValue
  *
  *  Value container for toolbars detailing the grip position
  */
-class VCL_DLLPUBLIC ToolbarValue : public ImplControlValue
+class VCL_DLLPUBLIC ToolbarValue final : public ImplControlValue
 {
 public:
     ToolbarValue() : ImplControlValue( ControlType::Toolbar, 0 )
@@ -472,7 +472,7 @@ public:
  *
  *  Value container for menubars specifying height of adjacent docking area
  */
-class VCL_DLLPUBLIC MenubarValue : public ImplControlValue
+class VCL_DLLPUBLIC MenubarValue final : public ImplControlValue
 {
 public:
     MenubarValue() : ImplControlValue( ControlType::Menubar, 0 )
@@ -491,7 +491,7 @@ public:
  * Value container for menu items; specifies the rectangle for the whole item which
  * may be useful when drawing parts with a smaller rectangle.
  */
-class VCL_DLLPUBLIC MenupopupValue : public ImplControlValue
+class VCL_DLLPUBLIC MenupopupValue final : public ImplControlValue
 {
 public:
     MenupopupValue( long i_nGutterWidth, const tools::Rectangle& i_rItemRect )
@@ -511,7 +511,7 @@ public:
  *
  *  Value container for pushbuttons specifying additional drawing hints
  */
-class VCL_DLLPUBLIC PushButtonValue : public ImplControlValue
+class VCL_DLLPUBLIC PushButtonValue final : public ImplControlValue
 {
 public:
     PushButtonValue()
diff --git a/include/vcl/scrbar.hxx b/include/vcl/scrbar.hxx
index fb08f37405b6..1c1fd94c8aa5 100644
--- a/include/vcl/scrbar.hxx
+++ b/include/vcl/scrbar.hxx
@@ -138,7 +138,7 @@ public:
 };
 
 
-class VCL_DLLPUBLIC ScrollBarBox : public vcl::Window
+class VCL_DLLPUBLIC ScrollBarBox final : public vcl::Window
 {
 private:
     using Window::ImplInit;
diff --git a/include/vcl/slider.hxx b/include/vcl/slider.hxx
index 36247d52381a..69fc6a3a4d12 100644
--- a/include/vcl/slider.hxx
+++ b/include/vcl/slider.hxx
@@ -25,7 +25,7 @@
 #include <vcl/scrbar.hxx>
 #include <vcl/field.hxx>
 
-class VCL_DLLPUBLIC Slider : public Control
+class VCL_DLLPUBLIC Slider final : public Control
 {
 private:
     tools::Rectangle       maChannel1Rect;
diff --git a/include/vcl/textview.hxx b/include/vcl/textview.hxx
index 8f856a3346e6..3de25b5acb0d 100644
--- a/include/vcl/textview.hxx
+++ b/include/vcl/textview.hxx
@@ -48,7 +48,7 @@ namespace i18nutil {
 struct ImpTextView;
 class ExtTextEngine;
 
-class VCL_DLLPUBLIC TETextDataObject :    public css::datatransfer::XTransferable,
+class VCL_DLLPUBLIC TETextDataObject final : public css::datatransfer::XTransferable,
                         public ::cppu::OWeakObject
 
 {
@@ -74,7 +74,7 @@ public:
 };
 
 
-class VCL_DLLPUBLIC TextView : public vcl::unohelper::DragAndDropClient
+class VCL_DLLPUBLIC TextView final : public vcl::unohelper::DragAndDropClient
 {
     friend class        TextEngine;
     friend class        TextUndo;
diff --git a/include/vcl/threadex.hxx b/include/vcl/threadex.hxx
index cd511f271d2c..01d6170fbbe5 100644
--- a/include/vcl/threadex.hxx
+++ b/include/vcl/threadex.hxx
@@ -51,7 +51,7 @@ namespace solarthread {
 namespace detail {
 
 template <typename FuncT, typename ResultT>
-class GenericSolarThreadExecutor : public SolarThreadExecutor
+class GenericSolarThreadExecutor final : public SolarThreadExecutor
 {
 public:
     static ResultT exec( FuncT const& func )
diff --git a/include/vcl/toolkit/morebtn.hxx b/include/vcl/toolkit/morebtn.hxx
index 09c6bd6be98c..dccbb4a9e08c 100644
--- a/include/vcl/toolkit/morebtn.hxx
+++ b/include/vcl/toolkit/morebtn.hxx
@@ -27,7 +27,7 @@
 struct ImplMoreButtonData;
 
 
-class VCL_DLLPUBLIC MoreButton : public PushButton
+class VCL_DLLPUBLIC MoreButton final : public PushButton
 {
     std::unique_ptr<ImplMoreButtonData> mpMBData;
     bool                mbState;
diff --git a/include/vcl/toolkit/tabdlg.hxx b/include/vcl/toolkit/tabdlg.hxx
index 5d883b826a52..18319a992072 100644
--- a/include/vcl/toolkit/tabdlg.hxx
+++ b/include/vcl/toolkit/tabdlg.hxx
@@ -25,7 +25,7 @@
 
 class FixedLine;
 
-class VCL_DLLPUBLIC TabDialog : public Dialog
+class VCL_DLLPUBLIC TabDialog final : public Dialog
 {
 private:
     VclPtr<FixedLine>   mpFixedLine;
diff --git a/include/vcl/toolkit/throbber.hxx b/include/vcl/toolkit/throbber.hxx
index 7034bfa82b22..4739bd7aa8c3 100644
--- a/include/vcl/toolkit/throbber.hxx
+++ b/include/vcl/toolkit/throbber.hxx
@@ -26,7 +26,7 @@
 
 #include <vector>
 
-class VCL_DLLPUBLIC Throbber : public ImageControl
+class VCL_DLLPUBLIC Throbber final : public ImageControl
 {
 public:
     enum class ImageSet
@@ -62,14 +62,12 @@ public:
     static ::std::vector< OUString >
         getDefaultImageURLs( const ImageSet i_imageSet );
 
-protected:
+private:
     // Window overridables
     virtual void        Resize() override;
 
-private:
     SAL_DLLPRIVATE void initImages();
 
-private:
     ::std::vector< Image >  maImageList;
 
     bool    mbRepeat;
diff --git a/include/vcl/transfer.hxx b/include/vcl/transfer.hxx
index 646b85fb61a2..75af922a007c 100644
--- a/include/vcl/transfer.hxx
+++ b/include/vcl/transfer.hxx
@@ -483,12 +483,10 @@ public:
 
 struct TransferDataContainer_Impl;
 
-class VCL_DLLPUBLIC TransferDataContainer : public TransferableHelper
+class VCL_DLLPUBLIC TransferDataContainer final : public TransferableHelper
 {
     std::unique_ptr<TransferDataContainer_Impl> pImpl;
 
-protected:
-
     virtual void        AddSupportedFormats() override;
     virtual bool        GetData( const css::datatransfer::DataFlavor& rFlavor, const OUString& rDestDoc ) override;
     virtual void        DragFinished( sal_Int8 nDropAction ) override;
diff --git a/include/vcl/txtattr.hxx b/include/vcl/txtattr.hxx
index 13019667ea85..4c89f97ad621 100644
--- a/include/vcl/txtattr.hxx
+++ b/include/vcl/txtattr.hxx
@@ -58,7 +58,7 @@ public:
 };
 
 
-class VCL_DLLPUBLIC TextAttribFontColor : public TextAttrib
+class VCL_DLLPUBLIC TextAttribFontColor final : public TextAttrib
 {
 private:
     Color const   maColor;
@@ -74,7 +74,7 @@ public:
 
 };
 
-class VCL_DLLPUBLIC TextAttribFontWeight : public TextAttrib
+class VCL_DLLPUBLIC TextAttribFontWeight final : public TextAttrib
 {
 private:
     FontWeight const  meWeight;
@@ -89,7 +89,7 @@ public:
     FontWeight getFontWeight() const { return meWeight; }
 };
 
-class VCL_DLLPUBLIC TextAttribProtect : public TextAttrib
+class VCL_DLLPUBLIC TextAttribProtect final : public TextAttrib
 {
 public:
                             TextAttribProtect();
diff --git a/include/vcl/uitest/uiobject.hxx b/include/vcl/uitest/uiobject.hxx
index 409dbf1e5b99..a8722c46fed4 100644
--- a/include/vcl/uitest/uiobject.hxx
+++ b/include/vcl/uitest/uiobject.hxx
@@ -135,7 +135,7 @@ protected:
 };
 
 // TODO: moggi: what about push buttons?
-class UITEST_DLLPUBLIC ButtonUIObject : public WindowUIObject
+class UITEST_DLLPUBLIC ButtonUIObject final : public WindowUIObject
 {
     VclPtr<Button> mxButton;
 public:
@@ -152,12 +152,12 @@ public:
 
     virtual OUString get_action(VclEventId nEvent) const override;
 
-protected:
+private:
 
     virtual OUString get_name() const override;
 };
 
-class UITEST_DLLPUBLIC DialogUIObject : public WindowUIObject
+class UITEST_DLLPUBLIC DialogUIObject final : public WindowUIObject
 {
     VclPtr<Dialog> mxDialog;
 
@@ -170,7 +170,7 @@ public:
 
     static std::unique_ptr<UIObject> create(vcl::Window* pWindow);
 
-protected:
+private:
 
     virtual OUString get_name() const override;
 };
@@ -198,7 +198,7 @@ protected:
     virtual OUString get_name() const override;
 };
 
-class UITEST_DLLPUBLIC MultiLineEditUIObject : public WindowUIObject
+class UITEST_DLLPUBLIC MultiLineEditUIObject final : public WindowUIObject
 {
     VclPtr<VclMultiLineEdit> mxEdit;
 
@@ -214,13 +214,13 @@ public:
 
     static std::unique_ptr<UIObject> create(vcl::Window* pWindow);
 
-protected:
+private:
 
     virtual OUString get_name() const override;
 };
 
 // TODO: moggi: maybe let it inherit from the button case
-class UITEST_DLLPUBLIC CheckBoxUIObject : public WindowUIObject
+class UITEST_DLLPUBLIC CheckBoxUIObject final : public WindowUIObject
 {
 private:
     VclPtr<CheckBox> mxCheckBox;
@@ -238,12 +238,12 @@ public:
 
     virtual OUString get_action(VclEventId nEvent) const override;
 
-protected:
+private:
 
     virtual OUString get_name() const override;
 };
 
-class UITEST_DLLPUBLIC RadioButtonUIObject : public WindowUIObject
+class UITEST_DLLPUBLIC RadioButtonUIObject final : public WindowUIObject
 {
 private:
     VclPtr<RadioButton> mxRadioButton;
@@ -261,12 +261,12 @@ public:
 
     virtual OUString get_action(VclEventId nEvent) const override;
 
-protected:
+private:
 
     virtual OUString get_name() const override;
 };
 
-class UITEST_DLLPUBLIC TabPageUIObject : public WindowUIObject
+class UITEST_DLLPUBLIC TabPageUIObject final : public WindowUIObject
 {
 private:
     VclPtr<TabPage> mxTabPage;
@@ -281,12 +281,12 @@ public:
 
     static std::unique_ptr<UIObject> create(vcl::Window* pWindow);
 
-protected:
+private:
 
     virtual OUString get_name() const override;
 };
 
-class UITEST_DLLPUBLIC ListBoxUIObject : public WindowUIObject
+class UITEST_DLLPUBLIC ListBoxUIObject final : public WindowUIObject
 {
 private:
     VclPtr<ListBox> mxListBox;
@@ -305,13 +305,13 @@ public:
 
     virtual OUString get_action(VclEventId nEvent) const override;
 
-protected:
+private:
 
     virtual OUString get_name() const override;
 };
 
 // TODO: moggi: should it inherit from EditUIObject?
-class UITEST_DLLPUBLIC ComboBoxUIObject : public WindowUIObject
+class UITEST_DLLPUBLIC ComboBoxUIObject final : public WindowUIObject
 {
 private:
     VclPtr<ComboBox> mxComboBox;
@@ -330,12 +330,12 @@ public:
 
     virtual OUString get_action(VclEventId nEvent) const override;
 
-protected:
+private:
 
     virtual OUString get_name() const override;
 };
 
-class UITEST_DLLPUBLIC SpinUIObject : public WindowUIObject
+class UITEST_DLLPUBLIC SpinUIObject final : public WindowUIObject
 {
 private:
     VclPtr<SpinButton> mxSpinButton;
@@ -354,12 +354,12 @@ public:
 
     virtual OUString get_action(VclEventId nEvent) const override;
 
-protected:
+private:
 
     virtual OUString get_name() const override;
 };
 
-class UITEST_DLLPUBLIC SpinFieldUIObject : public EditUIObject
+class UITEST_DLLPUBLIC SpinFieldUIObject final : public EditUIObject
 {
     VclPtr<SpinField> mxSpinField;
 
@@ -377,12 +377,12 @@ public:
 
     virtual OUString get_action(VclEventId nEvent) const override;
 
-protected:
+private:
 
     virtual OUString get_name() const override;
 };
 
-class UITEST_DLLPUBLIC TabControlUIObject : public WindowUIObject
+class UITEST_DLLPUBLIC TabControlUIObject final : public WindowUIObject
 {
 private:
     VclPtr<TabControl> mxTabControl;
@@ -401,12 +401,12 @@ public:
 
     virtual OUString get_action(VclEventId nEvent) const override;
 
-protected:
+private:
 
     virtual OUString get_name() const override;
 };
 
-class UITEST_DLLPUBLIC TreeListUIObject : public WindowUIObject
+class UITEST_DLLPUBLIC TreeListUIObject final : public WindowUIObject
 {
 public:
     TreeListUIObject(const VclPtr<SvTreeListBox>& xTreeList);
@@ -422,16 +422,14 @@ public:
 
     virtual std::set<OUString> get_children() const override;
 
-protected:
+private:
 
     virtual OUString get_name() const override;
 
-private:
-
     VclPtr<SvTreeListBox> mxTreeList;
 };
 
-class UITEST_DLLPUBLIC TreeListEntryUIObject : public UIObject
+class UITEST_DLLPUBLIC TreeListEntryUIObject final : public UIObject
 {
 public:
 
diff --git a/include/vcl/unohelp2.hxx b/include/vcl/unohelp2.hxx
index 6a59541198a0..27ab0973dd37 100644
--- a/include/vcl/unohelp2.hxx
+++ b/include/vcl/unohelp2.hxx
@@ -32,7 +32,7 @@ namespace com { namespace sun { namespace star { namespace datatransfer { namesp
 
 namespace vcl { namespace unohelper {
 
-    class VCL_DLLPUBLIC TextDataObject :
+    class VCL_DLLPUBLIC TextDataObject final :
                             public css::datatransfer::XTransferable,
                             public ::cppu::OWeakObject
     {
diff --git a/include/vcl/vclevent.hxx b/include/vcl/vclevent.hxx
index 4ba071715b6a..24ee1f3d8297 100644
--- a/include/vcl/vclevent.hxx
+++ b/include/vcl/vclevent.hxx
@@ -188,7 +188,7 @@ public:
     VclEventId GetId() const { return nId; }
 };
 
-class VCL_DLLPUBLIC VclWindowEvent : public VclSimpleEvent
+class VCL_DLLPUBLIC VclWindowEvent final : public VclSimpleEvent
 {
 private:
     VclPtr<vcl::Window> pWindow;
@@ -202,7 +202,7 @@ public:
     void*   GetData() const { return pData; }
 };
 
-class VCL_DLLPUBLIC VclMenuEvent : public VclSimpleEvent
+class VCL_DLLPUBLIC VclMenuEvent final : public VclSimpleEvent
 {
 private:
     VclPtr<Menu> pMenu;
@@ -219,7 +219,7 @@ public:
     sal_uInt16 GetItemPos() const { return mnPos; }
 };
 
-class VCL_DLLPUBLIC VclAccessibleEvent: public VclSimpleEvent
+class VCL_DLLPUBLIC VclAccessibleEvent final : public VclSimpleEvent
 {
 public:
     VclAccessibleEvent( VclEventId n, const css::uno::Reference< css::accessibility::XAccessible >& rxAccessible );
diff --git a/include/vcl/vclmedit.hxx b/include/vcl/vclmedit.hxx
index 414705c2d70f..1cb3b8114149 100644
--- a/include/vcl/vclmedit.hxx
+++ b/include/vcl/vclmedit.hxx
@@ -31,7 +31,7 @@ class ImpVclMEdit;
 class ExtTextEngine;
 class TextView;
 
-class TextWindow : public vcl::Window
+class TextWindow final : public vcl::Window
 {
 private:
     VclPtr<Edit>    mxParent;
diff --git a/include/vcl/vclptr.hxx b/include/vcl/vclptr.hxx
index 9a621fdd0228..768d7b8646cb 100644
--- a/include/vcl/vclptr.hxx
+++ b/include/vcl/vclptr.hxx
@@ -272,7 +272,7 @@ template<typename T> inline bool operator !=(T * p1, VclPtr<T> const & p2) {
  * @param reference_type must be a subclass of vcl::Window
  */
 template <class reference_type>
-class SAL_WARN_UNUSED VclPtrInstance : public VclPtr<reference_type>
+class SAL_WARN_UNUSED VclPtrInstance final : public VclPtr<reference_type>
 {
 public:
     template<typename... Arg> VclPtrInstance(Arg &&... arg)
@@ -404,7 +404,7 @@ protected:
 #pragma warning(disable: 4521) // " multiple copy constructors specified"
 #endif
 template <class reference_type>
-class SAL_WARN_UNUSED ScopedVclPtrInstance : public ScopedVclPtr<reference_type>
+class SAL_WARN_UNUSED ScopedVclPtrInstance final : public ScopedVclPtr<reference_type>
 {
 public:
     template<typename... Arg> ScopedVclPtrInstance(Arg &&... arg)
diff --git a/include/vcl/vclstatuslistener.hxx b/include/vcl/vclstatuslistener.hxx
index 78fc6e353ce5..2652befcd4cc 100644
--- a/include/vcl/vclstatuslistener.hxx
+++ b/include/vcl/vclstatuslistener.hxx
@@ -21,7 +21,7 @@
 #include <com/sun/star/util/URL.hpp>
 #include <com/sun/star/util/URLTransformer.hpp>
 
-template <class T> class VclStatusListener : public cppu::WeakImplHelper < css::frame::XStatusListener>
+template <class T> class VclStatusListener final : public cppu::WeakImplHelper < css::frame::XStatusListener>
 {
 public:
     VclStatusListener<T>(T* widget, const OUString& aCommand);
diff --git a/include/vcl/weld.hxx b/include/vcl/weld.hxx
index c9019d8dfaf5..e7dce7660dd8 100644
--- a/include/vcl/weld.hxx
+++ b/include/vcl/weld.hxx
@@ -1521,9 +1521,8 @@ public:
     void set_height_request_by_rows(int nRows);
 };
 
-class VCL_DLLPUBLIC MetricSpinButton
+class VCL_DLLPUBLIC MetricSpinButton final
 {
-protected:
     FieldUnit m_eSrcUnit;
     std::unique_ptr<weld::SpinButton> m_xSpinButton;
     Link<MetricSpinButton&, void> m_aValueChangedHdl;
@@ -1683,9 +1682,8 @@ public:
     weld::SpinButton& get_widget() { return *m_xSpinButton; }
 };
 
-class VCL_DLLPUBLIC TimeSpinButton
+class VCL_DLLPUBLIC TimeSpinButton final
 {
-protected:
     TimeFieldFormat const m_eFormat;
     std::unique_ptr<weld::SpinButton> m_xSpinButton;
     Link<TimeSpinButton&, void> m_aValueChangedHdl;


More information about the Libreoffice-commits mailing list