[Libreoffice-commits] core.git: solenv/clang-format svgio/inc

Tomaž Vajngerl (via logerrit) logerrit at kemper.freedesktop.org
Sat May 1 07:29:00 UTC 2021


 solenv/clang-format/excludelist |    1 
 svgio/inc/SvgNumber.hxx         |  115 ++++++++++++++++++++++++++++++++++++++++
 svgio/inc/svgtools.hxx          |   91 +------------------------------
 3 files changed, 119 insertions(+), 88 deletions(-)

New commits:
commit fd50995350e613796794593cd216b7432fed98b6
Author:     Tomaž Vajngerl <tomaz.vajngerl at collabora.co.uk>
AuthorDate: Sat May 1 10:17:29 2021 +0900
Commit:     Tomaž Vajngerl <quikee at gmail.com>
CommitDate: Sat May 1 09:28:18 2021 +0200

    svgio: move SvgNumber to its own header file
    
    Change-Id: I3f65b73cf0dd21e9818fa3596664662e1aa52c8d
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114954
    Tested-by: Jenkins
    Reviewed-by: Tomaž Vajngerl <quikee at gmail.com>

diff --git a/solenv/clang-format/excludelist b/solenv/clang-format/excludelist
index 927c1ceb781a..22dae8673ad7 100644
--- a/solenv/clang-format/excludelist
+++ b/solenv/clang-format/excludelist
@@ -11107,6 +11107,7 @@ svgio/inc/svglinenode.hxx
 svgio/inc/svgmarkernode.hxx
 svgio/inc/svgmasknode.hxx
 svgio/inc/svgnode.hxx
+svgio/inc/SvgNumber.hxx
 svgio/inc/svgpaint.hxx
 svgio/inc/svgpathnode.hxx
 svgio/inc/svgpatternnode.hxx
diff --git a/svgio/inc/SvgNumber.hxx b/svgio/inc/SvgNumber.hxx
new file mode 100644
index 000000000000..a4942719a2f4
--- /dev/null
+++ b/svgio/inc/SvgNumber.hxx
@@ -0,0 +1,115 @@
+/* -*- 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 <basegfx/range/b2drange.hxx>
+#include <vector>
+
+namespace svgio::svgreader
+{
+
+// recommended value for this device dependent unit, see CSS2 section 4.3.2 Lengths
+constexpr const double F_SVG_PIXEL_PER_INCH = 96.0;
+
+enum class NumberType
+{
+    xcoordinate,
+    ycoordinate,
+    length
+};
+
+class InfoProvider
+{
+public:
+    virtual ~InfoProvider() {}
+    virtual basegfx::B2DRange getCurrentViewPort() const = 0;
+    /// return font size of node inherited from parents
+    virtual double getCurrentFontSizeInherited() const = 0;
+    /// return xheight of node inherited from parents
+    virtual double getCurrentXHeightInherited() const = 0;
+};
+
+enum class SvgUnit
+{
+    em = 0,    // relative to current font size
+    ex,        // relative to current x-height
+
+    px,        // 'user unit'
+    pt,        // points, 1.25 px
+    pc,        // 15.0 px
+    cm,        // 35.43307 px
+    mm,        // 3.543307 px
+    in,        // 90 px
+
+    percent,   // relative to range
+    none       // for stroke-miterlimit, which has no unit
+};
+
+class SvgNumber
+{
+private:
+    double      mfNumber;
+    SvgUnit     meUnit;
+
+    bool        mbSet : 1;
+
+public:
+    SvgNumber()
+    :   mfNumber(0.0),
+        meUnit(SvgUnit::px),
+        mbSet(false)
+    {
+    }
+
+    SvgNumber(double fNum, SvgUnit aSvgUnit = SvgUnit::px, bool bSet = true)
+    :   mfNumber(fNum),
+        meUnit(aSvgUnit),
+        mbSet(bSet)
+    {
+    }
+
+    double getNumber() const
+    {
+        return mfNumber;
+    }
+
+    SvgUnit getUnit() const
+    {
+        return meUnit;
+    }
+
+    bool isSet() const
+    {
+        return mbSet;
+    }
+
+    bool isPositive() const;
+
+    // Only usable in cases, when the unit is not SvgUnit::percent, otherwise use method solve
+    double solveNonPercentage(const InfoProvider& rInfoProvider) const;
+
+    double solve(const InfoProvider& rInfoProvider, NumberType aNumberType = NumberType::length) const;
+};
+
+typedef std::vector<SvgNumber> SvgNumberVector;
+
+} // end of namespace svgio::svgreader
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svgio/inc/svgtools.hxx b/svgio/inc/svgtools.hxx
index c4a88d89d05f..9c2068b57184 100644
--- a/svgio/inc/svgtools.hxx
+++ b/svgio/inc/svgtools.hxx
@@ -20,21 +20,20 @@
 #ifndef INCLUDED_SVGIO_INC_SVGTOOLS_HXX
 #define INCLUDED_SVGIO_INC_SVGTOOLS_HXX
 
+
 #include <basegfx/color/bcolor.hxx>
 #include <basegfx/range/b2drange.hxx>
 #include <basegfx/vector/b2ivector.hxx>
 #include <rtl/ustrbuf.hxx>
 #include "svgpaint.hxx"
+#include "SvgNumber.hxx"
 
 #include <string_view>
 #include <vector>
 
+
 namespace svgio::svgreader
     {
-
-// recommended value for this device dependent unit, see CSS2 section 4.3.2 Lengths
-#define F_SVG_PIXEL_PER_INCH  96.0
-
         // common non-token strings
         struct commonStrings
         {
@@ -50,90 +49,6 @@ namespace svgio::svgreader
             objectBoundingBox
         };
 
-        enum class NumberType
-        {
-            xcoordinate,
-            ycoordinate,
-            length
-        };
-
-        class InfoProvider
-        {
-        public:
-            virtual ~InfoProvider() {}
-            virtual basegfx::B2DRange getCurrentViewPort() const = 0;
-            /// return font size of node inherited from parents
-            virtual double getCurrentFontSizeInherited() const = 0;
-            /// return xheight of node inherited from parents
-            virtual double getCurrentXHeightInherited() const = 0;
-        };
-
-        enum class SvgUnit
-        {
-            em = 0,    // relative to current font size
-            ex,        // relative to current x-height
-
-            px,        // 'user unit'
-            pt,        // points, 1.25 px
-            pc,        // 15.0 px
-            cm,        // 35.43307 px
-            mm,        // 3.543307 px
-            in,        // 90 px
-
-            percent,   // relative to range
-            none       // for stroke-miterlimit, which has no unit
-        };
-
-        class SvgNumber
-        {
-        private:
-            double      mfNumber;
-            SvgUnit     meUnit;
-
-            bool        mbSet : 1;
-
-        public:
-            SvgNumber()
-            :   mfNumber(0.0),
-                meUnit(SvgUnit::px),
-                mbSet(false)
-            {
-            }
-
-            SvgNumber(double fNum, SvgUnit aSvgUnit = SvgUnit::px, bool bSet = true)
-            :   mfNumber(fNum),
-                meUnit(aSvgUnit),
-                mbSet(bSet)
-            {
-            }
-
-            double getNumber() const
-            {
-                return mfNumber;
-            }
-
-            SvgUnit getUnit() const
-            {
-                return meUnit;
-            }
-
-            bool isSet() const
-            {
-                return mbSet;
-            }
-
-            bool isPositive() const;
-
-            // Only usable in cases, when the unit is not SvgUnit::percent, otherwise use method solve
-            double solveNonPercentage(const InfoProvider& rInfoProvider) const;
-
-            double solve(const InfoProvider& rInfoProvider, NumberType aNumberType = NumberType::length) const;
-
-
-        };
-
-        typedef ::std::vector< SvgNumber > SvgNumberVector;
-
         enum class SvgAlign
         {
             none,


More information about the Libreoffice-commits mailing list