summaryrefslogtreecommitdiffstats
path: root/svx/source/sdr/contact
diff options
context:
space:
mode:
Diffstat (limited to 'svx/source/sdr/contact')
-rw-r--r--svx/source/sdr/contact/viewcontact.cxx14
-rw-r--r--svx/source/sdr/contact/viewcontactofsdrobj.cxx22
-rw-r--r--svx/source/sdr/contact/viewobjectcontactofe3dscene.cxx3
3 files changed, 38 insertions, 1 deletions
diff --git a/svx/source/sdr/contact/viewcontact.cxx b/svx/source/sdr/contact/viewcontact.cxx
index 1dd952a7abd6..ff89ac6eaf39 100644
--- a/svx/source/sdr/contact/viewcontact.cxx
+++ b/svx/source/sdr/contact/viewcontact.cxx
@@ -277,7 +277,13 @@ namespace sdr
drawinglayer::primitive2d::Primitive2DSequence ViewContact::getViewIndependentPrimitive2DSequence() const
{
// local up-to-date checks. Create new list and compare.
- const drawinglayer::primitive2d::Primitive2DSequence xNew(createViewIndependentPrimitive2DSequence());
+ drawinglayer::primitive2d::Primitive2DSequence xNew(createViewIndependentPrimitive2DSequence());
+
+ if(xNew.hasElements())
+ {
+ // allow evtl. embedding in object-specific infos, e.g. Name, Title, Description
+ xNew = embedToObjectSpecificInformation(xNew);
+ }
if(!drawinglayer::primitive2d::arePrimitive2DSequencesEqual(mxViewIndependentPrimitive2DSequence, xNew))
{
@@ -296,6 +302,12 @@ namespace sdr
return drawinglayer::primitive2d::Primitive2DSequence();
}
+ 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)
diff --git a/svx/source/sdr/contact/viewcontactofsdrobj.cxx b/svx/source/sdr/contact/viewcontactofsdrobj.cxx
index 15c9429d06d8..72c4c608cf97 100644
--- a/svx/source/sdr/contact/viewcontactofsdrobj.cxx
+++ b/svx/source/sdr/contact/viewcontactofsdrobj.cxx
@@ -28,6 +28,7 @@
#include <svx/sdr/contact/objectcontact.hxx>
#include <basegfx/color/bcolor.hxx>
#include <drawinglayer/primitive2d/markerarrayprimitive2d.hxx>
+#include <drawinglayer/primitive2d/objectinfoprimitive2d.hxx>
#include <svx/sdr/contact/objectcontactofpageview.hxx>
#include <svx/sdrpagewindow.hxx>
#include <svx/sdrpaintwindow.hxx>
@@ -175,6 +176,27 @@ namespace sdr
return xRetval;
}
+
+ drawinglayer::primitive2d::Primitive2DSequence ViewContactOfSdrObj::embedToObjectSpecificInformation(const drawinglayer::primitive2d::Primitive2DSequence& rSource) const
+ {
+ if(rSource.hasElements() &&
+ (!GetSdrObject().GetName().isEmpty() ||
+ !GetSdrObject().GetTitle().isEmpty() ||
+ !GetSdrObject().GetDescription().isEmpty()))
+ {
+ const drawinglayer::primitive2d::Primitive2DReference xRef(
+ new drawinglayer::primitive2d::ObjectInfoPrimitive2D(
+ rSource,
+ GetSdrObject().GetName(),
+ GetSdrObject().GetTitle(),
+ GetSdrObject().GetDescription()));
+
+ return drawinglayer::primitive2d::Primitive2DSequence(&xRef, 1);
+ }
+
+ return rSource;
+ }
+
} // end of namespace contact
} // end of namespace sdr
diff --git a/svx/source/sdr/contact/viewobjectcontactofe3dscene.cxx b/svx/source/sdr/contact/viewobjectcontactofe3dscene.cxx
index 58e3cf828e49..e9515f082762 100644
--- a/svx/source/sdr/contact/viewobjectcontactofe3dscene.cxx
+++ b/svx/source/sdr/contact/viewobjectcontactofe3dscene.cxx
@@ -90,6 +90,9 @@ namespace sdr
if(xRetval.hasElements())
{
+ // allow evtl. embedding in object-specific infos, e.g. Name, Title, Description
+ xRetval = rViewContact.embedToObjectSpecificInformation(xRetval);
+
// handle GluePoint
if(!GetObjectContact().isOutputToPrinter() && GetObjectContact().AreGluePointsVisible())
{