Kaydet (Commit) 28d1c250 authored tarafından Cédric Bosdonnat's avatar Cédric Bosdonnat

n#676858: ghost uneditable drawing objects

üst 282def6f
......@@ -483,6 +483,7 @@ protected:
// beim Clone wird das Flag nicht mitkopiert!
// Das Flag ist persistent.
unsigned bEmptyPresObj : 1; // Leeres Praesentationsobjekt (Draw)
unsigned mbGhosted : 1; // FIXME find a better way to ghost writer drawing objects
// sal_True=Objekt ist als Objekt der MasterPage nicht sichtbar
unsigned bNotVisibleAsMaster : 1;
......@@ -1036,6 +1037,8 @@ public:
sal_Bool IsEmptyPresObj() const { return bEmptyPresObj; }
void SetNotVisibleAsMaster(sal_Bool bFlg) { bNotVisibleAsMaster=bFlg; }
sal_Bool IsNotVisibleAsMaster() const { return bNotVisibleAsMaster; }
void SetGhosted( sal_Bool bGhosted ) { mbGhosted = bGhosted; }
sal_Bool IsGhosted() const { return mbGhosted; }
// #i25616#
sal_Bool LineIsOutsideGeometry() const { return mbLineIsOutsideGeometry; }
......
......@@ -45,6 +45,7 @@
#include <svx/xfltrit.hxx>
#include <basegfx/polygon/b2dpolygontools.hxx>
#include <svx/sdr/primitive2d/sdrdecompositiontools.hxx>
#include <drawinglayer/primitive2d/modifiedcolorprimitive2d.hxx>
//////////////////////////////////////////////////////////////////////////////
......@@ -171,6 +172,15 @@ namespace sdr
}
}
if (rCaptionObj.IsGhosted())
{
const basegfx::BColor aRGBWhite(1.0, 1.0, 1.0);
const basegfx::BColorModifier aBColorModifier(aRGBWhite, 0.5, basegfx::BCOLORMODIFYMODE_INTERPOLATE);
const drawinglayer::primitive2d::Primitive2DReference xGhostedRef(
new drawinglayer::primitive2d::ModifiedColorPrimitive2D(xRetval, aBColorModifier));
xRetval = drawinglayer::primitive2d::Primitive2DSequence(&xGhostedRef, 1);
}
return xRetval;
}
} // end of namespace contact
......
......@@ -36,6 +36,7 @@
#include <svl/itemset.hxx>
#include <svx/sxciaitm.hxx>
#include <basegfx/matrix/b2dhommatrixtools.hxx>
#include <drawinglayer/primitive2d/modifiedcolorprimitive2d.hxx>
//////////////////////////////////////////////////////////////////////////////
......@@ -78,6 +79,8 @@ namespace sdr
// create primitive data
const sal_uInt16 nIdentifier(GetCircObj().GetObjIdentifier());
drawinglayer::primitive2d::Primitive2DSequence xRetval;
// always create primitives to allow the decomposition of SdrEllipsePrimitive2D
// or SdrEllipseSegmentPrimitive2D to create needed invisible elements for HitTest
// and/or BoundRect
......@@ -88,7 +91,7 @@ namespace sdr
aObjectMatrix,
aAttribute));
return drawinglayer::primitive2d::Primitive2DSequence(&xReference, 1);
xRetval = drawinglayer::primitive2d::Primitive2DSequence(&xReference, 1);
}
else
{
......@@ -108,8 +111,18 @@ namespace sdr
bCloseSegment,
bCloseUsingCenter));
return drawinglayer::primitive2d::Primitive2DSequence(&xReference, 1);
xRetval = drawinglayer::primitive2d::Primitive2DSequence(&xReference, 1);
}
if (GetCircObj().IsGhosted())
{
const basegfx::BColor aRGBWhite(1.0, 1.0, 1.0);
const basegfx::BColorModifier aBColorModifier(aRGBWhite, 0.5, basegfx::BCOLORMODIFYMODE_INTERPOLATE);
const drawinglayer::primitive2d::Primitive2DReference xReference(
new drawinglayer::primitive2d::ModifiedColorPrimitive2D(xRetval, aBColorModifier));
xRetval = drawinglayer::primitive2d::Primitive2DSequence(&xReference, 1);
}
return xRetval;
}
} // end of namespace contact
} // end of namespace sdr
......
......@@ -39,6 +39,7 @@
#include <basegfx/matrix/b2dhommatrixtools.hxx>
#include <svx/obj3d.hxx>
#include <drawinglayer/primitive2d/sdrdecompositiontools2d.hxx>
#include <drawinglayer/primitive2d/modifiedcolorprimitive2d.hxx>
//////////////////////////////////////////////////////////////////////////////
......@@ -233,6 +234,15 @@ namespace sdr
drawinglayer::primitive2d::createHiddenGeometryPrimitives2D(
false, aObjectRange));
if (GetCustomShapeObj().IsGhosted())
{
const basegfx::BColor aRGBWhite(1.0, 1.0, 1.0);
const basegfx::BColorModifier aBColorModifier(aRGBWhite, 0.5, basegfx::BCOLORMODIFYMODE_INTERPOLATE);
const drawinglayer::primitive2d::Primitive2DReference xReference(
new drawinglayer::primitive2d::ModifiedColorPrimitive2D(xRetval, aBColorModifier));
xRetval = drawinglayer::primitive2d::Primitive2DSequence(&xReference, 1);
}
return xRetval;
}
} // end of namespace contact
......
......@@ -35,6 +35,7 @@
#include <basegfx/polygon/b2dpolypolygontools.hxx>
#include <svx/sdr/primitive2d/sdrpathprimitive2d.hxx>
#include <basegfx/matrix/b2dhommatrixtools.hxx>
#include <drawinglayer/primitive2d/modifiedcolorprimitive2d.hxx>
//////////////////////////////////////////////////////////////////////////////
......@@ -137,7 +138,17 @@ namespace sdr
aAttribute,
aUnitPolyPolygon));
return drawinglayer::primitive2d::Primitive2DSequence(&xReference, 1);
drawinglayer::primitive2d::Primitive2DSequence xRetval(&xReference, 1);
if (GetPathObj().IsGhosted())
{
const basegfx::BColor aRGBWhite(1.0, 1.0, 1.0);
const basegfx::BColorModifier aBColorModifier(aRGBWhite, 0.5, basegfx::BCOLORMODIFYMODE_INTERPOLATE);
const drawinglayer::primitive2d::Primitive2DReference xGhostedRef(
new drawinglayer::primitive2d::ModifiedColorPrimitive2D(xRetval, aBColorModifier));
xRetval = drawinglayer::primitive2d::Primitive2DSequence(&xGhostedRef, 1);
}
return xRetval;
}
} // end of namespace contact
} // end of namespace sdr
......
......@@ -37,6 +37,7 @@
#include <svx/sdr/primitive2d/sdrprimitivetools.hxx>
#include <basegfx/matrix/b2dhommatrixtools.hxx>
#include <svx/svdmodel.hxx>
#include <drawinglayer/primitive2d/modifiedcolorprimitive2d.hxx>
//////////////////////////////////////////////////////////////////////////////
......@@ -95,8 +96,17 @@ namespace sdr
fCornerRadiusY,
// #i105856# use fill for HitTest when TextFrame and not PickThrough
GetRectObj().IsTextFrame() && !bPickThroughTransparentTextFrames));
drawinglayer::primitive2d::Primitive2DSequence xRetVal(&xReference, 1);
return drawinglayer::primitive2d::Primitive2DSequence(&xReference, 1);
if ( GetRectObj().IsGhosted( ) )
{
const basegfx::BColor aRGBWhite(1.0, 1.0, 1.0);
const basegfx::BColorModifier aBColorModifier(aRGBWhite, 0.5, basegfx::BCOLORMODIFYMODE_INTERPOLATE);
const drawinglayer::primitive2d::Primitive2DReference xGhostedRef(
new drawinglayer::primitive2d::ModifiedColorPrimitive2D(xRetVal, aBColorModifier));
xRetVal = drawinglayer::primitive2d::Primitive2DSequence(&xGhostedRef, 1);
}
return xRetVal;
}
} // end of namespace contact
} // end of namespace sdr
......
......@@ -388,6 +388,7 @@ SdrObject::SdrObject()
bNoPrint =sal_False;
bEmptyPresObj =sal_False;
bNotVisibleAsMaster=sal_False;
mbGhosted = sal_False;
bClosedObj =sal_False;
mbVisible = true;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment