[Libreoffice-commits] core.git: Branch 'feature/drawinglayercore' - 2 commits - drawinglayer/source filter/source include/basegfx include/vcl svx/source sw/source vcl/source

Tomaž Vajngerl (via logerrit) logerrit at kemper.freedesktop.org
Tue May 26 13:25:43 UTC 2020


 drawinglayer/source/primitive2d/graphicprimitive2d.cxx |    8 -
 filter/source/msfilter/escherex.cxx                    |    2 
 include/basegfx/bitmap/BitmapAttributes.hxx            |   36 +++++
 include/vcl/GraphicAttributes.hxx                      |  122 +++++++++++++++++
 include/vcl/GraphicObject.hxx                          |   96 -------------
 svx/source/sdr/contact/viewcontactofgraphic.cxx        |    4 
 svx/source/svdraw/svdograf.cxx                         |    5 
 sw/source/core/graphic/ndgrf.cxx                       |   16 +-
 vcl/source/graphic/GraphicObject.cxx                   |   16 +-
 vcl/source/graphic/grfattr.cxx                         |    6 
 10 files changed, 192 insertions(+), 119 deletions(-)

New commits:
commit b66255ec1a72927c194dc2c2e7d109eedbe122c9
Author:     Tomaž Vajngerl <tomaz.vajngerl at collabora.co.uk>
AuthorDate: Tue May 26 13:39:45 2020 +0200
Commit:     Tomaž Vajngerl <tomaz.vajngerl at collabora.co.uk>
CommitDate: Tue May 26 13:39:45 2020 +0200

    basegfx::MirrorDirectionFlags as replacement for BmpMirrorFlags
    
    BmpMirrorFlags in Bitmap is an attribute for bitmap manipulation
    (mirroring). This change creates a copy of the flags in basegfx
    as MirrorDirectionFlags, which will be used in the fututre as a
    general repalcement for the BmpMirrorFlags, that will be changed
    step by step.
    
    For now we only use the flags in GraphicAttr to make it independent
    form vcl, and cast to/from BmpMirrorFLags and MirrorDirectionFlags
    where needed.
    
    Change-Id: I01a69a4d241caa22cff61bdbf87944af57684749

diff --git a/drawinglayer/source/primitive2d/graphicprimitive2d.cxx b/drawinglayer/source/primitive2d/graphicprimitive2d.cxx
index ee07fd29f841..e502955f5a7f 100644
--- a/drawinglayer/source/primitive2d/graphicprimitive2d.cxx
+++ b/drawinglayer/source/primitive2d/graphicprimitive2d.cxx
@@ -49,8 +49,10 @@ void GraphicPrimitive2D::create2DDecomposition(Primitive2DContainer& rContainer,
     if (getGraphicAttr().IsMirrored())
     {
         // content needs mirroring
-        const bool bHMirr(getGraphicAttr().GetMirrorFlags() & BmpMirrorFlags::Horizontal);
-        const bool bVMirr(getGraphicAttr().GetMirrorFlags() & BmpMirrorFlags::Vertical);
+        const bool bHMirr(getGraphicAttr().GetMirrorFlags()
+                          & basegfx::MirrorDirectionFlags::Horizontal);
+        const bool bVMirr(getGraphicAttr().GetMirrorFlags()
+                          & basegfx::MirrorDirectionFlags::Vertical);
 
         // mirror by applying negative scale to the unit primitive and
         // applying the object transformation on it.
@@ -69,7 +71,7 @@ void GraphicPrimitive2D::create2DDecomposition(Primitive2DContainer& rContainer,
 
     aSuppressGraphicAttr.SetCrop(0, 0, 0, 0);
     aSuppressGraphicAttr.SetRotation(0);
-    aSuppressGraphicAttr.SetMirrorFlags(BmpMirrorFlags::NONE);
+    aSuppressGraphicAttr.SetMirrorFlags(basegfx::MirrorDirectionFlags::NONE);
     aSuppressGraphicAttr.SetTransparency(0);
 
     const GraphicObject& rGraphicObject = getGraphicObject();
diff --git a/filter/source/msfilter/escherex.cxx b/filter/source/msfilter/escherex.cxx
index 443d533ecadb..0df153611c67 100644
--- a/filter/source/msfilter/escherex.cxx
+++ b/filter/source/msfilter/escherex.cxx
@@ -1674,7 +1674,7 @@ bool EscherPropertyContainer::CreateGraphicProperties(const uno::Reference<beans
 
                 if(bMirrored)
                 {
-                    pGraphicAttr->SetMirrorFlags(BmpMirrorFlags::Horizontal);
+                    pGraphicAttr->SetMirrorFlags(basegfx::MirrorDirectionFlags::Horizontal);
                 }
 
                 if(nTransparency)
diff --git a/include/basegfx/bitmap/BitmapAttributes.hxx b/include/basegfx/bitmap/BitmapAttributes.hxx
new file mode 100644
index 000000000000..d918d55faa99
--- /dev/null
+++ b/include/basegfx/bitmap/BitmapAttributes.hxx
@@ -0,0 +1,36 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ */
+
+#pragma once
+
+#include <basegfx/basegfxdllapi.h>
+#include <o3tl/typed_flags_set.hxx>
+
+namespace basegfx
+{
+enum class MirrorDirectionFlags
+{
+    NONE = 0x00,
+    Horizontal = 0x01,
+    Vertical = 0x02,
+};
+
+} // end of namespace basegfx
+
+namespace o3tl
+{
+template <>
+struct typed_flags<basegfx::MirrorDirectionFlags>
+    : is_typed_flags<basegfx::MirrorDirectionFlags, 0x03>
+{
+};
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/include/vcl/GraphicAttributes.hxx b/include/vcl/GraphicAttributes.hxx
index 0908a8f56b9d..90364e408fee 100644
--- a/include/vcl/GraphicAttributes.hxx
+++ b/include/vcl/GraphicAttributes.hxx
@@ -19,10 +19,11 @@
 
 #pragma once
 
-#include <memory>
 #include <vcl/dllapi.h>
+
+#include <memory>
 #include <o3tl/typed_flags_set.hxx>
-#include <vcl/bitmap.hxx>
+#include <basegfx/bitmap/BitmapAttributes.hxx>
 
 enum class GraphicDrawMode
 {
@@ -36,7 +37,7 @@ class VCL_DLLPUBLIC GraphicAttr
 {
 private:
     double mfGamma;
-    BmpMirrorFlags mnMirrFlags;
+    basegfx::MirrorDirectionFlags mnMirrFlags;
     long mnLeftCrop;
     long mnTopCrop;
     long mnRightCrop;
@@ -60,8 +61,8 @@ public:
     void SetDrawMode(GraphicDrawMode eDrawMode) { meDrawMode = eDrawMode; }
     GraphicDrawMode GetDrawMode() const { return meDrawMode; }
 
-    void SetMirrorFlags(BmpMirrorFlags nMirrFlags) { mnMirrFlags = nMirrFlags; }
-    BmpMirrorFlags GetMirrorFlags() const { return mnMirrFlags; }
+    void SetMirrorFlags(basegfx::MirrorDirectionFlags nMirrFlags) { mnMirrFlags = nMirrFlags; }
+    basegfx::MirrorDirectionFlags GetMirrorFlags() const { return mnMirrFlags; }
 
     void SetCrop(long nLeft_100TH_MM, long nTop_100TH_MM, long nRight_100TH_MM,
                  long nBottom_100TH_MM)
@@ -104,7 +105,7 @@ public:
     sal_uInt8 GetTransparency() const { return mcTransparency; }
 
     bool IsSpecialDrawMode() const { return (meDrawMode != GraphicDrawMode::Standard); }
-    bool IsMirrored() const { return mnMirrFlags != BmpMirrorFlags::NONE; }
+    bool IsMirrored() const { return mnMirrFlags != basegfx::MirrorDirectionFlags::NONE; }
     bool IsCropped() const
     {
         return (mnLeftCrop != 0 || mnTopCrop != 0 || mnRightCrop != 0 || mnBottomCrop != 0);
diff --git a/svx/source/sdr/contact/viewcontactofgraphic.cxx b/svx/source/sdr/contact/viewcontactofgraphic.cxx
index 8fceef864ae2..db24da9a5552 100644
--- a/svx/source/sdr/contact/viewcontactofgraphic.cxx
+++ b/svx/source/sdr/contact/viewcontactofgraphic.cxx
@@ -336,7 +336,9 @@ namespace sdr::contact
 
             if(bHMirr || bVMirr)
             {
-                aLocalGrafInfo.SetMirrorFlags((bHMirr ? BmpMirrorFlags::Horizontal : BmpMirrorFlags::NONE)|(bVMirr ? BmpMirrorFlags::Vertical : BmpMirrorFlags::NONE));
+                basegfx::MirrorDirectionFlags eVertical = bVMirr ? basegfx::MirrorDirectionFlags::Vertical : basegfx::MirrorDirectionFlags::NONE;
+                basegfx::MirrorDirectionFlags eHorizontal = bHMirr ? basegfx::MirrorDirectionFlags::Horizontal : basegfx::MirrorDirectionFlags::NONE;
+                aLocalGrafInfo.SetMirrorFlags(eVertical | eHorizontal);
             }
 
             // fill object matrix
diff --git a/svx/source/svdraw/svdograf.cxx b/svx/source/svdraw/svdograf.cxx
index 3f836d4123cd..50c9cc8ad77e 100644
--- a/svx/source/svdraw/svdograf.cxx
+++ b/svx/source/svdraw/svdograf.cxx
@@ -378,7 +378,10 @@ GraphicAttr SdrGrafObj::GetGraphicAttr( SdrGrafObjTransformsAttrs nTransformFlag
             bool bHMirr = nMirrorCase == 2 || nMirrorCase == 4;
             bool bVMirr = nMirrorCase == 3 || nMirrorCase == 4;
 
-            aActAttr.SetMirrorFlags( ( bHMirr ? BmpMirrorFlags::Horizontal : BmpMirrorFlags::NONE ) | ( bVMirr ? BmpMirrorFlags::Vertical : BmpMirrorFlags::NONE ) );
+            basegfx::MirrorDirectionFlags eVertical = bVMirr ? basegfx::MirrorDirectionFlags::Vertical : basegfx::MirrorDirectionFlags::NONE;
+            basegfx::MirrorDirectionFlags eHorizontal = bHMirr ? basegfx::MirrorDirectionFlags::Horizontal : basegfx::MirrorDirectionFlags::NONE;
+
+            aActAttr.SetMirrorFlags(eVertical | eHorizontal);
         }
 
         if( bRotate )
diff --git a/sw/source/core/graphic/ndgrf.cxx b/sw/source/core/graphic/ndgrf.cxx
index bb39141cc49a..58a7fde52200 100644
--- a/sw/source/core/graphic/ndgrf.cxx
+++ b/sw/source/core/graphic/ndgrf.cxx
@@ -727,22 +727,22 @@ GraphicAttr& SwGrfNode::GetGraphicAttr( GraphicAttr& rGA,
     rGA.SetDrawMode( rSet.GetDrawModeGrf().GetValue() );
 
     const SwMirrorGrf & rMirror = rSet.GetMirrorGrf();
-    BmpMirrorFlags nMirror = BmpMirrorFlags::NONE;
+    basegfx::MirrorDirectionFlags nMirror = basegfx::MirrorDirectionFlags::NONE;
     if( rMirror.IsGrfToggle() && pFrame && !pFrame->FindPageFrame()->OnRightPage() )
     {
         switch( rMirror.GetValue() )
         {
         case MirrorGraph::Dont:
-            nMirror = BmpMirrorFlags::Horizontal;
+            nMirror = basegfx::MirrorDirectionFlags::Horizontal;
             break;
         case MirrorGraph::Vertical:
-            nMirror = BmpMirrorFlags::NONE;
+            nMirror = basegfx::MirrorDirectionFlags::NONE;
             break;
         case MirrorGraph::Horizontal:
-            nMirror = BmpMirrorFlags::Horizontal|BmpMirrorFlags::Vertical;
+            nMirror = basegfx::MirrorDirectionFlags::Horizontal | basegfx::MirrorDirectionFlags::Vertical;
             break;
         default:
-            nMirror = BmpMirrorFlags::Vertical;
+            nMirror = basegfx::MirrorDirectionFlags::Vertical;
             break;
         }
     }
@@ -750,13 +750,13 @@ GraphicAttr& SwGrfNode::GetGraphicAttr( GraphicAttr& rGA,
         switch( rMirror.GetValue() )
         {
         case MirrorGraph::Both:
-            nMirror = BmpMirrorFlags::Horizontal|BmpMirrorFlags::Vertical;
+            nMirror = basegfx::MirrorDirectionFlags::Horizontal | basegfx::MirrorDirectionFlags::Vertical;
             break;
         case MirrorGraph::Vertical:
-            nMirror = BmpMirrorFlags::Horizontal;
+            nMirror = basegfx::MirrorDirectionFlags::Horizontal;
             break;
         case MirrorGraph::Horizontal:
-            nMirror = BmpMirrorFlags::Vertical;
+            nMirror = basegfx::MirrorDirectionFlags::Vertical;
             break;
         default: break;
         }
diff --git a/vcl/source/graphic/GraphicObject.cxx b/vcl/source/graphic/GraphicObject.cxx
index 377945ef2e32..092b8d1cca8d 100644
--- a/vcl/source/graphic/GraphicObject.cxx
+++ b/vcl/source/graphic/GraphicObject.cxx
@@ -168,7 +168,7 @@ void lclImplAdjust( BitmapEx& rBmpEx, const GraphicAttr& rAttr, GraphicAdjustmen
 
     if( ( nAdjustmentFlags & GraphicAdjustmentFlags::MIRROR ) && aAttr.IsMirrored() )
     {
-        rBmpEx.Mirror( aAttr.GetMirrorFlags() );
+        rBmpEx.Mirror(BmpMirrorFlags(aAttr.GetMirrorFlags()) );
     }
 
     if( ( nAdjustmentFlags & GraphicAdjustmentFlags::ROTATE ) && aAttr.IsRotated() )
@@ -219,7 +219,7 @@ void lclImplAdjust( GDIMetaFile& rMtf, const GraphicAttr& rAttr, GraphicAdjustme
 
     if( ( nAdjustmentFlags & GraphicAdjustmentFlags::MIRROR ) && aAttr.IsMirrored() )
     {
-        rMtf.Mirror( aAttr.GetMirrorFlags() );
+        rMtf.Mirror(BmpMirrorFlags(aAttr.GetMirrorFlags()));
     }
 
     if( ( nAdjustmentFlags & GraphicAdjustmentFlags::ROTATE ) && aAttr.IsRotated() )
@@ -270,7 +270,7 @@ void lclImplAdjust( Animation& rAnimation, const GraphicAttr& rAttr, GraphicAdju
 
     if( ( nAdjustmentFlags & GraphicAdjustmentFlags::MIRROR ) && aAttr.IsMirrored() )
     {
-        rAnimation.Mirror( aAttr.GetMirrorFlags() );
+        rAnimation.Mirror(BmpMirrorFlags(aAttr.GetMirrorFlags()));
     }
 
     if( ( nAdjustmentFlags & GraphicAdjustmentFlags::ROTATE ) && aAttr.IsRotated() )
@@ -383,7 +383,7 @@ bool GraphicObject::ImplGetCropParams( OutputDevice const * pOut, Point& rPt, Si
         if( !aSize100.IsEmpty() && nTotalWidth > 0 && nTotalHeight > 0 )
         {
             double fScale = static_cast<double>(aSize100.Width()) / nTotalWidth;
-            const long nNewLeft = -FRound( ( ( pAttr->GetMirrorFlags() & BmpMirrorFlags::Horizontal ) ? pAttr->GetRightCrop() : pAttr->GetLeftCrop() ) * fScale );
+            const long nNewLeft = -FRound( ( ( BmpMirrorFlags(pAttr->GetMirrorFlags()) & BmpMirrorFlags::Horizontal ) ? pAttr->GetRightCrop() : pAttr->GetLeftCrop() ) * fScale );
             const long nNewRight = nNewLeft + FRound( aSize100.Width() * fScale ) - 1;
 
             fScale = static_cast<double>(rSz.Width()) / aSize100.Width();
@@ -391,7 +391,7 @@ bool GraphicObject::ImplGetCropParams( OutputDevice const * pOut, Point& rPt, Si
             rSz.setWidth( FRound( ( nNewRight - nNewLeft + 1 ) * fScale ) );
 
             fScale = static_cast<double>(aSize100.Height()) / nTotalHeight;
-            const long nNewTop = -FRound( ( ( pAttr->GetMirrorFlags() & BmpMirrorFlags::Vertical ) ? pAttr->GetBottomCrop() : pAttr->GetTopCrop() ) * fScale );
+            const long nNewTop = -FRound( ( ( BmpMirrorFlags(pAttr->GetMirrorFlags()) & BmpMirrorFlags::Vertical ) ? pAttr->GetBottomCrop() : pAttr->GetTopCrop() ) * fScale );
             const long nNewBottom = nNewTop + FRound( aSize100.Height() * fScale ) - 1;
 
             fScale = static_cast<double>(rSz.Height()) / aSize100.Height();
@@ -476,7 +476,8 @@ bool GraphicObject::Draw( OutputDevice* pOut, const Point& rPt, const Size& rSz,
     {
         aPt.AdjustX(aSz.Width() + 1 );
         aSz.setWidth( -aSz.Width() );
-        aAttr.SetMirrorFlags( aAttr.GetMirrorFlags() ^ BmpMirrorFlags::Horizontal );
+        BmpMirrorFlags eFlags = BmpMirrorFlags(aAttr.GetMirrorFlags()) ^ BmpMirrorFlags::Horizontal;
+        aAttr.SetMirrorFlags(basegfx::MirrorDirectionFlags(eFlags));
     }
 
     // mirrored vertically
@@ -484,7 +485,8 @@ bool GraphicObject::Draw( OutputDevice* pOut, const Point& rPt, const Size& rSz,
     {
         aPt.AdjustY(aSz.Height() + 1 );
         aSz.setHeight( -aSz.Height() );
-        aAttr.SetMirrorFlags( aAttr.GetMirrorFlags() ^ BmpMirrorFlags::Vertical );
+        BmpMirrorFlags eFlags = BmpMirrorFlags(aAttr.GetMirrorFlags()) ^ BmpMirrorFlags::Vertical;
+        aAttr.SetMirrorFlags(basegfx::MirrorDirectionFlags(eFlags));
     }
 
     if( bCropped )
diff --git a/vcl/source/graphic/grfattr.cxx b/vcl/source/graphic/grfattr.cxx
index 35acaf50b841..36e8605b77de 100644
--- a/vcl/source/graphic/grfattr.cxx
+++ b/vcl/source/graphic/grfattr.cxx
@@ -21,7 +21,7 @@
 
 GraphicAttr::GraphicAttr() :
     mfGamma         ( 1.0 ),
-    mnMirrFlags     ( BmpMirrorFlags::NONE ),
+    mnMirrFlags     ( basegfx::MirrorDirectionFlags::NONE ),
     mnLeftCrop      ( 0 ),
     mnTopCrop       ( 0 ),
     mnRightCrop     ( 0 ),
commit 344f245f96508b946deccacf6b4a56ca173bedd7
Author:     Tomaž Vajngerl <tomaz.vajngerl at collabora.co.uk>
AuthorDate: Mon May 25 21:58:01 2020 +0200
Commit:     Tomaž Vajngerl <tomaz.vajngerl at collabora.co.uk>
CommitDate: Mon May 25 21:58:01 2020 +0200

    vcl: move GraphicAttr into its own header file
    
    Change-Id: I8a730414e712a1484ffcca427ed4b1599d223f8c

diff --git a/include/vcl/GraphicAttributes.hxx b/include/vcl/GraphicAttributes.hxx
new file mode 100644
index 000000000000..0908a8f56b9d
--- /dev/null
+++ b/include/vcl/GraphicAttributes.hxx
@@ -0,0 +1,121 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ *   Licensed to the Apache Software Foundation (ASF) under one or more
+ *   contributor license agreements. See the NOTICE file distributed
+ *   with this work for additional information regarding copyright
+ *   ownership. The ASF licenses this file to you under the Apache
+ *   License, Version 2.0 (the "License"); you may not use this file
+ *   except in compliance with the License. You may obtain a copy of
+ *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#pragma once
+
+#include <memory>
+#include <vcl/dllapi.h>
+#include <o3tl/typed_flags_set.hxx>
+#include <vcl/bitmap.hxx>
+
+enum class GraphicDrawMode
+{
+    Standard = 0,
+    Greys = 1,
+    Mono = 2,
+    Watermark = 3
+};
+
+class VCL_DLLPUBLIC GraphicAttr
+{
+private:
+    double mfGamma;
+    BmpMirrorFlags mnMirrFlags;
+    long mnLeftCrop;
+    long mnTopCrop;
+    long mnRightCrop;
+    long mnBottomCrop;
+    sal_uInt16 mnRotate10;
+    short mnContPercent;
+    short mnLumPercent;
+    short mnRPercent;
+    short mnGPercent;
+    short mnBPercent;
+    bool mbInvert;
+    sal_uInt8 mcTransparency;
+    GraphicDrawMode meDrawMode;
+
+public:
+    GraphicAttr();
+
+    bool operator==(const GraphicAttr& rAttr) const;
+    bool operator!=(const GraphicAttr& rAttr) const { return !(*this == rAttr); }
+
+    void SetDrawMode(GraphicDrawMode eDrawMode) { meDrawMode = eDrawMode; }
+    GraphicDrawMode GetDrawMode() const { return meDrawMode; }
+
+    void SetMirrorFlags(BmpMirrorFlags nMirrFlags) { mnMirrFlags = nMirrFlags; }
+    BmpMirrorFlags GetMirrorFlags() const { return mnMirrFlags; }
+
+    void SetCrop(long nLeft_100TH_MM, long nTop_100TH_MM, long nRight_100TH_MM,
+                 long nBottom_100TH_MM)
+    {
+        mnLeftCrop = nLeft_100TH_MM;
+        mnTopCrop = nTop_100TH_MM;
+        mnRightCrop = nRight_100TH_MM;
+        mnBottomCrop = nBottom_100TH_MM;
+    }
+    long GetLeftCrop() const { return mnLeftCrop; }
+    long GetTopCrop() const { return mnTopCrop; }
+    long GetRightCrop() const { return mnRightCrop; }
+    long GetBottomCrop() const { return mnBottomCrop; }
+
+    void SetRotation(sal_uInt16 nRotate10) { mnRotate10 = nRotate10; }
+    sal_uInt16 GetRotation() const { return mnRotate10; }
+
+    void SetLuminance(short nLuminancePercent) { mnLumPercent = nLuminancePercent; }
+    short GetLuminance() const { return mnLumPercent; }
+
+    void SetContrast(short nContrastPercent) { mnContPercent = nContrastPercent; }
+    short GetContrast() const { return mnContPercent; }
+
+    void SetChannelR(short nChannelRPercent) { mnRPercent = nChannelRPercent; }
+    short GetChannelR() const { return mnRPercent; }
+
+    void SetChannelG(short nChannelGPercent) { mnGPercent = nChannelGPercent; }
+    short GetChannelG() const { return mnGPercent; }
+
+    void SetChannelB(short nChannelBPercent) { mnBPercent = nChannelBPercent; }
+    short GetChannelB() const { return mnBPercent; }
+
+    void SetGamma(double fGamma) { mfGamma = fGamma; }
+    double GetGamma() const { return mfGamma; }
+
+    void SetInvert(bool bInvert) { mbInvert = bInvert; }
+    bool IsInvert() const { return mbInvert; }
+
+    void SetTransparency(sal_uInt8 cTransparency) { mcTransparency = cTransparency; }
+    sal_uInt8 GetTransparency() const { return mcTransparency; }
+
+    bool IsSpecialDrawMode() const { return (meDrawMode != GraphicDrawMode::Standard); }
+    bool IsMirrored() const { return mnMirrFlags != BmpMirrorFlags::NONE; }
+    bool IsCropped() const
+    {
+        return (mnLeftCrop != 0 || mnTopCrop != 0 || mnRightCrop != 0 || mnBottomCrop != 0);
+    }
+    bool IsRotated() const { return ((mnRotate10 % 3600) != 0); }
+    bool IsTransparent() const { return (mcTransparency > 0); }
+    bool IsAdjusted() const
+    {
+        return (mnLumPercent != 0 || mnContPercent != 0 || mnRPercent != 0 || mnGPercent != 0
+                || mnBPercent != 0 || mfGamma != 1.0 || mbInvert);
+    }
+};
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/include/vcl/GraphicObject.hxx b/include/vcl/GraphicObject.hxx
index 92c01274a453..16735aac4b1f 100644
--- a/include/vcl/GraphicObject.hxx
+++ b/include/vcl/GraphicObject.hxx
@@ -24,6 +24,8 @@
 #include <vcl/dllapi.h>
 #include <o3tl/typed_flags_set.hxx>
 
+#include <vcl/GraphicAttributes.hxx>
+
 namespace com::sun::star::graphic { class XGraphic; }
 
 // Adjustment defines
@@ -42,104 +44,10 @@ namespace o3tl
     template<> struct typed_flags<GraphicAdjustmentFlags> : is_typed_flags<GraphicAdjustmentFlags, 0x1f> {};
 }
 
-enum class GraphicDrawMode
-{
-    Standard = 0,
-    Greys = 1,
-    Mono = 2,
-    Watermark = 3
-};
-
 class VirtualDevice;
 struct GrfSimpleCacheObj;
 struct ImplTileInfo;
 
-class VCL_DLLPUBLIC GraphicAttr
-{
-private:
-
-    double          mfGamma;
-    BmpMirrorFlags  mnMirrFlags;
-    long            mnLeftCrop;
-    long            mnTopCrop;
-    long            mnRightCrop;
-    long            mnBottomCrop;
-    sal_uInt16      mnRotate10;
-    short           mnContPercent;
-    short           mnLumPercent;
-    short           mnRPercent;
-    short           mnGPercent;
-    short           mnBPercent;
-    bool            mbInvert;
-    sal_uInt8       mcTransparency;
-    GraphicDrawMode meDrawMode;
-
-public:
-
-                    GraphicAttr();
-
-    bool            operator==( const GraphicAttr& rAttr ) const;
-    bool            operator!=( const GraphicAttr& rAttr ) const { return !( *this == rAttr ); }
-
-    void            SetDrawMode( GraphicDrawMode eDrawMode ) { meDrawMode = eDrawMode; }
-    GraphicDrawMode GetDrawMode() const { return meDrawMode; }
-
-    void            SetMirrorFlags( BmpMirrorFlags nMirrFlags ) { mnMirrFlags = nMirrFlags; }
-    BmpMirrorFlags  GetMirrorFlags() const { return mnMirrFlags; }
-
-    void            SetCrop( long nLeft_100TH_MM, long nTop_100TH_MM, long nRight_100TH_MM, long nBottom_100TH_MM )
-                    {
-                        mnLeftCrop = nLeft_100TH_MM; mnTopCrop = nTop_100TH_MM;
-                        mnRightCrop = nRight_100TH_MM; mnBottomCrop = nBottom_100TH_MM;
-                    }
-    long            GetLeftCrop() const { return mnLeftCrop; }
-    long            GetTopCrop() const { return mnTopCrop; }
-    long            GetRightCrop() const { return mnRightCrop; }
-    long            GetBottomCrop() const { return mnBottomCrop; }
-
-    void            SetRotation( sal_uInt16 nRotate10 ) { mnRotate10 = nRotate10; }
-    sal_uInt16      GetRotation() const { return mnRotate10; }
-
-    void            SetLuminance( short nLuminancePercent ) { mnLumPercent = nLuminancePercent; }
-    short           GetLuminance() const { return mnLumPercent; }
-
-    void            SetContrast( short nContrastPercent ) { mnContPercent = nContrastPercent; }
-    short           GetContrast() const { return mnContPercent; }
-
-    void            SetChannelR( short nChannelRPercent ) { mnRPercent = nChannelRPercent; }
-    short           GetChannelR() const { return mnRPercent; }
-
-    void            SetChannelG( short nChannelGPercent ) { mnGPercent = nChannelGPercent; }
-    short           GetChannelG() const { return mnGPercent; }
-
-    void            SetChannelB( short nChannelBPercent ) { mnBPercent = nChannelBPercent; }
-    short           GetChannelB() const { return mnBPercent; }
-
-    void            SetGamma( double fGamma ) { mfGamma = fGamma; }
-    double          GetGamma() const { return mfGamma; }
-
-    void            SetInvert( bool bInvert ) { mbInvert = bInvert; }
-    bool            IsInvert() const { return mbInvert; }
-
-    void            SetTransparency( sal_uInt8 cTransparency ) { mcTransparency = cTransparency; }
-    sal_uInt8       GetTransparency() const { return mcTransparency; }
-
-    bool            IsSpecialDrawMode() const { return( meDrawMode != GraphicDrawMode::Standard ); }
-    bool            IsMirrored() const { return mnMirrFlags != BmpMirrorFlags::NONE; }
-    bool            IsCropped() const
-                    {
-                        return( mnLeftCrop != 0 || mnTopCrop != 0 ||
-                                mnRightCrop != 0 || mnBottomCrop != 0 );
-                    }
-    bool            IsRotated() const { return( ( mnRotate10 % 3600 ) != 0 ); }
-    bool            IsTransparent() const { return( mcTransparency > 0 ); }
-    bool            IsAdjusted() const
-                    {
-                        return( mnLumPercent != 0 || mnContPercent != 0 || mnRPercent != 0 ||
-                                mnGPercent != 0 || mnBPercent != 0 || mfGamma != 1.0 || mbInvert );
-                    }
-};
-
 class VCL_DLLPUBLIC GraphicObject
 {
     friend class SdrGrafObj;
diff --git a/vcl/source/graphic/grfattr.cxx b/vcl/source/graphic/grfattr.cxx
index 88d0852afe60..35acaf50b841 100644
--- a/vcl/source/graphic/grfattr.cxx
+++ b/vcl/source/graphic/grfattr.cxx
@@ -17,9 +17,7 @@
  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
  */
 
-
-#include <vcl/GraphicObject.hxx>
-
+#include <vcl/GraphicAttributes.hxx>
 
 GraphicAttr::GraphicAttr() :
     mfGamma         ( 1.0 ),


More information about the Libreoffice-commits mailing list