[Libreoffice-commits] core.git: include/svx svx/inc svx/source

Kohei Yoshida kohei.yoshida at collabora.com
Tue Nov 4 10:03:41 PST 2014


 include/svx/sdr/contact/viewcontact.hxx            |  249 ++++------
 svx/inc/sdr/contact/viewcontactofsdrole2obj.hxx    |   91 +--
 svx/source/sdr/contact/viewcontact.cxx             |  498 ++++++++++-----------
 svx/source/sdr/contact/viewcontactofsdrole2obj.cxx |  321 ++++++-------
 4 files changed, 566 insertions(+), 593 deletions(-)

New commits:
commit 50228d22a62ecfbc974130f2ff3f7c4e03a9a033
Author: Kohei Yoshida <kohei.yoshida at collabora.com>
Date:   Tue Nov 4 12:57:56 2014 -0500

    Unindent.
    
    Change-Id: Ib274ec26768e8a3bd1006601679404799fed986a

diff --git a/include/svx/sdr/contact/viewcontact.hxx b/include/svx/sdr/contact/viewcontact.hxx
index 8cdf1ce..dae75a5 100644
--- a/include/svx/sdr/contact/viewcontact.hxx
+++ b/include/svx/sdr/contact/viewcontact.hxx
@@ -24,144 +24,131 @@
 #include <svx/svxdllapi.h>
 #include <drawinglayer/primitive2d/baseprimitive2d.hxx>
 
-
-// predeclarations
-
 class SetOfByte;
 class SdrPage;
 class SdrObject;
 
-namespace sdr
-{
-    namespace contact
-    {
-        class ObjectContact;
-        class ViewObjectContact;
-    } // end of namespace contact
-} // end of namespace sdr
-
+namespace sdr { namespace contact {
 
+class ObjectContact;
+class ViewObjectContact;
 
-namespace sdr
+class SVX_DLLPUBLIC ViewContact
 {
-    namespace contact
-    {
-        class SVX_DLLPUBLIC ViewContact
-        {
-        private:
-            // make ViewObjectContact a friend to exclusively allow it to use
-            // AddViewObjectContact/RemoveViewObjectContact
-            friend class ViewObjectContact;
-
-            // List of ViewObjectContacts. This contains all VOCs which were constructed
-            // with this VC. Since the VOCs remember a reference to this VC, this list needs
-            // to be kept and is used e.g. at destructor to destroy all VOCs.
-            // Registering and de-registering is done in the VOC constructors/destructors.
-            std::vector< ViewObjectContact* >               maViewObjectContactVector;
-
-            // Primitive2DSequence of the ViewContact. This contains all necessary information
-            // for the graphical visualisation and needs to be supported by all VCs which
-            // can be visualized.
-            drawinglayer::primitive2d::Primitive2DSequence  mxViewIndependentPrimitive2DSequence;
-
-            // A new ViewObjectContact was created and shall be remembered.
-            void AddViewObjectContact(ViewObjectContact& rVOContact);
-
-            // A ViewObjectContact was deleted and shall be forgotten.
-            void RemoveViewObjectContact(ViewObjectContact& rVOContact);
-
-            // internal tooling to delete VOCs
-            void deleteAllVOCs();
-
-        protected:
-            // Interface to allow derivates to travel over the registered VOC's
-            sal_uInt32 getViewObjectContactCount() const { return maViewObjectContactVector.size(); }
-            ViewObjectContact* getViewObjectContact(sal_uInt32 a) const { return maViewObjectContactVector[a]; }
-
-            // Create a Object-Specific ViewObjectContact, set ViewContact and
-            // ObjectContact. Always needs to return something. Default is to create
-            // a standard ViewObjectContact containing the given ObjectContact and *this
-            virtual ViewObjectContact& CreateObjectSpecificViewObjectContact(ObjectContact& rObjectContact);
-
-            // This method is responsible for creating the graphical visualisation data derived ONLY from
-            // the model data. It will be stored/buffered in mxViewIndependentPrimitive2DSequence. The default implementation
-            // creates a yellow replacement rectangle (1000, 1000, 5000, 3000) to visualize missing
-            // implementations. All implementations have to provide basic geometry here, this is the central
-            // visualisation method and will also be used for BoundRect computations in the long run.
-            // This means it's always an error when the default implementation is called and thus gets
-            // asserted there
-            virtual drawinglayer::primitive2d::Primitive2DSequence createViewIndependentPrimitive2DSequence() const;
-
-            // method for flushing View Independent Primitive2DSequence for VOC implementations
-            void flushViewIndependentPrimitive2DSequence() { mxViewIndependentPrimitive2DSequence.realloc(0); }
-
-            // basic constructor. Since this is a base class only, it shall
-            // never be called directly
-            ViewContact();
-
-            // Methods to react on start getting viewed or stop getting
-            // viewed. This info is derived from the count of members of
-            // registered ViewObjectContacts. Default does nothing.
-            virtual void StartGettingViewed();
-            virtual void StopGettingViewed();
-
-        public:
-            // basic destructor with needed cleanups
-            virtual ~ViewContact();
-
-            // get a Object-specific ViewObjectContact for a specific
-            // ObjectContact (->View). Always needs to return something.
-            ViewObjectContact& GetViewObjectContact(ObjectContact& rObjectContact);
-
-            // Test if this ViewContact has ViewObjectContacts at all. This can
-            // be used to test if this ViewContact is visualized ATM or not
-            bool HasViewObjectContacts(bool bExcludePreviews = false) const;
-
-            // Check if this primitive is animated in any OC (View) which means it has
-            // generated a PrimitiveAnimation in it's VOC
-            bool isAnimatedInAnyViewObjectContact() const;
-
-            // Access to possible sub-hierarchy and parent. GetObjectCount() default is 0L
-            // and GetViewContact default pops up an assert since it's an error if
-            // GetObjectCount has a result != 0 and it's not overloaded.
-            virtual sal_uInt32 GetObjectCount() const;
-            virtual ViewContact& GetViewContact(sal_uInt32 nIndex) const;
-            virtual ViewContact* GetParentContact() const;
-
-            // React on insertion of a child into DRawHierarchy starting
-            // from this object
-            void ActionChildInserted(ViewContact& rChild);
-
-            // React on changes of the object of this ViewContact
-            virtual void ActionChanged();
-
-            // access to SdrObject and/or SdrPage. May return 0L like the default
-            // implementations do. Needs to be overloaded as needed.
-            virtual SdrObject* TryToGetSdrObject() const;
-            virtual SdrPage* TryToGetSdrPage() const;
-
-            // access to the local primitive. This will ensure that the primitive is
-            // current in comparing the local one with a fresh created incarnation
-            drawinglayer::primitive2d::Primitive2DSequence getViewIndependentPrimitive2DSequence() const;
-
-            // add Gluepoints (if available)
-            virtual drawinglayer::primitive2d::Primitive2DSequence createGluePointPrimitive2DSequence() const;
-
-            // allow embedding if needed (e.g. for SdrObjects, evtl. Name, Title and description get added). This
-            // is a helper normally used from getViewIndependentPrimitive2DSequence(), but there is one exception
-            // for 3D scenes
-            virtual drawinglayer::primitive2d::Primitive2DSequence embedToObjectSpecificInformation(const drawinglayer::primitive2d::Primitive2DSequence& rSource) const;
-
-            virtual basegfx::B2DRange getRange( const drawinglayer::geometry::ViewInformation2D& rViewInfo2D ) const;
-
-            // delete all existing VOCs including DrawHierarchy which will invalidate all
-            // visualisations, too. Used mostly at object removal from DrawHierarchy to
-            // delete all existing VOCs by purpose, but can also be used for other purposes.
-            // It is always possible to delete the VOCs, these are re-created on demand
-            void flushViewObjectContacts(bool bWithHierarchy = true);
-        };
-    } // end of namespace contact
-} // end of namespace sdr
+private:
+    // make ViewObjectContact a friend to exclusively allow it to use
+    // AddViewObjectContact/RemoveViewObjectContact
+    friend class ViewObjectContact;
+
+    // List of ViewObjectContacts. This contains all VOCs which were constructed
+    // with this VC. Since the VOCs remember a reference to this VC, this list needs
+    // to be kept and is used e.g. at destructor to destroy all VOCs.
+    // Registering and de-registering is done in the VOC constructors/destructors.
+    std::vector< ViewObjectContact* >               maViewObjectContactVector;
+
+    // Primitive2DSequence of the ViewContact. This contains all necessary information
+    // for the graphical visualisation and needs to be supported by all VCs which
+    // can be visualized.
+    drawinglayer::primitive2d::Primitive2DSequence  mxViewIndependentPrimitive2DSequence;
+
+    // A new ViewObjectContact was created and shall be remembered.
+    void AddViewObjectContact(ViewObjectContact& rVOContact);
+
+    // A ViewObjectContact was deleted and shall be forgotten.
+    void RemoveViewObjectContact(ViewObjectContact& rVOContact);
+
+    // internal tooling to delete VOCs
+    void deleteAllVOCs();
+
+protected:
+    // Interface to allow derivates to travel over the registered VOC's
+    sal_uInt32 getViewObjectContactCount() const { return maViewObjectContactVector.size(); }
+    ViewObjectContact* getViewObjectContact(sal_uInt32 a) const { return maViewObjectContactVector[a]; }
+
+    // Create a Object-Specific ViewObjectContact, set ViewContact and
+    // ObjectContact. Always needs to return something. Default is to create
+    // a standard ViewObjectContact containing the given ObjectContact and *this
+    virtual ViewObjectContact& CreateObjectSpecificViewObjectContact(ObjectContact& rObjectContact);
+
+    // This method is responsible for creating the graphical visualisation data derived ONLY from
+    // the model data. It will be stored/buffered in mxViewIndependentPrimitive2DSequence. The default implementation
+    // creates a yellow replacement rectangle (1000, 1000, 5000, 3000) to visualize missing
+    // implementations. All implementations have to provide basic geometry here, this is the central
+    // visualisation method and will also be used for BoundRect computations in the long run.
+    // This means it's always an error when the default implementation is called and thus gets
+    // asserted there
+    virtual drawinglayer::primitive2d::Primitive2DSequence createViewIndependentPrimitive2DSequence() const;
+
+    // method for flushing View Independent Primitive2DSequence for VOC implementations
+    void flushViewIndependentPrimitive2DSequence() { mxViewIndependentPrimitive2DSequence.realloc(0); }
+
+    // basic constructor. Since this is a base class only, it shall
+    // never be called directly
+    ViewContact();
+
+    // Methods to react on start getting viewed or stop getting
+    // viewed. This info is derived from the count of members of
+    // registered ViewObjectContacts. Default does nothing.
+    virtual void StartGettingViewed();
+    virtual void StopGettingViewed();
+
+public:
+    // basic destructor with needed cleanups
+    virtual ~ViewContact();
+
+    // get a Object-specific ViewObjectContact for a specific
+    // ObjectContact (->View). Always needs to return something.
+    ViewObjectContact& GetViewObjectContact(ObjectContact& rObjectContact);
+
+    // Test if this ViewContact has ViewObjectContacts at all. This can
+    // be used to test if this ViewContact is visualized ATM or not
+    bool HasViewObjectContacts(bool bExcludePreviews = false) const;
+
+    // Check if this primitive is animated in any OC (View) which means it has
+    // generated a PrimitiveAnimation in it's VOC
+    bool isAnimatedInAnyViewObjectContact() const;
+
+    // Access to possible sub-hierarchy and parent. GetObjectCount() default is 0L
+    // and GetViewContact default pops up an assert since it's an error if
+    // GetObjectCount has a result != 0 and it's not overloaded.
+    virtual sal_uInt32 GetObjectCount() const;
+    virtual ViewContact& GetViewContact(sal_uInt32 nIndex) const;
+    virtual ViewContact* GetParentContact() const;
+
+    // React on insertion of a child into DRawHierarchy starting
+    // from this object
+    void ActionChildInserted(ViewContact& rChild);
+
+    // React on changes of the object of this ViewContact
+    virtual void ActionChanged();
+
+    // access to SdrObject and/or SdrPage. May return 0L like the default
+    // implementations do. Needs to be overloaded as needed.
+    virtual SdrObject* TryToGetSdrObject() const;
+    virtual SdrPage* TryToGetSdrPage() const;
+
+    // access to the local primitive. This will ensure that the primitive is
+    // current in comparing the local one with a fresh created incarnation
+    drawinglayer::primitive2d::Primitive2DSequence getViewIndependentPrimitive2DSequence() const;
+
+    // add Gluepoints (if available)
+    virtual drawinglayer::primitive2d::Primitive2DSequence createGluePointPrimitive2DSequence() const;
+
+    // allow embedding if needed (e.g. for SdrObjects, evtl. Name, Title and description get added). This
+    // is a helper normally used from getViewIndependentPrimitive2DSequence(), but there is one exception
+    // for 3D scenes
+    virtual drawinglayer::primitive2d::Primitive2DSequence embedToObjectSpecificInformation(const drawinglayer::primitive2d::Primitive2DSequence& rSource) const;
+
+    virtual basegfx::B2DRange getRange( const drawinglayer::geometry::ViewInformation2D& rViewInfo2D ) const;
+
+    // delete all existing VOCs including DrawHierarchy which will invalidate all
+    // visualisations, too. Used mostly at object removal from DrawHierarchy to
+    // delete all existing VOCs by purpose, but can also be used for other purposes.
+    // It is always possible to delete the VOCs, these are re-created on demand
+    void flushViewObjectContacts(bool bWithHierarchy = true);
+};
+
+}}
 
 
 
diff --git a/svx/inc/sdr/contact/viewcontactofsdrole2obj.hxx b/svx/inc/sdr/contact/viewcontactofsdrole2obj.hxx
index 29fc2df..1e1c895 100644
--- a/svx/inc/sdr/contact/viewcontactofsdrole2obj.hxx
+++ b/svx/inc/sdr/contact/viewcontactofsdrole2obj.hxx
@@ -24,60 +24,53 @@
 #include <svx/svdoole2.hxx>
 #include <basegfx/matrix/b2dhommatrix.hxx>
 
-
-// predeclarations
-
 class Graphic;
 
+namespace sdr { namespace contact {
 
-
-namespace sdr
+class ViewContactOfSdrOle2Obj : public ViewContactOfSdrRectObj
 {
-    namespace contact
+private:
+    // #i123539# allow local buffering of chart data (if chart)
+    drawinglayer::primitive2d::Primitive2DReference mxChartContent;
+
+protected:
+    // Create a Object-Specific ViewObjectContact, set ViewContact and
+    // ObjectContact. Always needs to return something.
+    virtual ViewObjectContact& CreateObjectSpecificViewObjectContact(ObjectContact& rObjectContact) SAL_OVERRIDE;
+
+public:
+    // access to SdrOle2Obj
+    const SdrOle2Obj& GetOle2Obj() const
     {
-        class ViewContactOfSdrOle2Obj : public ViewContactOfSdrRectObj
-        {
-        private:
-            // #i123539# allow local buffering of chart data (if chart)
-            drawinglayer::primitive2d::Primitive2DReference mxChartContent;
-
-        protected:
-            // Create a Object-Specific ViewObjectContact, set ViewContact and
-            // ObjectContact. Always needs to return something.
-            virtual ViewObjectContact& CreateObjectSpecificViewObjectContact(ObjectContact& rObjectContact) SAL_OVERRIDE;
-
-        public:
-            // access to SdrOle2Obj
-            const SdrOle2Obj& GetOle2Obj() const
-            {
-                return static_cast<const SdrOle2Obj&>(GetSdrObject());
-            }
-
-            /// helper to create transformation from SdrObject
-            basegfx::B2DHomMatrix createObjectTransform() const;
-
-            // basic constructor, used from SdrObject.
-            explicit ViewContactOfSdrOle2Obj(SdrOle2Obj& rOle2Obj);
-            virtual ~ViewContactOfSdrOle2Obj();
-
-            // helper for creating a OLE sequence for this object. It takes care od attributes, needed
-            // scaling (e.g. for EmptyPresObj's), the correct graphic and other stuff. It is used from
-            // createViewIndependentPrimitive2DSequence with false, and with evtl. HighContrast true
-            // from the VOC which knows that
-            drawinglayer::primitive2d::Primitive2DSequence createPrimitive2DSequenceWithParameters() const;
-
-            // #i123539# get rid of buffered chart content (if there) on change
-            virtual void ActionChanged() SAL_OVERRIDE;
-
-            virtual basegfx::B2DRange getRange( const drawinglayer::geometry::ViewInformation2D& rViewInfo2D ) const SAL_OVERRIDE;
-
-        protected:
-            // This method is responsible for creating the graphical visualisation data
-            // ONLY based on model data, just wraps to call createPrimitive2DSequenceWithParameters(false)
-            virtual drawinglayer::primitive2d::Primitive2DSequence createViewIndependentPrimitive2DSequence() const SAL_OVERRIDE;
-        };
-    } // end of namespace contact
-} // end of namespace sdr
+        return static_cast<const SdrOle2Obj&>(GetSdrObject());
+    }
+
+    /// helper to create transformation from SdrObject
+    basegfx::B2DHomMatrix createObjectTransform() const;
+
+    // basic constructor, used from SdrObject.
+    explicit ViewContactOfSdrOle2Obj(SdrOle2Obj& rOle2Obj);
+    virtual ~ViewContactOfSdrOle2Obj();
+
+    // helper for creating a OLE sequence for this object. It takes care od attributes, needed
+    // scaling (e.g. for EmptyPresObj's), the correct graphic and other stuff. It is used from
+    // createViewIndependentPrimitive2DSequence with false, and with evtl. HighContrast true
+    // from the VOC which knows that
+    drawinglayer::primitive2d::Primitive2DSequence createPrimitive2DSequenceWithParameters() const;
+
+    // #i123539# get rid of buffered chart content (if there) on change
+    virtual void ActionChanged() SAL_OVERRIDE;
+
+    virtual basegfx::B2DRange getRange( const drawinglayer::geometry::ViewInformation2D& rViewInfo2D ) const SAL_OVERRIDE;
+
+protected:
+    // This method is responsible for creating the graphical visualisation data
+    // ONLY based on model data, just wraps to call createPrimitive2DSequenceWithParameters(false)
+    virtual drawinglayer::primitive2d::Primitive2DSequence createViewIndependentPrimitive2DSequence() const SAL_OVERRIDE;
+};
+
+}}
 
 
 
diff --git a/svx/source/sdr/contact/viewcontact.cxx b/svx/source/sdr/contact/viewcontact.cxx
index b4c4020..7d0c249 100644
--- a/svx/source/sdr/contact/viewcontact.cxx
+++ b/svx/source/sdr/contact/viewcontact.cxx
@@ -28,310 +28,306 @@
 #include <sdr/contact/objectcontactofpageview.hxx>
 #include <tools/debug.hxx>
 
+namespace sdr { namespace contact {
 
+// Create a Object-Specific ViewObjectContact, set ViewContact and
+// ObjectContact. Always needs to return something. Default is to create
+// a standard ViewObjectContact containing the given ObjectContact and *this
+ViewObjectContact& ViewContact::CreateObjectSpecificViewObjectContact(ObjectContact& rObjectContact)
+{
+    return *(new ViewObjectContact(rObjectContact, *this));
+}
 
-namespace sdr
+ViewContact::ViewContact()
+:   maViewObjectContactVector(),
+    mxViewIndependentPrimitive2DSequence()
 {
-    namespace contact
-    {
-        // Create a Object-Specific ViewObjectContact, set ViewContact and
-        // ObjectContact. Always needs to return something. Default is to create
-        // a standard ViewObjectContact containing the given ObjectContact and *this
-        ViewObjectContact& ViewContact::CreateObjectSpecificViewObjectContact(ObjectContact& rObjectContact)
-        {
-            return *(new ViewObjectContact(rObjectContact, *this));
-        }
+}
 
-        ViewContact::ViewContact()
-        :   maViewObjectContactVector(),
-            mxViewIndependentPrimitive2DSequence()
-        {
-        }
+// Methods to react on start getting viewed or stop getting
+// viewed. This info is derived from the count of members of
+// registered ViewObjectContacts. Default does nothing.
+void ViewContact::StartGettingViewed()
+{
+}
 
-        // Methods to react on start getting viewed or stop getting
-        // viewed. This info is derived from the count of members of
-        // registered ViewObjectContacts. Default does nothing.
-        void ViewContact::StartGettingViewed()
-        {
-        }
+void ViewContact::StopGettingViewed()
+{
+}
 
-        void ViewContact::StopGettingViewed()
-        {
-        }
+ViewContact::~ViewContact()
+{
+    deleteAllVOCs();
+}
 
-        ViewContact::~ViewContact()
-        {
-            deleteAllVOCs();
-        }
+void ViewContact::deleteAllVOCs()
+{
+    // get rid of all VOCs
+    // #i84257# To avoid that each 'delete pCandidate' again uses
+    // the local RemoveViewObjectContact with a search and removal in the
+    // vector, simply copy and clear local vector.
+    std::vector< ViewObjectContact* > aLocalVOCList(maViewObjectContactVector);
+    maViewObjectContactVector.clear();
+
+    while(!aLocalVOCList.empty())
+    {
+        ViewObjectContact* pCandidate = aLocalVOCList.back();
+        aLocalVOCList.pop_back();
+        DBG_ASSERT(pCandidate, "Corrupted ViewObjectContactList in VC (!)");
+
+        // ViewObjectContacts only make sense with View and Object contacts.
+        // When the contact to the SdrObject is deleted like in this case,
+        // all ViewObjectContacts can be deleted, too.
+        delete pCandidate;
+    }
+
+    // assert when there were new entries added during deletion
+    DBG_ASSERT(maViewObjectContactVector.empty(), "Corrupted ViewObjectContactList in VC (!)");
+}
+
+// get a Object-specific ViewObjectContact for a specific
+// ObjectContact (->View). Always needs to return something.
+ViewObjectContact& ViewContact::GetViewObjectContact(ObjectContact& rObjectContact)
+{
+    ViewObjectContact* pRetval = 0L;
+    const sal_uInt32 nCount(maViewObjectContactVector.size());
 
-        void ViewContact::deleteAllVOCs()
-        {
-            // get rid of all VOCs
-            // #i84257# To avoid that each 'delete pCandidate' again uses
-            // the local RemoveViewObjectContact with a search and removal in the
-            // vector, simply copy and clear local vector.
-            std::vector< ViewObjectContact* > aLocalVOCList(maViewObjectContactVector);
-            maViewObjectContactVector.clear();
-
-            while(!aLocalVOCList.empty())
-            {
-                ViewObjectContact* pCandidate = aLocalVOCList.back();
-                aLocalVOCList.pop_back();
-                DBG_ASSERT(pCandidate, "Corrupted ViewObjectContactList in VC (!)");
-
-                // ViewObjectContacts only make sense with View and Object contacts.
-                // When the contact to the SdrObject is deleted like in this case,
-                // all ViewObjectContacts can be deleted, too.
-                delete pCandidate;
-            }
+    // first search if there exists a VOC for the given OC
+    for(sal_uInt32 a(0); !pRetval && a < nCount; a++)
+    {
+        ViewObjectContact* pCandidate = maViewObjectContactVector[a];
+        DBG_ASSERT(pCandidate, "Corrupted ViewObjectContactList (!)");
 
-            // assert when there were new entries added during deletion
-            DBG_ASSERT(maViewObjectContactVector.empty(), "Corrupted ViewObjectContactList in VC (!)");
+        if(&(pCandidate->GetObjectContact()) == &rObjectContact)
+        {
+            pRetval = pCandidate;
         }
+    }
 
-        // get a Object-specific ViewObjectContact for a specific
-        // ObjectContact (->View). Always needs to return something.
-        ViewObjectContact& ViewContact::GetViewObjectContact(ObjectContact& rObjectContact)
-        {
-            ViewObjectContact* pRetval = 0L;
-            const sal_uInt32 nCount(maViewObjectContactVector.size());
+    if(!pRetval)
+    {
+        // create a new one. It's inserted to the local list from the
+        // ViewObjectContact constructor via AddViewObjectContact()
+        pRetval = &CreateObjectSpecificViewObjectContact(rObjectContact);
+    }
 
-            // first search if there exists a VOC for the given OC
-            for(sal_uInt32 a(0); !pRetval && a < nCount; a++)
-            {
-                ViewObjectContact* pCandidate = maViewObjectContactVector[a];
-                DBG_ASSERT(pCandidate, "Corrupted ViewObjectContactList (!)");
+    return *pRetval;
+}
 
-                if(&(pCandidate->GetObjectContact()) == &rObjectContact)
-                {
-                    pRetval = pCandidate;
-                }
-            }
+// A new ViewObjectContact was created and shall be remembered.
+void ViewContact::AddViewObjectContact(ViewObjectContact& rVOContact)
+{
+    maViewObjectContactVector.push_back(&rVOContact);
 
-            if(!pRetval)
-            {
-                // create a new one. It's inserted to the local list from the
-                // ViewObjectContact constructor via AddViewObjectContact()
-                pRetval = &CreateObjectSpecificViewObjectContact(rObjectContact);
-            }
+    if(1L == maViewObjectContactVector.size())
+    {
+        StartGettingViewed();
+    }
+}
 
-            return *pRetval;
-        }
+// A ViewObjectContact was deleted and shall be forgotten.
+void ViewContact::RemoveViewObjectContact(ViewObjectContact& rVOContact)
+{
+    std::vector< ViewObjectContact* >::iterator aFindResult = std::find(maViewObjectContactVector.begin(), maViewObjectContactVector.end(), &rVOContact);
 
-        // A new ViewObjectContact was created and shall be remembered.
-        void ViewContact::AddViewObjectContact(ViewObjectContact& rVOContact)
-        {
-            maViewObjectContactVector.push_back(&rVOContact);
+    if(aFindResult != maViewObjectContactVector.end())
+    {
+        maViewObjectContactVector.erase(aFindResult);
 
-            if(1L == maViewObjectContactVector.size())
-            {
-                StartGettingViewed();
-            }
+        if(maViewObjectContactVector.empty())
+        {
+            // This may need to get asynchron later since it eventually triggers
+            // deletes of OCs where the VOC is still added.
+            StopGettingViewed();
         }
+    }
+}
 
-        // A ViewObjectContact was deleted and shall be forgotten.
-        void ViewContact::RemoveViewObjectContact(ViewObjectContact& rVOContact)
-        {
-            std::vector< ViewObjectContact* >::iterator aFindResult = std::find(maViewObjectContactVector.begin(), maViewObjectContactVector.end(), &rVOContact);
+// Test if this ViewContact has ViewObjectContacts at all. This can
+// be used to test if this ViewContact is visualized ATM or not
+bool ViewContact::HasViewObjectContacts(bool bExcludePreviews) const
+{
+    const sal_uInt32 nCount(maViewObjectContactVector.size());
 
-            if(aFindResult != maViewObjectContactVector.end())
+    if(bExcludePreviews)
+    {
+        for(sal_uInt32 a(0); a < nCount; a++)
+        {
+            if(!maViewObjectContactVector[a]->GetObjectContact().IsPreviewRenderer())
             {
-                maViewObjectContactVector.erase(aFindResult);
-
-                if(maViewObjectContactVector.empty())
-                {
-                    // This may need to get asynchron later since it eventually triggers
-                    // deletes of OCs where the VOC is still added.
-                    StopGettingViewed();
-                }
+                return true;
             }
         }
 
-        // Test if this ViewContact has ViewObjectContacts at all. This can
-        // be used to test if this ViewContact is visualized ATM or not
-        bool ViewContact::HasViewObjectContacts(bool bExcludePreviews) const
-        {
-            const sal_uInt32 nCount(maViewObjectContactVector.size());
+        return false;
+    }
+    else
+    {
+        return (0L != nCount);
+    }
+}
 
-            if(bExcludePreviews)
-            {
-                for(sal_uInt32 a(0); a < nCount; a++)
-                {
-                    if(!maViewObjectContactVector[a]->GetObjectContact().IsPreviewRenderer())
-                    {
-                        return true;
-                    }
-                }
-
-                return false;
-            }
-            else
-            {
-                return (0L != nCount);
-            }
-        }
+// Test if this ViewContact has ViewObjectContacts at all. This can
+// be used to test if this ViewContact is visualized ATM or not
+bool ViewContact::isAnimatedInAnyViewObjectContact() const
+{
+    const sal_uInt32 nCount(maViewObjectContactVector.size());
 
-        // Test if this ViewContact has ViewObjectContacts at all. This can
-        // be used to test if this ViewContact is visualized ATM or not
-        bool ViewContact::isAnimatedInAnyViewObjectContact() const
+    for(sal_uInt32 a(0); a < nCount; a++)
+    {
+        if(maViewObjectContactVector[a]->isAnimated())
         {
-            const sal_uInt32 nCount(maViewObjectContactVector.size());
+            return true;
+        }
+    }
 
-            for(sal_uInt32 a(0); a < nCount; a++)
-            {
-                if(maViewObjectContactVector[a]->isAnimated())
-                {
-                    return true;
-                }
-            }
+    return false;
+}
 
-            return false;
-        }
+// Access to possible sub-hierarchy and parent. GetObjectCount() default is 0L
+// and GetViewContact default pops up an assert since it's an error if
+// GetObjectCount has a result != 0 and it's not overloaded.
+sal_uInt32 ViewContact::GetObjectCount() const
+{
+    // no sub-objects
+    return 0;
+}
 
-        // Access to possible sub-hierarchy and parent. GetObjectCount() default is 0L
-        // and GetViewContact default pops up an assert since it's an error if
-        // GetObjectCount has a result != 0 and it's not overloaded.
-        sal_uInt32 ViewContact::GetObjectCount() const
-        {
-            // no sub-objects
-            return 0;
-        }
+ViewContact& ViewContact::GetViewContact(sal_uInt32 /*nIndex*/) const
+{
+    // This is the default implementation; call would be an error
+    OSL_FAIL("ViewContact::GetViewContact: This call needs to be overloaded when GetObjectCount() can return results != 0 (!)");
+    return (ViewContact&)(*this);
+}
 
-        ViewContact& ViewContact::GetViewContact(sal_uInt32 /*nIndex*/) const
-        {
-            // This is the default implementation; call would be an error
-            OSL_FAIL("ViewContact::GetViewContact: This call needs to be overloaded when GetObjectCount() can return results != 0 (!)");
-            return (ViewContact&)(*this);
-        }
+ViewContact* ViewContact::GetParentContact() const
+{
+    // default has no parent
+    return 0;
+}
 
-        ViewContact* ViewContact::GetParentContact() const
-        {
-            // default has no parent
-            return 0;
-        }
+void ViewContact::ActionChildInserted(ViewContact& rChild)
+{
+    // propagate change to all exsisting visualisations which
+    // will force a VOC for the new child and invalidate its range
+    const sal_uInt32 nCount(maViewObjectContactVector.size());
 
-        void ViewContact::ActionChildInserted(ViewContact& rChild)
-        {
-            // propagate change to all exsisting visualisations which
-            // will force a VOC for the new child and invalidate its range
-            const sal_uInt32 nCount(maViewObjectContactVector.size());
+    for(sal_uInt32 a(0); a < nCount; a++)
+    {
+        ViewObjectContact* pCandidate = maViewObjectContactVector[a];
+        DBG_ASSERT(pCandidate, "ViewContact::GetViewObjectContact() invalid ViewObjectContactList (!)");
 
-            for(sal_uInt32 a(0); a < nCount; a++)
-            {
-                ViewObjectContact* pCandidate = maViewObjectContactVector[a];
-                DBG_ASSERT(pCandidate, "ViewContact::GetViewObjectContact() invalid ViewObjectContactList (!)");
+        // take action at all VOCs. At the VOCs ObjectContact the initial
+        // rectangle will be invalidated at the associated OutputDevice.
+        pCandidate->ActionChildInserted(rChild);
+    }
+}
 
-                // take action at all VOCs. At the VOCs ObjectContact the initial
-                // rectangle will be invalidated at the associated OutputDevice.
-                pCandidate->ActionChildInserted(rChild);
-            }
-        }
+// React on changes of the object of this ViewContact
+void ViewContact::ActionChanged()
+{
+    // propagate change to all existing VOCs. This will invalidate
+    // all drawn visualisations in all known views
+    const sal_uInt32 nCount(maViewObjectContactVector.size());
 
-        // React on changes of the object of this ViewContact
-        void ViewContact::ActionChanged()
-        {
-            // propagate change to all existing VOCs. This will invalidate
-            // all drawn visualisations in all known views
-            const sal_uInt32 nCount(maViewObjectContactVector.size());
+    for(sal_uInt32 a(0); a < nCount; a++)
+    {
+        ViewObjectContact* pCandidate = maViewObjectContactVector[a];
+        DBG_ASSERT(pCandidate, "ViewContact::GetViewObjectContact() invalid ViewObjectContactList (!)");
 
-            for(sal_uInt32 a(0); a < nCount; a++)
-            {
-                ViewObjectContact* pCandidate = maViewObjectContactVector[a];
-                DBG_ASSERT(pCandidate, "ViewContact::GetViewObjectContact() invalid ViewObjectContactList (!)");
+        pCandidate->ActionChanged();
+    }
+}
 
-                pCandidate->ActionChanged();
-            }
-        }
+// access to SdrObject and/or SdrPage. May return 0L like the default
+// implementations do. Needs to be overloaded as needed.
+SdrObject* ViewContact::TryToGetSdrObject() const
+{
+    return 0L;
+}
 
-        // access to SdrObject and/or SdrPage. May return 0L like the default
-        // implementations do. Needs to be overloaded as needed.
-        SdrObject* ViewContact::TryToGetSdrObject() const
-        {
-            return 0L;
-        }
+SdrPage* ViewContact::TryToGetSdrPage() const
+{
+    return 0L;
+}
 
-        SdrPage* ViewContact::TryToGetSdrPage() const
-        {
-            return 0L;
-        }
 
+// primitive stuff
 
-        // primitive stuff
+drawinglayer::primitive2d::Primitive2DSequence ViewContact::createViewIndependentPrimitive2DSequence() const
+{
+    // This is the default implementation and should never be called (see header). If this is called,
+    // someone implemented a ViewContact (VC) visualisation object without defining the visualisation by
+    // providing a seqence of primitives -> which cannot be correct.
+    // Since we have no access to any known model data here, the default implementation creates a yellow placeholder
+    // hairline polygon with a default size of (1000, 1000, 5000, 3000)
+    OSL_FAIL("ViewContact::createViewIndependentPrimitive2DSequence(): Never call the fallback base implementation, this is always an error (!)");
+    const basegfx::B2DPolygon aOutline(basegfx::tools::createPolygonFromRect(basegfx::B2DRange(1000.0, 1000.0, 5000.0, 3000.0)));
+    const basegfx::BColor aYellow(1.0, 1.0, 0.0);
+    const drawinglayer::primitive2d::Primitive2DReference xReference(
+        new drawinglayer::primitive2d::PolygonHairlinePrimitive2D(aOutline, aYellow));
+
+    return drawinglayer::primitive2d::Primitive2DSequence(&xReference, 1);
+}
+
+drawinglayer::primitive2d::Primitive2DSequence ViewContact::getViewIndependentPrimitive2DSequence() const
+{
+    // local up-to-date checks. Create new list and compare.
+    drawinglayer::primitive2d::Primitive2DSequence xNew(createViewIndependentPrimitive2DSequence());
 
-        drawinglayer::primitive2d::Primitive2DSequence ViewContact::createViewIndependentPrimitive2DSequence() const
-        {
-            // This is the default implementation and should never be called (see header). If this is called,
-            // someone implemented a ViewContact (VC) visualisation object without defining the visualisation by
-            // providing a seqence of primitives -> which cannot be correct.
-            // Since we have no access to any known model data here, the default implementation creates a yellow placeholder
-            // hairline polygon with a default size of (1000, 1000, 5000, 3000)
-            OSL_FAIL("ViewContact::createViewIndependentPrimitive2DSequence(): Never call the fallback base implementation, this is always an error (!)");
-            const basegfx::B2DPolygon aOutline(basegfx::tools::createPolygonFromRect(basegfx::B2DRange(1000.0, 1000.0, 5000.0, 3000.0)));
-            const basegfx::BColor aYellow(1.0, 1.0, 0.0);
-            const drawinglayer::primitive2d::Primitive2DReference xReference(
-                new drawinglayer::primitive2d::PolygonHairlinePrimitive2D(aOutline, aYellow));
-
-            return drawinglayer::primitive2d::Primitive2DSequence(&xReference, 1);
-        }
+    if(xNew.hasElements())
+    {
+        // allow evtl. embedding in object-specific infos, e.g. Name, Title, Description
+        xNew = embedToObjectSpecificInformation(xNew);
+    }
 
-        drawinglayer::primitive2d::Primitive2DSequence ViewContact::getViewIndependentPrimitive2DSequence() const
-        {
-            // local up-to-date checks. Create new list and compare.
-            drawinglayer::primitive2d::Primitive2DSequence xNew(createViewIndependentPrimitive2DSequence());
+    if(!drawinglayer::primitive2d::arePrimitive2DSequencesEqual(mxViewIndependentPrimitive2DSequence, xNew))
+    {
+        // has changed, copy content
+        const_cast< ViewContact* >(this)->mxViewIndependentPrimitive2DSequence = xNew;
+    }
 
-            if(xNew.hasElements())
-            {
-                // allow evtl. embedding in object-specific infos, e.g. Name, Title, Description
-                xNew = embedToObjectSpecificInformation(xNew);
-            }
+    // return current Primitive2DSequence
+    return mxViewIndependentPrimitive2DSequence;
+}
 
-            if(!drawinglayer::primitive2d::arePrimitive2DSequencesEqual(mxViewIndependentPrimitive2DSequence, xNew))
-            {
-                // has changed, copy content
-                const_cast< ViewContact* >(this)->mxViewIndependentPrimitive2DSequence = xNew;
-            }
+// add Gluepoints (if available)
+drawinglayer::primitive2d::Primitive2DSequence ViewContact::createGluePointPrimitive2DSequence() const
+{
+    // default returns empty reference
+    return drawinglayer::primitive2d::Primitive2DSequence();
+}
 
-            // return current Primitive2DSequence
-            return mxViewIndependentPrimitive2DSequence;
-        }
+drawinglayer::primitive2d::Primitive2DSequence ViewContact::embedToObjectSpecificInformation(const drawinglayer::primitive2d::Primitive2DSequence& rSource) const
+{
+    // nothing to do for default
+    return rSource;
+}
 
-        // add Gluepoints (if available)
-        drawinglayer::primitive2d::Primitive2DSequence ViewContact::createGluePointPrimitive2DSequence() const
-        {
-            // default returns empty reference
-            return drawinglayer::primitive2d::Primitive2DSequence();
-        }
+basegfx::B2DRange ViewContact::getRange( const drawinglayer::geometry::ViewInformation2D& /*rViewInfo2D*/ ) const
+{
+    // Return empty range.
+    return basegfx::B2DRange();
+}
 
-        drawinglayer::primitive2d::Primitive2DSequence ViewContact::embedToObjectSpecificInformation(const drawinglayer::primitive2d::Primitive2DSequence& rSource) const
-        {
-            // nothing to do for default
-            return rSource;
-        }
+void ViewContact::flushViewObjectContacts(bool bWithHierarchy)
+{
+    if(bWithHierarchy)
+    {
+        // flush DrawingLayer hierarchy
+        const sal_uInt32 nCount(GetObjectCount());
 
-        basegfx::B2DRange ViewContact::getRange( const drawinglayer::geometry::ViewInformation2D& /*rViewInfo2D*/ ) const
+        for(sal_uInt32 a(0); a < nCount; a++)
         {
-            // Return empty range.
-            return basegfx::B2DRange();
+            ViewContact& rChild = GetViewContact(a);
+            rChild.flushViewObjectContacts(bWithHierarchy);
         }
+    }
 
-        void ViewContact::flushViewObjectContacts(bool bWithHierarchy)
-        {
-            if(bWithHierarchy)
-            {
-                // flush DrawingLayer hierarchy
-                const sal_uInt32 nCount(GetObjectCount());
-
-                for(sal_uInt32 a(0); a < nCount; a++)
-                {
-                    ViewContact& rChild = GetViewContact(a);
-                    rChild.flushViewObjectContacts(bWithHierarchy);
-                }
-            }
+    // delete local VOCs
+    deleteAllVOCs();
+}
 
-            // delete local VOCs
-            deleteAllVOCs();
-        }
-    } // end of namespace contact
-} // end of namespace sdr
+}}
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svx/source/sdr/contact/viewcontactofsdrole2obj.cxx b/svx/source/sdr/contact/viewcontactofsdrole2obj.cxx
index 1704fdd..7bb3e74 100644
--- a/svx/source/sdr/contact/viewcontactofsdrole2obj.cxx
+++ b/svx/source/sdr/contact/viewcontactofsdrole2obj.cxx
@@ -35,186 +35,183 @@
 #include <svx/charthelper.hxx>
 #include <svtools/embedhlp.hxx>
 
+namespace sdr { namespace contact {
 
-namespace sdr
+// Create a Object-Specific ViewObjectContact, set ViewContact and
+// ObjectContact. Always needs to return something.
+ViewObjectContact& ViewContactOfSdrOle2Obj::CreateObjectSpecificViewObjectContact(ObjectContact& rObjectContact)
 {
-    namespace contact
-    {
-        // Create a Object-Specific ViewObjectContact, set ViewContact and
-        // ObjectContact. Always needs to return something.
-        ViewObjectContact& ViewContactOfSdrOle2Obj::CreateObjectSpecificViewObjectContact(ObjectContact& rObjectContact)
-        {
-            ViewObjectContact* pRetval = new ViewObjectContactOfSdrOle2Obj(rObjectContact, *this);
-            DBG_ASSERT(pRetval, "ViewContact::CreateObjectSpecificViewObjectContact() failed (!)");
+    ViewObjectContact* pRetval = new ViewObjectContactOfSdrOle2Obj(rObjectContact, *this);
+    DBG_ASSERT(pRetval, "ViewContact::CreateObjectSpecificViewObjectContact() failed (!)");
 
-            return *pRetval;
-        }
+    return *pRetval;
+}
 
-        ViewContactOfSdrOle2Obj::ViewContactOfSdrOle2Obj(SdrOle2Obj& rOle2Obj)
-        :   ViewContactOfSdrRectObj(rOle2Obj),
-            mxChartContent()
-        {
-        }
-
-        ViewContactOfSdrOle2Obj::~ViewContactOfSdrOle2Obj()
-        {
-        }
+ViewContactOfSdrOle2Obj::ViewContactOfSdrOle2Obj(SdrOle2Obj& rOle2Obj)
+:   ViewContactOfSdrRectObj(rOle2Obj),
+    mxChartContent()
+{
+}
 
-        basegfx::B2DHomMatrix ViewContactOfSdrOle2Obj::createObjectTransform() const
-        {
-            // take unrotated snap rect (direct model data) for position and size
-            Rectangle rRectangle = GetOle2Obj().GetGeoRect();
-            // Hack for calc, transform position of object according
-            // to current zoom so as objects relative position to grid
-            // appears stable
-            rRectangle += GetOle2Obj().GetGridOffset();
-            const basegfx::B2DRange aObjectRange(rRectangle.Left(), rRectangle.Top(), rRectangle.Right(), rRectangle.Bottom());
-
-            // create object matrix
-            const GeoStat& rGeoStat(GetOle2Obj().GetGeoStat());
-            const double fShearX(rGeoStat.nShearAngle ? tan((36000 - rGeoStat.nShearAngle) * F_PI18000) : 0.0);
-            const double fRotate(rGeoStat.nRotationAngle ? (36000 - rGeoStat.nRotationAngle) * F_PI18000 : 0.0);
-
-            return basegfx::tools::createScaleShearXRotateTranslateB2DHomMatrix(
-                aObjectRange.getWidth(), aObjectRange.getHeight(),
-                fShearX,
-                fRotate,
-                aObjectRange.getMinX(), aObjectRange.getMinY());
-        }
+ViewContactOfSdrOle2Obj::~ViewContactOfSdrOle2Obj()
+{
+}
 
-        drawinglayer::primitive2d::Primitive2DSequence ViewContactOfSdrOle2Obj::createPrimitive2DSequenceWithParameters() const
-        {
-            // get object transformation
-            const basegfx::B2DHomMatrix aObjectMatrix(createObjectTransform());
+basegfx::B2DHomMatrix ViewContactOfSdrOle2Obj::createObjectTransform() const
+{
+    // take unrotated snap rect (direct model data) for position and size
+    Rectangle rRectangle = GetOle2Obj().GetGeoRect();
+    // Hack for calc, transform position of object according
+    // to current zoom so as objects relative position to grid
+    // appears stable
+    rRectangle += GetOle2Obj().GetGridOffset();
+    const basegfx::B2DRange aObjectRange(rRectangle.Left(), rRectangle.Top(), rRectangle.Right(), rRectangle.Bottom());
+
+    // create object matrix
+    const GeoStat& rGeoStat(GetOle2Obj().GetGeoStat());
+    const double fShearX(rGeoStat.nShearAngle ? tan((36000 - rGeoStat.nShearAngle) * F_PI18000) : 0.0);
+    const double fRotate(rGeoStat.nRotationAngle ? (36000 - rGeoStat.nRotationAngle) * F_PI18000 : 0.0);
+
+    return basegfx::tools::createScaleShearXRotateTranslateB2DHomMatrix(
+        aObjectRange.getWidth(), aObjectRange.getHeight(),
+        fShearX,
+        fRotate,
+        aObjectRange.getMinX(), aObjectRange.getMinY());
+}
+
+drawinglayer::primitive2d::Primitive2DSequence ViewContactOfSdrOle2Obj::createPrimitive2DSequenceWithParameters() const
+{
+    // get object transformation
+    const basegfx::B2DHomMatrix aObjectMatrix(createObjectTransform());
 
-            // Prepare attribute settings, will be used soon anyways
-            const SfxItemSet& rItemSet = GetOle2Obj().GetMergedItemSet();
+    // Prepare attribute settings, will be used soon anyways
+    const SfxItemSet& rItemSet = GetOle2Obj().GetMergedItemSet();
 
-            // this may be refined more granular; if no content, attributes may get simpler
-            const drawinglayer::attribute::SdrLineFillShadowTextAttribute aAttribute(
-                drawinglayer::primitive2d::createNewSdrLineFillShadowTextAttribute(
-                    rItemSet,
-                    GetOle2Obj().getText(0),
-                    true));
-            drawinglayer::primitive2d::Primitive2DReference xContent;
+    // this may be refined more granular; if no content, attributes may get simpler
+    const drawinglayer::attribute::SdrLineFillShadowTextAttribute aAttribute(
+        drawinglayer::primitive2d::createNewSdrLineFillShadowTextAttribute(
+            rItemSet,
+            GetOle2Obj().getText(0),
+            true));
+    drawinglayer::primitive2d::Primitive2DReference xContent;
 
-            if(GetOle2Obj().IsChart())
+    if(GetOle2Obj().IsChart())
+    {
+        // #i123539# allow buffering and reuse of local chart data to not need to rebuild it
+        // on every ViewObjectContact::getPrimitive2DSequence call. TTTT: No tneeded for
+        // aw080, there this mechanism alraedy works differently
+        if(mxChartContent.is())
+        {
+            xContent = mxChartContent;
+        }
+        else
+        {
+            // try to get chart primitives and chart range directly from xChartModel
+            basegfx::B2DRange aChartContentRange;
+            const drawinglayer::primitive2d::Primitive2DSequence aChartSequence(
+                ChartHelper::tryToGetChartContentAsPrimitive2DSequence(
+                    GetOle2Obj().getXModel(),
+                    aChartContentRange));
+            const double fWidth(aChartContentRange.getWidth());
+            const double fHeight(aChartContentRange.getHeight());
+
+            if(aChartSequence.hasElements()
+                && basegfx::fTools::more(fWidth, 0.0)
+                && basegfx::fTools::more(fHeight, 0.0))
             {
-                // #i123539# allow buffering and reuse of local chart data to not need to rebuild it
-                // on every ViewObjectContact::getPrimitive2DSequence call. TTTT: No tneeded for
-                // aw080, there this mechanism alraedy works differently
-                if(mxChartContent.is())
-                {
-                    xContent = mxChartContent;
-                }
-                else
-                {
-                    // try to get chart primitives and chart range directly from xChartModel
-                    basegfx::B2DRange aChartContentRange;
-                    const drawinglayer::primitive2d::Primitive2DSequence aChartSequence(
-                        ChartHelper::tryToGetChartContentAsPrimitive2DSequence(
-                            GetOle2Obj().getXModel(),
-                            aChartContentRange));
-                    const double fWidth(aChartContentRange.getWidth());
-                    const double fHeight(aChartContentRange.getHeight());
-
-                    if(aChartSequence.hasElements()
-                        && basegfx::fTools::more(fWidth, 0.0)
-                        && basegfx::fTools::more(fHeight, 0.0))
-                    {
-                        // create embedding transformation
-                        basegfx::B2DHomMatrix aEmbed(
-                            basegfx::tools::createTranslateB2DHomMatrix(
-                                -aChartContentRange.getMinX(),
-                                -aChartContentRange.getMinY()));
-
-                        aEmbed.scale(1.0 / fWidth, 1.0 / fHeight);
-                        aEmbed = aObjectMatrix * aEmbed;
-                        xContent = new drawinglayer::primitive2d::TransformPrimitive2D(
-                            aEmbed,
-                            aChartSequence);
-                    }
-
-                    if(xContent.is())
-                    {
-                        const_cast< ViewContactOfSdrOle2Obj* >(this)->mxChartContent = xContent;
-                    }
-                }
+                // create embedding transformation
+                basegfx::B2DHomMatrix aEmbed(
+                    basegfx::tools::createTranslateB2DHomMatrix(
+                        -aChartContentRange.getMinX(),
+                        -aChartContentRange.getMinY()));
+
+                aEmbed.scale(1.0 / fWidth, 1.0 / fHeight);
+                aEmbed = aObjectMatrix * aEmbed;
+                xContent = new drawinglayer::primitive2d::TransformPrimitive2D(
+                    aEmbed,
+                    aChartSequence);
             }
 
-            if(!xContent.is())
+            if(xContent.is())
             {
-                // #i102063# embed OLE content in an own primitive; this will be able to decompose accessing
-                // the weak SdrOle2 reference and will also implement getB2DRange() for fast BoundRect
-                // calculations without OLE Graphic access (which may trigger e.g. chart recalculation).
-                // It will also take care of HighContrast and ScaleContent
-                xContent = new drawinglayer::primitive2d::SdrOleContentPrimitive2D(
-                    GetOle2Obj(),
-                    aObjectMatrix,
-
-                    // #i104867# add GraphicVersion number to be able to check for
-                    // content change in the primitive later
-                    GetOle2Obj().getEmbeddedObjectRef().getGraphicVersion() );
+                const_cast< ViewContactOfSdrOle2Obj* >(this)->mxChartContent = xContent;
             }
-
-            // create primitive. Use Ole2 primitive here. Prepare attribute settings, will
-            // be used soon anyways. Always create primitives to allow the decomposition of
-            // SdrOle2Primitive2D to create needed invisible elements for HitTest and/or BoundRect
-            const drawinglayer::primitive2d::Primitive2DReference xReference(
-                new drawinglayer::primitive2d::SdrOle2Primitive2D(
-                    drawinglayer::primitive2d::Primitive2DSequence(&xContent, 1),
-                    aObjectMatrix,
-                    aAttribute));
-
-            return drawinglayer::primitive2d::Primitive2DSequence(&xReference, 1);
         }
+    }
 
-        basegfx::B2DRange ViewContactOfSdrOle2Obj::getRange( const drawinglayer::geometry::ViewInformation2D& rViewInfo2D ) const
-        {
-            // this may be refined more granular; if no content, attributes may get simpler
-            const drawinglayer::attribute::SdrLineFillShadowTextAttribute aAttribute =
-                drawinglayer::primitive2d::createNewSdrLineFillShadowTextAttribute(
-                    GetOle2Obj().GetMergedItemSet(),
-                    GetOle2Obj().getText(0),
-                    true);
-
-            basegfx::B2DHomMatrix aObjectMatrix = createObjectTransform();
-
-            drawinglayer::primitive2d::Primitive2DReference xContent =
-                new drawinglayer::primitive2d::SdrOleContentPrimitive2D(
-                    GetOle2Obj(),
-                    aObjectMatrix,
-                    GetOle2Obj().getEmbeddedObjectRef().getGraphicVersion());
-
-            const drawinglayer::primitive2d::Primitive2DReference xReference(
-                new drawinglayer::primitive2d::SdrOle2Primitive2D(
-                    drawinglayer::primitive2d::Primitive2DSequence(&xContent, 1),
-                    aObjectMatrix,
-                    aAttribute));
-
-            drawinglayer::primitive2d::Primitive2DSequence xSeq =
-                drawinglayer::primitive2d::Primitive2DSequence(&xReference, 1);
-
-            return drawinglayer::primitive2d::getB2DRangeFromPrimitive2DSequence(xSeq, rViewInfo2D);
-        }
+    if(!xContent.is())
+    {
+        // #i102063# embed OLE content in an own primitive; this will be able to decompose accessing
+        // the weak SdrOle2 reference and will also implement getB2DRange() for fast BoundRect
+        // calculations without OLE Graphic access (which may trigger e.g. chart recalculation).
+        // It will also take care of HighContrast and ScaleContent
+        xContent = new drawinglayer::primitive2d::SdrOleContentPrimitive2D(
+            GetOle2Obj(),
+            aObjectMatrix,
+
+            // #i104867# add GraphicVersion number to be able to check for
+            // content change in the primitive later
+            GetOle2Obj().getEmbeddedObjectRef().getGraphicVersion() );
+    }
+
+    // create primitive. Use Ole2 primitive here. Prepare attribute settings, will
+    // be used soon anyways. Always create primitives to allow the decomposition of
+    // SdrOle2Primitive2D to create needed invisible elements for HitTest and/or BoundRect
+    const drawinglayer::primitive2d::Primitive2DReference xReference(
+        new drawinglayer::primitive2d::SdrOle2Primitive2D(
+            drawinglayer::primitive2d::Primitive2DSequence(&xContent, 1),
+            aObjectMatrix,
+            aAttribute));
+
+    return drawinglayer::primitive2d::Primitive2DSequence(&xReference, 1);
+}
+
+basegfx::B2DRange ViewContactOfSdrOle2Obj::getRange( const drawinglayer::geometry::ViewInformation2D& rViewInfo2D ) const
+{
+    // this may be refined more granular; if no content, attributes may get simpler
+    const drawinglayer::attribute::SdrLineFillShadowTextAttribute aAttribute =
+        drawinglayer::primitive2d::createNewSdrLineFillShadowTextAttribute(
+            GetOle2Obj().GetMergedItemSet(),
+            GetOle2Obj().getText(0),
+            true);
+
+    basegfx::B2DHomMatrix aObjectMatrix = createObjectTransform();
+
+    drawinglayer::primitive2d::Primitive2DReference xContent =
+        new drawinglayer::primitive2d::SdrOleContentPrimitive2D(
+            GetOle2Obj(),
+            aObjectMatrix,
+            GetOle2Obj().getEmbeddedObjectRef().getGraphicVersion());
+
+    const drawinglayer::primitive2d::Primitive2DReference xReference(
+        new drawinglayer::primitive2d::SdrOle2Primitive2D(
+            drawinglayer::primitive2d::Primitive2DSequence(&xContent, 1),
+            aObjectMatrix,
+            aAttribute));
+
+    drawinglayer::primitive2d::Primitive2DSequence xSeq =
+        drawinglayer::primitive2d::Primitive2DSequence(&xReference, 1);
+
+    return drawinglayer::primitive2d::getB2DRangeFromPrimitive2DSequence(xSeq, rViewInfo2D);
+}
+
+void ViewContactOfSdrOle2Obj::ActionChanged()
+{
+    // call parent
+    ViewContactOfSdrRectObj::ActionChanged();
 
-        void ViewContactOfSdrOle2Obj::ActionChanged()
-        {
-            // call parent
-            ViewContactOfSdrRectObj::ActionChanged();
+    // #i123539# if we have buffered chart data, reset it
+    if(mxChartContent.is())
+    {
+        mxChartContent.clear();
+    }
+}
 
-            // #i123539# if we have buffered chart data, reset it
-            if(mxChartContent.is())
-            {
-                mxChartContent.clear();
-            }
-        }
+drawinglayer::primitive2d::Primitive2DSequence ViewContactOfSdrOle2Obj::createViewIndependentPrimitive2DSequence() const
+{
+    return createPrimitive2DSequenceWithParameters();
+}
 
-        drawinglayer::primitive2d::Primitive2DSequence ViewContactOfSdrOle2Obj::createViewIndependentPrimitive2DSequence() const
-        {
-            return createPrimitive2DSequenceWithParameters();
-        }
-    } // end of namespace contact
-} // end of namespace sdr
+}}
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */


More information about the Libreoffice-commits mailing list