You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by al...@apache.org on 2013/01/29 14:32:37 UTC

svn commit: r1439888 [1/2] - in /openoffice/trunk/main: chart2/source/controller/main/ drawinglayer/inc/drawinglayer/primitive2d/ drawinglayer/inc/drawinglayer/processor2d/ drawinglayer/source/primitive2d/ sd/source/ui/view/ svx/ svx/inc/svx/ svx/inc/s...

Author: alg
Date: Tue Jan 29 13:32:36 2013
New Revision: 1439888

URL: http://svn.apache.org/viewvc?rev=1439888&view=rev
Log:
#121532# enhanced visualisation of text edut&selection, D&D overhauled

Added:
    openoffice/trunk/main/svx/inc/svx/sdr/overlay/overlayrectangle.hxx
    openoffice/trunk/main/svx/source/sdr/overlay/overlayrectangle.cxx
Removed:
    openoffice/trunk/main/svx/inc/svx/sdr/overlay/overlayhatchrect.hxx
    openoffice/trunk/main/svx/source/sdr/overlay/overlayhatchrect.cxx
Modified:
    openoffice/trunk/main/chart2/source/controller/main/DragMethod_RotateDiagram.cxx
    openoffice/trunk/main/drawinglayer/inc/drawinglayer/primitive2d/drawinglayer_primitivetypes2d.hxx
    openoffice/trunk/main/drawinglayer/inc/drawinglayer/primitive2d/polypolygonprimitive2d.hxx
    openoffice/trunk/main/drawinglayer/inc/drawinglayer/processor2d/linegeometryextractor2d.hxx
    openoffice/trunk/main/drawinglayer/source/primitive2d/polypolygonprimitive2d.cxx
    openoffice/trunk/main/sd/source/ui/view/sdview2.cxx
    openoffice/trunk/main/sd/source/ui/view/sdview3.cxx
    openoffice/trunk/main/svx/Library_svxcore.mk
    openoffice/trunk/main/svx/Package_inc.mk
    openoffice/trunk/main/svx/inc/svx/sdr/overlay/overlayanimatedbitmapex.hxx
    openoffice/trunk/main/svx/inc/svx/sdr/overlay/overlayobject.hxx
    openoffice/trunk/main/svx/inc/svx/sdr/overlay/overlaypolypolygon.hxx
    openoffice/trunk/main/svx/inc/svx/sdr/overlay/overlaytools.hxx
    openoffice/trunk/main/svx/inc/svx/sdr/primitive2d/svx_primitivetypes2d.hxx
    openoffice/trunk/main/svx/inc/svx/svdview.hxx
    openoffice/trunk/main/svx/source/engine3d/dragmt3d.cxx
    openoffice/trunk/main/svx/source/engine3d/view3d.cxx
    openoffice/trunk/main/svx/source/sdr/overlay/overlayanimatedbitmapex.cxx
    openoffice/trunk/main/svx/source/sdr/overlay/overlaymanager.cxx
    openoffice/trunk/main/svx/source/sdr/overlay/overlayobject.cxx
    openoffice/trunk/main/svx/source/sdr/overlay/overlaypolypolygon.cxx
    openoffice/trunk/main/svx/source/sdr/overlay/overlayrollingrectangle.cxx
    openoffice/trunk/main/svx/source/sdr/overlay/overlaytools.cxx
    openoffice/trunk/main/svx/source/svdraw/svdcrtv.cxx
    openoffice/trunk/main/svx/source/svdraw/svddrgmt.cxx
    openoffice/trunk/main/svx/source/svdraw/svdedxv.cxx
    openoffice/trunk/main/svx/source/svdraw/svdhdl.cxx
    openoffice/trunk/main/svx/source/svdraw/svdobj.cxx
    openoffice/trunk/main/svx/source/svdraw/svdview.cxx
    openoffice/trunk/main/svx/source/table/svdotable.cxx
    openoffice/trunk/main/svx/source/table/tablehandles.cxx
    openoffice/trunk/main/svx/source/table/tablehandles.hxx
    openoffice/trunk/main/sw/source/core/frmedt/fecopy.cxx
    openoffice/trunk/main/sw/source/ui/dochdl/swdtflvr.cxx
    openoffice/trunk/main/sw/source/ui/inc/swdtflvr.hxx

Modified: openoffice/trunk/main/chart2/source/controller/main/DragMethod_RotateDiagram.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/chart2/source/controller/main/DragMethod_RotateDiagram.cxx?rev=1439888&r1=1439887&r2=1439888&view=diff
==============================================================================
--- openoffice/trunk/main/chart2/source/controller/main/DragMethod_RotateDiagram.cxx (original)
+++ openoffice/trunk/main/chart2/source/controller/main/DragMethod_RotateDiagram.cxx Tue Jan 29 13:32:36 2013
@@ -223,7 +223,8 @@ void DragMethod_RotateDiagram::CreateOve
 		// transform to 2D view coordinates
 		aPolyPolygon.transform(rVCScene.getObjectTransformation());
 
-		sdr::overlay::OverlayPolyPolygonStriped* pNew = new ::sdr::overlay::OverlayPolyPolygonStriped(aPolyPolygon);
+		sdr::overlay::OverlayPolyPolygonStripedAndFilled* pNew = new ::sdr::overlay::OverlayPolyPolygonStripedAndFilled(
+            aPolyPolygon);
 		rOverlayManager.add(*pNew);
 		addToOverlayObjectList(*pNew);
 	}

Modified: openoffice/trunk/main/drawinglayer/inc/drawinglayer/primitive2d/drawinglayer_primitivetypes2d.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/drawinglayer/inc/drawinglayer/primitive2d/drawinglayer_primitivetypes2d.hxx?rev=1439888&r1=1439887&r2=1439888&view=diff
==============================================================================
--- openoffice/trunk/main/drawinglayer/inc/drawinglayer/primitive2d/drawinglayer_primitivetypes2d.hxx (original)
+++ openoffice/trunk/main/drawinglayer/inc/drawinglayer/primitive2d/drawinglayer_primitivetypes2d.hxx Tue Jan 29 13:32:36 2013
@@ -105,6 +105,7 @@
 #define PRIMITIVE2D_ID_CROPPRIMITIVE2D                      (PRIMITIVE2D_ID_RANGE_DRAWINGLAYER| 66)
 #define PRIMITIVE2D_ID_PATTERNFILLPRIMITIVE2D               (PRIMITIVE2D_ID_RANGE_DRAWINGLAYER| 67)
 #define PRIMITIVE2D_ID_OBJECTINFOPRIMITIVE2D                (PRIMITIVE2D_ID_RANGE_DRAWINGLAYER| 68)
+#define PRIMITIVE2D_ID_POLYPOLYGONSELECTIONPRIMITIVE2D      (PRIMITIVE2D_ID_RANGE_DRAWINGLAYER| 69)
 
 //////////////////////////////////////////////////////////////////////////////
 

Modified: openoffice/trunk/main/drawinglayer/inc/drawinglayer/primitive2d/polypolygonprimitive2d.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/drawinglayer/inc/drawinglayer/primitive2d/polypolygonprimitive2d.hxx?rev=1439888&r1=1439887&r2=1439888&view=diff
==============================================================================
--- openoffice/trunk/main/drawinglayer/inc/drawinglayer/primitive2d/polypolygonprimitive2d.hxx (original)
+++ openoffice/trunk/main/drawinglayer/inc/drawinglayer/primitive2d/polypolygonprimitive2d.hxx Tue Jan 29 13:32:36 2013
@@ -33,6 +33,7 @@
 #include <drawinglayer/attribute/linestartendattribute.hxx>
 #include <drawinglayer/attribute/fillgradientattribute.hxx>
 #include <drawinglayer/attribute/fillhatchattribute.hxx>
+#include <drawinglayer/primitive2d/primitivetools2d.hxx>
 #include <basegfx/color/bcolor.hxx>
 
 //////////////////////////////////////////////////////////////////////////////
@@ -436,6 +437,70 @@ namespace drawinglayer
 } // end of namespace drawinglayer
 
 //////////////////////////////////////////////////////////////////////////////
+// PolyPolygonSelectionPrimitive2D class
+
+namespace drawinglayer
+{
+    namespace primitive2d
+    {
+        /** PolyPolygonSelectionPrimitive2D class
+
+            This primitive defines a PolyPolygon which gets filled with a defined color
+            and a defined transparence, but also gets extended ('grown') by the given
+            discrete size (thus being a view-dependent primitive)
+         */
+        class DRAWINGLAYER_DLLPUBLIC PolyPolygonSelectionPrimitive2D : public DiscreteMetricDependentPrimitive2D
+        {
+        private:
+            /// the PolyPolygon geometry
+            basegfx::B2DPolyPolygon                 maPolyPolygon;
+
+            /// the color
+            basegfx::BColor                         maColor;
+
+            /// the transparence [0.0 .. 1.0]
+            double                                  mfTransparence;
+
+            /// the discrete grow size ('pixels'), only posivive values allowed
+            double                                  mfDiscreteGrow;
+
+            /// bitfield
+            /// draw polygons filled when fill is set
+            bool                                    mbFill : 1;
+
+        protected:
+            /// local decomposition.
+            virtual Primitive2DSequence create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const;
+
+        public:
+            /// constructor
+            PolyPolygonSelectionPrimitive2D(
+                const basegfx::B2DPolyPolygon& rPolyPolygon, 
+                const basegfx::BColor& rColor,
+                double fTransparence,
+                double fDiscreteGrow,
+                bool bFill);
+
+            /// data read access
+            const basegfx::B2DPolyPolygon& getB2DPolyPolygon() const { return maPolyPolygon; }
+            const basegfx::BColor& getColor() const { return maColor; }
+            double getTransparence() const { return mfTransparence; }
+            double getDiscreteGrow() const { return mfDiscreteGrow; }
+            bool getFill() const { return mbFill; }
+
+            /// compare operator
+            virtual bool operator==(const BasePrimitive2D& rPrimitive) const;
+
+            /// get range
+            virtual basegfx::B2DRange getB2DRange(const geometry::ViewInformation2D& rViewInformation) const;
+
+            /// provide unique ID
+            DeclPrimitrive2DIDBlock()
+        };
+    } // end of namespace primitive2d
+} // end of namespace drawinglayer
+
+//////////////////////////////////////////////////////////////////////////////
 
 #endif //INCLUDED_DRAWINGLAYER_PRIMITIVE2D_POLYPOLYGONPRIMITIVE2D_HXX
 

Modified: openoffice/trunk/main/drawinglayer/inc/drawinglayer/processor2d/linegeometryextractor2d.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/drawinglayer/inc/drawinglayer/processor2d/linegeometryextractor2d.hxx?rev=1439888&r1=1439887&r2=1439888&view=diff
==============================================================================
--- openoffice/trunk/main/drawinglayer/inc/drawinglayer/processor2d/linegeometryextractor2d.hxx (original)
+++ openoffice/trunk/main/drawinglayer/inc/drawinglayer/processor2d/linegeometryextractor2d.hxx Tue Jan 29 13:32:36 2013
@@ -38,7 +38,7 @@ namespace drawinglayer
         /** LineGeometryExtractor2D class
 
             This processor can extract the line geometry from feeded primpitives. The
-            hairlines and the fille geometry from fat lines are separated.
+            hairlines and the fill geometry from fat lines are separated.
          */
 		class DRAWINGLAYER_DLLPUBLIC LineGeometryExtractor2D : public BaseProcessor2D
 		{

Modified: openoffice/trunk/main/drawinglayer/source/primitive2d/polypolygonprimitive2d.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/drawinglayer/source/primitive2d/polypolygonprimitive2d.cxx?rev=1439888&r1=1439887&r2=1439888&view=diff
==============================================================================
--- openoffice/trunk/main/drawinglayer/source/primitive2d/polypolygonprimitive2d.cxx (original)
+++ openoffice/trunk/main/drawinglayer/source/primitive2d/polypolygonprimitive2d.cxx Tue Jan 29 13:32:36 2013
@@ -35,6 +35,8 @@
 #include <drawinglayer/primitive2d/polygonprimitive2d.hxx>
 #include <drawinglayer/primitive2d/drawinglayer_primitivetypes2d.hxx>
 #include <basegfx/matrix/b2dhommatrixtools.hxx>
+#include <drawinglayer/primitive2d/unifiedtransparenceprimitive2d.hxx>
+#include <drawinglayer/geometry/viewinformation2d.hxx>
 #include <vcl/graph.hxx>
 
 //////////////////////////////////////////////////////////////////////////////
@@ -118,7 +120,12 @@ namespace drawinglayer
 
 				for(sal_uInt32 a(0L); a < nCount; a++)
 				{
-					aRetval[a] = Primitive2DReference(new PolygonMarkerPrimitive2D(aPolyPolygon.getB2DPolygon(a), getRGBColorA(), getRGBColorB(), getDiscreteDashLength()));
+					aRetval[a] = Primitive2DReference(
+                        new PolygonMarkerPrimitive2D(
+                            aPolyPolygon.getB2DPolygon(a), 
+                            getRGBColorA(), 
+                            getRGBColorB(), 
+                            getDiscreteDashLength()));
 				}
 
 				return aRetval;
@@ -580,4 +587,107 @@ namespace drawinglayer
 } // end of namespace drawinglayer
 
 //////////////////////////////////////////////////////////////////////////////
+
+namespace drawinglayer
+{
+    namespace primitive2d
+    {
+        Primitive2DSequence PolyPolygonSelectionPrimitive2D::create2DDecomposition(const geometry::ViewInformation2D& /*rViewInformation*/) const
+        {
+            Primitive2DSequence aRetval;
+
+            if(getTransparence() < 1.0 && getB2DPolyPolygon().count())
+            {
+                if(getFill() && getB2DPolyPolygon().isClosed())
+                {
+                    // create fill primitive
+                    const Primitive2DReference aFill(
+                        new PolyPolygonColorPrimitive2D(
+                            getB2DPolyPolygon(),
+                            getColor()));
+
+                    aRetval = Primitive2DSequence(&aFill, 1);
+                }
+
+                if(getDiscreteGrow() > 0.0)
+                {
+                    const attribute::LineAttribute aLineAttribute(
+                        getColor(),
+                        getDiscreteGrow() * getDiscreteUnit() * 2.0);
+                    const Primitive2DReference aFatLine(
+                        new PolyPolygonStrokePrimitive2D(
+                            getB2DPolyPolygon(),
+                            aLineAttribute));
+
+                    appendPrimitive2DReferenceToPrimitive2DSequence(aRetval, aFatLine);
+                }
+
+                // embed filled to transparency (if used)
+                if(aRetval.getLength() && getTransparence() > 0.0)
+                {
+                    const Primitive2DReference aTrans(
+                        new UnifiedTransparencePrimitive2D(
+                            aRetval, 
+                            getTransparence()));
+
+                    aRetval = Primitive2DSequence(&aTrans, 1);
+                }
+            }
+
+            return aRetval;
+        }
+
+        PolyPolygonSelectionPrimitive2D::PolyPolygonSelectionPrimitive2D(
+            const basegfx::B2DPolyPolygon& rPolyPolygon, 
+            const basegfx::BColor& rColor,
+            double fTransparence,
+            double fDiscreteGrow,
+            bool bFill)
+        :   DiscreteMetricDependentPrimitive2D(),
+            maPolyPolygon(rPolyPolygon),
+            maColor(rColor),
+            mfTransparence(fTransparence),
+            mfDiscreteGrow(fabs(fDiscreteGrow)),
+            mbFill(bFill)
+        {
+        }
+
+        bool PolyPolygonSelectionPrimitive2D::operator==(const BasePrimitive2D& rPrimitive) const
+        {
+            if(DiscreteMetricDependentPrimitive2D::operator==(rPrimitive))
+            {
+                const PolyPolygonSelectionPrimitive2D& rCompare = (PolyPolygonSelectionPrimitive2D&)rPrimitive;
+
+                return (getB2DPolyPolygon() == rCompare.getB2DPolyPolygon()
+                    && getColor() == rCompare.getColor()
+                    && getTransparence() == rCompare.getTransparence()
+                    && getDiscreteGrow() == rCompare.getDiscreteGrow()
+                    && getFill() == rCompare.getFill());
+            }
+
+            return false;
+        }
+
+        basegfx::B2DRange PolyPolygonSelectionPrimitive2D::getB2DRange(const geometry::ViewInformation2D& rViewInformation) const
+        {
+            basegfx::B2DRange aRetval(basegfx::tools::getRange(getB2DPolyPolygon()));
+
+            if(getDiscreteGrow() > 0.0)
+            {
+                // get the current DiscreteUnit (not sure if getDiscreteUnit() is updated here, better go safe way)
+                const double fDiscreteUnit((rViewInformation.getInverseObjectToViewTransformation() * basegfx::B2DVector(1.0, 0.0)).getLength());
+
+                aRetval.grow(fDiscreteUnit * getDiscreteGrow());
+            }
+
+            return aRetval;
+        }
+
+        // provide unique ID
+        ImplPrimitrive2DIDBlock(PolyPolygonSelectionPrimitive2D, PRIMITIVE2D_ID_POLYPOLYGONSELECTIONPRIMITIVE2D)
+
+    } // end of namespace primitive2d
+} // end of namespace drawinglayer
+
+//////////////////////////////////////////////////////////////////////////////
 // eof

Modified: openoffice/trunk/main/sd/source/ui/view/sdview2.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sd/source/ui/view/sdview2.cxx?rev=1439888&r1=1439887&r2=1439888&view=diff
==============================================================================
--- openoffice/trunk/main/sd/source/ui/view/sdview2.cxx (original)
+++ openoffice/trunk/main/sd/source/ui/view/sdview2.cxx Tue Jan 29 13:32:36 2013
@@ -533,6 +533,12 @@ sal_Int8 View::AcceptDrop( const AcceptD
 		{
 			SdTransferable* pDragTransferable = SD_MOD()->pTransferDrag;
 
+            if(pDragTransferable && (nDropAction & DND_ACTION_LINK))
+            {
+                // suppress own data when it's intention is to use it as fill information
+                pDragTransferable = 0;
+            }
+
 			if( pDragTransferable )
 			{
 				const View* pSourceView = pDragTransferable->GetView();
@@ -602,7 +608,7 @@ sal_Int8 View::AcceptDrop( const AcceptD
 					}
 
 					if( bHasPickObj && !bIsPresTarget &&
-					    ( !pPickObj->ISA( SdrGrafObj ) || bGraphic || bMtf || bBitmap || ( bXFillExchange && !pPickObj->ISA( SdrGrafObj ) && !pPickObj->ISA( SdrOle2Obj ) ) ) )
+					    ( bGraphic || bMtf || bBitmap || bXFillExchange ) )
 					{
 						if( mpDropMarkerObj != pPickObj )
 						{

Modified: openoffice/trunk/main/sd/source/ui/view/sdview3.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sd/source/ui/view/sdview3.cxx?rev=1439888&r1=1439887&r2=1439888&view=diff
==============================================================================
--- openoffice/trunk/main/sd/source/ui/view/sdview3.cxx (original)
+++ openoffice/trunk/main/sd/source/ui/view/sdview3.cxx Tue Jan 29 13:32:36 2013
@@ -295,7 +295,7 @@ sal_Bool View::InsertData( const Transfe
 	SdrObject*				pPickObj = NULL;
 	SdPage*					pPage = NULL;
 	ImageMap*				pImageMap = NULL;
-	sal_Bool					bReturn = sal_False;
+	bool bReturn = false;
 	sal_Bool					bLink = ( ( mnAction & DND_ACTION_LINK ) != 0 );
 	sal_Bool					bCopy = ( ( ( mnAction & DND_ACTION_COPY ) != 0 ) || bLink );
 	sal_uLong					nPasteOptions = SDRINSERT_SETDEFLAYER;
@@ -321,6 +321,12 @@ sal_Bool View::InsertData( const Transfe
 	SdTransferable* pOwnData = NULL;
     SdTransferable* pImplementation = SdTransferable::getImplementation( aDataHelper.GetTransferable() );
 
+    if(pImplementation && (rDnDAction & DND_ACTION_LINK))
+    {
+        // suppress own data when it's intention is to use it as fill information
+        pImplementation = 0;
+    }
+
 	// try to get own transfer data
 	if( pImplementation )
 	{
@@ -373,11 +379,14 @@ sal_Bool View::InsertData( const Transfe
 		}
 	}
 
-	if( pOwnData && !nFormat )
+    // Changed the whole decision tree to be dependent of bReturn as a flag that
+    // the work was done; this allows to check multiple formats and not just fail
+    // when a CHECK_FORMAT_TRANS(*format*) detected format does not work. This is
+    // e.g. necessary for FORMAT_BITMAP
+    if( pOwnData && !nFormat )
 	{
 		const View* pSourceView = pOwnData->GetView();
 
-
         if( pOwnData->GetDocShell() && pOwnData->IsPageTransferable() && ISA( View ) )
 		{
             mpClipboard->HandlePageDrop (*pOwnData);
@@ -419,7 +428,7 @@ sal_Bool View::InsertData( const Transfe
 							}
 						}
 
-						bReturn = sal_True;
+						bReturn = true;
 					}
 				}
 				else
@@ -596,12 +605,12 @@ sal_Bool View::InsertData( const Transfe
 								if( pMarkList != mpDragSrcMarkList )
 									delete pMarkList;
 
-								bReturn = sal_True;
+								bReturn = true;
 							}
 							else
 							{
 								maDropErrorTimer.Start();
-								bReturn = sal_False;
+								bReturn = false;
 							}
 						}
 					}
@@ -610,7 +619,7 @@ sal_Bool View::InsertData( const Transfe
 						pOwnData->SetInternalMove( sal_True );
 						MoveAllMarked( Size( maDropPos.X() - pOwnData->GetStartPos().X(),
 											 maDropPos.Y() - pOwnData->GetStartPos().Y() ), bCopy );
-						bReturn = sal_True;
+						bReturn = true;
 					}
 				}
 			}
@@ -636,7 +645,7 @@ sal_Bool View::InsertData( const Transfe
 				else
 				{
 					maDropErrorTimer.Start();
-					bReturn = sal_False;
+					bReturn = false;
 				}
 			}
 		}
@@ -672,7 +681,8 @@ sal_Bool View::InsertData( const Transfe
 		    pPage->SetPresentationLayout( aLayout, sal_False, sal_False );
 	   }
 	}
-	else if( CHECK_FORMAT_TRANS( SOT_FORMATSTR_ID_DRAWING ) )
+	
+    if(!bReturn && CHECK_FORMAT_TRANS( SOT_FORMATSTR_ID_DRAWING ))
 	{
 		SotStorageStreamRef xStm;
 
@@ -825,7 +835,8 @@ sal_Bool View::InsertData( const Transfe
 			}
 		}
 	}
-	else if( CHECK_FORMAT_TRANS( SOT_FORMATSTR_ID_SBA_FIELDDATAEXCHANGE ) )
+	
+    if(!bReturn && CHECK_FORMAT_TRANS(SOT_FORMATSTR_ID_SBA_FIELDDATAEXCHANGE))
 	{
 		::rtl::OUString aOUString;
 
@@ -844,14 +855,15 @@ sal_Bool View::InsertData( const Transfe
 				aRect.SetPos( maDropPos );
 				pObj->SetLogicRect( aRect );
 				InsertObjectAtView( pObj, *GetSdrPageView(), SDRINSERT_SETDEFLAYER );
-				bReturn = sal_True;
+				bReturn = true;
 			}
 		}
 	}
-	else if( !bLink &&
-			 ( CHECK_FORMAT_TRANS( SOT_FORMATSTR_ID_EMBED_SOURCE ) ||
-			   CHECK_FORMAT_TRANS( SOT_FORMATSTR_ID_EMBEDDED_OBJ ) )  &&
-			   aDataHelper.HasFormat( SOT_FORMATSTR_ID_OBJECTDESCRIPTOR ) )
+	
+    if(!bReturn && 
+        !bLink &&
+        (CHECK_FORMAT_TRANS(SOT_FORMATSTR_ID_EMBED_SOURCE) || CHECK_FORMAT_TRANS(SOT_FORMATSTR_ID_EMBEDDED_OBJ))  &&
+        aDataHelper.HasFormat(SOT_FORMATSTR_ID_OBJECTDESCRIPTOR))
 	{
         //TODO/LATER: is it possible that this format is binary?! (from old versions of SO)
         uno::Reference < io::XInputStream > xStm;
@@ -1031,15 +1043,16 @@ sal_Bool View::InsertData( const Transfe
                         }
                     }
 
-                    bReturn = sal_True;
+                    bReturn = true;
                 }
 			}
 		}
 	}
-	else if( !bLink &&
-			 ( CHECK_FORMAT_TRANS( SOT_FORMATSTR_ID_EMBEDDED_OBJ_OLE ) ||
-			   CHECK_FORMAT_TRANS( SOT_FORMATSTR_ID_EMBED_SOURCE_OLE ) ) &&
-			   aDataHelper.HasFormat( SOT_FORMATSTR_ID_OBJECTDESCRIPTOR_OLE ) )
+	
+    if(!bReturn && 
+        !bLink &&
+        (CHECK_FORMAT_TRANS(SOT_FORMATSTR_ID_EMBEDDED_OBJ_OLE) || CHECK_FORMAT_TRANS(SOT_FORMATSTR_ID_EMBED_SOURCE_OLE)) &&
+        aDataHelper.HasFormat(SOT_FORMATSTR_ID_OBJECTDESCRIPTOR_OLE))
 	{
 		// online insert ole if format is forced or no gdi metafile is available
 		if( (nFormat != 0) || !aDataHelper.HasFormat( FORMAT_GDIMETAFILE ) )
@@ -1182,7 +1195,7 @@ sal_Bool View::InsertData( const Transfe
 
 					// let the object stay in loaded state after insertion
 					pObj->Unload();
-            		bReturn = sal_True;
+            		bReturn = true;
 				}
 			}
 		}
@@ -1193,7 +1206,8 @@ sal_Bool View::InsertData( const Transfe
 			InsertMetaFile( aDataHelper, rPos, pImageMap, true );
 		}
 	}
-	else if( ( !bLink || pPickObj ) && CHECK_FORMAT_TRANS( SOT_FORMATSTR_ID_SVXB ) )
+	
+    if(!bReturn && (!bLink || pPickObj) && CHECK_FORMAT_TRANS(SOT_FORMATSTR_ID_SVXB))
 	{
 		SotStorageStreamRef xStm;
 
@@ -1227,10 +1241,11 @@ sal_Bool View::InsertData( const Transfe
 			ImpCheckInsertPos(aInsertPos, aImageMapSize, GetWorkArea());
 
 			InsertGraphic( aGraphic, mnAction, aInsertPos, NULL, pImageMap );
-			bReturn = sal_True;
+			bReturn = true;
 		}
 	}
-	else if( ( !bLink || pPickObj ) && CHECK_FORMAT_TRANS( FORMAT_GDIMETAFILE ) )
+	
+    if(!bReturn && (!bLink || pPickObj) && CHECK_FORMAT_TRANS(FORMAT_GDIMETAFILE))
 	{
 		Point aInsertPos( rPos );
 
@@ -1253,7 +1268,8 @@ sal_Bool View::InsertData( const Transfe
 
 		bReturn = InsertMetaFile( aDataHelper, aInsertPos, pImageMap, nFormat == 0 ? true : false ) ? sal_True : sal_False;
 	}
-	else if( ( !bLink || pPickObj ) && CHECK_FORMAT_TRANS( FORMAT_BITMAP ) )
+	
+    if(!bReturn && (!bLink || pPickObj) && CHECK_FORMAT_TRANS(FORMAT_BITMAP))
 	{
 		BitmapEx aBmpEx;
 
@@ -1282,10 +1298,11 @@ sal_Bool View::InsertData( const Transfe
 			ImpCheckInsertPos(aInsertPos, aImageMapSize, GetWorkArea());
 
 			InsertGraphic( aBmpEx, mnAction, aInsertPos, NULL, pImageMap );
-			bReturn = sal_True;
+			bReturn = true;
 		}
 	}
-	else if( pPickObj && CHECK_FORMAT_TRANS( SOT_FORMATSTR_ID_XFA ) )
+
+    if(!bReturn && pPickObj && CHECK_FORMAT_TRANS( SOT_FORMATSTR_ID_XFA ) )
 	{
 		SotStorageStreamRef xStm;
 
@@ -1348,7 +1365,8 @@ sal_Bool View::InsertData( const Transfe
 			}
 		}
 	}
-	else if( !bLink && CHECK_FORMAT_TRANS( SOT_FORMATSTR_ID_HTML ) )
+
+    if(!bReturn && !bLink && CHECK_FORMAT_TRANS(SOT_FORMATSTR_ID_HTML))
 	{
 		SotStorageStreamRef xStm;
 
@@ -1359,7 +1377,8 @@ sal_Bool View::InsertData( const Transfe
             bReturn = SdrView::Paste( *xStm, String(), EE_FORMAT_HTML, maDropPos, pPage, nPasteOptions );
 		}
 	}
-	else if( !bLink && CHECK_FORMAT_TRANS( SOT_FORMATSTR_ID_EDITENGINE ) )
+	
+    if(!bReturn && !bLink && CHECK_FORMAT_TRANS(SOT_FORMATSTR_ID_EDITENGINE))
 	{
 		SotStorageStreamRef xStm;
 
@@ -1378,7 +1397,7 @@ sal_Bool View::InsertData( const Transfe
 				{
                     // mba: clipboard always must contain absolute URLs (could be from alien source)
                     pOLV->Read( *xStm, String(), EE_FORMAT_BIN, sal_False, mpDocSh->GetHeaderAttributes() );
-					bReturn = sal_True;
+					bReturn = true;
 				}
 			}
 
@@ -1387,7 +1406,8 @@ sal_Bool View::InsertData( const Transfe
                 bReturn = SdrView::Paste( *xStm, String(), EE_FORMAT_BIN, maDropPos, pPage, nPasteOptions );
 		}
 	}
-	else if( !bLink && CHECK_FORMAT_TRANS( FORMAT_RTF ) )
+
+    if(!bReturn && !bLink && CHECK_FORMAT_TRANS(FORMAT_RTF))
 	{
 		SotStorageStreamRef xStm;
 
@@ -1412,7 +1432,7 @@ sal_Bool View::InsertData( const Transfe
 					{
 						// mba: clipboard always must contain absolute URLs (could be from alien source)
 						pOLV->Read( *xStm, String(), EE_FORMAT_RTF, sal_False, mpDocSh->GetHeaderAttributes() );
-						bReturn = sal_True;
+						bReturn = true;
 					}
 				}
 
@@ -1422,7 +1442,8 @@ sal_Bool View::InsertData( const Transfe
 			}
 		}
 	}
-	else if( CHECK_FORMAT_TRANS( FORMAT_FILE_LIST ) )
+	
+    if(!bReturn && CHECK_FORMAT_TRANS(FORMAT_FILE_LIST))
 	{
         FileList aDropFileList;
 
@@ -1436,9 +1457,10 @@ sal_Bool View::InsertData( const Transfe
             maDropInsertFileTimer.Start();
         }
 
-		bReturn = sal_True;
+		bReturn = true;
 	}
-	else if( CHECK_FORMAT_TRANS( FORMAT_FILE ) )
+
+    if(!bReturn && CHECK_FORMAT_TRANS(FORMAT_FILE))
 	{
         String aDropFile;
 
@@ -1449,9 +1471,10 @@ sal_Bool View::InsertData( const Transfe
 			maDropInsertFileTimer.Start();
         }
 
-		bReturn = sal_True;
+		bReturn = true;
 	}
-	else if( !bLink && CHECK_FORMAT_TRANS( FORMAT_STRING ) )
+
+    if(!bReturn && !bLink && CHECK_FORMAT_TRANS(FORMAT_STRING))
 	{
 		if( ( FORMAT_STRING == nFormat ) ||
             ( !aDataHelper.HasFormat( SOT_FORMATSTR_ID_SOLK ) &&
@@ -1467,7 +1490,7 @@ sal_Bool View::InsertData( const Transfe
 				if( pOLV )
 				{
 					pOLV->InsertText( aOUString );
-					bReturn = sal_True;
+					bReturn = true;
 				}
 
                 if( !bReturn )

Modified: openoffice/trunk/main/svx/Library_svxcore.mk
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svx/Library_svxcore.mk?rev=1439888&r1=1439887&r2=1439888&view=diff
==============================================================================
--- openoffice/trunk/main/svx/Library_svxcore.mk (original)
+++ openoffice/trunk/main/svx/Library_svxcore.mk Tue Jan 29 13:32:36 2013
@@ -244,7 +244,7 @@ $(eval $(call gb_Library_add_exception_o
     svx/source/sdr/overlay/overlayrollingrectangle \
     svx/source/sdr/overlay/overlaytriangle \
     svx/source/sdr/overlay/overlayselection \
-    svx/source/sdr/overlay/overlayhatchrect \
+    svx/source/sdr/overlay/overlayrectangle \
     svx/source/sdr/overlay/overlaybitmapex \
     svx/source/sdr/overlay/overlaymanagerbuffered \
     svx/source/sdr/overlay/overlayhelpline \

Modified: openoffice/trunk/main/svx/Package_inc.mk
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svx/Package_inc.mk?rev=1439888&r1=1439887&r2=1439888&view=diff
==============================================================================
--- openoffice/trunk/main/svx/Package_inc.mk (original)
+++ openoffice/trunk/main/svx/Package_inc.mk Tue Jan 29 13:32:36 2013
@@ -185,7 +185,7 @@ $(eval $(call gb_Package_add_file,svx_in
 $(eval $(call gb_Package_add_file,svx_inc,inc/svx/sdr/overlay/overlaymanager.hxx,svx/sdr/overlay/overlaymanager.hxx))
 $(eval $(call gb_Package_add_file,svx_inc,inc/svx/sdr/overlay/overlayprimitive2dsequenceobject.hxx,svx/sdr/overlay/overlayprimitive2dsequenceobject.hxx))
 $(eval $(call gb_Package_add_file,svx_inc,inc/svx/sdr/overlay/overlayobjectlist.hxx,svx/sdr/overlay/overlayobjectlist.hxx))
-$(eval $(call gb_Package_add_file,svx_inc,inc/svx/sdr/overlay/overlayhatchrect.hxx,svx/sdr/overlay/overlayhatchrect.hxx))
+$(eval $(call gb_Package_add_file,svx_inc,inc/svx/sdr/overlay/overlayrectangle.hxx,svx/sdr/overlay/overlayrectangle.hxx))
 $(eval $(call gb_Package_add_file,svx_inc,inc/svx/sdr/overlay/overlaytools.hxx,svx/sdr/overlay/overlaytools.hxx))
 $(eval $(call gb_Package_add_file,svx_inc,inc/svx/sdr/overlay/overlayselection.hxx,svx/sdr/overlay/overlayselection.hxx))
 $(eval $(call gb_Package_add_file,svx_inc,inc/svx/sdr/overlay/overlaytriangle.hxx,svx/sdr/overlay/overlaytriangle.hxx))

Modified: openoffice/trunk/main/svx/inc/svx/sdr/overlay/overlayanimatedbitmapex.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svx/inc/svx/sdr/overlay/overlayanimatedbitmapex.hxx?rev=1439888&r1=1439887&r2=1439888&view=diff
==============================================================================
--- openoffice/trunk/main/svx/inc/svx/sdr/overlay/overlayanimatedbitmapex.hxx (original)
+++ openoffice/trunk/main/svx/inc/svx/sdr/overlay/overlayanimatedbitmapex.hxx Tue Jan 29 13:32:36 2013
@@ -49,16 +49,13 @@ namespace sdr
 			// #i53216# added CursorBlinkTime (in ms)
 			sal_uInt32								mnBlinkTime;
 
-			// bitfield
-			// Flag to remember which state to draw. Inited with sal_False (0)
-			unsigned								mbOverlayState : 1;
+			/// bitfield
+			// Flag to remember which state to draw. Inited with false (0)
+			bool                                    mbOverlayState : 1;
 
 			// geometry creation for OverlayObject
 			virtual drawinglayer::primitive2d::Primitive2DSequence createOverlayObjectPrimitive2DSequence();
 
-            // #i53216# check blink time value range (currently 25 < mnBlinkTime < 10000)
-			void impCheckBlinkTimeValueRange();
-
 		public:
 			OverlayAnimatedBitmapEx(
 				const basegfx::B2DPoint& rBasePos,

Modified: openoffice/trunk/main/svx/inc/svx/sdr/overlay/overlayobject.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svx/inc/svx/sdr/overlay/overlayobject.hxx?rev=1439888&r1=1439887&r2=1439888&view=diff
==============================================================================
--- openoffice/trunk/main/svx/inc/svx/sdr/overlay/overlayobject.hxx (original)
+++ openoffice/trunk/main/svx/inc/svx/sdr/overlay/overlayobject.hxx Tue Jan 29 13:32:36 2013
@@ -85,6 +85,9 @@ namespace sdr
             // a missing implementation
 			virtual drawinglayer::primitive2d::Primitive2DSequence createOverlayObjectPrimitive2DSequence();
 
+            // #i53216# check blink time value range (currently 25 < mnBlinkTime < 10000)
+            sal_uInt32 impCheckBlinkTimeValueRange(sal_uInt32 nBlinkTime) const;
+
 			// region in logical coordinates
 			basegfx::B2DRange								maBaseRange;
 

Modified: openoffice/trunk/main/svx/inc/svx/sdr/overlay/overlaypolypolygon.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svx/inc/svx/sdr/overlay/overlaypolypolygon.hxx?rev=1439888&r1=1439887&r2=1439888&view=diff
==============================================================================
--- openoffice/trunk/main/svx/inc/svx/sdr/overlay/overlaypolypolygon.hxx (original)
+++ openoffice/trunk/main/svx/inc/svx/sdr/overlay/overlaypolypolygon.hxx Tue Jan 29 13:32:36 2013
@@ -26,6 +26,7 @@
 
 #include <svx/sdr/overlay/overlayobject.hxx>
 #include <basegfx/polygon/b2dpolypolygon.hxx>
+#include <basegfx/polygon/b2dpolygon.hxx>
 
 //////////////////////////////////////////////////////////////////////////////
 
@@ -33,22 +34,23 @@ namespace sdr
 {
 	namespace overlay
 	{
-		class SVX_DLLPUBLIC OverlayPolyPolygonStriped : public OverlayObject
+		class SVX_DLLPUBLIC OverlayPolyPolygonStripedAndFilled : public OverlayObject
 		{
 		protected:
 			// geometry
-			basegfx::B2DPolyPolygon				maPolyPolygon;
+			basegfx::B2DPolyPolygon				maLinePolyPolygon;
 
 			// geometry creation for OverlayObject
 			virtual drawinglayer::primitive2d::Primitive2DSequence createOverlayObjectPrimitive2DSequence();
 
 		public:
-			OverlayPolyPolygonStriped(const basegfx::B2DPolyPolygon& rPolyPolygon);
-			virtual ~OverlayPolyPolygonStriped();
+			OverlayPolyPolygonStripedAndFilled(
+                const basegfx::B2DPolyPolygon& rLinePolyPolygon);
+			virtual ~OverlayPolyPolygonStripedAndFilled();
 
 			// change geometry
-			basegfx::B2DPolyPolygon getPolyPolygon() const { return maPolyPolygon; }
-			void setPolyPolygon(const basegfx::B2DPolyPolygon& rNew);
+			basegfx::B2DPolyPolygon getLinePolyPolygon() const { return maLinePolyPolygon; }
+			void setLinePolyPolygon(const basegfx::B2DPolyPolygon& rNew);
 
 			// react on stripe definition change
 			virtual void stripeDefinitionHasChanged();

Added: openoffice/trunk/main/svx/inc/svx/sdr/overlay/overlayrectangle.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svx/inc/svx/sdr/overlay/overlayrectangle.hxx?rev=1439888&view=auto
==============================================================================
--- openoffice/trunk/main/svx/inc/svx/sdr/overlay/overlayrectangle.hxx (added)
+++ openoffice/trunk/main/svx/inc/svx/sdr/overlay/overlayrectangle.hxx Tue Jan 29 13:32:36 2013
@@ -0,0 +1,93 @@
+/**************************************************************
+ * 
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * 
+ *************************************************************/
+
+
+
+#ifndef _SDR_OVERLAY_OVERLAYRECTANGLE_HXX
+#define _SDR_OVERLAY_OVERLAYRECTANGLE_HXX
+
+#include <svx/sdr/overlay/overlayobject.hxx>
+#include <tools/gen.hxx>
+
+//////////////////////////////////////////////////////////////////////////////
+
+class PolyPolygon;
+
+namespace sdr
+{
+	namespace overlay
+	{
+		class OverlayRectangle : public OverlayObjectWithBasePosition
+		{
+            // geometric definitions
+			basegfx::B2DPoint				maSecondPosition;
+            const double                    mfTransparence;
+            const double					mfDiscreteGrow;
+            const double					mfDiscreteShrink;
+            const double					mfRotation;
+
+            // #i53216# added CursorBlinkTime (in ms)
+            sal_uInt32						mnBlinkTime;
+
+            /// bitfield
+            // Flag to remember which state to draw. Inited with false (0)
+            bool                            mbOverlayState : 1;
+
+			// geometry creation for OverlayObject
+			virtual drawinglayer::primitive2d::Primitive2DSequence createOverlayObjectPrimitive2DSequence();
+
+		public:
+			OverlayRectangle(
+				const basegfx::B2DPoint& rBasePosition,
+                const basegfx::B2DPoint& rSecondPosition,
+                const Color& rHatchColor,
+                double fTransparence,
+			    double fDiscreteGrow,
+			    double fDiscreteShrink,
+                double fRotation,
+                sal_uInt32 nBlinkTime,
+                bool bAnimate);
+
+			const basegfx::B2DPoint& getSecondPosition() const { return maSecondPosition; }
+            void setSecondPosition(const basegfx::B2DPoint&);
+
+			// data read access
+            double getTransparence() const { return mfTransparence; }
+			double getDiscreteGrow() const { return mfDiscreteGrow; }
+			double getDiscreteShrink() const { return mfDiscreteShrink; }
+			double getRotation() const { return mfRotation; }
+
+            // added CursorBlinkTime (in ms)
+            sal_uInt32 getBlinkTime() const { return mnBlinkTime; }
+            void setBlinkTime(sal_uInt32 nNew);
+
+            // execute event from base class ::sdr::animation::Event. Default
+            // implementation does nothing and does not create a new event.
+            virtual void Trigger(sal_uInt32 nTime);
+		};
+	} // end of namespace overlay
+} // end of namespace sdr
+
+//////////////////////////////////////////////////////////////////////////////
+
+#endif //_SDR_OVERLAY_OVERLAYRECTANGLE_HXX
+
+// eof

Modified: openoffice/trunk/main/svx/inc/svx/sdr/overlay/overlaytools.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svx/inc/svx/sdr/overlay/overlaytools.hxx?rev=1439888&r1=1439887&r2=1439888&view=diff
==============================================================================
--- openoffice/trunk/main/svx/inc/svx/sdr/overlay/overlaytools.hxx (original)
+++ openoffice/trunk/main/svx/inc/svx/sdr/overlay/overlaytools.hxx Tue Jan 29 13:32:36 2013
@@ -122,16 +122,15 @@ namespace drawinglayer
 {
 	namespace primitive2d
 	{
-		class OverlayHatchRectanglePrimitive : public DiscreteMetricDependentPrimitive2D
+		class OverlayRectanglePrimitive : public DiscreteMetricDependentPrimitive2D
 		{
 		private:
             // the logic rectangle definition
             basegfx::B2DRange               maObjectRange;
 
-            // the hatch definition
-			double							mfDiscreteHatchDistance;
-			double							mfHatchRotation;
-			basegfx::BColor					maHatchColor;
+            // the graphic definition
+			basegfx::BColor					maColor;
+            double                          mfTransparence;
 
             // the dscrete grow and shrink of the box
             double							mfDiscreteGrow;
@@ -144,21 +143,19 @@ namespace drawinglayer
 			virtual Primitive2DSequence create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const;
 
 		public:
-			OverlayHatchRectanglePrimitive(
+			OverlayRectanglePrimitive(
                 const basegfx::B2DRange& rObjectRange,
-				double fDiscreteHatchDistance,
-				double fHatchRotation,
-				const basegfx::BColor& rHatchColor,
+				const basegfx::BColor& rColor,
+                double fTransparence,
 				double fDiscreteGrow,
                 double fDiscreteShrink,
                 double fRotation);
 
 			// data access
             const basegfx::B2DRange& getObjectRange() const { return maObjectRange; }
-			double getDiscreteHatchDistance() const { return mfDiscreteHatchDistance; }
-			double getHatchRotation() const { return mfHatchRotation; }
-			const basegfx::BColor& getHatchColor() const { return maHatchColor; }
-			double getDiscreteGrow() const { return mfDiscreteGrow; }
+			const basegfx::BColor& getColor() const { return maColor; }
+            double getTransparence() const { return mfTransparence; }
+            double getDiscreteGrow() const { return mfDiscreteGrow; }
             double getDiscreteShrink() const { return mfDiscreteShrink; }
             double getRotation() const { return mfRotation; }
 

Modified: openoffice/trunk/main/svx/inc/svx/sdr/primitive2d/svx_primitivetypes2d.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svx/inc/svx/sdr/primitive2d/svx_primitivetypes2d.hxx?rev=1439888&r1=1439887&r2=1439888&view=diff
==============================================================================
--- openoffice/trunk/main/svx/inc/svx/sdr/primitive2d/svx_primitivetypes2d.hxx (original)
+++ openoffice/trunk/main/svx/inc/svx/sdr/primitive2d/svx_primitivetypes2d.hxx Tue Jan 29 13:32:36 2013
@@ -46,7 +46,7 @@
 #define PRIMITIVE2D_ID_SDRBORDERLINEPRIMITIVE2D			(PRIMITIVE2D_ID_RANGE_SVX| 15)
 #define PRIMITIVE2D_ID_OVERLAYBITMAPEXPRIMITIVE			(PRIMITIVE2D_ID_RANGE_SVX| 16)
 #define PRIMITIVE2D_ID_OVERLAYCROSSHAIRPRIMITIVE        (PRIMITIVE2D_ID_RANGE_SVX| 17)
-#define PRIMITIVE2D_ID_OVERLAYHATCHRECTANGLEPRIMITIVE   (PRIMITIVE2D_ID_RANGE_SVX| 18)
+#define PRIMITIVE2D_ID_OVERLAYRECTANGLEPRIMITIVE        (PRIMITIVE2D_ID_RANGE_SVX| 18)
 #define PRIMITIVE2D_ID_OVERLAYHELPLINESTRIPEDPRIMITIVE  (PRIMITIVE2D_ID_RANGE_SVX| 19)
 #define PRIMITIVE2D_ID_OVERLAYROLLINGRECTANGLEPRIMITIVE (PRIMITIVE2D_ID_RANGE_SVX| 20)
 #define PRIMITIVE2D_ID_SDRCONTROLPRIMITIVE2D            (PRIMITIVE2D_ID_RANGE_SVX| 21)

Modified: openoffice/trunk/main/svx/inc/svx/svdview.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svx/inc/svx/svdview.hxx?rev=1439888&r1=1439887&r2=1439888&view=diff
==============================================================================
--- openoffice/trunk/main/svx/inc/svx/svdview.hxx (original)
+++ openoffice/trunk/main/svx/inc/svx/svdview.hxx Tue Jan 29 13:32:36 2013
@@ -32,6 +32,8 @@
 #include "svx/svxdllapi.h"
 #include <svx/svdcrtv.hxx>
 #include <unotools/options.hxx>
+#include <basegfx/polygon/b2dpolypolygon.hxx>
+#include <basegfx/polygon/b2dpolygon.hxx>
 
 ////////////////////////////////////////////////////////////////////////////////////////////////////
 //
@@ -155,7 +157,9 @@ class SVX_DLLPUBLIC SdrDropMarkerOverlay
 	// The OverlayObjects
 	::sdr::overlay::OverlayObjectList				maObjects;
 
-	void ImplCreateOverlays(const SdrView& rView, const basegfx::B2DPolyPolygon& rPolyPolygon);
+	void ImplCreateOverlays(
+        const SdrView& rView, 
+        const basegfx::B2DPolyPolygon& rLinePolyPolygon);
 
 public:
 	SdrDropMarkerOverlay(const SdrView& rView, const SdrObject& rObject);

Modified: openoffice/trunk/main/svx/source/engine3d/dragmt3d.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svx/source/engine3d/dragmt3d.cxx?rev=1439888&r1=1439887&r2=1439888&view=diff
==============================================================================
--- openoffice/trunk/main/svx/source/engine3d/dragmt3d.cxx (original)
+++ openoffice/trunk/main/svx/source/engine3d/dragmt3d.cxx Tue Jan 29 13:32:36 2013
@@ -300,7 +300,8 @@ void E3dDragMethod::CreateOverlayGeometr
 
 	if(aResult.count())
 	{
-		::sdr::overlay::OverlayPolyPolygonStriped* pNew = new ::sdr::overlay::OverlayPolyPolygonStriped(aResult);
+		::sdr::overlay::OverlayPolyPolygonStripedAndFilled* pNew = new ::sdr::overlay::OverlayPolyPolygonStripedAndFilled(
+            aResult);
 		rOverlayManager.add(*pNew);
 		addToOverlayObjectList(*pNew);
 	}

Modified: openoffice/trunk/main/svx/source/engine3d/view3d.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svx/source/engine3d/view3d.cxx?rev=1439888&r1=1439887&r2=1439888&view=diff
==============================================================================
--- openoffice/trunk/main/svx/source/engine3d/view3d.cxx (original)
+++ openoffice/trunk/main/svx/source/engine3d/view3d.cxx Tue Jan 29 13:32:36 2013
@@ -219,7 +219,8 @@ void Impl3DMirrorConstructOverlay::SetMi
 			        basegfx::B2DPolyPolygon aPolyPolygon(mpPolygons[b]);
 			        aPolyPolygon.transform(aMatrixTransform);
 
-			        ::sdr::overlay::OverlayPolyPolygonStriped* pNew = new ::sdr::overlay::OverlayPolyPolygonStriped(aPolyPolygon);
+			        ::sdr::overlay::OverlayPolyPolygonStripedAndFilled* pNew = new ::sdr::overlay::OverlayPolyPolygonStripedAndFilled(
+                        aPolyPolygon);
 			        pTargetOverlay->add(*pNew);
 			        maObjects.append(*pNew);
                 }

Modified: openoffice/trunk/main/svx/source/sdr/overlay/overlayanimatedbitmapex.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svx/source/sdr/overlay/overlayanimatedbitmapex.cxx?rev=1439888&r1=1439887&r2=1439888&view=diff
==============================================================================
--- openoffice/trunk/main/svx/source/sdr/overlay/overlayanimatedbitmapex.cxx (original)
+++ openoffice/trunk/main/svx/source/sdr/overlay/overlayanimatedbitmapex.cxx Tue Jan 29 13:32:36 2013
@@ -36,19 +36,6 @@ namespace sdr
 {
 	namespace overlay
 	{
-		// #i53216# check blink time value range
-		void OverlayAnimatedBitmapEx::impCheckBlinkTimeValueRange()
-		{
-			if(mnBlinkTime < 25)
-			{
-				mnBlinkTime = 25;
-			}
-			else if(mnBlinkTime > 10000)
-			{
-				mnBlinkTime = 10000;
-			}
-		}
-
 		drawinglayer::primitive2d::Primitive2DSequence OverlayAnimatedBitmapEx::createOverlayObjectPrimitive2DSequence()
 		{
             if(mbOverlayState)
@@ -96,7 +83,7 @@ namespace sdr
 			mbAllowsAnimation = true;
 
 			// #i53216# check blink time value range
-			impCheckBlinkTimeValueRange();
+			mnBlinkTime = impCheckBlinkTimeValueRange(mnBlinkTime);
 		}
 
 		OverlayAnimatedBitmapEx::~OverlayAnimatedBitmapEx()
@@ -175,7 +162,7 @@ namespace sdr
 				mnBlinkTime = nNew;
 
 				// #i53216# check blink time value range
-				impCheckBlinkTimeValueRange();
+				mnBlinkTime = impCheckBlinkTimeValueRange(mnBlinkTime);
 
 				// register change (after change)
 				objectChange();

Modified: openoffice/trunk/main/svx/source/sdr/overlay/overlaymanager.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svx/source/sdr/overlay/overlaymanager.cxx?rev=1439888&r1=1439887&r2=1439888&view=diff
==============================================================================
--- openoffice/trunk/main/svx/source/sdr/overlay/overlaymanager.cxx (original)
+++ openoffice/trunk/main/svx/source/sdr/overlay/overlaymanager.cxx Tue Jan 29 13:32:36 2013
@@ -157,8 +157,14 @@ namespace sdr
 				if(OUTDEV_WINDOW == getOutputDevice().GetOutDevType())
 				{
 					const Size aOutputSizePixel(getOutputDevice().GetOutputSizePixel());
-					aViewRange = basegfx::B2DRange(0.0, 0.0, aOutputSizePixel.getWidth(), aOutputSizePixel.getHeight());
-			        aViewRange.transform(getOutputDevice().GetInverseViewTransformation());
+
+                    // only set when we *have* a output size, else let aViewRange
+                    // stay on empty
+                    if(aOutputSizePixel.Width() && aOutputSizePixel.Height())
+                    {
+                        aViewRange = basegfx::B2DRange(0.0, 0.0, aOutputSizePixel.getWidth(), aOutputSizePixel.getHeight());
+                        aViewRange.transform(getOutputDevice().GetInverseViewTransformation());
+                    }
 				}
 
                 OverlayManager* pThis = const_cast< OverlayManager* >(this);

Modified: openoffice/trunk/main/svx/source/sdr/overlay/overlayobject.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svx/source/sdr/overlay/overlayobject.cxx?rev=1439888&r1=1439887&r2=1439888&view=diff
==============================================================================
--- openoffice/trunk/main/svx/source/sdr/overlay/overlayobject.cxx (original)
+++ openoffice/trunk/main/svx/source/sdr/overlay/overlayobject.cxx Tue Jan 29 13:32:36 2013
@@ -72,6 +72,20 @@ namespace sdr
             return drawinglayer::primitive2d::Primitive2DSequence();
         }
 
+        sal_uInt32 OverlayObject::impCheckBlinkTimeValueRange(sal_uInt32 nBlinkTime) const
+        {
+            if(nBlinkTime < 25)
+            {
+                nBlinkTime = 25;
+            }
+            else if(nBlinkTime > 10000)
+            {
+                nBlinkTime = 10000;
+            }
+
+            return nBlinkTime;
+        }
+
 		void OverlayObject::allowAntiAliase(bool bNew)
         {
 			if(bNew != (bool)mbAllowsAntiAliase)

Modified: openoffice/trunk/main/svx/source/sdr/overlay/overlaypolypolygon.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svx/source/sdr/overlay/overlaypolypolygon.cxx?rev=1439888&r1=1439887&r2=1439888&view=diff
==============================================================================
--- openoffice/trunk/main/svx/source/sdr/overlay/overlaypolypolygon.cxx (original)
+++ openoffice/trunk/main/svx/source/sdr/overlay/overlaypolypolygon.cxx Tue Jan 29 13:32:36 2013
@@ -37,7 +37,7 @@ namespace sdr
 {
 	namespace overlay
 	{
-		drawinglayer::primitive2d::Primitive2DSequence OverlayPolyPolygonStriped::createOverlayObjectPrimitive2DSequence()
+		drawinglayer::primitive2d::Primitive2DSequence OverlayPolyPolygonStripedAndFilled::createOverlayObjectPrimitive2DSequence()
 		{
 			drawinglayer::primitive2d::Primitive2DSequence aRetval;
 
@@ -46,43 +46,56 @@ namespace sdr
                 const basegfx::BColor aRGBColorA(getOverlayManager()->getStripeColorA().getBColor());
                 const basegfx::BColor aRGBColorB(getOverlayManager()->getStripeColorB().getBColor());
                 const double fStripeLengthPixel(getOverlayManager()->getStripeLengthPixel());
-
-                const drawinglayer::primitive2d::Primitive2DReference aReference(
+                const drawinglayer::primitive2d::Primitive2DReference aStriped(
                     new drawinglayer::primitive2d::PolyPolygonMarkerPrimitive2D(
-                        getPolyPolygon(),
+                        getLinePolyPolygon(),
                         aRGBColorA,
                         aRGBColorB,
                         fStripeLengthPixel));
 
-                aRetval = drawinglayer::primitive2d::Primitive2DSequence(&aReference, 1);
+                aRetval = drawinglayer::primitive2d::Primitive2DSequence(&aStriped, 1);
+
+                const SvtOptionsDrawinglayer aSvtOptionsDrawinglayer;
+                const basegfx::BColor aHilightColor(aSvtOptionsDrawinglayer.getHilightColor().getBColor());
+                const double fTransparence(aSvtOptionsDrawinglayer.GetTransparentSelectionPercent() * 0.01);
+
+                const drawinglayer::primitive2d::Primitive2DReference aFilled(
+                    new drawinglayer::primitive2d::PolyPolygonSelectionPrimitive2D(
+                        getLinePolyPolygon(),
+                        aHilightColor,
+                        fTransparence,
+                        3.0,
+                        false));
+
+                drawinglayer::primitive2d::appendPrimitive2DReferenceToPrimitive2DSequence(aRetval, aFilled);
             }
 
             return aRetval;
 		}
 
-		void OverlayPolyPolygonStriped::stripeDefinitionHasChanged()
+		void OverlayPolyPolygonStripedAndFilled::stripeDefinitionHasChanged()
 		{
 			// react on OverlayManager's stripe definition change
 			objectChange();
 		}
 
-		OverlayPolyPolygonStriped::OverlayPolyPolygonStriped(
-			const basegfx::B2DPolyPolygon& rPolyPolygon)
+		OverlayPolyPolygonStripedAndFilled::OverlayPolyPolygonStripedAndFilled(
+			const basegfx::B2DPolyPolygon& rLinePolyPolygon)
 		:	OverlayObject(Color(COL_BLACK)),
-			maPolyPolygon(rPolyPolygon)
+			maLinePolyPolygon(rLinePolyPolygon)
 		{
 		}
 		
-		OverlayPolyPolygonStriped::~OverlayPolyPolygonStriped()
+		OverlayPolyPolygonStripedAndFilled::~OverlayPolyPolygonStripedAndFilled()
 		{
 		}
 
-		void OverlayPolyPolygonStriped::setPolyPolygon(const basegfx::B2DPolyPolygon& rNew)
+		void OverlayPolyPolygonStripedAndFilled::setLinePolyPolygon(const basegfx::B2DPolyPolygon& rNew)
 		{
-			if(rNew != maPolyPolygon)
+			if(rNew != maLinePolyPolygon)
 			{
 				// remember new value
-				maPolyPolygon = rNew;
+				maLinePolyPolygon = rNew;
 
 				// register change (after change)
 				objectChange();

Added: openoffice/trunk/main/svx/source/sdr/overlay/overlayrectangle.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svx/source/sdr/overlay/overlayrectangle.cxx?rev=1439888&view=auto
==============================================================================
--- openoffice/trunk/main/svx/source/sdr/overlay/overlayrectangle.cxx (added)
+++ openoffice/trunk/main/svx/source/sdr/overlay/overlayrectangle.cxx Tue Jan 29 13:32:36 2013
@@ -0,0 +1,159 @@
+/**************************************************************
+ * 
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ * 
+ *************************************************************/
+
+
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_svx.hxx"
+
+#include <svx/sdr/overlay/overlayrectangle.hxx>
+#include <vcl/outdev.hxx>
+#include <basegfx/matrix/b2dhommatrix.hxx>
+#include <basegfx/polygon/b2dpolygontools.hxx>
+#include <basegfx/polygon/b2dpolygon.hxx>
+#include <basegfx/numeric/ftools.hxx>
+#include <svx/sdr/overlay/overlaytools.hxx>
+#include <svx/sdr/overlay/overlaymanager.hxx>
+#include <vcl/svapp.hxx>
+
+//////////////////////////////////////////////////////////////////////////////
+
+namespace sdr
+{
+	namespace overlay
+	{
+		drawinglayer::primitive2d::Primitive2DSequence OverlayRectangle::createOverlayObjectPrimitive2DSequence()
+		{
+            const basegfx::B2DRange aHatchRange(getBasePosition(), getSecondPosition());
+            basegfx::BColor aColor(getBaseColor().getBColor());
+            static double fChange(0.1); // just small optical change, do not make it annoying
+
+            if(mbOverlayState)
+            {
+                aColor += basegfx::B3DTuple(fChange, fChange, fChange);
+                aColor.clamp();
+            }
+            else
+            {
+                aColor -= basegfx::B3DTuple(fChange, fChange, fChange);
+                aColor.clamp();
+            }
+
+            const drawinglayer::primitive2d::Primitive2DReference aReference(
+                new drawinglayer::primitive2d::OverlayRectanglePrimitive(
+                    aHatchRange,
+                    aColor,
+                    getTransparence(),
+                    getDiscreteGrow(),
+                    getDiscreteShrink(),
+                    getRotation()));
+
+            return drawinglayer::primitive2d::Primitive2DSequence(&aReference, 1);
+		}
+
+        OverlayRectangle::OverlayRectangle(
+            const basegfx::B2DPoint& rBasePosition,
+            const basegfx::B2DPoint& rSecondPosition,
+            const Color& rHatchColor,
+            double fTransparence,
+            double fDiscreteGrow,
+            double fDiscreteShrink,
+            double fRotation,
+            sal_uInt32 nBlinkTime,
+            bool bAnimate)
+		:	OverlayObjectWithBasePosition(rBasePosition, rHatchColor),
+            maSecondPosition(rSecondPosition),
+            mfTransparence(fTransparence),
+            mfDiscreteGrow(fDiscreteGrow),
+            mfDiscreteShrink(fDiscreteShrink),
+            mfRotation(fRotation),
+            mnBlinkTime(nBlinkTime),
+            mbOverlayState(false)
+		{
+            if(Application::GetSettings().GetStyleSettings().GetHighContrastMode())
+            {
+                // no animation in high contrast mode
+                bAnimate = false;
+            }
+
+            // set AllowsAnimation flag to mark this object as animation capable
+            mbAllowsAnimation = bAnimate;
+
+            // #i53216# check blink time value range
+            mnBlinkTime = impCheckBlinkTimeValueRange(mnBlinkTime);
+		}
+
+		void OverlayRectangle::setSecondPosition(const basegfx::B2DPoint& rNew)
+		{
+			if(rNew != maSecondPosition)
+			{
+				// remember new value
+				maSecondPosition = rNew;
+
+				// register change (after change)
+				objectChange();
+			}
+		}
+
+        void OverlayRectangle::setBlinkTime(sal_uInt32 nNew)
+		{
+			if(mnBlinkTime != nNew)
+			{
+				// remember new value
+				mnBlinkTime = nNew;
+
+				// #i53216# check blink time value range
+				mnBlinkTime = impCheckBlinkTimeValueRange(mnBlinkTime);
+
+				// register change (after change)
+				objectChange();
+			}
+		}
+
+		void OverlayRectangle::Trigger(sal_uInt32 nTime)
+		{
+			if(getOverlayManager())
+			{
+				// #i53216# produce event after nTime + x
+				SetTime(nTime + mnBlinkTime);
+
+				// switch state
+				if(mbOverlayState)
+				{
+					mbOverlayState = false;
+				}
+				else
+				{
+					mbOverlayState = true;
+				}
+
+				// re-insert me as event
+				getOverlayManager()->InsertEvent(this);
+
+                // register change (after change)
+				objectChange();
+			}
+		}
+	} // end of namespace overlay
+} // end of namespace sdr
+
+//////////////////////////////////////////////////////////////////////////////
+// eof

Modified: openoffice/trunk/main/svx/source/sdr/overlay/overlayrollingrectangle.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svx/source/sdr/overlay/overlayrollingrectangle.cxx?rev=1439888&r1=1439887&r2=1439888&view=diff
==============================================================================
--- openoffice/trunk/main/svx/source/sdr/overlay/overlayrollingrectangle.cxx (original)
+++ openoffice/trunk/main/svx/source/sdr/overlay/overlayrollingrectangle.cxx Tue Jan 29 13:32:36 2013
@@ -32,7 +32,7 @@
 #include <svx/sdr/overlay/overlaymanager.hxx>
 #include <basegfx/polygon/b2dpolygontools.hxx>
 #include <basegfx/polygon/b2dpolygon.hxx>
-#include <drawinglayer/primitive2d/polygonprimitive2d.hxx>
+#include <drawinglayer/primitive2d/polypolygonprimitive2d.hxx>
 
 //////////////////////////////////////////////////////////////////////////////
 
@@ -49,20 +49,30 @@ namespace sdr
                 const basegfx::BColor aRGBColorA(getOverlayManager()->getStripeColorA().getBColor());
                 const basegfx::BColor aRGBColorB(getOverlayManager()->getStripeColorB().getBColor());
                 const double fStripeLengthPixel(getOverlayManager()->getStripeLengthPixel());
-    			const basegfx::B2DRange aRollingRectangle(getBasePosition(), getSecondPosition());
-                
+                const basegfx::B2DRange aRollingRectangle(getBasePosition(), getSecondPosition());
+
                 if(getShowBounds())
                 {
                     // view-independent part, create directly
-    			    const basegfx::B2DPolygon aPolygon(basegfx::tools::createPolygonFromRect(aRollingRectangle));
-                    const drawinglayer::primitive2d::Primitive2DReference aReference(
-                        new drawinglayer::primitive2d::PolygonMarkerPrimitive2D(
-                            aPolygon,
-                            aRGBColorA,
-                            aRGBColorB,
-                            fStripeLengthPixel));
+                    const basegfx::B2DPolygon aPolygon(basegfx::tools::createPolygonFromRect(aRollingRectangle));
 
-                    drawinglayer::primitive2d::appendPrimitive2DReferenceToPrimitive2DSequence(aRetval, aReference);
+                    aRetval.realloc(2);
+                    aRetval[0] = new drawinglayer::primitive2d::PolyPolygonMarkerPrimitive2D(
+                        basegfx::B2DPolyPolygon(aPolygon),
+                        aRGBColorA,
+                        aRGBColorB,
+                        fStripeLengthPixel);
+
+                    const SvtOptionsDrawinglayer aSvtOptionsDrawinglayer;
+                    const basegfx::BColor aHilightColor(aSvtOptionsDrawinglayer.getHilightColor().getBColor());
+                    const double fTransparence(aSvtOptionsDrawinglayer.GetTransparentSelectionPercent() * 0.01);
+
+                    aRetval[1] = new drawinglayer::primitive2d::PolyPolygonSelectionPrimitive2D(
+                        basegfx::B2DPolyPolygon(aPolygon),
+                        aHilightColor,
+                        fTransparence,
+                        3.0,
+                        false);
                 }
 
                 if(getExtendedLines())

Modified: openoffice/trunk/main/svx/source/sdr/overlay/overlaytools.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svx/source/sdr/overlay/overlaytools.cxx?rev=1439888&r1=1439887&r2=1439888&view=diff
==============================================================================
--- openoffice/trunk/main/svx/source/sdr/overlay/overlaytools.cxx (original)
+++ openoffice/trunk/main/svx/source/sdr/overlay/overlaytools.cxx Tue Jan 29 13:32:36 2013
@@ -34,6 +34,8 @@
 #include <drawinglayer/primitive2d/polypolygonprimitive2d.hxx>
 #include <drawinglayer/geometry/viewinformation2d.hxx>
 #include <basegfx/matrix/b2dhommatrixtools.hxx>
+#include <drawinglayer/primitive2d/unifiedtransparenceprimitive2d.hxx>
+#include <vcl/svapp.hxx>
 
 //////////////////////////////////////////////////////////////////////////////
 
@@ -184,82 +186,122 @@ namespace drawinglayer
 {
 	namespace primitive2d
 	{
-        OverlayHatchRectanglePrimitive::OverlayHatchRectanglePrimitive(
+        OverlayRectanglePrimitive::OverlayRectanglePrimitive(
             const basegfx::B2DRange& rObjectRange,
-			double fDiscreteHatchDistance,
-			double fHatchRotation,
-			const basegfx::BColor& rHatchColor,
+			const basegfx::BColor& rColor,
+            double fTransparence,
             double fDiscreteGrow,
             double fDiscreteShrink,
             double fRotation)
         :   DiscreteMetricDependentPrimitive2D(),
             maObjectRange(rObjectRange),
-			mfDiscreteHatchDistance(fDiscreteHatchDistance),
-			mfHatchRotation(fHatchRotation),
-			maHatchColor(rHatchColor),
+			maColor(rColor),
+            mfTransparence(fTransparence),
             mfDiscreteGrow(fDiscreteGrow),
             mfDiscreteShrink(fDiscreteShrink),
             mfRotation(fRotation)
         {}
 
-		Primitive2DSequence OverlayHatchRectanglePrimitive::create2DDecomposition(const geometry::ViewInformation2D& /*rViewInformation*/) const
+		Primitive2DSequence OverlayRectanglePrimitive::create2DDecomposition(const geometry::ViewInformation2D& /*rViewInformation*/) const
 		{
             Primitive2DSequence aRetval;
-			
-            if(basegfx::fTools::more(getDiscreteUnit(), 0.0))
+            basegfx::B2DRange aInnerRange(getObjectRange());
+
+            if(!aInnerRange.isEmpty() && basegfx::fTools::more(getDiscreteUnit(), 0.0) && getTransparence() <= 1.0)
             {
-			    basegfx::B2DRange aInnerRange(getObjectRange());
-			    basegfx::B2DRange aOuterRange(getObjectRange());
-			    basegfx::B2DPolyPolygon aHatchPolyPolygon;
-
-			    aOuterRange.grow(getDiscreteUnit() * getDiscreteGrow());
-			    aInnerRange.grow(getDiscreteUnit() * -getDiscreteShrink());
-
-			    aHatchPolyPolygon.append(basegfx::tools::createPolygonFromRect(aOuterRange));
-
-				if(!aInnerRange.isEmpty())
-				{
-				    aHatchPolyPolygon.append(basegfx::tools::createPolygonFromRect(aInnerRange));
-				}
-                
-			    if(!basegfx::fTools::equalZero(getRotation()))
-			    {
+                basegfx::B2DRange aInnerRange(getObjectRange());
+                basegfx::B2DRange aOuterRange(getObjectRange());
+
+                // grow/shrink inner/outer polygons
+                aOuterRange.grow(getDiscreteUnit() * getDiscreteGrow());
+                aInnerRange.grow(getDiscreteUnit() * -getDiscreteShrink());
+
+                // convert to polygons
+                const double fFullGrow(getDiscreteGrow() + getDiscreteShrink());
+                const double fRelativeRadiusX(fFullGrow / aOuterRange.getWidth());
+                const double fRelativeRadiusY(fFullGrow / aOuterRange.getHeight());
+                basegfx::B2DPolygon aOuterPolygon(
+                    basegfx::tools::createPolygonFromRect(
+                        aOuterRange,
+                        fRelativeRadiusX,
+                        fRelativeRadiusY));
+                basegfx::B2DPolygon aInnerPolygon(
+                    basegfx::tools::createPolygonFromRect(
+                        aInnerRange));
+
+                // apply evtl. existing rotation
+                if(!basegfx::fTools::equalZero(getRotation()))
+                {
                     const basegfx::B2DHomMatrix aTransform(basegfx::tools::createRotateAroundPoint(
                         getObjectRange().getMinX(), getObjectRange().getMinY(), getRotation()));
 
-                    aHatchPolyPolygon.transform(aTransform);
-			    }
-
-                const basegfx::BColor aEmptyColor(0.0, 0.0, 0.0);
-				const drawinglayer::attribute::FillHatchAttribute aFillHatchAttribute(
-					drawinglayer::attribute::HATCHSTYLE_SINGLE,
-					getDiscreteHatchDistance() * getDiscreteUnit(),
-					getHatchRotation() - getRotation(),
-					getHatchColor(),
-                    3, // same default as VCL, a minimum of three discrete units (pixels) offset
-					false);
-                const Primitive2DReference aPrimitive(
-                    new PolyPolygonHatchPrimitive2D(
-                        aHatchPolyPolygon,
-                        aEmptyColor,
-                        aFillHatchAttribute));
-
-                aRetval = Primitive2DSequence(&aPrimitive, 1);
+                    aOuterPolygon.transform(aTransform);
+                    aInnerPolygon.transform(aTransform);
+                }
+
+                // create filled primitive
+                basegfx::B2DPolyPolygon aPolyPolygon;
+
+                aPolyPolygon.append(aOuterPolygon);
+                aPolyPolygon.append(aInnerPolygon);
+
+                if(Application::GetSettings().GetStyleSettings().GetHighContrastMode())
+                {
+                    // for high contrast, use hatch
+                    const basegfx::BColor aHighContrastLineColor(Application::GetSettings().GetStyleSettings().GetFontColor().getBColor());
+                    const basegfx::BColor aEmptyColor(0.0, 0.0, 0.0);
+                    const double fHatchRotation(45 * F_PI180);
+                    const double fDiscreteHatchDistance(3.0);
+                    const drawinglayer::attribute::FillHatchAttribute aFillHatchAttribute(
+                        drawinglayer::attribute::HATCHSTYLE_SINGLE,
+                        fDiscreteHatchDistance * getDiscreteUnit(),
+                        fHatchRotation - getRotation(),
+                        aHighContrastLineColor,
+                        3, // same default as VCL, a minimum of three discrete units (pixels) offset
+                        false);
+                    const Primitive2DReference aHatch(
+                        new PolyPolygonHatchPrimitive2D(
+                            aPolyPolygon,
+                            aEmptyColor,
+                            aFillHatchAttribute));
+
+                    aRetval = Primitive2DSequence(&aHatch, 1);
+                }
+                else
+                {
+                    // create fill primitive
+                    const Primitive2DReference aFill(
+                        new PolyPolygonColorPrimitive2D(
+                            aPolyPolygon,
+                            getColor()));
+
+                    aRetval = Primitive2DSequence(&aFill, 1);
+
+                    // embed filled to transparency (if used)
+                    if(getTransparence() > 0.0)
+                    {
+                        const Primitive2DReference aFillTransparent(
+                            new UnifiedTransparencePrimitive2D(
+                                aRetval, 
+                                getTransparence()));
+
+                        aRetval = Primitive2DSequence(&aFillTransparent, 1);
+                    }
+                }
             }
 
             return aRetval;
-		}
+        }
 
-		bool OverlayHatchRectanglePrimitive::operator==( const BasePrimitive2D& rPrimitive ) const
+		bool OverlayRectanglePrimitive::operator==( const BasePrimitive2D& rPrimitive ) const
 		{
 			if(DiscreteMetricDependentPrimitive2D::operator==(rPrimitive))
 			{
-				const OverlayHatchRectanglePrimitive& rCompare = static_cast< const OverlayHatchRectanglePrimitive& >(rPrimitive);
+				const OverlayRectanglePrimitive& rCompare = static_cast< const OverlayRectanglePrimitive& >(rPrimitive);
 
 				return (getObjectRange() == rCompare.getObjectRange()
-					&& getDiscreteHatchDistance() == rCompare.getDiscreteHatchDistance()
-					&& getHatchRotation() == rCompare.getHatchRotation()
-					&& getHatchColor() == rCompare.getHatchColor()
+					&& getColor() == rCompare.getColor()
+                    && getTransparence() == rCompare.getTransparence()
 					&& getDiscreteGrow() == rCompare.getDiscreteGrow()
 					&& getDiscreteShrink() == rCompare.getDiscreteShrink()
 					&& getRotation() == rCompare.getRotation());
@@ -268,7 +310,7 @@ namespace drawinglayer
 			return false;
 		}
 
-		ImplPrimitrive2DIDBlock(OverlayHatchRectanglePrimitive, PRIMITIVE2D_ID_OVERLAYHATCHRECTANGLEPRIMITIVE)
+		ImplPrimitrive2DIDBlock(OverlayRectanglePrimitive, PRIMITIVE2D_ID_OVERLAYRECTANGLEPRIMITIVE)
 
 	} // end of namespace primitive2d
 } // end of namespace drawinglayer

Modified: openoffice/trunk/main/svx/source/svdraw/svdcrtv.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svx/source/svdraw/svdcrtv.cxx?rev=1439888&r1=1439887&r2=1439888&view=diff
==============================================================================
--- openoffice/trunk/main/svx/source/svdraw/svdcrtv.cxx (original)
+++ openoffice/trunk/main/svx/source/svdraw/svdcrtv.cxx Tue Jan 29 13:32:36 2013
@@ -80,7 +80,8 @@ ImplConnectMarkerOverlay::ImplConnectMar
 			Size aHalfLogicSize(pTargetOverlay->getOutputDevice().PixelToLogic(Size(4, 4)));
 
 			// object
-			::sdr::overlay::OverlayPolyPolygonStriped* pNew = new ::sdr::overlay::OverlayPolyPolygonStriped(aB2DPolyPolygon);
+			::sdr::overlay::OverlayPolyPolygonStripedAndFilled* pNew = new ::sdr::overlay::OverlayPolyPolygonStripedAndFilled(
+                aB2DPolyPolygon);
 			pTargetOverlay->add(*pNew);
 			maObjects.append(*pNew);
 
@@ -105,7 +106,8 @@ ImplConnectMarkerOverlay::ImplConnectMar
 					basegfx::B2DPolyPolygon aTempPolyPoly;
 					aTempPolyPoly.append(aTempPoly);
 
-					pNew = new ::sdr::overlay::OverlayPolyPolygonStriped(aTempPolyPoly);
+					pNew = new ::sdr::overlay::OverlayPolyPolygonStripedAndFilled(
+                        aTempPolyPoly);
 					pTargetOverlay->add(*pNew);
 					maObjects.append(*pNew);
 				}
@@ -166,7 +168,8 @@ void ImpSdrCreateViewExtraData::CreateAn
 
 			if(rPolyPoly.count())
 			{
-				::sdr::overlay::OverlayPolyPolygonStriped* pNew = new ::sdr::overlay::OverlayPolyPolygonStriped(rPolyPoly);
+				::sdr::overlay::OverlayPolyPolygonStripedAndFilled* pNew = new ::sdr::overlay::OverlayPolyPolygonStripedAndFilled(
+                    rPolyPoly);
 				pOverlayManager->add(*pNew);
 				maObjects.append(*pNew);
 			}

Modified: openoffice/trunk/main/svx/source/svdraw/svddrgmt.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svx/source/svdraw/svddrgmt.cxx?rev=1439888&r1=1439887&r2=1439888&view=diff
==============================================================================
--- openoffice/trunk/main/svx/source/svdraw/svddrgmt.cxx (original)
+++ openoffice/trunk/main/svx/source/svdraw/svddrgmt.cxx Tue Jan 29 13:32:36 2013
@@ -67,6 +67,7 @@
 #include <svx/svdopath.hxx>
 #include <svx/polypolygoneditor.hxx>
 #include <drawinglayer/primitive2d/polypolygonprimitive2d.hxx>
+#include <drawinglayer/primitive2d/polygonprimitive2d.hxx>
 #include <drawinglayer/primitive2d/transformprimitive2d.hxx>
 #include <drawinglayer/primitive2d/markerarrayprimitive2d.hxx>
 #include <svx/sdr/primitive2d/sdrattributecreator.hxx>
@@ -124,10 +125,22 @@ drawinglayer::primitive2d::Primitive2DSe
 			aColB.invert();
 		}
 
-		drawinglayer::primitive2d::Primitive2DReference aPolyPolygonMarkerPrimitive2D(
-			new drawinglayer::primitive2d::PolyPolygonMarkerPrimitive2D(aCopy, aColA, aColB, fStripeLength));
-
-		aRetval = drawinglayer::primitive2d::Primitive2DSequence(&aPolyPolygonMarkerPrimitive2D, 1);
+        aRetval.realloc(2);
+        aRetval[0] = new drawinglayer::primitive2d::PolyPolygonMarkerPrimitive2D(
+            aCopy, 
+            aColA, 
+            aColB, 
+            fStripeLength);
+
+        const basegfx::BColor aHilightColor(aSvtOptionsDrawinglayer.getHilightColor().getBColor());
+        const double fTransparence(aSvtOptionsDrawinglayer.GetTransparentSelectionPercent() * 0.01);
+
+        aRetval[1] = new drawinglayer::primitive2d::PolyPolygonSelectionPrimitive2D(
+            aCopy,
+            aHilightColor,
+            fTransparence,
+            3.0,
+            false);
 	}
 
 	return aRetval;
@@ -964,8 +977,8 @@ drawinglayer::primitive2d::Primitive2DSe
 						}
 
 						drawinglayer::primitive2d::Primitive2DReference aPolyPolygonMarkerPrimitive2D(
-							new drawinglayer::primitive2d::PolyPolygonMarkerPrimitive2D(
-								basegfx::B2DPolyPolygon(aEdgePolygon), aColA, aColB, fStripeLength));
+							new drawinglayer::primitive2d::PolygonMarkerPrimitive2D(
+								aEdgePolygon, aColA, aColB, fStripeLength));
 				        drawinglayer::primitive2d::appendPrimitive2DReferenceToPrimitive2DSequence(aRetval, aPolyPolygonMarkerPrimitive2D);
 					}
 				}

Modified: openoffice/trunk/main/svx/source/svdraw/svdedxv.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svx/source/svdraw/svdedxv.cxx?rev=1439888&r1=1439887&r2=1439888&view=diff
==============================================================================
--- openoffice/trunk/main/svx/source/svdraw/svdedxv.cxx (original)
+++ openoffice/trunk/main/svx/source/svdraw/svdedxv.cxx Tue Jan 29 13:32:36 2013
@@ -19,19 +19,13 @@
  * 
  *************************************************************/
 
-
-
 // MARKER(update_precomp.py): autogen include statement, do not remove
 #include "precompiled_svx.hxx"
 
 #include <com/sun/star/i18n/WordType.hpp>
-
 #include <svtools/accessibilityoptions.hxx>
-
 #include <svx/svdedxv.hxx>
 #include <svl/solar.hrc>
-
-//#include <tools/string.h>
 #include <svl/itemiter.hxx>
 #include <vcl/msgbox.hxx>
 #include <vcl/hatch.hxx>
@@ -41,7 +35,6 @@
 #include <tools/config.hxx>
 #include <vcl/cursor.hxx>
 #include <editeng/unotext.hxx>
-
 #include <editeng/editeng.hxx>
 #include <editeng/editobj.hxx>
 #include <editeng/outlobj.hxx>
@@ -54,26 +47,26 @@
 #include "svx/svditer.hxx"
 #include "svx/svdpagv.hxx"
 #include "svx/svdpage.hxx"
-#include "svx/svdetc.hxx"   // fuer GetDraftFillColor
+#include "svx/svdetc.hxx"
 #include "svx/svdotable.hxx"
 #include <svx/selectioncontroller.hxx>
 #ifdef DBG_UTIL
 #include <svdibrow.hxx>
 #endif
-
 #include <svx/svdoutl.hxx>
-#include <svx/svddrgv.hxx>  // fuer SetSolidDragging()
-#include "svx/svdstr.hrc"   // Namen aus der Resource
-#include "svx/svdglob.hxx"  // StringCache
+#include <svx/svddrgv.hxx>
+#include "svx/svdstr.hrc"
+#include "svx/svdglob.hxx"
 #include "svx/globl3d.hxx"
 #include <editeng/outliner.hxx>
 #include <editeng/adjitem.hxx>
-
-// #98988#
 #include <svtools/colorcfg.hxx>
-#include <vcl/svapp.hxx> //add CHINA001 
+#include <vcl/svapp.hxx>
 #include <svx/sdrpaintwindow.hxx>
 #include <svx/sdrundomanager.hxx>
+#include <svx/sdr/contact/objectcontacttools.hxx>
+#include <svx/sdr/overlay/overlaytools.hxx>
+#include <drawinglayer/processor2d/baseprocessor2d.hxx>
 
 ////////////////////////////////////////////////////////////////////////////////////////////////////
 
@@ -364,44 +357,35 @@ void SdrObjEditView::ImpPaintOutlinerVie
 
 	if(bTextFrame && !bFitToSize) 
 	{
-		aPixRect.Left()--;
-		aPixRect.Top()--;
-		aPixRect.Right()++;
-		aPixRect.Bottom()++;
-		sal_uInt16 nPixSiz(rOutlView.GetInvalidateMore() - 1);
-			
-		{ 
-			// xPixRect Begrenzen, wegen Treiberproblem bei zu weit hinausragenden Pixelkoordinaten
-			Size aMaxXY(rTargetDevice.GetOutputSizePixel());
-			long a(2 * nPixSiz);
-			long nMaxX(aMaxXY.Width() + a);
-			long nMaxY(aMaxXY.Height() + a);
-
-			if (aPixRect.Left  ()<-a) aPixRect.Left()=-a;
-			if (aPixRect.Top   ()<-a) aPixRect.Top ()=-a;
-			if (aPixRect.Right ()>nMaxX) aPixRect.Right ()=nMaxX;
-			if (aPixRect.Bottom()>nMaxY) aPixRect.Bottom()=nMaxY;
-		}
-
-		Rectangle aOuterPix(aPixRect);
-		aOuterPix.Left()-=nPixSiz;
-		aOuterPix.Top()-=nPixSiz;
-		aOuterPix.Right()+=nPixSiz;
-		aOuterPix.Bottom()+=nPixSiz;
-
-		bool bMerk(rTargetDevice.IsMapModeEnabled());
-		rTargetDevice.EnableMapMode(sal_False);
-		PolyPolygon aPolyPoly( 2 );
-
-		svtools::ColorConfig aColorConfig;
-		Color aHatchCol( aColorConfig.GetColorValue( svtools::FONTCOLOR ).nColor );
-		const Hatch aHatch( HATCH_SINGLE, aHatchCol, 3, 450 );
-
-		aPolyPoly.Insert( aOuterPix );
-		aPolyPoly.Insert( aPixRect );
-		rTargetDevice.DrawHatch( aPolyPoly, aHatch );
+        // completely reworked to use primitives; this ensures same look and functionality
+        const drawinglayer::geometry::ViewInformation2D aViewInformation2D;
+        drawinglayer::processor2d::BaseProcessor2D* pProcessor = ::sdr::contact::createBaseProcessor2DFromOutputDevice(
+            rTargetDevice, 
+            aViewInformation2D);
 
-		rTargetDevice.EnableMapMode(bMerk);
+        if(pProcessor)
+        {
+            const bool bMerk(rTargetDevice.IsMapModeEnabled());
+            const basegfx::B2DRange aRange(aPixRect.Left(), aPixRect.Top(), aPixRect.Right(), aPixRect.Bottom());
+            const SvtOptionsDrawinglayer aSvtOptionsDrawinglayer;
+            const Color aHilightColor(aSvtOptionsDrawinglayer.getHilightColor());
+            const double fTransparence(aSvtOptionsDrawinglayer.GetTransparentSelectionPercent() * 0.01);
+            const sal_uInt16 nPixSiz(rOutlView.GetInvalidateMore() - 1);
+            const drawinglayer::primitive2d::Primitive2DReference xReference(
+                new drawinglayer::primitive2d::OverlayRectanglePrimitive(
+                    aRange,
+                    aHilightColor.getBColor(),
+                    fTransparence,
+                    std::max(6, nPixSiz - 2), // grow
+                    0.0, // shrink
+                    0.0));
+            const drawinglayer::primitive2d::Primitive2DSequence aSequence(&xReference, 1);
+
+            rTargetDevice.EnableMapMode(false);
+            pProcessor->process(aSequence);
+            rTargetDevice.EnableMapMode(bMerk);
+            delete pProcessor;
+        }
 	}
 		
 	rOutlView.ShowCursor();

Modified: openoffice/trunk/main/svx/source/svdraw/svdhdl.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svx/source/svdraw/svdhdl.cxx?rev=1439888&r1=1439887&r2=1439888&view=diff
==============================================================================
--- openoffice/trunk/main/svx/source/svdraw/svdhdl.cxx (original)
+++ openoffice/trunk/main/svx/source/svdraw/svdhdl.cxx Tue Jan 29 13:32:36 2013
@@ -56,7 +56,7 @@
 #include <svx/sdr/overlay/overlaybitmapex.hxx>
 #include <svx/sdr/overlay/overlayline.hxx>
 #include <svx/sdr/overlay/overlaytriangle.hxx>
-#include <svx/sdr/overlay/overlayhatchrect.hxx>
+#include <svx/sdr/overlay/overlayrectangle.hxx>
 #include <svx/sdrpagewindow.hxx>
 #include <svx/sdrpaintwindow.hxx>
 #include <vcl/svapp.hxx>
@@ -1466,7 +1466,8 @@ void E3dVolumeMarker::CreateB2dIAObject(
 						if(rPageWindow.GetOverlayManager() && aWireframePoly.count())
 							{
 								::sdr::overlay::OverlayObject* pNewOverlayObject = new 
-								::sdr::overlay::OverlayPolyPolygonStriped(aWireframePoly);
+								::sdr::overlay::OverlayPolyPolygonStripedAndFilled(
+                                    aWireframePoly);
 								DBG_ASSERT(pNewOverlayObject, "Got NO new IAO!");
 
 								// OVERLAYMANAGER
@@ -1715,17 +1716,21 @@ void ImpTextframeHdl::CreateB2dIAObject(
 						{
                             const basegfx::B2DPoint aTopLeft(maRect.Left(), maRect.Top());
                             const basegfx::B2DPoint aBottomRight(maRect.Right(), maRect.Bottom());
-                            const svtools::ColorConfig aColorConfig;
-                            const Color aHatchCol( aColorConfig.GetColorValue( svtools::FONTCOLOR ).nColor );
+                            const SvtOptionsDrawinglayer aSvtOptionsDrawinglayer;
+                            const Color aHilightColor(aSvtOptionsDrawinglayer.getHilightColor());
+                            const double fTransparence(aSvtOptionsDrawinglayer.GetTransparentSelectionPercent() * 0.01);
 
-                            ::sdr::overlay::OverlayHatchRect* pNewOverlayObject = new ::sdr::overlay::OverlayHatchRect(
+                            ::sdr::overlay::OverlayRectangle* pNewOverlayObject = new ::sdr::overlay::OverlayRectangle(
                                 aTopLeft,
                                 aBottomRight,
-                                aHatchCol,
+                                aHilightColor,
+                                fTransparence,
                                 3.0,
                                 3.0,
-                                45 * F_PI180,
-                                nDrehWink * -F_PI18000);
+                                nDrehWink * -F_PI18000,
+                                500,
+                                true); // allow animation; the Handle is not shown at text edit time
+
                             pNewOverlayObject->setHittable(false);
 
                             // OVERLAYMANAGER

Modified: openoffice/trunk/main/svx/source/svdraw/svdobj.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svx/source/svdraw/svdobj.cxx?rev=1439888&r1=1439887&r2=1439888&view=diff
==============================================================================
--- openoffice/trunk/main/svx/source/svdraw/svdobj.cxx (original)
+++ openoffice/trunk/main/svx/source/svdraw/svdobj.cxx Tue Jan 29 13:32:36 2013
@@ -2414,6 +2414,33 @@ SdrObject* SdrObject::GetConnectedNode(F
 
 ////////////////////////////////////////////////////////////////////////////////////////////////////
 
+void extractLineContourFromPrimitive2DSequence(
+    const drawinglayer::primitive2d::Primitive2DSequence& rxSequence,
+    basegfx::B2DPolygonVector& rExtractedHairlines,
+    basegfx::B2DPolyPolygonVector& rExtractedLineFills)
+{
+    rExtractedHairlines.clear();
+    rExtractedLineFills.clear();
+
+    if(rxSequence.hasElements())
+    {
+        // use neutral ViewInformation
+        const drawinglayer::geometry::ViewInformation2D aViewInformation2D;
+
+        // create extractor, process and get result
+        drawinglayer::processor2d::LineGeometryExtractor2D aExtractor(aViewInformation2D);
+        aExtractor.process(rxSequence);
+
+        // copy line results
+        rExtractedHairlines = aExtractor.getExtractedHairlines();
+
+        // copy fill rsults
+        rExtractedLineFills = aExtractor.getExtractedLineFills();
+    }
+}
+
+////////////////////////////////////////////////////////////////////////////////////////////////////
+
 SdrObject* SdrObject::ImpConvertToContourObj(SdrObject* pRet, sal_Bool bForceLineDash) const
 {
 	bool bNoChange(true);
@@ -2426,37 +2453,28 @@ SdrObject* SdrObject::ImpConvertToContou
 
 		if(xSequence.hasElements())
 		{
-			// use neutral ViewInformation
-			const drawinglayer::geometry::ViewInformation2D aViewInformation2D;
-
-			// create extractor, process and get result
-			drawinglayer::processor2d::LineGeometryExtractor2D aExtractor(aViewInformation2D);
-			aExtractor.process(xSequence);
+            basegfx::B2DPolygonVector aExtractedHairlines;
+            basegfx::B2DPolyPolygonVector aExtractedLineFills;
 
-			// #i102241# check for line results
-			const basegfx::B2DPolygonVector& rHairlineVector = aExtractor.getExtractedHairlines();
+            extractLineContourFromPrimitive2DSequence(xSequence, aExtractedHairlines, aExtractedLineFills);
 
-			if(!rHairlineVector.empty())
+			if(!aExtractedHairlines.empty())
 			{
 				// for SdrObject creation, just copy all to a single Hairline-PolyPolygon
-				for(sal_uInt32 a(0); a < rHairlineVector.size(); a++)
+				for(sal_uInt32 a(0); a < aExtractedHairlines.size(); a++)
 				{
-					aMergedHairlinePolyPolygon.append(rHairlineVector[a]);
+					aMergedHairlinePolyPolygon.append(aExtractedHairlines[a]);
 				}
 			}
 
-			// #i102241# check for fill rsults
-			const basegfx::B2DPolyPolygonVector& rLineFillVector(aExtractor.getExtractedLineFills());
-
-			if(!rLineFillVector.empty())
+			// check for fill rsults
+			if(!aExtractedLineFills.empty())
 			{
 				// merge to a single PolyPolygon (OR)
-				aMergedLineFillPolyPolygon = basegfx::tools::mergeToSinglePolyPolygon(rLineFillVector);
+				aMergedLineFillPolyPolygon = basegfx::tools::mergeToSinglePolyPolygon(aExtractedLineFills);
 			}
 		}
 
-		//  || aMergedHairlinePolyPolygon.Count() removed; the conversion is ONLY
-		// useful when new closed filled polygons are created
 		if(aMergedLineFillPolyPolygon.count() || (bForceLineDash && aMergedHairlinePolyPolygon.count()))
 		{
 			SfxItemSet aSet(pRet->GetMergedItemSet());

Modified: openoffice/trunk/main/svx/source/svdraw/svdview.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svx/source/svdraw/svdview.cxx?rev=1439888&r1=1439887&r2=1439888&view=diff
==============================================================================
--- openoffice/trunk/main/svx/source/svdraw/svdview.cxx (original)
+++ openoffice/trunk/main/svx/source/svdraw/svdview.cxx Tue Jan 29 13:32:36 2013
@@ -19,22 +19,20 @@
  * 
  *************************************************************/
 
-
-
 // MARKER(update_precomp.py): autogen include statement, do not remove
 #include "precompiled_svx.hxx"
-#include <editeng/eeitem.hxx>
 
-#include "svx/svdstr.hrc"   // Namen aus der Resource
-#include "svx/svdglob.hxx"  // StringCache
+#include <editeng/eeitem.hxx>
+#include "svx/svdstr.hrc"
+#include "svx/svdglob.hxx"
 #include <svx/svdpagv.hxx>
 #include <svx/svdmrkv.hxx>
 #include <svx/svdedxv.hxx>
 #include <svx/svdobj.hxx>
-#include <svx/svdopath.hxx> // fuer GetContext
-#include <svx/svdograf.hxx> // fuer GetContext
-#include <svx/svdomedia.hxx> // fuer GetContext
-#include <svx/svdetc.hxx>   // Fuer SdrEngineDefaults
+#include <svx/svdopath.hxx>
+#include <svx/svdograf.hxx>
+#include <svx/svdomedia.hxx>
+#include <svx/svdetc.hxx>
 
 #ifdef DBG_UTIL
 #include <svdibrow.hxx>
@@ -42,8 +40,8 @@
 
 #include "svx/svdoutl.hxx"
 #include "svx/svdview.hxx"
-#include "editeng/editview.hxx" // fuer GetField
-#include "editeng/flditem.hxx"  // fuer URLField
+#include "editeng/editview.hxx"
+#include "editeng/flditem.hxx"
 #include "svx/obj3d.hxx"
 #include "svx/svddrgmt.hxx"
 #include "svx/svdoutl.hxx"
@@ -54,6 +52,8 @@
 #include <svx/sdrpaintwindow.hxx>
 #include <svx/sdrpagewindow.hxx>
 #include <svx/sdrhittesthelper.hxx>
+#include <svx/sdr/contact/viewcontact.hxx>
+#include <drawinglayer/processor2d/contourextractor2d.hxx>
 
 ////////////////////////////////////////////////////////////////////////////////////////////////////
 
@@ -96,7 +96,9 @@ SdrViewEvent::~SdrViewEvent()
 ////////////////////////////////////////////////////////////////////////////////////////////////////
 // helper class for all D&D overlays
 
-void SdrDropMarkerOverlay::ImplCreateOverlays(const SdrView& rView, const basegfx::B2DPolyPolygon& rPolyPolygon)
+void SdrDropMarkerOverlay::ImplCreateOverlays(
+    const SdrView& rView, 
+    const basegfx::B2DPolyPolygon& rLinePolyPolygon)
 {
 	for(sal_uInt32 a(0L); a < rView.PaintWindowCount(); a++)
 	{
@@ -105,9 +107,10 @@ void SdrDropMarkerOverlay::ImplCreateOve
 
 		if(pTargetOverlay)
 		{
-			::sdr::overlay::OverlayPolyPolygonStriped* pNew = new ::sdr::overlay::OverlayPolyPolygonStriped(
-				rPolyPolygon);
-			pTargetOverlay->add(*pNew);
+			::sdr::overlay::OverlayPolyPolygonStripedAndFilled* pNew = new ::sdr::overlay::OverlayPolyPolygonStripedAndFilled(
+				rLinePolyPolygon);
+
+            pTargetOverlay->add(*pNew);
 			maObjects.append(*pNew);
 		}
 	}
@@ -115,35 +118,37 @@ void SdrDropMarkerOverlay::ImplCreateOve
 
 SdrDropMarkerOverlay::SdrDropMarkerOverlay(const SdrView& rView, const SdrObject& rObject)
 {
-	ImplCreateOverlays(rView, rObject.TakeXorPoly());
+    ImplCreateOverlays(
+        rView, 
+        rObject.TakeXorPoly());
 }
 
 SdrDropMarkerOverlay::SdrDropMarkerOverlay(const SdrView& rView, const Rectangle& rRectangle)
 {
 	basegfx::B2DPolygon aB2DPolygon;
-	aB2DPolygon.append(basegfx::B2DPoint(rRectangle.Left(), rRectangle.Top()));
+
+    aB2DPolygon.append(basegfx::B2DPoint(rRectangle.Left(), rRectangle.Top()));
 	aB2DPolygon.append(basegfx::B2DPoint(rRectangle.Right(), rRectangle.Top()));
 	aB2DPolygon.append(basegfx::B2DPoint(rRectangle.Right(), rRectangle.Bottom()));
 	aB2DPolygon.append(basegfx::B2DPoint(rRectangle.Left(), rRectangle.Bottom()));
 	aB2DPolygon.setClosed(true);
 
-	basegfx::B2DPolyPolygon aB2DPolyPolygon;
-	aB2DPolyPolygon.append(aB2DPolygon);
-
-	ImplCreateOverlays(rView, aB2DPolyPolygon);
+	ImplCreateOverlays(
+        rView, 
+        basegfx::B2DPolyPolygon(aB2DPolygon));
 }
 
 SdrDropMarkerOverlay::SdrDropMarkerOverlay(const SdrView& rView, const Point& rStart, const Point& rEnd)
 {
 	basegfx::B2DPolygon aB2DPolygon;
-	aB2DPolygon.append(basegfx::B2DPoint(rStart.X(), rStart.Y()));
+
+    aB2DPolygon.append(basegfx::B2DPoint(rStart.X(), rStart.Y()));
 	aB2DPolygon.append(basegfx::B2DPoint(rEnd.X(), rEnd.Y()));
 	aB2DPolygon.setClosed(true);
 
-	basegfx::B2DPolyPolygon aB2DPolyPolygon;
-	aB2DPolyPolygon.append(aB2DPolygon);
-
-	ImplCreateOverlays(rView, aB2DPolyPolygon);
+	ImplCreateOverlays(
+        rView, 
+        basegfx::B2DPolyPolygon(aB2DPolygon));
 }
 
 SdrDropMarkerOverlay::~SdrDropMarkerOverlay()