[Libreoffice-commits] core.git: 2 commits - basic/source cui/source dbaccess/source desktop/source drawinglayer/source editeng/source filter/source include/oox include/svtools include/svx include/vcl sd/source sfx2/source svtools/source svx/source sw/source toolkit/source vcl/inc vcl/source

Michael Stahl mstahl at redhat.com
Thu Nov 13 16:14:30 PST 2014


 basic/source/runtime/methods1.cxx                       |    1 
 cui/source/tabpages/grfpage.cxx                         |    1 
 dbaccess/source/ui/inc/JoinController.hxx               |    1 
 desktop/source/lib/init.cxx                             |    1 
 drawinglayer/source/primitive2d/metafileprimitive2d.cxx |    1 
 editeng/source/editeng/impedit.hxx                      |    1 
 filter/source/graphicfilter/eos2met/eos2met.cxx         |    1 
 filter/source/graphicfilter/epict/epict.cxx             |    1 
 filter/source/graphicfilter/eps/eps.cxx                 |    1 
 filter/source/graphicfilter/ios2met/ios2met.cxx         |    1 
 filter/source/graphicfilter/ipict/ipict.cxx             |    1 
 filter/source/graphicfilter/ipsd/ipsd.cxx               |    1 
 filter/source/graphicfilter/itiff/itiff.cxx             |    1 
 include/oox/export/shapes.hxx                           |    1 
 include/svtools/ruler.hxx                               |    1 
 include/svx/sdr/overlay/overlaymanager.hxx              |    1 
 include/svx/svdetc.hxx                                  |    1 
 include/svx/svdmodel.hxx                                |    1 
 include/vcl/gfxlink.hxx                                 |    1 
 include/vcl/mapmod.hxx                                  |   54 +++-------------
 sd/source/filter/eppt/epptbase.hxx                      |    1 
 sd/source/ui/inc/animobjs.hxx                           |    1 
 sd/source/ui/inc/copydlg.hxx                            |    1 
 sd/source/ui/slidesorter/view/SlsLayeredDevice.cxx      |    1 
 sfx2/source/doc/objembed.cxx                            |    1 
 svtools/source/brwbox/brwbox1.cxx                       |    1 
 svtools/source/brwbox/brwbox2.cxx                       |    1 
 svtools/source/brwbox/datwin.cxx                        |    1 
 svtools/source/control/ctrltool.cxx                     |    1 
 svtools/source/filter/DocumentToGraphicRenderer.cxx     |    2 
 svtools/source/filter/exportdialog.cxx                  |    1 
 svtools/source/graphic/grfmgr.cxx                       |    1 
 svtools/source/graphic/provider.cxx                     |    1 
 svtools/source/misc/imap.cxx                            |    1 
 svx/source/dialog/pagectrl.cxx                          |    1 
 svx/source/fmcomp/gridctrl.cxx                          |    1 
 svx/source/sdr/overlay/overlaymanagerbuffered.cxx       |    1 
 svx/source/sdr/properties/itemsettools.cxx              |    1 
 svx/source/sidebar/possize/PosSizePropertyPanel.hxx     |    1 
 svx/source/svdraw/svdfmtf.hxx                           |    1 
 sw/source/core/docnode/ndnotxt.cxx                      |    1 
 sw/source/core/graphic/ndgrf.cxx                        |    1 
 sw/source/core/layout/anchoreddrawobject.cxx            |    1 
 sw/source/core/view/pagepreviewlayout.cxx               |    1 
 sw/source/core/view/viewpg.cxx                          |    1 
 sw/source/filter/html/htmlflywriter.cxx                 |    1 
 sw/source/uibase/frmdlg/colex.cxx                       |    1 
 sw/source/uibase/inc/pview.hxx                          |    1 
 toolkit/source/awt/vclxtoolkit.cxx                      |    1 
 toolkit/source/awt/vclxwindow.cxx                       |    1 
 vcl/inc/window.h                                        |    1 
 vcl/source/filter/graphicfilter.cxx                     |    1 
 vcl/source/filter/graphicfilter2.cxx                    |    1 
 vcl/source/filter/jpeg/JpegReader.cxx                   |    1 
 vcl/source/filter/sgfbram.cxx                           |    1 
 vcl/source/filter/sgvmain.cxx                           |    1 
 vcl/source/filter/sgvtext.cxx                           |    1 
 vcl/source/filter/wmf/emfwr.cxx                         |    1 
 vcl/source/filter/wmf/winmtf.cxx                        |    1 
 vcl/source/filter/wmf/winwmf.cxx                        |    1 
 vcl/source/filter/wmf/wmfwr.cxx                         |    1 
 vcl/source/gdi/cvtsvm.cxx                               |    1 
 vcl/source/gdi/dibtools.cxx                             |    1 
 vcl/source/gdi/gdimtf.cxx                               |    1 
 vcl/source/gdi/impgraph.cxx                             |    1 
 vcl/source/gdi/mapmod.cxx                               |   53 +++++++++++++--
 vcl/source/gdi/pdfwriter_impl.cxx                       |    1 
 vcl/source/gdi/pdfwriter_impl2.cxx                      |    2 
 vcl/source/gdi/textlayout.cxx                           |    1 
 vcl/source/outdev/map.cxx                               |   11 +--
 70 files changed, 132 insertions(+), 55 deletions(-)

New commits:
commit f9a161f89a00f2f706ec85b66ab994d1dbea89df
Author: Michael Stahl <mstahl at redhat.com>
Date:   Fri Nov 14 00:39:57 2014 +0100

    vcl: remove more unnecessary headers from mapmod.hxx
    
    Change-Id: I9ce4c11cc9e7e703fbaad76a062ad38bb900ed9a

diff --git a/include/svx/sdr/overlay/overlaymanager.hxx b/include/svx/sdr/overlay/overlaymanager.hxx
index 5d84de2..c0a03c4 100644
--- a/include/svx/sdr/overlay/overlaymanager.hxx
+++ b/include/svx/sdr/overlay/overlaymanager.hxx
@@ -26,6 +26,7 @@
 #include <svx/sdr/overlay/overlayobject.hxx>
 #include <vcl/mapmod.hxx>
 #include <tools/color.hxx>
+#include <tools/gen.hxx>
 #include <svx/svxdllapi.h>
 #include <svtools/optionsdrawinglayer.hxx>
 #include <basegfx/matrix/b2dhommatrix.hxx>
diff --git a/include/vcl/gfxlink.hxx b/include/vcl/gfxlink.hxx
index c092f0b..4d326d9 100644
--- a/include/vcl/gfxlink.hxx
+++ b/include/vcl/gfxlink.hxx
@@ -22,6 +22,7 @@
 
 #include <rtl/ustring.hxx>
 #include <tools/stream.hxx>
+#include <tools/gen.hxx>
 #include <tools/solar.h>
 #include <vcl/dllapi.h>
 #include <vcl/mapmod.hxx>
diff --git a/include/vcl/mapmod.hxx b/include/vcl/mapmod.hxx
index 7ec4ca5..266e38f 100644
--- a/include/vcl/mapmod.hxx
+++ b/include/vcl/mapmod.hxx
@@ -20,12 +20,10 @@
 #ifndef INCLUDED_VCL_MAPMOD_HXX
 #define INCLUDED_VCL_MAPMOD_HXX
 
-#include <tools/gen.hxx>
-#include <tools/solar.h>
 #include <vcl/dllapi.h>
-#include <tools/resid.hxx>
 #include <tools/mapunit.hxx>
 
+class Point;
 class Fraction;
 class SvStream;
 class OutputDevice;
diff --git a/vcl/source/gdi/mapmod.cxx b/vcl/source/gdi/mapmod.cxx
index 62852d3..d12b094 100644
--- a/vcl/source/gdi/mapmod.cxx
+++ b/vcl/source/gdi/mapmod.cxx
@@ -19,6 +19,7 @@
 
 #include <vcl/mapmod.hxx>
 
+#include <tools/gen.hxx>
 #include <tools/fract.hxx>
 #include <tools/stream.hxx>
 #include <tools/vcompat.hxx>
commit e8159871046448df4fba45d03e4b0efddf50859e
Author: Michael Stahl <mstahl at redhat.com>
Date:   Thu Nov 13 21:47:20 2014 +0100

    vcl: move the Impl class of MapMode ...uhm... out of the public header?
    
    And remove the tools/fract.hxx include.
    
    grep -l -r fract.hxx workdir/Dep/*Object* |wc -l
    before: 4569
    after:  1851
    
    Shrinks some libraries, example from --enable-dbgutil Fedora gcc 4.8.3:
    libvcllo.so by 473k (0.35%)
    libswlo.so by ~1Mb (sadly that is just 0.2%)
    
    Change-Id: I09bd025d551a5d2c5528b938a68c6aa5f8f114a0

diff --git a/basic/source/runtime/methods1.cxx b/basic/source/runtime/methods1.cxx
index 94ee18b..3877ca6 100644
--- a/basic/source/runtime/methods1.cxx
+++ b/basic/source/runtime/methods1.cxx
@@ -34,6 +34,7 @@
 #include <basic/sbx.hxx>
 #include <svl/zforlist.hxx>
 #include <tools/urlobj.hxx>
+#include <tools/fract.hxx>
 #include <osl/file.hxx>
 #include <vcl/jobset.hxx>
 #include "sbobjmod.hxx"
diff --git a/cui/source/tabpages/grfpage.cxx b/cui/source/tabpages/grfpage.cxx
index c1318d5..c9ced2c 100644
--- a/cui/source/tabpages/grfpage.cxx
+++ b/cui/source/tabpages/grfpage.cxx
@@ -30,6 +30,7 @@
 #include <svx/grfcrop.hxx>
 #include <rtl/ustring.hxx>
 #include <cuires.hrc>
+#include <tools/fract.hxx>
 #include <svx/dialogs.hrc>
 #include <vcl/builder.hxx>
 #include <vcl/settings.hxx>
diff --git a/dbaccess/source/ui/inc/JoinController.hxx b/dbaccess/source/ui/inc/JoinController.hxx
index d4faccf..bfbfc560 100644
--- a/dbaccess/source/ui/inc/JoinController.hxx
+++ b/dbaccess/source/ui/inc/JoinController.hxx
@@ -26,6 +26,7 @@
 #include "JoinDesignView.hxx"
 #include "TableConnectionData.hxx"
 #include "TableWindowData.hxx"
+#include <tools/fract.hxx>
 #include <memory>
 
 namespace comphelper
diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx
index 62ab3ec..fcef5b0 100644
--- a/desktop/source/lib/init.cxx
+++ b/desktop/source/lib/init.cxx
@@ -39,6 +39,7 @@
 
 #include <vcl/svapp.hxx>
 #include <tools/resmgr.hxx>
+#include <tools/fract.hxx>
 #include <vcl/graphicfilter.hxx>
 #include <vcl/sysdata.hxx>
 #include <vcl/virdev.hxx>
diff --git a/drawinglayer/source/primitive2d/metafileprimitive2d.cxx b/drawinglayer/source/primitive2d/metafileprimitive2d.cxx
index 0ec21fd..96ff8bd 100644
--- a/drawinglayer/source/primitive2d/metafileprimitive2d.cxx
+++ b/drawinglayer/source/primitive2d/metafileprimitive2d.cxx
@@ -52,6 +52,7 @@
 #include <drawinglayer/primitive2d/textlineprimitive2d.hxx>
 #include <drawinglayer/primitive2d/textstrikeoutprimitive2d.hxx>
 #include <drawinglayer/primitive2d/epsprimitive2d.hxx>
+#include <tools/fract.hxx>
 #include <numeric>
 
 
diff --git a/editeng/source/editeng/impedit.hxx b/editeng/source/editeng/impedit.hxx
index 9c44b36..c6e41d4 100644
--- a/editeng/source/editeng/impedit.hxx
+++ b/editeng/source/editeng/impedit.hxx
@@ -32,6 +32,7 @@
 #include <vcl/virdev.hxx>
 #include <vcl/gdimtf.hxx>
 #include <vcl/cursor.hxx>
+#include <tools/fract.hxx>
 
 #include <vcl/dndhelp.hxx>
 #include <svl/ondemand.hxx>
diff --git a/filter/source/graphicfilter/eos2met/eos2met.cxx b/filter/source/graphicfilter/eos2met/eos2met.cxx
index aa64100..8975fda 100644
--- a/filter/source/graphicfilter/eos2met/eos2met.cxx
+++ b/filter/source/graphicfilter/eos2met/eos2met.cxx
@@ -25,6 +25,7 @@
 #include <vcl/metaact.hxx>
 #include <vcl/salbtype.hxx>
 #include <tools/poly.hxx>
+#include <tools/fract.hxx>
 #include <vcl/graph.hxx>
 #include <vcl/gradient.hxx>
 #include <vcl/hatch.hxx>
diff --git a/filter/source/graphicfilter/epict/epict.cxx b/filter/source/graphicfilter/epict/epict.cxx
index 993e1d3..463f1d9 100644
--- a/filter/source/graphicfilter/epict/epict.cxx
+++ b/filter/source/graphicfilter/epict/epict.cxx
@@ -34,6 +34,7 @@
 #include <vcl/msgbox.hxx>
 #include <vcl/gdimtf.hxx>
 #include <tools/bigint.hxx>
+#include <tools/fract.hxx>
 #include <o3tl/numeric.hxx>
 #include <basegfx/polygon/b2dpolygon.hxx>
 #include <basegfx/polygon/b2dpolypolygon.hxx>
diff --git a/filter/source/graphicfilter/eps/eps.cxx b/filter/source/graphicfilter/eps/eps.cxx
index 19465a6..2b4a82e 100644
--- a/filter/source/graphicfilter/eps/eps.cxx
+++ b/filter/source/graphicfilter/eps/eps.cxx
@@ -20,6 +20,7 @@
 #include <tools/solar.h>
 #include <tools/stream.hxx>
 #include <tools/poly.hxx>
+#include <tools/fract.hxx>
 #include <vcl/svapp.hxx>
 #include <vcl/metaact.hxx>
 #include <vcl/graph.hxx>
diff --git a/filter/source/graphicfilter/ios2met/ios2met.cxx b/filter/source/graphicfilter/ios2met/ios2met.cxx
index 2116ac1..5f1d17f 100644
--- a/filter/source/graphicfilter/ios2met/ios2met.cxx
+++ b/filter/source/graphicfilter/ios2met/ios2met.cxx
@@ -19,6 +19,7 @@
 
 #include <osl/thread.h>
 #include <tools/poly.hxx>
+#include <tools/fract.hxx>
 #include <vcl/graph.hxx>
 #include <vcl/dibtools.hxx>
 #include <vcl/virdev.hxx>
diff --git a/filter/source/graphicfilter/ipict/ipict.cxx b/filter/source/graphicfilter/ipict/ipict.cxx
index b6e2d77..dec3fc6 100644
--- a/filter/source/graphicfilter/ipict/ipict.cxx
+++ b/filter/source/graphicfilter/ipict/ipict.cxx
@@ -22,6 +22,7 @@
 #include <vcl/bmpacc.hxx>
 #include <vcl/graph.hxx>
 #include <tools/poly.hxx>
+#include <tools/fract.hxx>
 #include <vcl/virdev.hxx>
 #include <math.h>
 
diff --git a/filter/source/graphicfilter/ipsd/ipsd.cxx b/filter/source/graphicfilter/ipsd/ipsd.cxx
index 451a4bf..95b9e93 100644
--- a/filter/source/graphicfilter/ipsd/ipsd.cxx
+++ b/filter/source/graphicfilter/ipsd/ipsd.cxx
@@ -21,6 +21,7 @@
 #include <vcl/graph.hxx>
 #include <vcl/bmpacc.hxx>
 #include <vcl/outdev.hxx>
+#include <tools/fract.hxx>
 #include <boost/scoped_array.hpp>
 
 class FilterConfigItem;
diff --git a/filter/source/graphicfilter/itiff/itiff.cxx b/filter/source/graphicfilter/itiff/itiff.cxx
index 4606271..719f51d 100644
--- a/filter/source/graphicfilter/itiff/itiff.cxx
+++ b/filter/source/graphicfilter/itiff/itiff.cxx
@@ -23,6 +23,7 @@
 #include <vcl/graph.hxx>
 #include <vcl/bmpacc.hxx>
 #include <vcl/animate.hxx>
+#include <tools/fract.hxx>
 #include "lzwdecom.hxx"
 #include "ccidecom.hxx"
 
diff --git a/include/oox/export/shapes.hxx b/include/oox/export/shapes.hxx
index 995ef35..f0dcdcc 100644
--- a/include/oox/export/shapes.hxx
+++ b/include/oox/export/shapes.hxx
@@ -25,6 +25,7 @@
 #include <oox/export/drawingml.hxx>
 #include <sax/fshelper.hxx>
 #include <vcl/mapmod.hxx>
+#include <tools/fract.hxx>
 #include <boost/unordered_map.hpp>
 
 namespace com { namespace sun { namespace star {
diff --git a/include/svtools/ruler.hxx b/include/svtools/ruler.hxx
index 49d4e42..10a2bd0 100644
--- a/include/svtools/ruler.hxx
+++ b/include/svtools/ruler.hxx
@@ -22,6 +22,7 @@
 
 #include <svtools/svtdllapi.h>
 #include <tools/link.hxx>
+#include <tools/fract.hxx>
 #include <vcl/window.hxx>
 #include <vcl/virdev.hxx>
 #include <vcl/field.hxx>
diff --git a/include/svx/svdetc.hxx b/include/svx/svdetc.hxx
index c3e4510..df6778f 100644
--- a/include/svx/svdetc.hxx
+++ b/include/svx/svdetc.hxx
@@ -24,6 +24,7 @@
 #include <editeng/outliner.hxx>
 #include <svx/svxdllapi.h>
 #include <tools/shl.hxx>
+#include <tools/fract.hxx>
 #include <vcl/outdev.hxx>
 
 
diff --git a/include/svx/svdmodel.hxx b/include/svx/svdmodel.hxx
index f51b6b5..3e4b31e 100644
--- a/include/svx/svdmodel.hxx
+++ b/include/svx/svdmodel.hxx
@@ -30,6 +30,7 @@
 #include <vcl/mapmod.hxx>
 #include <svl/SfxBroadcaster.hxx>
 #include <tools/datetime.hxx>
+#include <tools/fract.hxx>
 #include <svl/hint.hxx>
 
 #include <svl/style.hxx>
diff --git a/include/vcl/mapmod.hxx b/include/vcl/mapmod.hxx
index 10e06d2..7ec4ca5 100644
--- a/include/vcl/mapmod.hxx
+++ b/include/vcl/mapmod.hxx
@@ -21,41 +21,14 @@
 #define INCLUDED_VCL_MAPMOD_HXX
 
 #include <tools/gen.hxx>
-#include <tools/fract.hxx>
 #include <tools/solar.h>
 #include <vcl/dllapi.h>
 #include <tools/resid.hxx>
 #include <tools/mapunit.hxx>
 
+class Fraction;
 class SvStream;
-
-
-// - ImplMapMode -
-
-
-class   OutputDevice;
-
-class ImplMapMode
-{
-    friend class    MapMode;
-    friend class    OutputDevice;
-
-private:
-    sal_uLong           mnRefCount;
-    MapUnit         meUnit;
-    Point           maOrigin;
-    Fraction        maScaleX;
-    Fraction        maScaleY;
-    bool            mbSimple;
-
-    friend SvStream& ReadImplMapMode( SvStream& rIStm, ImplMapMode& rMapMode );
-    friend SvStream& WriteImplMapMode( SvStream& rOStm, const ImplMapMode& rMapMode );
-
-    static ImplMapMode* ImplGetStaticMapMode( MapUnit eUnit );
-public:
-                    ImplMapMode();
-                    ImplMapMode( const ImplMapMode& rImpMapMode );
-};
+class OutputDevice;
 
 
 // - MapMode -
@@ -65,10 +38,14 @@ class VCL_DLLPUBLIC MapMode
 {
     friend class        OutputDevice;
 
+public:
+    struct ImplMapMode;
+
 private:
     ImplMapMode*        mpImplMapMode;
 
     SAL_DLLPRIVATE void ImplMakeUnique();
+    SAL_DLLPRIVATE bool IsSimple() const;
 
 public:
                     MapMode();
@@ -79,27 +56,22 @@ public:
                     ~MapMode();
 
     void            SetMapUnit( MapUnit eUnit );
-    MapUnit         GetMapUnit() const
-                        { return mpImplMapMode->meUnit; }
+    MapUnit         GetMapUnit() const;
 
     void            SetOrigin( const Point& rOrigin );
-    const Point&    GetOrigin() const
-                        { return mpImplMapMode->maOrigin; }
+    const Point&    GetOrigin() const;
 
     void            SetScaleX( const Fraction& rScaleX );
-    const Fraction& GetScaleX() const
-                        { return mpImplMapMode->maScaleX; }
+    const Fraction& GetScaleX() const;
     void            SetScaleY( const Fraction& rScaleY );
-    const Fraction& GetScaleY() const
-                        { return mpImplMapMode->maScaleY; }
+    const Fraction& GetScaleY() const;
 
     MapMode&        operator=( const MapMode& rMapMode );
     bool            operator==( const MapMode& rMapMode ) const;
     bool            operator!=( const MapMode& rMapMode ) const
                         { return !(MapMode::operator==( rMapMode )); }
     bool            IsDefault() const;
-    bool            IsSameInstance( const MapMode& rMapMode ) const
-                        { return (mpImplMapMode == rMapMode.mpImplMapMode); }
+    bool            IsSameInstance( const MapMode& rMapMode ) const;
 
     friend VCL_DLLPUBLIC SvStream& ReadMapMode( SvStream& rIStm, MapMode& rMapMode );
     friend VCL_DLLPUBLIC SvStream& WriteMapMode( SvStream& rOStm, const MapMode& rMapMode );
diff --git a/sd/source/filter/eppt/epptbase.hxx b/sd/source/filter/eppt/epptbase.hxx
index 0141621..4b552a5 100644
--- a/sd/source/filter/eppt/epptbase.hxx
+++ b/sd/source/filter/eppt/epptbase.hxx
@@ -25,6 +25,7 @@
 
 #include <vcl/mapmod.hxx>
 #include <tools/stream.hxx>
+#include <tools/fract.hxx>
 #include <tools/gen.hxx>
 #include <com/sun/star/beans/XPropertySet.hpp>
 #include <com/sun/star/drawing/XDrawPagesSupplier.hpp>
diff --git a/sd/source/ui/inc/animobjs.hxx b/sd/source/ui/inc/animobjs.hxx
index 9e720ad..c4fe3bf 100644
--- a/sd/source/ui/inc/animobjs.hxx
+++ b/sd/source/ui/inc/animobjs.hxx
@@ -23,6 +23,7 @@
 #include <sfx2/dockwin.hxx>
 #include <vcl/fixed.hxx>
 #include <svtools/stdctrl.hxx>
+#include <tools/fract.hxx>
 #include <vcl/group.hxx>
 #include <sfx2/ctrlitem.hxx>
 
diff --git a/sd/source/ui/inc/copydlg.hxx b/sd/source/ui/inc/copydlg.hxx
index 7994e0c..7a9d696 100644
--- a/sd/source/ui/inc/copydlg.hxx
+++ b/sd/source/ui/inc/copydlg.hxx
@@ -26,6 +26,7 @@
 #include <vcl/field.hxx>
 #include <vcl/fixed.hxx>
 #include <sfx2/basedlgs.hxx>
+#include <tools/fract.hxx>
 
 namespace sd {
 
diff --git a/sd/source/ui/slidesorter/view/SlsLayeredDevice.cxx b/sd/source/ui/slidesorter/view/SlsLayeredDevice.cxx
index 7e0e20b..0916912 100644
--- a/sd/source/ui/slidesorter/view/SlsLayeredDevice.cxx
+++ b/sd/source/ui/slidesorter/view/SlsLayeredDevice.cxx
@@ -26,6 +26,7 @@
 #include <boost/function.hpp>
 
 #include <tools/gen.hxx>
+#include <tools/fract.hxx>
 
 namespace sd { namespace slidesorter { namespace view {
 
diff --git a/sfx2/source/doc/objembed.cxx b/sfx2/source/doc/objembed.cxx
index 1ce7b67..3daaa45 100644
--- a/sfx2/source/doc/objembed.cxx
+++ b/sfx2/source/doc/objembed.cxx
@@ -34,6 +34,7 @@
 #include <comphelper/processfactory.hxx>
 #include <comphelper/storagehelper.hxx>
 #include <svtools/embedtransfer.hxx>
+#include <tools/fract.hxx>
 #include <vcl/outdev.hxx>
 #include <vcl/gdimtf.hxx>
 
diff --git a/svtools/source/brwbox/brwbox1.cxx b/svtools/source/brwbox/brwbox1.cxx
index fbb1047..657d29c 100644
--- a/svtools/source/brwbox/brwbox1.cxx
+++ b/svtools/source/brwbox/brwbox1.cxx
@@ -23,6 +23,7 @@
 #include "datwin.hxx"
 #include <tools/debug.hxx>
 #include <tools/stream.hxx>
+#include <tools/fract.hxx>
 
 #include <functional>
 #include <algorithm>
diff --git a/svtools/source/brwbox/brwbox2.cxx b/svtools/source/brwbox/brwbox2.cxx
index 7e7e7ea..b64b7c4 100644
--- a/svtools/source/brwbox/brwbox2.cxx
+++ b/svtools/source/brwbox/brwbox2.cxx
@@ -25,6 +25,7 @@
 #include <vcl/settings.hxx>
 
 #include <tools/multisel.hxx>
+#include <tools/fract.hxx>
 #include <algorithm>
 
 using namespace ::com::sun::star::datatransfer;
diff --git a/svtools/source/brwbox/datwin.cxx b/svtools/source/brwbox/datwin.cxx
index 027eb03..e4412fb 100644
--- a/svtools/source/brwbox/datwin.cxx
+++ b/svtools/source/brwbox/datwin.cxx
@@ -26,6 +26,7 @@
 #include <vcl/settings.hxx>
 #include <rtl/string.hxx>
 #include <tools/debug.hxx>
+#include <tools/fract.hxx>
 
 
 void ButtonFrame::Draw( OutputDevice& rDev )
diff --git a/svtools/source/control/ctrltool.cxx b/svtools/source/control/ctrltool.cxx
index 4308379..0c6f790 100644
--- a/svtools/source/control/ctrltool.cxx
+++ b/svtools/source/control/ctrltool.cxx
@@ -21,6 +21,7 @@
 
 #include <comphelper/string.hxx>
 #include <tools/debug.hxx>
+#include <tools/fract.hxx>
 #include <i18nlangtag/mslangid.hxx>
 #include <vcl/window.hxx>
 #include <vcl/svapp.hxx>
diff --git a/svtools/source/filter/DocumentToGraphicRenderer.cxx b/svtools/source/filter/DocumentToGraphicRenderer.cxx
index 42bc0b2..6078a3a 100644
--- a/svtools/source/filter/DocumentToGraphicRenderer.cxx
+++ b/svtools/source/filter/DocumentToGraphicRenderer.cxx
@@ -23,6 +23,8 @@
 #include <vcl/svapp.hxx>
 #include <vcl/outdev.hxx>
 
+#include <tools/fract.hxx>
+
 #include <com/sun/star/awt/XDevice.hpp>
 #include <com/sun/star/text/XPageCursor.hpp>
 #include <com/sun/star/text/XTextViewCursorSupplier.hpp>
diff --git a/svtools/source/filter/exportdialog.cxx b/svtools/source/filter/exportdialog.cxx
index 78ee438..1728614 100644
--- a/svtools/source/filter/exportdialog.cxx
+++ b/svtools/source/filter/exportdialog.cxx
@@ -23,6 +23,7 @@
 #endif
 
 #include <tools/stream.hxx>
+#include <tools/fract.hxx>
 #include <vcl/graphicfilter.hxx>
 #include <vcl/FilterConfigItem.hxx>
 #include <svtools/svtools.hrc>
diff --git a/svtools/source/graphic/grfmgr.cxx b/svtools/source/graphic/grfmgr.cxx
index f8dbc4e..f7c6ec6 100644
--- a/svtools/source/graphic/grfmgr.cxx
+++ b/svtools/source/graphic/grfmgr.cxx
@@ -23,6 +23,7 @@
 
 #include <officecfg/Office/Common.hxx>
 #include <tools/vcompat.hxx>
+#include <tools/fract.hxx>
 #include <tools/helpers.hxx>
 #include <unotools/ucbstreamhelper.hxx>
 #include <unotools/localfilehelper.hxx>
diff --git a/svtools/source/graphic/provider.cxx b/svtools/source/graphic/provider.cxx
index c8f3537..25735e8 100644
--- a/svtools/source/graphic/provider.cxx
+++ b/svtools/source/graphic/provider.cxx
@@ -26,6 +26,7 @@
 #include <tools/rcid.h>
 #include <tools/resid.hxx>
 #include <tools/resmgr.hxx>
+#include <tools/fract.hxx>
 #include <unotools/ucbstreamhelper.hxx>
 #include <vcl/graphicfilter.hxx>
 #include <vcl/wmf.hxx>
diff --git a/svtools/source/misc/imap.cxx b/svtools/source/misc/imap.cxx
index 344372d..7be622f 100644
--- a/svtools/source/misc/imap.cxx
+++ b/svtools/source/misc/imap.cxx
@@ -19,6 +19,7 @@
 
 
 #include <tools/urlobj.hxx>
+#include <tools/fract.hxx>
 #include <vcl/svapp.hxx>
 #include <vcl/mapmod.hxx>
 #include <vcl/window.hxx>
diff --git a/svx/source/dialog/pagectrl.cxx b/svx/source/dialog/pagectrl.cxx
index fa7b9be..08a7e9c 100644
--- a/svx/source/dialog/pagectrl.cxx
+++ b/svx/source/dialog/pagectrl.cxx
@@ -20,6 +20,7 @@
 #include <vcl/bitmap.hxx>
 #include <vcl/builder.hxx>
 #include <vcl/settings.hxx>
+#include <tools/fract.hxx>
 #include <editeng/frmdiritem.hxx>
 #include <svx/pageitem.hxx>
 #include <svx/pagectrl.hxx>
diff --git a/svx/source/fmcomp/gridctrl.cxx b/svx/source/fmcomp/gridctrl.cxx
index f42ef31..ddd4680 100644
--- a/svx/source/fmcomp/gridctrl.cxx
+++ b/svx/source/fmcomp/gridctrl.cxx
@@ -44,6 +44,7 @@
 #include <comphelper/processfactory.hxx>
 #include <tools/resid.hxx>
 #include <tools/diagnose_ex.h>
+#include <tools/fract.hxx>
 #include <vcl/menu.hxx>
 #include <vcl/settings.hxx>
 
diff --git a/svx/source/sdr/overlay/overlaymanagerbuffered.cxx b/svx/source/sdr/overlay/overlaymanagerbuffered.cxx
index dde69b3..da55e63 100644
--- a/svx/source/sdr/overlay/overlaymanagerbuffered.cxx
+++ b/svx/source/sdr/overlay/overlaymanagerbuffered.cxx
@@ -25,6 +25,7 @@
 #include <vcl/window.hxx>
 #include <vcl/bitmap.hxx>
 #include <tools/stream.hxx>
+#include <tools/fract.hxx>
 #include <basegfx/matrix/b2dhommatrix.hxx>
 #include <vcl/cursor.hxx>
 #include <vcl/dibtools.hxx>
diff --git a/svx/source/sdr/properties/itemsettools.cxx b/svx/source/sdr/properties/itemsettools.cxx
index 191d3e7..c044c32 100644
--- a/svx/source/sdr/properties/itemsettools.cxx
+++ b/svx/source/sdr/properties/itemsettools.cxx
@@ -19,6 +19,7 @@
 
 #include <sdr/properties/itemsettools.hxx>
 #include <tools/debug.hxx>
+#include <tools/fract.hxx>
 #include <svl/itemset.hxx>
 #include <svl/whiter.hxx>
 #include <svx/svdogrp.hxx>
diff --git a/svx/source/sidebar/possize/PosSizePropertyPanel.hxx b/svx/source/sidebar/possize/PosSizePropertyPanel.hxx
index 9a3685c..e9880c4 100644
--- a/svx/source/sidebar/possize/PosSizePropertyPanel.hxx
+++ b/svx/source/sidebar/possize/PosSizePropertyPanel.hxx
@@ -28,6 +28,7 @@
 #include <svx/sidebar/PanelLayout.hxx>
 #include <svl/poolitem.hxx>
 #include <tools/fldunit.hxx>
+#include <tools/fract.hxx>
 #include <com/sun/star/ui/XSidebar.hpp>
 
 class DialControl;
diff --git a/svx/source/svdraw/svdfmtf.hxx b/svx/source/svdraw/svdfmtf.hxx
index 16e2ddd..8663296 100644
--- a/svx/source/svdraw/svdfmtf.hxx
+++ b/svx/source/svdraw/svdfmtf.hxx
@@ -21,6 +21,7 @@
 #define INCLUDED_SVX_SOURCE_SVDRAW_SVDFMTF_HXX
 
 #include <tools/contnr.hxx>
+#include <tools/fract.hxx>
 #include <vcl/metaact.hxx>
 #include <vcl/virdev.hxx>
 #include <svx/svdobj.hxx>
diff --git a/sw/source/core/docnode/ndnotxt.cxx b/sw/source/core/docnode/ndnotxt.cxx
index dfb38b1..32fe1c8 100644
--- a/sw/source/core/docnode/ndnotxt.cxx
+++ b/sw/source/core/docnode/ndnotxt.cxx
@@ -19,6 +19,7 @@
 
 #include <hintids.hxx>
 #include <tools/poly.hxx>
+#include <tools/fract.hxx>
 #include <svl/stritem.hxx>
 #include <svx/contdlg.hxx>
 #include <vcl/svapp.hxx>
diff --git a/sw/source/core/graphic/ndgrf.cxx b/sw/source/core/graphic/ndgrf.cxx
index 47c2740..f9cbb9c 100644
--- a/sw/source/core/graphic/ndgrf.cxx
+++ b/sw/source/core/graphic/ndgrf.cxx
@@ -21,6 +21,7 @@
 #include <mdiexp.hxx>
 #include <tools/helpers.hxx>
 #include <tools/urlobj.hxx>
+#include <tools/fract.hxx>
 #include <svl/undo.hxx>
 #include <svl/fstathelper.hxx>
 #include <svtools/imap.hxx>
diff --git a/sw/source/core/layout/anchoreddrawobject.cxx b/sw/source/core/layout/anchoreddrawobject.cxx
index 628ed13..60b958f 100644
--- a/sw/source/core/layout/anchoreddrawobject.cxx
+++ b/sw/source/core/layout/anchoreddrawobject.cxx
@@ -27,6 +27,7 @@
 #include <txtfrm.hxx>
 #include <vector>
 #include <svx/svdogrp.hxx>
+#include <tools/fract.hxx>
 #include <DocumentSettingManager.hxx>
 #include <IDocumentState.hxx>
 #include <txtfly.hxx>
diff --git a/sw/source/core/view/pagepreviewlayout.cxx b/sw/source/core/view/pagepreviewlayout.cxx
index 3e8004a..26ea7c0 100644
--- a/sw/source/core/view/pagepreviewlayout.cxx
+++ b/sw/source/core/view/pagepreviewlayout.cxx
@@ -23,6 +23,7 @@
 #include <prevwpage.hxx>
 
 #include <algorithm>
+#include <tools/fract.hxx>
 #include <vcl/window.hxx>
 #include <vcl/settings.hxx>
 
diff --git a/sw/source/core/view/viewpg.cxx b/sw/source/core/view/viewpg.cxx
index 601c710..7382d68 100644
--- a/sw/source/core/view/viewpg.cxx
+++ b/sw/source/core/view/viewpg.cxx
@@ -20,6 +20,7 @@
 #include <com/sun/star/uno/Sequence.hxx>
 
 #include <hintids.hxx>
+#include <tools/fract.hxx>
 #include <vcl/window.hxx>
 #include <vcl/oldprintadaptor.hxx>
 #include <sfx2/printer.hxx>
diff --git a/sw/source/filter/html/htmlflywriter.cxx b/sw/source/filter/html/htmlflywriter.cxx
index 6a0d313..65b5fad 100644
--- a/sw/source/filter/html/htmlflywriter.cxx
+++ b/sw/source/filter/html/htmlflywriter.cxx
@@ -23,6 +23,7 @@
 #include <comphelper/string.hxx>
 #include <svx/svxids.hrc>
 #include "hintids.hxx"
+#include <tools/fract.hxx>
 #include <svl/urihelper.hxx>
 #include <vcl/svapp.hxx>
 #include <vcl/wrkwin.hxx>
diff --git a/sw/source/uibase/frmdlg/colex.cxx b/sw/source/uibase/frmdlg/colex.cxx
index 7732db8..f5e5b05 100644
--- a/sw/source/uibase/frmdlg/colex.cxx
+++ b/sw/source/uibase/frmdlg/colex.cxx
@@ -21,6 +21,7 @@
 #include "hintids.hxx"
 #include <algorithm>
 #include <svl/eitem.hxx>
+#include <tools/fract.hxx>
 #include <editeng/lrspitem.hxx>
 #include <editeng/ulspitem.hxx>
 #include <editeng/sizeitem.hxx>
diff --git a/sw/source/uibase/inc/pview.hxx b/sw/source/uibase/inc/pview.hxx
index 162ef37..548e390 100644
--- a/sw/source/uibase/inc/pview.hxx
+++ b/sw/source/uibase/inc/pview.hxx
@@ -20,6 +20,7 @@
 #define INCLUDED_SW_SOURCE_UIBASE_INC_PVIEW_HXX
 
 #include <tools/link.hxx>
+#include <tools/fract.hxx>
 #include <vcl/window.hxx>
 #include <sfx2/viewfrm.hxx>
 #include <sfx2/viewfac.hxx>
diff --git a/toolkit/source/awt/vclxtoolkit.cxx b/toolkit/source/awt/vclxtoolkit.cxx
index 932ac88..680fc0c 100644
--- a/toolkit/source/awt/vclxtoolkit.cxx
+++ b/toolkit/source/awt/vclxtoolkit.cxx
@@ -55,6 +55,7 @@
 #include <rtl/uuid.h>
 #include <rtl/process.h>
 #include <tools/link.hxx>
+#include <tools/fract.hxx>
 #include <tools/wintypes.hxx>
 
 #ifdef MACOSX
diff --git a/toolkit/source/awt/vclxwindow.cxx b/toolkit/source/awt/vclxwindow.cxx
index 8bdec54..6940762 100644
--- a/toolkit/source/awt/vclxwindow.cxx
+++ b/toolkit/source/awt/vclxwindow.cxx
@@ -47,6 +47,7 @@
 #include <vcl/svapp.hxx>
 #include <vcl/window.hxx>
 #include <tools/color.hxx>
+#include <tools/fract.hxx>
 #include <vcl/dockwin.hxx>
 #include <vcl/pdfextoutdevdata.hxx>
 #include <vcl/tabpage.hxx>
diff --git a/vcl/inc/window.h b/vcl/inc/window.h
index 431b512..fe1c9fb 100644
--- a/vcl/inc/window.h
+++ b/vcl/inc/window.h
@@ -27,6 +27,7 @@
 #include <cppuhelper/weakref.hxx>
 #include <list>
 #include <tools/wintypes.hxx>
+#include <tools/fract.hxx>
 #include <vcl/cursor.hxx>
 #include <vcl/inputctx.hxx>
 #include <vcl/outdev.hxx>
diff --git a/vcl/source/filter/graphicfilter.cxx b/vcl/source/filter/graphicfilter.cxx
index 8552488..b47e674 100644
--- a/vcl/source/filter/graphicfilter.cxx
+++ b/vcl/source/filter/graphicfilter.cxx
@@ -26,6 +26,7 @@
 #include <cppuhelper/implbase1.hxx>
 #include <tools/urlobj.hxx>
 #include <tools/zcodec.hxx>
+#include <tools/fract.hxx>
 #include <vcl/dibtools.hxx>
 #include <vcl/salctype.hxx>
 #include <vcl/pngread.hxx>
diff --git a/vcl/source/filter/graphicfilter2.cxx b/vcl/source/filter/graphicfilter2.cxx
index a2bf39b..138b4fc 100644
--- a/vcl/source/filter/graphicfilter2.cxx
+++ b/vcl/source/filter/graphicfilter2.cxx
@@ -20,6 +20,7 @@
 #include <string.h>
 #include <stdio.h>
 #include <tools/stream.hxx>
+#include <tools/fract.hxx>
 #include <vcl/outdev.hxx>
 #include <vcl/graphicfilter.hxx>
 #include <unotools/ucbstreamhelper.hxx>
diff --git a/vcl/source/filter/jpeg/JpegReader.cxx b/vcl/source/filter/jpeg/JpegReader.cxx
index 08fdf1d..1d400a5 100644
--- a/vcl/source/filter/jpeg/JpegReader.cxx
+++ b/vcl/source/filter/jpeg/JpegReader.cxx
@@ -28,6 +28,7 @@
 #include <vcl/bmpacc.hxx>
 #include <vcl/FilterConfigItem.hxx>
 #include <vcl/graphicfilter.hxx>
+#include <tools/fract.hxx>
 #include <boost/scoped_array.hpp>
 
 #define JPEG_MIN_READ 512
diff --git a/vcl/source/filter/sgfbram.cxx b/vcl/source/filter/sgfbram.cxx
index 733b9c0..8a05999 100644
--- a/vcl/source/filter/sgfbram.cxx
+++ b/vcl/source/filter/sgfbram.cxx
@@ -20,6 +20,7 @@
 #include <string.h>
 #include <osl/endian.h>
 #include <tools/stream.hxx>
+#include <tools/fract.hxx>
 #include <vcl/gdimtf.hxx>
 #include <tools/color.hxx>
 #include <vcl/virdev.hxx>
diff --git a/vcl/source/filter/sgvmain.cxx b/vcl/source/filter/sgvmain.cxx
index f7b2432..18c51f3 100644
--- a/vcl/source/filter/sgvmain.cxx
+++ b/vcl/source/filter/sgvmain.cxx
@@ -21,6 +21,7 @@
 #include <osl/endian.h>
 #include <vcl/graph.hxx>
 #include <tools/poly.hxx>
+#include <tools/fract.hxx>
 #include <vcl/graphicfilter.hxx>
 #include "sgffilt.hxx"
 #include "sgfbram.hxx"
diff --git a/vcl/source/filter/sgvtext.cxx b/vcl/source/filter/sgvtext.cxx
index 5c6c543..234be20 100644
--- a/vcl/source/filter/sgvtext.cxx
+++ b/vcl/source/filter/sgvtext.cxx
@@ -24,6 +24,7 @@
 #include <rtl/math.h>
 #include <comphelper/string.hxx>
 #include <tools/config.hxx>
+#include <tools/fract.hxx>
 #include <vcl/graphicfilter.hxx>
 #include "sgffilt.hxx"
 #include "sgfbram.hxx"
diff --git a/vcl/source/filter/wmf/emfwr.cxx b/vcl/source/filter/wmf/emfwr.cxx
index b9c34fca7..d0c3588 100644
--- a/vcl/source/filter/wmf/emfwr.cxx
+++ b/vcl/source/filter/wmf/emfwr.cxx
@@ -24,6 +24,7 @@
 #include "emfwr.hxx"
 #include <rtl/strbuf.hxx>
 #include <tools/helpers.hxx>
+#include <tools/fract.hxx>
 #include <basegfx/polygon/b2dpolygon.hxx>
 #include <basegfx/polygon/b2dpolypolygon.hxx>
 #include <vcl/lineinfo.hxx>
diff --git a/vcl/source/filter/wmf/winmtf.cxx b/vcl/source/filter/wmf/winmtf.cxx
index 03596c4..e15f2e0 100644
--- a/vcl/source/filter/wmf/winmtf.cxx
+++ b/vcl/source/filter/wmf/winmtf.cxx
@@ -25,6 +25,7 @@
 #include <vcl/canvastools.hxx>
 #include <vcl/metric.hxx>
 #include <vcl/svapp.hxx>
+#include <tools/fract.hxx>
 #include <rtl/strbuf.hxx>
 #include <rtl/tencinfo.h>
 #include <vcl/virdev.hxx>
diff --git a/vcl/source/filter/wmf/winwmf.cxx b/vcl/source/filter/wmf/winwmf.cxx
index 819d9c2..b7e63d7 100644
--- a/vcl/source/filter/wmf/winwmf.cxx
+++ b/vcl/source/filter/wmf/winwmf.cxx
@@ -28,6 +28,7 @@
 #include <osl/endian.h>
 #include <vcl/svapp.hxx>
 #include <vcl/dibtools.hxx>
+#include <tools/fract.hxx>
 
 // MS Windows defines
 
diff --git a/vcl/source/filter/wmf/wmfwr.cxx b/vcl/source/filter/wmf/wmfwr.cxx
index fbfb5ca..e2b4aef 100644
--- a/vcl/source/filter/wmf/wmfwr.cxx
+++ b/vcl/source/filter/wmf/wmfwr.cxx
@@ -29,6 +29,7 @@
 #include <tools/bigint.hxx>
 #include <tools/helpers.hxx>
 #include <tools/tenccvt.hxx>
+#include <tools/fract.hxx>
 #include <osl/endian.h>
 #include <vcl/dibtools.hxx>
 #include <vcl/metric.hxx>
diff --git a/vcl/source/gdi/cvtsvm.cxx b/vcl/source/gdi/cvtsvm.cxx
index 9e56077..c8676c0 100644
--- a/vcl/source/gdi/cvtsvm.cxx
+++ b/vcl/source/gdi/cvtsvm.cxx
@@ -21,6 +21,7 @@
 #include <string.h>
 #include <osl/thread.h>
 #include <tools/debug.hxx>
+#include <tools/fract.hxx>
 #include <tools/stream.hxx>
 #include <tools/helpers.hxx>
 #include <vcl/dibtools.hxx>
diff --git a/vcl/source/gdi/dibtools.cxx b/vcl/source/gdi/dibtools.cxx
index 9750513..af6a78e 100644
--- a/vcl/source/gdi/dibtools.cxx
+++ b/vcl/source/gdi/dibtools.cxx
@@ -25,6 +25,7 @@
 #include <vcl/dibtools.hxx>
 #include <tools/zcodec.hxx>
 #include <tools/stream.hxx>
+#include <tools/fract.hxx>
 #include <vcl/bitmapex.hxx>
 #include <vcl/bmpacc.hxx>
 #include <vcl/outdev.hxx>
diff --git a/vcl/source/gdi/gdimtf.cxx b/vcl/source/gdi/gdimtf.cxx
index a767f85..cb71949 100644
--- a/vcl/source/gdi/gdimtf.cxx
+++ b/vcl/source/gdi/gdimtf.cxx
@@ -20,6 +20,7 @@
 #include <rtl/crc.h>
 #include <tools/stream.hxx>
 #include <tools/vcompat.hxx>
+#include <tools/fract.hxx>
 #include <vcl/metaact.hxx>
 #include <vcl/salbtype.hxx>
 #include <vcl/outdev.hxx>
diff --git a/vcl/source/gdi/impgraph.cxx b/vcl/source/gdi/impgraph.cxx
index 9a1b818..6d9c3ea 100644
--- a/vcl/source/gdi/impgraph.cxx
+++ b/vcl/source/gdi/impgraph.cxx
@@ -20,6 +20,7 @@
 #include "sal/config.h"
 
 #include <comphelper/processfactory.hxx>
+#include <tools/fract.hxx>
 #include <tools/vcompat.hxx>
 #include <tools/urlobj.hxx>
 #include <tools/debug.hxx>
diff --git a/vcl/source/gdi/mapmod.cxx b/vcl/source/gdi/mapmod.cxx
index 992898e..62852d3 100644
--- a/vcl/source/gdi/mapmod.cxx
+++ b/vcl/source/gdi/mapmod.cxx
@@ -17,12 +17,35 @@
  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
  */
 
+#include <vcl/mapmod.hxx>
+
+#include <tools/fract.hxx>
 #include <tools/stream.hxx>
 #include <tools/vcompat.hxx>
 #include <tools/debug.hxx>
-#include <vcl/mapmod.hxx>
 
-ImplMapMode::ImplMapMode() :
+
+// - ImplMapMode -
+
+struct MapMode::ImplMapMode
+{
+    sal_uLong       mnRefCount;
+    MapUnit         meUnit;
+    Point           maOrigin;
+    Fraction        maScaleX;
+    Fraction        maScaleY;
+    bool            mbSimple;
+
+    friend SvStream& ReadImplMapMode(SvStream& rIStm, ImplMapMode& rMapMode);
+    friend SvStream& WriteImplMapMode(SvStream& rOStm, const ImplMapMode& rMapMode);
+
+    static ImplMapMode* ImplGetStaticMapMode( MapUnit eUnit );
+
+    ImplMapMode();
+    ImplMapMode(const ImplMapMode& rImpMapMode);
+};
+
+MapMode::ImplMapMode::ImplMapMode() :
     maOrigin( 0, 0 ),
     maScaleX( 1, 1 ),
     maScaleY( 1, 1 )
@@ -32,7 +55,7 @@ ImplMapMode::ImplMapMode() :
     mbSimple    = false;
 }
 
-ImplMapMode::ImplMapMode( const ImplMapMode& rImplMapMode ) :
+MapMode::ImplMapMode::ImplMapMode( const ImplMapMode& rImplMapMode ) :
     maOrigin( rImplMapMode.maOrigin ),
     maScaleX( rImplMapMode.maScaleX ),
     maScaleY( rImplMapMode.maScaleY )
@@ -42,7 +65,7 @@ ImplMapMode::ImplMapMode( const ImplMapMode& rImplMapMode ) :
     mbSimple        = false;
 }
 
-SvStream& ReadImplMapMode( SvStream& rIStm, ImplMapMode& rImplMapMode )
+SvStream& ReadImplMapMode(SvStream& rIStm, MapMode::ImplMapMode& rImplMapMode)
 {
     VersionCompat   aCompat( rIStm, STREAM_READ );
     sal_uInt16          nTmp16;
@@ -56,7 +79,7 @@ SvStream& ReadImplMapMode( SvStream& rIStm, ImplMapMode& rImplMapMode )
     return rIStm;
 }
 
-SvStream& WriteImplMapMode( SvStream& rOStm, const ImplMapMode& rImplMapMode )
+SvStream& WriteImplMapMode(SvStream& rOStm, const MapMode::ImplMapMode& rImplMapMode)
 {
     VersionCompat aCompat( rOStm, STREAM_WRITE, 1 );
 
@@ -69,7 +92,8 @@ SvStream& WriteImplMapMode( SvStream& rOStm, const ImplMapMode& rImplMapMode )
     return rOStm;
 }
 
-ImplMapMode* ImplMapMode::ImplGetStaticMapMode( MapUnit eUnit )
+MapMode::ImplMapMode *
+MapMode::ImplMapMode::ImplGetStaticMapMode(MapUnit eUnit)
 {
     static long aStaticImplMapModeAry[(MAP_LASTENUMDUMMY)*sizeof(ImplMapMode)/sizeof(long)];
 
@@ -243,4 +267,20 @@ SvStream& WriteMapMode( SvStream& rOStm, const MapMode& rMapMode )
     return WriteImplMapMode( rOStm, *rMapMode.mpImplMapMode );
 }
 
+
+MapUnit MapMode::GetMapUnit() const { return mpImplMapMode->meUnit; }
+
+const Point& MapMode::GetOrigin() const { return mpImplMapMode->maOrigin; }
+
+const Fraction& MapMode::GetScaleX() const { return mpImplMapMode->maScaleX; }
+
+const Fraction& MapMode::GetScaleY() const { return mpImplMapMode->maScaleY; }
+
+bool MapMode::IsSameInstance( const MapMode& rMapMode ) const
+{
+    return (mpImplMapMode == rMapMode.mpImplMapMode);
+}
+
+bool MapMode::IsSimple() const { return mpImplMapMode->mbSimple; }
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/source/gdi/pdfwriter_impl.cxx b/vcl/source/gdi/pdfwriter_impl.cxx
index 5f6246b..7e49bc2 100644
--- a/vcl/source/gdi/pdfwriter_impl.cxx
+++ b/vcl/source/gdi/pdfwriter_impl.cxx
@@ -44,6 +44,7 @@
 #include <rtl/digest.h>
 #include <rtl/ustrbuf.hxx>
 #include <tools/debug.hxx>
+#include <tools/fract.hxx>
 #include <tools/stream.hxx>
 #include <tools/urlobj.hxx>
 #include <tools/zcodec.hxx>
diff --git a/vcl/source/gdi/pdfwriter_impl2.cxx b/vcl/source/gdi/pdfwriter_impl2.cxx
index bcab2c4..02bfad3 100644
--- a/vcl/source/gdi/pdfwriter_impl2.cxx
+++ b/vcl/source/gdi/pdfwriter_impl2.cxx
@@ -30,6 +30,8 @@
 
 #include "unotools/streamwrap.hxx"
 
+#include <tools/fract.hxx>
+
 #include "comphelper/processfactory.hxx"
 
 #include "com/sun/star/beans/PropertyValue.hpp"
diff --git a/vcl/source/gdi/textlayout.cxx b/vcl/source/gdi/textlayout.cxx
index 59e3668..f6a0545 100644
--- a/vcl/source/gdi/textlayout.cxx
+++ b/vcl/source/gdi/textlayout.cxx
@@ -26,6 +26,7 @@
 #include <com/sun/star/i18n/ScriptDirection.hpp>
 
 #include <tools/diagnose_ex.h>
+#include <tools/fract.hxx>
 
 #if OSL_DEBUG_LEVEL > 1
 #include <rtl/strbuf.hxx>
diff --git a/vcl/source/outdev/map.cxx b/vcl/source/outdev/map.cxx
index b9bd532..b8bc6c5 100644
--- a/vcl/source/outdev/map.cxx
+++ b/vcl/source/outdev/map.cxx
@@ -1890,8 +1890,7 @@ Point OutputDevice::LogicToLogic( const Point& rPtSource,
     MapUnit eUnitDest   = rMapModeDest.GetMapUnit();
     verifyUnitSourceDest( eUnitSource, eUnitDest );
 
-    if ( rMapModeSource.mpImplMapMode->mbSimple &&
-         rMapModeDest.mpImplMapMode->mbSimple )
+    if (rMapModeSource.IsSimple() && rMapModeDest.IsSimple())
     {
         ENTER3( eUnitSource, eUnitDest );
 
@@ -1924,8 +1923,7 @@ Size OutputDevice::LogicToLogic( const Size& rSzSource,
     MapUnit eUnitDest   = rMapModeDest.GetMapUnit();
     verifyUnitSourceDest( eUnitSource, eUnitDest );
 
-    if ( rMapModeSource.mpImplMapMode->mbSimple &&
-         rMapModeDest.mpImplMapMode->mbSimple )
+    if (rMapModeSource.IsSimple() && rMapModeDest.IsSimple())
     {
         ENTER3( eUnitSource, eUnitDest );
 
@@ -1990,7 +1988,7 @@ basegfx::B2DHomMatrix OutputDevice::LogicToLogic(const MapMode& rMapModeSource,
     MapUnit eUnitDest   = rMapModeDest.GetMapUnit();
     verifyUnitSourceDest(eUnitSource, eUnitDest);
 
-    if(rMapModeSource.mpImplMapMode->mbSimple && rMapModeDest.mpImplMapMode->mbSimple)
+    if (rMapModeSource.IsSimple() && rMapModeDest.IsSimple())
     {
         ENTER3(eUnitSource, eUnitDest);
 
@@ -2027,8 +2025,7 @@ Rectangle OutputDevice::LogicToLogic( const Rectangle& rRectSource,
     MapUnit eUnitDest   = rMapModeDest.GetMapUnit();
     verifyUnitSourceDest( eUnitSource, eUnitDest );
 
-    if ( rMapModeSource.mpImplMapMode->mbSimple &&
-         rMapModeDest.mpImplMapMode->mbSimple )
+    if (rMapModeSource.IsSimple() && rMapModeDest.IsSimple())
     {
         ENTER3( eUnitSource, eUnitDest );
 


More information about the Libreoffice-commits mailing list