summaryrefslogtreecommitdiff
path: root/include/svx/sdr
diff options
context:
space:
mode:
authorKohei Yoshida <kohei.yoshida@collabora.com>2014-11-04 13:10:55 -0500
committerKohei Yoshida <kohei.yoshida@collabora.com>2014-11-04 13:10:55 -0500
commit1bb27282558f23ee6f94bb046f5905a65c94ba3d (patch)
tree75e389615e4fed475d50e1ff20d5b5aae116ded8 /include/svx/sdr
parent50228d22a62ecfbc974130f2ff3f7c4e03a9a033 (diff)
Unindent.
Change-Id: I40f97fb81993ea59e23430d4680981c6b2ed35ad
Diffstat (limited to 'include/svx/sdr')
-rw-r--r--include/svx/sdr/contact/objectcontact.hxx249
-rw-r--r--include/svx/sdr/contact/viewcontactofsdrobj.hxx89
-rw-r--r--include/svx/sdr/contact/viewobjectcontact.hxx199
3 files changed, 255 insertions, 282 deletions
diff --git a/include/svx/sdr/contact/objectcontact.hxx b/include/svx/sdr/contact/objectcontact.hxx
index 89c3bb24eb7a..f10cb4a6a55e 100644
--- a/include/svx/sdr/contact/objectcontact.hxx
+++ b/include/svx/sdr/contact/objectcontact.hxx
@@ -24,20 +24,11 @@
#include <svx/svxdllapi.h>
#include <drawinglayer/geometry/viewinformation2d.hxx>
-
-// predeclarations
-
class SetOfByte;
class Rectangle;
class SdrPageView;
class OutputDevice;
-namespace sdr { namespace contact {
- class DisplayInfo;
- class ViewContact;
- class ViewObjectContactRedirector;
-}}
-
namespace sdr { namespace event {
class TimerEventHandler;
}}
@@ -47,172 +38,172 @@ namespace basegfx {
class B2DHomMatrix;
}
+namespace sdr { namespace contact {
+class DisplayInfo;
+class ViewContact;
+class ViewObjectContactRedirector;
-namespace sdr
+class SVX_DLLPUBLIC ObjectContact
{
- namespace contact
- {
- class SVX_DLLPUBLIC ObjectContact
- {
- private:
- // make ViewObjectContact a friend to exclusively allow it to use
- // AddViewObjectContact/RemoveViewObjectContact
- friend class ViewObjectContact;
+private:
+ // make ViewObjectContact a friend to exclusively allow it to use
+ // AddViewObjectContact/RemoveViewObjectContact
+ friend class ViewObjectContact;
- // All VOCs which are created using this OC, thus remembering this OC
- // as a reference. All those VOCs need to be deleted when the OC goes down.
- // Registering and de-registering is done in the VOC constructors/destructors.
- std::vector< ViewObjectContact* > maViewObjectContactVector;
+ // All VOCs which are created using this OC, thus remembering this OC
+ // as a reference. All those VOCs need to be deleted when the OC goes down.
+ // Registering and de-registering is done in the VOC constructors/destructors.
+ std::vector< ViewObjectContact* > maViewObjectContactVector;
- // A new ViewObjectContact was created and shall be remembered.
- void AddViewObjectContact(ViewObjectContact& rVOContact);
+ // A new ViewObjectContact was created and shall be remembered.
+ void AddViewObjectContact(ViewObjectContact& rVOContact);
- // A ViewObjectContact was deleted and shall be forgotten.
- virtual void RemoveViewObjectContact(ViewObjectContact& rVOContact);
+ // A ViewObjectContact was deleted and shall be forgotten.
+ virtual void RemoveViewObjectContact(ViewObjectContact& rVOContact);
- // the primitiveAnimator which is used if this View and/or the contained primitives
- // support animatedSwitchPrimitives
- sdr::animation::primitiveAnimator maPrimitiveAnimator;
+ // the primitiveAnimator which is used if this View and/or the contained primitives
+ // support animatedSwitchPrimitives
+ sdr::animation::primitiveAnimator maPrimitiveAnimator;
- // the EventHandler for e.g. asynchronious loading of graphics
- sdr::event::TimerEventHandler* mpEventHandler;
+ // the EventHandler for e.g. asynchronious loading of graphics
+ sdr::event::TimerEventHandler* mpEventHandler;
- // The redirector. If set it is used to pipe all supported calls
- // to the redirector
- ViewObjectContactRedirector* mpViewObjectContactRedirector;
+ // The redirector. If set it is used to pipe all supported calls
+ // to the redirector
+ ViewObjectContactRedirector* mpViewObjectContactRedirector;
- // the Primitive2DParameters containing view information
- drawinglayer::geometry::ViewInformation2D maViewInformation2D;
+ // the Primitive2DParameters containing view information
+ drawinglayer::geometry::ViewInformation2D maViewInformation2D;
- // bitfield
- // flag for preview renderer
- bool mbIsPreviewRenderer : 1;
+ // bitfield
+ // flag for preview renderer
+ bool mbIsPreviewRenderer : 1;
- // method to create a EventHandler. Needs to give a result.
- sdr::event::TimerEventHandler* CreateEventHandler();
+ // method to create a EventHandler. Needs to give a result.
+ sdr::event::TimerEventHandler* CreateEventHandler();
- 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]; }
+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]; }
- // interface to allow derivates to set PreviewRenderer flag
- void setPreviewRenderer(bool bNew) { mbIsPreviewRenderer = bNew; }
+ // interface to allow derivates to set PreviewRenderer flag
+ void setPreviewRenderer(bool bNew) { mbIsPreviewRenderer = bNew; }
- // interface to allow derivates to set ViewInformation2D
- void updateViewInformation2D(const drawinglayer::geometry::ViewInformation2D& rViewInformation2D) { maViewInformation2D = rViewInformation2D; }
+ // interface to allow derivates to set ViewInformation2D
+ void updateViewInformation2D(const drawinglayer::geometry::ViewInformation2D& rViewInformation2D) { maViewInformation2D = rViewInformation2D; }
- public:
- // basic constructor
- ObjectContact();
- virtual ~ObjectContact();
+public:
+ // basic constructor
+ ObjectContact();
+ virtual ~ObjectContact();
- // LazyInvalidate request. This is used from the VOCs to mark that they
- // got invalidated by an ActionCanged() call. An active view needs to remember
- // this and take action on it. Default implementation directly calls back
- // triggerLazyInvalidate() which promptly handles the request
- virtual void setLazyInvalidate(ViewObjectContact& rVOC);
+ // LazyInvalidate request. This is used from the VOCs to mark that they
+ // got invalidated by an ActionCanged() call. An active view needs to remember
+ // this and take action on it. Default implementation directly calls back
+ // triggerLazyInvalidate() which promptly handles the request
+ virtual void setLazyInvalidate(ViewObjectContact& rVOC);
- // call this to support evtl. preparations for repaint. Default does nothing
- virtual void PrepareProcessDisplay();
+ // call this to support evtl. preparations for repaint. Default does nothing
+ virtual void PrepareProcessDisplay();
- // Process the whole displaying
- virtual void ProcessDisplay(DisplayInfo& rDisplayInfo);
+ // Process the whole displaying
+ virtual void ProcessDisplay(DisplayInfo& rDisplayInfo);
- // test if visualizing of entered groups is switched on at all. Default
- // implementation returns sal_False.
- virtual bool DoVisualizeEnteredGroup() const;
+ // test if visualizing of entered groups is switched on at all. Default
+ // implementation returns sal_False.
+ virtual bool DoVisualizeEnteredGroup() const;
- // get active group's (the entered group) ViewContact
- virtual const ViewContact* getActiveViewContact() const;
+ // get active group's (the entered group) ViewContact
+ virtual const ViewContact* getActiveViewContact() const;
- // Invalidate given rectangle at the window/output which is represented by
- // this ObjectContact. Default does nothing.
- virtual void InvalidatePartOfView(const basegfx::B2DRange& rRange) const;
+ // Invalidate given rectangle at the window/output which is represented by
+ // this ObjectContact. Default does nothing.
+ virtual void InvalidatePartOfView(const basegfx::B2DRange& rRange) const;
- // Get info if given Rectangle is visible in this view
- virtual bool IsAreaVisible(const basegfx::B2DRange& rRange) const;
+ // Get info if given Rectangle is visible in this view
+ virtual bool IsAreaVisible(const basegfx::B2DRange& rRange) const;
- // Get info about the need to visualize GluePoints. The default
- // is that it is not necessary.
- virtual bool AreGluePointsVisible() const;
+ // Get info about the need to visualize GluePoints. The default
+ // is that it is not necessary.
+ virtual bool AreGluePointsVisible() const;
- // method to get the primitiveAnimator
- sdr::animation::primitiveAnimator& getPrimitiveAnimator() { return maPrimitiveAnimator; }
+ // method to get the primitiveAnimator
+ sdr::animation::primitiveAnimator& getPrimitiveAnimator() { return maPrimitiveAnimator; }
- // method to get the EventHandler. It will
- // return a existing one or create a new one using CreateEventHandler().
- sdr::event::TimerEventHandler& GetEventHandler() const;
+ // method to get the EventHandler. It will
+ // return a existing one or create a new one using CreateEventHandler().
+ sdr::event::TimerEventHandler& GetEventHandler() const;
- // delete the EventHandler
- void DeleteEventHandler();
+ // delete the EventHandler
+ void DeleteEventHandler();
- // test if there is an EventHandler without creating one on demand
- bool HasEventHandler() const;
+ // test if there is an EventHandler without creating one on demand
+ bool HasEventHandler() const;
- // check if text animation is allowed. Default is sal_true.
- virtual bool IsTextAnimationAllowed() const;
+ // check if text animation is allowed. Default is sal_true.
+ virtual bool IsTextAnimationAllowed() const;
- // check if graphic animation is allowed. Default is sal_true.
- virtual bool IsGraphicAnimationAllowed() const;
+ // check if graphic animation is allowed. Default is sal_true.
+ virtual bool IsGraphicAnimationAllowed() const;
- // check if asynchronious graphis loading is allowed. Default is sal_False.
- virtual bool IsAsynchronGraphicsLoadingAllowed() const;
+ // check if asynchronious graphis loading is allowed. Default is sal_False.
+ virtual bool IsAsynchronGraphicsLoadingAllowed() const;
- // access to ViewObjectContactRedirector
- ViewObjectContactRedirector* GetViewObjectContactRedirector() const { return mpViewObjectContactRedirector; }
- void SetViewObjectContactRedirector(ViewObjectContactRedirector* pNew);
+ // access to ViewObjectContactRedirector
+ ViewObjectContactRedirector* GetViewObjectContactRedirector() const { return mpViewObjectContactRedirector; }
+ void SetViewObjectContactRedirector(ViewObjectContactRedirector* pNew);
- // check if buffering of MasterPages is allowed. Default is sal_False.
- virtual bool IsMasterPageBufferingAllowed() const;
+ // check if buffering of MasterPages is allowed. Default is sal_False.
+ virtual bool IsMasterPageBufferingAllowed() const;
- // print? Default is false
- virtual bool isOutputToPrinter() const;
+ // print? Default is false
+ virtual bool isOutputToPrinter() const;
- // window? Default is true
- virtual bool isOutputToWindow() const;
+ // window? Default is true
+ virtual bool isOutputToWindow() const;
- // VirtualDevice? Default is false
- virtual bool isOutputToVirtualDevice() const;
+ // VirtualDevice? Default is false
+ virtual bool isOutputToVirtualDevice() const;
- // recording MetaFile? Default is false
- virtual bool isOutputToRecordingMetaFile() const;
+ // recording MetaFile? Default is false
+ virtual bool isOutputToRecordingMetaFile() const;
- // pdf export? Default is false
- virtual bool isOutputToPDFFile() const;
+ // pdf export? Default is false
+ virtual bool isOutputToPDFFile() const;
- // gray display mode
- virtual bool isDrawModeGray() const;
+ // gray display mode
+ virtual bool isDrawModeGray() const;
- // gray display mode
- virtual bool isDrawModeBlackWhite() const;
+ // gray display mode
+ virtual bool isDrawModeBlackWhite() const;
- // high contrast display mode
- virtual bool isDrawModeHighContrast() const;
+ // high contrast display mode
+ virtual bool isDrawModeHighContrast() const;
- // check if this is a preview renderer. Default is sal_False.
- bool IsPreviewRenderer() const { return mbIsPreviewRenderer; }
+ // check if this is a preview renderer. Default is sal_False.
+ bool IsPreviewRenderer() const { return mbIsPreviewRenderer; }
- // get Primitive2DParameters for this view
- const drawinglayer::geometry::ViewInformation2D& getViewInformation2D() const { return maViewInformation2D; }
+ // get Primitive2DParameters for this view
+ const drawinglayer::geometry::ViewInformation2D& getViewInformation2D() const { return maViewInformation2D; }
- // access to SdrPageView. May return 0L like the default implementations do. Needs to be overloaded as needed.
- virtual SdrPageView* TryToGetSdrPageView() const;
+ // access to SdrPageView. May return 0L like the default implementations do. Needs to be overloaded as needed.
+ virtual SdrPageView* TryToGetSdrPageView() const;
- // access to OutputDevice. May return 0L like the default implementations do. Needs to be overloaded as needed.
- virtual OutputDevice* TryToGetOutputDevice() const;
+ // access to OutputDevice. May return 0L like the default implementations do. Needs to be overloaded as needed.
+ virtual OutputDevice* TryToGetOutputDevice() const;
- // reset ViewPort at internal ViewInformation2D. This is needed when the OC is used
- // not for ProcessDisplay() but to get a VOC associated with it. When trying to get
- // a sequence of primitives from the VOC then, the last initialized ViewPort from
- // the last ProcessDisplay() is used for geometric visibility testing. If this is not
- // wanted (like in such cases) this method is used. It will reuse the current
- // ViewInformation2D, but clear the ViewPort (no ViewPort means all is visible)
- void resetViewPort();
- };
- } // end of namespace contact
-} // end of namespace sdr
+ // reset ViewPort at internal ViewInformation2D. This is needed when the OC is used
+ // not for ProcessDisplay() but to get a VOC associated with it. When trying to get
+ // a sequence of primitives from the VOC then, the last initialized ViewPort from
+ // the last ProcessDisplay() is used for geometric visibility testing. If this is not
+ // wanted (like in such cases) this method is used. It will reuse the current
+ // ViewInformation2D, but clear the ViewPort (no ViewPort means all is visible)
+ void resetViewPort();
+};
+
+}}
diff --git a/include/svx/sdr/contact/viewcontactofsdrobj.hxx b/include/svx/sdr/contact/viewcontactofsdrobj.hxx
index bbf2c99df40d..e35cf85984a3 100644
--- a/include/svx/sdr/contact/viewcontactofsdrobj.hxx
+++ b/include/svx/sdr/contact/viewcontactofsdrobj.hxx
@@ -25,71 +25,62 @@
#include <svx/sdtakitm.hxx>
#include <svx/svxdllapi.h>
-
-// predeclarations
-
class SdrObject;
class GeoStat;
class Bitmap;
+namespace sdr { namespace contact {
-
-namespace sdr
+class SVX_DLLPUBLIC ViewContactOfSdrObj : public ViewContact
{
- namespace contact
+protected:
+ // the owner of this ViewContact. Set from constructor and not
+ // to be changed in any way.
+ SdrObject& mrObject;
+
+ // Remember AnimationKind of object. Used to find out if that kind
+ // has changed in ActionChanged()
+ SdrTextAniKind meRememberedAnimationKind;
+
+ // Create a Object-Specific ViewObjectContact, set ViewContact and
+ // ObjectContact. Always needs to return something.
+ virtual ViewObjectContact& CreateObjectSpecificViewObjectContact(ObjectContact& rObjectContact) SAL_OVERRIDE;
+
+public:
+ // access to SdrObject
+ SdrObject& GetSdrObject() const
{
- class SVX_DLLPUBLIC ViewContactOfSdrObj : public ViewContact
- {
- protected:
- // the owner of this ViewContact. Set from constructor and not
- // to be changed in any way.
- SdrObject& mrObject;
-
- // Remember AnimationKind of object. Used to find out if that kind
- // has changed in ActionChanged()
- SdrTextAniKind meRememberedAnimationKind;
-
- // Create a Object-Specific ViewObjectContact, set ViewContact and
- // ObjectContact. Always needs to return something.
- virtual ViewObjectContact& CreateObjectSpecificViewObjectContact(ObjectContact& rObjectContact) SAL_OVERRIDE;
-
- public:
- // access to SdrObject
- SdrObject& GetSdrObject() const
- {
- return mrObject;
- }
-
- // basic constructor, used from SdrObject.
- explicit ViewContactOfSdrObj(SdrObject& rObj);
- virtual ~ViewContactOfSdrObj();
+ return mrObject;
+ }
- // Access to possible sub-hierarchy
- virtual sal_uInt32 GetObjectCount() const SAL_OVERRIDE;
- virtual ViewContact& GetViewContact(sal_uInt32 nIndex) const SAL_OVERRIDE;
- virtual ViewContact* GetParentContact() const SAL_OVERRIDE;
+ // basic constructor, used from SdrObject.
+ explicit ViewContactOfSdrObj(SdrObject& rObj);
+ virtual ~ViewContactOfSdrObj();
- // React on changes of the object of this ViewContact
- virtual void ActionChanged() SAL_OVERRIDE;
+ // Access to possible sub-hierarchy
+ virtual sal_uInt32 GetObjectCount() const SAL_OVERRIDE;
+ virtual ViewContact& GetViewContact(sal_uInt32 nIndex) const SAL_OVERRIDE;
+ virtual ViewContact* GetParentContact() const SAL_OVERRIDE;
- // overload for acessing the SdrObject
- virtual SdrObject* TryToGetSdrObject() const SAL_OVERRIDE;
+ // React on changes of the object of this ViewContact
+ virtual void ActionChanged() SAL_OVERRIDE;
+ // overload for acessing the SdrObject
+ virtual SdrObject* TryToGetSdrObject() const SAL_OVERRIDE;
- // primitive stuff
- // add Gluepoints (if available)
- virtual drawinglayer::primitive2d::Primitive2DSequence createGluePointPrimitive2DSequence() const SAL_OVERRIDE;
+ // primitive stuff
- // 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 SAL_OVERRIDE;
- };
- } // end of namespace contact
-} // end of namespace sdr
+ // add Gluepoints (if available)
+ virtual drawinglayer::primitive2d::Primitive2DSequence createGluePointPrimitive2DSequence() const SAL_OVERRIDE;
+ // 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 SAL_OVERRIDE;
+};
+}}
#endif // INCLUDED_SVX_SDR_CONTACT_VIEWCONTACTOFSDROBJ_HXX
diff --git a/include/svx/sdr/contact/viewobjectcontact.hxx b/include/svx/sdr/contact/viewobjectcontact.hxx
index 4e472702e2c0..e371c9c28ac7 100644
--- a/include/svx/sdr/contact/viewobjectcontact.hxx
+++ b/include/svx/sdr/contact/viewobjectcontact.hxx
@@ -26,119 +26,110 @@
#include <svx/svxdllapi.h>
#include <drawinglayer/primitive2d/baseprimitive2d.hxx>
-
-// predeclarations
-
namespace vcl { class Region; }
-namespace sdr { namespace contact {
- class DisplayInfo;
- class ObjectContact;
- class ViewContact;
- class ViewObjectContactRedirector;
-}}
-
namespace sdr { namespace animation {
class PrimitiveAnimation;
}}
+namespace sdr { namespace contact {
+class DisplayInfo;
+class ObjectContact;
+class ViewContact;
+class ViewObjectContactRedirector;
-namespace sdr
+class SVX_DLLPUBLIC ViewObjectContact
{
- namespace contact
- {
- class SVX_DLLPUBLIC ViewObjectContact
- {
- private:
- // must-exist and constant contacts
- ObjectContact& mrObjectContact;
- ViewContact& mrViewContact;
-
- // This range defines the object's BoundRect
- basegfx::B2DRange maObjectRange;
-
- // PrimitiveSequence 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 mxPrimitive2DSequence;
-
- // the PrimitiveAnimation if Primitive2DSequence contains animations
- sdr::animation::PrimitiveAnimation* mpPrimitiveAnimation;
-
- // bitfield
- // This bool gets set when the object gets invalidated by ActionChanged() and
- // can be used from the OC to late-invalidates
- bool mbLazyInvalidate : 1;
-
- protected:
- // make redirector a protected friend, it needs to call createPrimitives as default action
- friend class ViewObjectContactRedirector;
-
- // Called from getPrimitive2DSequence() when vector has changed. Evaluate object animation
- // and setup accordingly
- void checkForPrimitive2DAnimations();
-
- // This method is responsible for creating the graphical visualisation data which is
- // stored/cached in the local primitive. Default gets view-independent Primitive
- // from the ViewContact using ViewContact::getViewIndependentPrimitive2DSequence(), takes care of
- // visibility, handles glue and ghosted.
- // This method will not handle included hierarchies and not check geometric visibility.
- virtual drawinglayer::primitive2d::Primitive2DSequence createPrimitive2DSequence(const DisplayInfo& rDisplayInfo) const;
-
- // method for flushing Primitive2DSequence for VOC implementations
- void flushPrimitive2DSequence() { mxPrimitive2DSequence.realloc(0); }
-
- public:
- // basic constructor.
- ViewObjectContact(ObjectContact& rObjectContact, ViewContact& rViewContact);
- virtual ~ViewObjectContact();
-
- // access to ObjectContact
- ObjectContact& GetObjectContact() const { return mrObjectContact; }
-
- // access to ViewContact
- ViewContact& GetViewContact() const { return mrViewContact; }
-
- // get the oebject's size range
- const basegfx::B2DRange& getObjectRange() const;
-
- // A ViewObjectContact was deleted and shall be forgotten.
- void RemoveViewObjectContact(ViewObjectContact& rVOContact);
-
- // React on changes of the object of this ViewContact
- virtual void ActionChanged();
-
- // LazyInvalidate handling
- void triggerLazyInvalidate();
-
- // Check if this primitive is animated in any OC (View) which means it has
- // generated a PrimitiveAnimation
- bool isAnimated() const { return (0 != mpPrimitiveAnimation); }
-
- // Take some action when new objects are inserted
- virtual void ActionChildInserted(ViewContact& rChild);
-
- // access to the local primitive. This will ensure that the local primitive is
- // current in comparing the local one with a fresh created incarnation
- // This method will not handle included hierarchies and not check visibility.
- drawinglayer::primitive2d::Primitive2DSequence getPrimitive2DSequence(const DisplayInfo& rDisplayInfo) const;
-
- // test this VOC for visibility concerning model-view stuff like e.g. Layer
- virtual bool isPrimitiveVisible(const DisplayInfo& rDisplayInfo) const;
-
- // test this VOC for ghosted mode
- virtual bool isPrimitiveGhosted(const DisplayInfo& rDisplayInfo) const;
-
- // process this primitive: Eventually also recursively travel an existing hierarchy,
- // e.g. for group objects, scenes or pages. This method will test geometrical visibility.
- virtual drawinglayer::primitive2d::Primitive2DSequence getPrimitive2DSequenceHierarchy(DisplayInfo& rDisplayInfo) const;
-
- // just process the sub-hierarchy, used as tooling from getPrimitive2DSequenceHierarchy
- drawinglayer::primitive2d::Primitive2DSequence getPrimitive2DSequenceSubHierarchy(DisplayInfo& rDisplayInfo) const;
- };
- } // end of namespace contact
-} // end of namespace sdr
+private:
+ // must-exist and constant contacts
+ ObjectContact& mrObjectContact;
+ ViewContact& mrViewContact;
+
+ // This range defines the object's BoundRect
+ basegfx::B2DRange maObjectRange;
+
+ // PrimitiveSequence 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 mxPrimitive2DSequence;
+
+ // the PrimitiveAnimation if Primitive2DSequence contains animations
+ sdr::animation::PrimitiveAnimation* mpPrimitiveAnimation;
+
+ // bitfield
+ // This bool gets set when the object gets invalidated by ActionChanged() and
+ // can be used from the OC to late-invalidates
+ bool mbLazyInvalidate : 1;
+
+protected:
+ // make redirector a protected friend, it needs to call createPrimitives as default action
+ friend class ViewObjectContactRedirector;
+
+ // Called from getPrimitive2DSequence() when vector has changed. Evaluate object animation
+ // and setup accordingly
+ void checkForPrimitive2DAnimations();
+
+ // This method is responsible for creating the graphical visualisation data which is
+ // stored/cached in the local primitive. Default gets view-independent Primitive
+ // from the ViewContact using ViewContact::getViewIndependentPrimitive2DSequence(), takes care of
+ // visibility, handles glue and ghosted.
+ // This method will not handle included hierarchies and not check geometric visibility.
+ virtual drawinglayer::primitive2d::Primitive2DSequence createPrimitive2DSequence(const DisplayInfo& rDisplayInfo) const;
+
+ // method for flushing Primitive2DSequence for VOC implementations
+ void flushPrimitive2DSequence() { mxPrimitive2DSequence.realloc(0); }
+
+public:
+ // basic constructor.
+ ViewObjectContact(ObjectContact& rObjectContact, ViewContact& rViewContact);
+ virtual ~ViewObjectContact();
+
+ // access to ObjectContact
+ ObjectContact& GetObjectContact() const { return mrObjectContact; }
+
+ // access to ViewContact
+ ViewContact& GetViewContact() const { return mrViewContact; }
+
+ // get the oebject's size range
+ const basegfx::B2DRange& getObjectRange() const;
+
+ // A ViewObjectContact was deleted and shall be forgotten.
+ void RemoveViewObjectContact(ViewObjectContact& rVOContact);
+
+ // React on changes of the object of this ViewContact
+ virtual void ActionChanged();
+
+ // LazyInvalidate handling
+ void triggerLazyInvalidate();
+
+ // Check if this primitive is animated in any OC (View) which means it has
+ // generated a PrimitiveAnimation
+ bool isAnimated() const { return (0 != mpPrimitiveAnimation); }
+
+ // Take some action when new objects are inserted
+ virtual void ActionChildInserted(ViewContact& rChild);
+
+ // access to the local primitive. This will ensure that the local primitive is
+ // current in comparing the local one with a fresh created incarnation
+ // This method will not handle included hierarchies and not check visibility.
+ drawinglayer::primitive2d::Primitive2DSequence getPrimitive2DSequence(const DisplayInfo& rDisplayInfo) const;
+
+ // test this VOC for visibility concerning model-view stuff like e.g. Layer
+ virtual bool isPrimitiveVisible(const DisplayInfo& rDisplayInfo) const;
+
+ // test this VOC for ghosted mode
+ virtual bool isPrimitiveGhosted(const DisplayInfo& rDisplayInfo) const;
+
+ // process this primitive: Eventually also recursively travel an existing hierarchy,
+ // e.g. for group objects, scenes or pages. This method will test geometrical visibility.
+ virtual drawinglayer::primitive2d::Primitive2DSequence getPrimitive2DSequenceHierarchy(DisplayInfo& rDisplayInfo) const;
+
+ // just process the sub-hierarchy, used as tooling from getPrimitive2DSequenceHierarchy
+ drawinglayer::primitive2d::Primitive2DSequence getPrimitive2DSequenceSubHierarchy(DisplayInfo& rDisplayInfo) const;
+};
+
+}}