You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by st...@apache.org on 2013/02/21 03:53:05 UTC

svn commit: r1448495 [4/6] - in /openoffice/branches/ia2: ./ ext_libraries/ratscan/scan/ extras/l10n/source/rw/ extras/l10n/source/te/ extras/l10n/source/uz/ main/ main/autodoc/source/display/html/ main/automation/packimages/ main/automation/prj/ main/...

Modified: openoffice/branches/ia2/main/set_soenv.in
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/set_soenv.in?rev=1448495&r1=1448494&r2=1448495&view=diff
==============================================================================
--- openoffice/branches/ia2/main/set_soenv.in (original)
+++ openoffice/branches/ia2/main/set_soenv.in Thu Feb 21 02:52:59 2013
@@ -102,12 +102,12 @@ my ( $oldPATH, $SRC_ROOT, $SO_HOME, $JAV
      $UPD, $WORK_STAMP, $SOURCE_ROOT_DIR , $gb_REPOS,
      $SOLARSRC, $DEVROOT, $SOLARVER, $SOLARVERSION, $WORKDIR, $OUTDIR, $SOLARENV, 
      $STAR_INIROOT, $STAR_INIROOTOLD, $STAR_STANDLST, $STAR_SSCOMMON, $STAR_SSOLARINI, 
-     $DMAKEROOT, $CLASSPATH, $XCLASSPATH, $COMPATH,
+     $DMAKEROOT, $CLASSPATH, $XCLASSPATH, $COMPATH, $CXX_X64_BINARY, $LINK_X64_BINARY, $LIBMGR_X64_BINARY,
      $MSPDB_PATH, $MIDL_PATH, $CSC_PATH,
      $PATH, $SOLAREXTRAINC, $SOLAREXTRALIB, $SOLARLIB, 
      $SOLARINC, $LOCALINI, $FRAMEWORKSHOME, $COMEX, $PERL, 
      $COMP_ENV, $ILIB, $JAVAHOME, $PSDK_HOME, $DIRECTXSDK_LIB, $USE_NEW_SDK, $FRAME_HOME, 
-     $USE_DIRECTX5, $ATL_LIB, $HAVE_ATLTHUNK, $ATL_INCLUDE, $MFC_LIB, $MFC_INCLUDE, $TMPDIR,
+     $USE_DIRECTX5, $ATL_LIB, $ATL_LIB_X64, $HAVE_ATLTHUNK, $ATL_INCLUDE, $MFC_LIB, $MFC_INCLUDE, $TMPDIR,
      $COMMON_BUILD_TOOLS, $WIN_GREP, $WIN_FIND, $WIN_LS,
      $WIN_GNUCOPY, $WIN_TOUCH, $STLPORT4, $MOZILLA_VERSION, $MOZILLA_TOOLKIT, $PREBUILD_MOZAB, $MOZILLABUILD,
 	 $PROEXT, $TARFILE_LOCATION,
@@ -695,6 +695,9 @@ elsif ( $platform =~ m/cygwin/ ) 
   else # The MSVC section starts here
   {   $outfile        = "winenv.set";
       $COMPATH        = PathFormat('@COMPATH@');
+      $CXX_X64_BINARY = PathFormat('@COMPATH@/bin/amd64/cl.exe');
+      $LINK_X64_BINARY = PathFormat('@COMPATH@/bin/amd64/link.exe');
+      $LIBMGR_X64_BINARY = PathFormat('@COMPATH@/bin/amd64/lib.exe');
       $COM            = "MSC";
       $OUTPATH        = "wntmsci@COMEX@";
       $INPATH         = $OUTPATH.$PROEXT;
@@ -1726,6 +1729,9 @@ ToFile( "SOLAR_JAVA",        $SOLAR_JAVA
 ToFile( "BIG_SVX",           $BIG_SVX,           "e" );
 ToFile( "COM",               $COM,               "e" );
 ToFile( "COMPATH",           $COMPATH,           "e" );
+ToFile( "CXX_X64_BINARY",    $CXX_X64_BINARY,    "e" );
+ToFile( "LINK_X64_BINARY",   $LINK_X64_BINARY,   "e" );
+ToFile( "LIBMGR_X64_BINARY", $LIBMGR_X64_BINARY, "e" );
 ToFile( "CPU",               $CPU,               "e" );
 ToFile( "CPUNAME",           $CPUNAME,           "e" );
 ToFile( "CVER",              $CVER,              "e" );
@@ -1768,6 +1774,7 @@ if ( $platform =~ m/cygwin/ )
    ToFile( "DIRECTXSDK_LIB",    $DIRECTXSDK_LIB,    "e" );
    ToFile( "USE_DIRECTX5",      $USE_DIRECTX5,      "e" );
    ToFile( "ATL_LIB",           "@ATL_LIB@",        "e" );
+   ToFile( "ATL_LIB_X64",       "@ATL_LIB_X64@",    "e" );
    ToFile( "ATL_INCLUDE",       "@ATL_INCLUDE@",    "e" );
    ToFile( "HAVE_ATLTHUNK",     "@HAVE_ATLTHUNK@",  "e" );
    ToFile( "MFC_LIB",           "@MFC_LIB@",        "e" );
@@ -1778,9 +1785,10 @@ if ( $platform =~ m/cygwin/ )
    ToFile( "USE_NEW_SDK",       $USE_NEW_SDK,       "e" );
 
    # Hack around dmake's mktmp not generating DOS paths.
-   my $tmpdir = qx{cygpath -m "/tmp"};
-   chomp($tmpdir);
-   ToFile( "TMPDIR",     $tmpdir,            "e" );
+#   my $tmpdir = qx{cygpath -m "/tmp"};
+#   chomp($tmpdir);
+#   ToFile( "TMPDIR",     $tmpdir,            "e" );
+    ToFile( "TMPDIR",     "/tmp",            "e" );
 }
 ToFile( "ENABLE_HUNSPELL",	"@ENABLE_HUNSPELL@", "e" );
 ToFile( "ENABLE_HYPHEN",	"@ENABLE_HYPHEN@", "e" );
@@ -1862,6 +1870,7 @@ ToFile( "SYSTEM_GRAPHITE",   "@SYSTEM_GR
 ToFile( "GRAPHITE_LIBS",     "@GRAPHITE_LIBS@",     "e");
 ToFile( "GRAPHITE_CFLAGS",   "@GRAPHITE_CFLAGS@",   "e");
 ToFile( "VC_STANDARD",       "@VC_STANDARD@",      "e" );
+ToFile( "BUILD_X64",         "@BUILD_X64@",      "e" );
 ToFile( "ENABLE_CATEGORY_B", "@ENABLE_CATEGORY_B@", "e");
 ToFile( "BUNDLED_EXTENSION_BLOBS", "@BUNDLED_EXTENSION_BLOBS@", "e");
 ToFile( "BUNDLED_PREREG_EXTENSIONS", "@BUNDLED_PREREG_EXTENSIONS@", "e");

Modified: openoffice/branches/ia2/main/solenv/gbuild/platform/windows.mk
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/solenv/gbuild/platform/windows.mk?rev=1448495&r1=1448494&r2=1448495&view=diff
==============================================================================
--- openoffice/branches/ia2/main/solenv/gbuild/platform/windows.mk (original)
+++ openoffice/branches/ia2/main/solenv/gbuild/platform/windows.mk Thu Feb 21 02:52:59 2013
@@ -190,11 +190,7 @@ gb_NoexPrecompiledHeader_NOEXCEPTIONFLAG
 gb_LinkTarget_LDFLAGS := \
 	-MACHINE:IX86 \
 	-NODEFAULTLIB \
-	-OPT:NOREF \
 	-SUBSYSTEM:CONSOLE \
-	-safeseh \
-	-nxcompat \
-	-dynamicbase \
 	$(patsubst %,-LIBPATH:%,$(filter-out .,$(subst ;, ,$(subst \,/,$(ILIB))))) \
 
 ifneq ($(ENABLE_CRASHDUMP),)
@@ -438,7 +434,7 @@ endef
 # Library class
 
 gb_Library_DEFS := -D_DLL
-gb_Library_TARGETTYPEFLAGS := -DLL
+gb_Library_TARGETTYPEFLAGS := -DLL -OPT:NOREF -SAFESEH -NXCOMPAT -DYNAMICBASE
 gb_Library_get_rpath :=
 
 gb_Library_SYSPRE := i
@@ -588,7 +584,7 @@ endef
 # Executable class
 
 gb_Executable_EXT := .exe
-gb_Executable_TARGETTYPEFLAGS := -RELEASE -BASE:0x1b000000 -OPT:NOREF -INCREMENTAL:NO -DEBUG
+gb_Executable_TARGETTYPEFLAGS := -RELEASE -BASE:0x1b000000 -OPT:NOREF -INCREMENTAL:NO -DEBUG -SAFESEH -NXCOMPAT -DYNAMICBASE
 gb_Executable_get_rpath :=
 
 define gb_Executable_Executable_platform

Modified: openoffice/branches/ia2/main/solenv/inc/minor.mk
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/solenv/inc/minor.mk?rev=1448495&r1=1448494&r2=1448495&view=diff
==============================================================================
--- openoffice/branches/ia2/main/solenv/inc/minor.mk (original)
+++ openoffice/branches/ia2/main/solenv/inc/minor.mk Thu Feb 21 02:52:59 2013
@@ -1,5 +1,5 @@
 # *************************************************************
-#  
+#
 #  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
@@ -7,19 +7,19 @@
 #  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.
-#  
+#
 # *************************************************************
-RSCVERSION=350
-RSCREVISION=350m1(Build:9611)
-BUILD=9611
+RSCVERSION=400
+RSCREVISION=400m1(Build:9700)
+BUILD=9700
 LAST_MINOR=m1
-SOURCEVERSION=AOO350
+SOURCEVERSION=AOO400

Modified: openoffice/branches/ia2/main/solenv/inc/set_wntx64.mk
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/solenv/inc/set_wntx64.mk?rev=1448495&r1=1448494&r2=1448495&view=diff
==============================================================================
--- openoffice/branches/ia2/main/solenv/inc/set_wntx64.mk (original)
+++ openoffice/branches/ia2/main/solenv/inc/set_wntx64.mk Thu Feb 21 02:52:59 2013
@@ -110,7 +110,7 @@ STDSLOCUI_X64=
 
 IMPLIBFLAGS_X64=-machine:X64
 
-LIBPATH_X64=$(PSDK)/lib/x64
+LIBPATH_X64=$(PSDK_HOME)/lib/x64
 LIBPATH_VC_X64=$(COMPATH)/lib/amd64
 
 ADVAPI32LIB_X64=$(LIBPATH_X64)/advapi32.lib

Modified: openoffice/branches/ia2/main/solenv/inc/version.lst
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/solenv/inc/version.lst?rev=1448495&r1=1448494&r2=1448495&view=diff
==============================================================================
--- openoffice/branches/ia2/main/solenv/inc/version.lst (original)
+++ openoffice/branches/ia2/main/solenv/inc/version.lst Thu Feb 21 02:52:59 2013
@@ -19,10 +19,10 @@
 #  
 #**************************************************************
 
-OOOBASEVERSIONMAJOR=3
-OOOBASEVERSIONMINOR=5
+OOOBASEVERSIONMAJOR=4
+OOOBASEVERSIONMINOR=0
 OOOBASEVERSIONMICRO=0
 
-OOOBASEVERSIONDAY=1
-OOOBASEVERSIONMONTH=4
-OOOBASEVERSIONYEAR=2012
+OOOBASEVERSIONDAY=5
+OOOBASEVERSIONMONTH=2
+OOOBASEVERSIONYEAR=2013

Modified: openoffice/branches/ia2/main/svx/Library_svxcore.mk
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/svx/Library_svxcore.mk?rev=1448495&r1=1448494&r2=1448495&view=diff
==============================================================================
--- openoffice/branches/ia2/main/svx/Library_svxcore.mk (original)
+++ openoffice/branches/ia2/main/svx/Library_svxcore.mk Thu Feb 21 02:52:59 2013
@@ -218,7 +218,6 @@ $(eval $(call gb_Library_add_exception_o
     svx/source/sdr/contact/viewcontact \
     svx/source/sdr/contact/viewcontactofsdrole2obj \
     svx/source/sdr/contact/displayinfo \
-    svx/source/sdr/contact/objectcontacttools \
     svx/source/sdr/contact/viewcontactofe3dscene \
     svx/source/sdr/contact/viewcontactofsdrrectobj \
     svx/source/sdr/contact/viewobjectcontactofsdrole2obj \
@@ -244,7 +243,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/branches/ia2/main/svx/Package_inc.mk
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/svx/Package_inc.mk?rev=1448495&r1=1448494&r2=1448495&view=diff
==============================================================================
--- openoffice/branches/ia2/main/svx/Package_inc.mk (original)
+++ openoffice/branches/ia2/main/svx/Package_inc.mk Thu Feb 21 02:52:59 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))
@@ -241,7 +241,6 @@ $(eval $(call gb_Package_add_file,svx_in
 $(eval $(call gb_Package_add_file,svx_inc,inc/svx/sdr/contact/viewcontactofe3dextrude.hxx,svx/sdr/contact/viewcontactofe3dextrude.hxx))
 $(eval $(call gb_Package_add_file,svx_inc,inc/svx/sdr/contact/viewcontactofvirtobj.hxx,svx/sdr/contact/viewcontactofvirtobj.hxx))
 $(eval $(call gb_Package_add_file,svx_inc,inc/svx/sdr/contact/viewcontactofe3dscene.hxx,svx/sdr/contact/viewcontactofe3dscene.hxx))
-$(eval $(call gb_Package_add_file,svx_inc,inc/svx/sdr/contact/objectcontacttools.hxx,svx/sdr/contact/objectcontacttools.hxx))
 $(eval $(call gb_Package_add_file,svx_inc,inc/svx/sdr/contact/objectcontact.hxx,svx/sdr/contact/objectcontact.hxx))
 $(eval $(call gb_Package_add_file,svx_inc,inc/svx/sdr/contact/viewcontactofpageobj.hxx,svx/sdr/contact/viewcontactofpageobj.hxx))
 $(eval $(call gb_Package_add_file,svx_inc,inc/svx/sdr/contact/viewcontactofe3dcube.hxx,svx/sdr/contact/viewcontactofe3dcube.hxx))

Modified: openoffice/branches/ia2/main/svx/inc/svx/sdr/overlay/overlayanimatedbitmapex.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/svx/inc/svx/sdr/overlay/overlayanimatedbitmapex.hxx?rev=1448495&r1=1448494&r2=1448495&view=diff
==============================================================================
--- openoffice/branches/ia2/main/svx/inc/svx/sdr/overlay/overlayanimatedbitmapex.hxx (original)
+++ openoffice/branches/ia2/main/svx/inc/svx/sdr/overlay/overlayanimatedbitmapex.hxx Thu Feb 21 02:52:59 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/branches/ia2/main/svx/inc/svx/sdr/overlay/overlayobject.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/svx/inc/svx/sdr/overlay/overlayobject.hxx?rev=1448495&r1=1448494&r2=1448495&view=diff
==============================================================================
--- openoffice/branches/ia2/main/svx/inc/svx/sdr/overlay/overlayobject.hxx (original)
+++ openoffice/branches/ia2/main/svx/inc/svx/sdr/overlay/overlayobject.hxx Thu Feb 21 02:52:59 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/branches/ia2/main/svx/inc/svx/sdr/overlay/overlaypolypolygon.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/svx/inc/svx/sdr/overlay/overlaypolypolygon.hxx?rev=1448495&r1=1448494&r2=1448495&view=diff
==============================================================================
--- openoffice/branches/ia2/main/svx/inc/svx/sdr/overlay/overlaypolypolygon.hxx (original)
+++ openoffice/branches/ia2/main/svx/inc/svx/sdr/overlay/overlaypolypolygon.hxx Thu Feb 21 02:52:59 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();

Modified: openoffice/branches/ia2/main/svx/inc/svx/sdr/overlay/overlaytools.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/svx/inc/svx/sdr/overlay/overlaytools.hxx?rev=1448495&r1=1448494&r2=1448495&view=diff
==============================================================================
--- openoffice/branches/ia2/main/svx/inc/svx/sdr/overlay/overlaytools.hxx (original)
+++ openoffice/branches/ia2/main/svx/inc/svx/sdr/overlay/overlaytools.hxx Thu Feb 21 02:52:59 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/branches/ia2/main/svx/inc/svx/sdr/primitive2d/svx_primitivetypes2d.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/svx/inc/svx/sdr/primitive2d/svx_primitivetypes2d.hxx?rev=1448495&r1=1448494&r2=1448495&view=diff
==============================================================================
--- openoffice/branches/ia2/main/svx/inc/svx/sdr/primitive2d/svx_primitivetypes2d.hxx (original)
+++ openoffice/branches/ia2/main/svx/inc/svx/sdr/primitive2d/svx_primitivetypes2d.hxx Thu Feb 21 02:52:59 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/branches/ia2/main/svx/inc/svx/svdview.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/svx/inc/svx/svdview.hxx?rev=1448495&r1=1448494&r2=1448495&view=diff
==============================================================================
--- openoffice/branches/ia2/main/svx/inc/svx/svdview.hxx (original)
+++ openoffice/branches/ia2/main/svx/inc/svx/svdview.hxx Thu Feb 21 02:52:59 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/branches/ia2/main/svx/source/engine3d/dragmt3d.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/svx/source/engine3d/dragmt3d.cxx?rev=1448495&r1=1448494&r2=1448495&view=diff
==============================================================================
--- openoffice/branches/ia2/main/svx/source/engine3d/dragmt3d.cxx (original)
+++ openoffice/branches/ia2/main/svx/source/engine3d/dragmt3d.cxx Thu Feb 21 02:52:59 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/branches/ia2/main/svx/source/engine3d/view3d.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/svx/source/engine3d/view3d.cxx?rev=1448495&r1=1448494&r2=1448495&view=diff
==============================================================================
--- openoffice/branches/ia2/main/svx/source/engine3d/view3d.cxx (original)
+++ openoffice/branches/ia2/main/svx/source/engine3d/view3d.cxx Thu Feb 21 02:52:59 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/branches/ia2/main/svx/source/sdr/contact/objectcontactofobjlistpainter.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/svx/source/sdr/contact/objectcontactofobjlistpainter.cxx?rev=1448495&r1=1448494&r2=1448495&view=diff
==============================================================================
--- openoffice/branches/ia2/main/svx/source/sdr/contact/objectcontactofobjlistpainter.cxx (original)
+++ openoffice/branches/ia2/main/svx/source/sdr/contact/objectcontactofobjlistpainter.cxx Thu Feb 21 02:52:59 2013
@@ -30,9 +30,8 @@
 #include <svx/svdobj.hxx>
 #include <svx/sdr/contact/viewcontact.hxx>
 #include <svx/svdmodel.hxx>
-#include <drawinglayer/processor2d/vclprocessor2d.hxx>
 #include <basegfx/matrix/b2dhommatrix.hxx>
-#include <svx/sdr/contact/objectcontacttools.hxx>
+#include <drawinglayer/processor2d/processor2dtools.hxx>
 #include <svx/unoapi.hxx>
 
 //////////////////////////////////////////////////////////////////////////////
@@ -134,8 +133,9 @@ namespace sdr
 					// if there is something to show, use a vclProcessor to render it
 					if(xPrimitiveSequence.hasElements())
 					{
-						drawinglayer::processor2d::BaseProcessor2D* pProcessor2D = createBaseProcessor2DFromOutputDevice(
-							*pTargetDevice, getViewInformation2D());
+						drawinglayer::processor2d::BaseProcessor2D* pProcessor2D = drawinglayer::processor2d::createProcessor2DFromOutputDevice(
+							*pTargetDevice, 
+                            getViewInformation2D());
 
 						if(pProcessor2D)
 						{

Modified: openoffice/branches/ia2/main/svx/source/sdr/contact/objectcontactofpageview.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/svx/source/sdr/contact/objectcontactofpageview.cxx?rev=1448495&r1=1448494&r2=1448495&view=diff
==============================================================================
--- openoffice/branches/ia2/main/svx/source/sdr/contact/objectcontactofpageview.cxx (original)
+++ openoffice/branches/ia2/main/svx/source/sdr/contact/objectcontactofpageview.cxx Thu Feb 21 02:52:59 2013
@@ -35,11 +35,10 @@
 #include <svx/sdr/event/eventhandler.hxx>
 #include <svx/sdrpagewindow.hxx>
 #include <svx/sdrpaintwindow.hxx>
-#include <drawinglayer/processor2d/vclprocessor2d.hxx>
 #include <basegfx/matrix/b2dhommatrix.hxx>
 #include <drawinglayer/primitive2d/transformprimitive2d.hxx>
-#include <svx/sdr/contact/objectcontacttools.hxx>
 #include <com/sun/star/rendering/XSpriteCanvas.hpp>
+#include <drawinglayer/processor2d/processor2dtools.hxx>
 #include <svx/unoapi.hxx>
 
 //////////////////////////////////////////////////////////////////////////////
@@ -251,7 +250,7 @@ namespace sdr
 
 			// if there is something to show, use a primitive processor to render it. There
 			// is a choice between VCL and Canvas processors currently. The decision is made in
-			// createBaseProcessor2DFromOutputDevice and takes into accout things like the
+			// createProcessor2DFromOutputDevice and takes into accout things like the
 			// Target is a MetaFile, a VDev or something else. The Canvas renderer is triggered
 			// currently using the shown boolean. Canvas is not yet the default.
 			if(xPrimitiveSequence.hasElements())
@@ -261,8 +260,9 @@ namespace sdr
 				pOutDev->SetLayoutMode(0); // reset, default is no BiDi/RTL
 
 				// create renderer
-                drawinglayer::processor2d::BaseProcessor2D* pProcessor2D = createBaseProcessor2DFromOutputDevice(
-                    rTargetOutDev, getViewInformation2D());
+                drawinglayer::processor2d::BaseProcessor2D* pProcessor2D = drawinglayer::processor2d::createProcessor2DFromOutputDevice(
+                    rTargetOutDev, 
+                    getViewInformation2D());
 
 				if(pProcessor2D)
 				{

Modified: openoffice/branches/ia2/main/svx/source/sdr/overlay/overlayanimatedbitmapex.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/svx/source/sdr/overlay/overlayanimatedbitmapex.cxx?rev=1448495&r1=1448494&r2=1448495&view=diff
==============================================================================
--- openoffice/branches/ia2/main/svx/source/sdr/overlay/overlayanimatedbitmapex.cxx (original)
+++ openoffice/branches/ia2/main/svx/source/sdr/overlay/overlayanimatedbitmapex.cxx Thu Feb 21 02:52:59 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/branches/ia2/main/svx/source/sdr/overlay/overlaymanager.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/svx/source/sdr/overlay/overlaymanager.cxx?rev=1448495&r1=1448494&r2=1448495&view=diff
==============================================================================
--- openoffice/branches/ia2/main/svx/source/sdr/overlay/overlaymanager.cxx (original)
+++ openoffice/branches/ia2/main/svx/source/sdr/overlay/overlaymanager.cxx Thu Feb 21 02:52:59 2013
@@ -32,8 +32,7 @@
 #include <vcl/window.hxx>
 #include <svx/sdr/overlay/overlayobject.hxx>
 #include <basegfx/matrix/b2dhommatrix.hxx>
-#include <drawinglayer/processor2d/baseprocessor2d.hxx>
-#include <svx/sdr/contact/objectcontacttools.hxx>
+#include <drawinglayer/processor2d/processor2dtools.hxx>
 
 //////////////////////////////////////////////////////////////////////////////
 
@@ -55,7 +54,7 @@ namespace sdr
 				const bool bIsAntiAliasing(getDrawinglayerOpt().IsAntiAliasing());
 
 				// create processor
-				drawinglayer::processor2d::BaseProcessor2D* pProcessor = ::sdr::contact::createBaseProcessor2DFromOutputDevice(
+				drawinglayer::processor2d::BaseProcessor2D* pProcessor = drawinglayer::processor2d::createProcessor2DFromOutputDevice(
 					rDestinationDevice, 
 					getCurrentViewInformation2D());
 
@@ -157,8 +156,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/branches/ia2/main/svx/source/sdr/overlay/overlayobject.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/svx/source/sdr/overlay/overlayobject.cxx?rev=1448495&r1=1448494&r2=1448495&view=diff
==============================================================================
--- openoffice/branches/ia2/main/svx/source/sdr/overlay/overlayobject.cxx (original)
+++ openoffice/branches/ia2/main/svx/source/sdr/overlay/overlayobject.cxx Thu Feb 21 02:52:59 2013
@@ -34,7 +34,6 @@
 #include <basegfx/polygon/b2dpolypolygon.hxx>
 #include <basegfx/polygon/b2dpolygontools.hxx>
 #include <basegfx/polygon/b2dpolypolygontools.hxx>
-#include <svx/sdr/contact/objectcontacttools.hxx>
 #include <drawinglayer/primitive2d/polygonprimitive2d.hxx>
 
 //////////////////////////////////////////////////////////////////////////////
@@ -72,6 +71,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/branches/ia2/main/svx/source/sdr/overlay/overlaypolypolygon.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/svx/source/sdr/overlay/overlaypolypolygon.cxx?rev=1448495&r1=1448494&r2=1448495&view=diff
==============================================================================
--- openoffice/branches/ia2/main/svx/source/sdr/overlay/overlaypolypolygon.cxx (original)
+++ openoffice/branches/ia2/main/svx/source/sdr/overlay/overlaypolypolygon.cxx Thu Feb 21 02:52:59 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();

Modified: openoffice/branches/ia2/main/svx/source/sdr/overlay/overlayprimitive2dsequenceobject.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/svx/source/sdr/overlay/overlayprimitive2dsequenceobject.cxx?rev=1448495&r1=1448494&r2=1448495&view=diff
==============================================================================
--- openoffice/branches/ia2/main/svx/source/sdr/overlay/overlayprimitive2dsequenceobject.cxx (original)
+++ openoffice/branches/ia2/main/svx/source/sdr/overlay/overlayprimitive2dsequenceobject.cxx Thu Feb 21 02:52:59 2013
@@ -26,8 +26,6 @@
 
 #include <svx/sdr/overlay/overlayprimitive2dsequenceobject.hxx>
 #include <drawinglayer/geometry/viewinformation2d.hxx>
-#include <drawinglayer/processor2d/vclpixelprocessor2d.hxx>
-#include <svx/sdr/contact/objectcontacttools.hxx>
 #include <svx/sdr/overlay/overlaymanager.hxx>
 
 //////////////////////////////////////////////////////////////////////////////

Modified: openoffice/branches/ia2/main/svx/source/sdr/overlay/overlayrollingrectangle.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/svx/source/sdr/overlay/overlayrollingrectangle.cxx?rev=1448495&r1=1448494&r2=1448495&view=diff
==============================================================================
--- openoffice/branches/ia2/main/svx/source/sdr/overlay/overlayrollingrectangle.cxx (original)
+++ openoffice/branches/ia2/main/svx/source/sdr/overlay/overlayrollingrectangle.cxx Thu Feb 21 02:52:59 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/branches/ia2/main/svx/source/sdr/overlay/overlaytools.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/svx/source/sdr/overlay/overlaytools.cxx?rev=1448495&r1=1448494&r2=1448495&view=diff
==============================================================================
--- openoffice/branches/ia2/main/svx/source/sdr/overlay/overlaytools.cxx (original)
+++ openoffice/branches/ia2/main/svx/source/sdr/overlay/overlaytools.cxx Thu Feb 21 02:52:59 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/branches/ia2/main/svx/source/svdraw/svdcrtv.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/svx/source/svdraw/svdcrtv.cxx?rev=1448495&r1=1448494&r2=1448495&view=diff
==============================================================================
--- openoffice/branches/ia2/main/svx/source/svdraw/svdcrtv.cxx (original)
+++ openoffice/branches/ia2/main/svx/source/svdraw/svdcrtv.cxx Thu Feb 21 02:52:59 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/branches/ia2/main/svx/source/svdraw/svddrgmt.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/svx/source/svdraw/svddrgmt.cxx?rev=1448495&r1=1448494&r2=1448495&view=diff
==============================================================================
--- openoffice/branches/ia2/main/svx/source/svdraw/svddrgmt.cxx (original)
+++ openoffice/branches/ia2/main/svx/source/svdraw/svddrgmt.cxx Thu Feb 21 02:52:59 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/branches/ia2/main/svx/source/svdraw/svdedxv.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/svx/source/svdraw/svdedxv.cxx?rev=1448495&r1=1448494&r2=1448495&view=diff
==============================================================================
--- openoffice/branches/ia2/main/svx/source/svdraw/svdedxv.cxx (original)
+++ openoffice/branches/ia2/main/svx/source/svdraw/svdedxv.cxx Thu Feb 21 02:52:59 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,25 @@
 #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/overlay/overlaytools.hxx>
+#include <drawinglayer/processor2d/processor2dtools.hxx>
 
 ////////////////////////////////////////////////////////////////////////////////////////////////////
 
@@ -364,44 +356,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 = drawinglayer::processor2d::createProcessor2DFromOutputDevice(
+            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/branches/ia2/main/svx/source/svdraw/svdhdl.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/svx/source/svdraw/svdhdl.cxx?rev=1448495&r1=1448494&r2=1448495&view=diff
==============================================================================
--- openoffice/branches/ia2/main/svx/source/svdraw/svdhdl.cxx (original)
+++ openoffice/branches/ia2/main/svx/source/svdraw/svdhdl.cxx Thu Feb 21 02:52:59 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/branches/ia2/main/svx/source/svdraw/svdmrkv.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/svx/source/svdraw/svdmrkv.cxx?rev=1448495&r1=1448494&r2=1448495&view=diff
==============================================================================
--- openoffice/branches/ia2/main/svx/source/svdraw/svdmrkv.cxx (original)
+++ openoffice/branches/ia2/main/svx/source/svdraw/svdmrkv.cxx Thu Feb 21 02:52:59 2013
@@ -870,12 +870,12 @@ void SdrMarkView::SetMarkHandles()
 		// Drehpunkt/Spiegelachse
 		AddDragModeHdl(eDragMode);
 
-		// add custom handles (used by other apps, e.g. AnchorPos)
-		AddCustomHdl();
-
 		// sort handles
 		aHdl.Sort();
 
+		// add custom handles (used by other apps, e.g. AnchorPos)
+		AddCustomHdl();
+
 		// #105722# try to restore focus handle index from remembered values
 		if(bSaveOldFocus)
 		{

Modified: openoffice/branches/ia2/main/svx/source/svdraw/svdobj.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/svx/source/svdraw/svdobj.cxx?rev=1448495&r1=1448494&r2=1448495&view=diff
==============================================================================
--- openoffice/branches/ia2/main/svx/source/svdraw/svdobj.cxx (original)
+++ openoffice/branches/ia2/main/svx/source/svdraw/svdobj.cxx Thu Feb 21 02:52:59 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/branches/ia2/main/svx/source/svdraw/svdview.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/svx/source/svdraw/svdview.cxx?rev=1448495&r1=1448494&r2=1448495&view=diff
==============================================================================
--- openoffice/branches/ia2/main/svx/source/svdraw/svdview.cxx (original)
+++ openoffice/branches/ia2/main/svx/source/svdraw/svdview.cxx Thu Feb 21 02:52:59 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()

Modified: openoffice/branches/ia2/main/svx/source/table/svdotable.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/svx/source/table/svdotable.cxx?rev=1448495&r1=1448494&r2=1448495&view=diff
==============================================================================
--- openoffice/branches/ia2/main/svx/source/table/svdotable.cxx (original)
+++ openoffice/branches/ia2/main/svx/source/table/svdotable.cxx Thu Feb 21 02:52:59 2013
@@ -2427,7 +2427,7 @@ void SdrTableObj::AddToHdlList(SdrHdlLis
 
 	// add remaining handles
 	SdrHdl* pH=0;
-	rHdlList.AddHdl( pH = new TableBorderHdl( aRect ) ); pH->SetMoveOutside( true );
+	rHdlList.AddHdl( pH = new TableBorderHdl( aRect, !IsTextEditActive() ) ); pH->SetMoveOutside( true );
 	rHdlList.AddHdl( pH = new SdrHdl(aRect.TopLeft(),HDL_UPLFT) ); pH->SetMoveOutside( true );
 	rHdlList.AddHdl( pH = new SdrHdl(aRect.TopCenter(),HDL_UPPER) ); pH->SetMoveOutside( true );
 	rHdlList.AddHdl( pH = new SdrHdl(aRect.TopRight(),HDL_UPRGT) ); pH->SetMoveOutside( true );

Modified: openoffice/branches/ia2/main/svx/source/table/tablehandles.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/svx/source/table/tablehandles.cxx?rev=1448495&r1=1448494&r2=1448495&view=diff
==============================================================================
--- openoffice/branches/ia2/main/svx/source/table/tablehandles.cxx (original)
+++ openoffice/branches/ia2/main/svx/source/table/tablehandles.cxx Thu Feb 21 02:52:59 2013
@@ -42,7 +42,7 @@
 #include <svx/svdmrkv.hxx>
 #include <svx/svdpagv.hxx>
 #include <drawinglayer/primitive2d/polypolygonprimitive2d.hxx>
-#include <svx/sdr/overlay/overlayhatchrect.hxx>
+#include <svx/sdr/overlay/overlayrectangle.hxx>
 #include <drawinglayer/primitive2d/hiddengeometryprimitive2d.hxx>
 
 namespace sdr { namespace table {
@@ -252,11 +252,13 @@ drawinglayer::primitive2d::Primitive2DSe
 
 // ====================================================================
 
-TableBorderHdl::TableBorderHdl( const Rectangle& rRect )
-: SdrHdl( rRect.TopLeft(), HDL_MOVE )
-, maRectangle( rRect )
+TableBorderHdl::TableBorderHdl( 
+    const Rectangle& rRect, 
+    bool bAnimate)
+:   SdrHdl(rRect.TopLeft(), HDL_MOVE), 
+    maRectangle(rRect),
+    mbAnimate(bAnimate)
 {
-
 }
 
 Pointer TableBorderHdl::GetPointer() const
@@ -278,7 +280,6 @@ void TableBorderHdl::CreateB2dIAObject()
 		{
 			for(sal_uInt32 nWindow = 0; nWindow < pPageView->PageWindowCount(); nWindow++)
 			{
-				// const SdrPageViewWinRec& rPageViewWinRec = rPageViewWinList[b];
 				const SdrPageWindow& rPageWindow = *pPageView->GetPageWindow(nWindow);
 
 				if(rPageWindow.GetPaintWindow().OutputToWindow())
@@ -286,14 +287,24 @@ void TableBorderHdl::CreateB2dIAObject()
 					if(rPageWindow.GetOverlayManager())
 					{
 						const basegfx::B2DRange aRange(vcl::unotools::b2DRectangleFromRectangle(maRectangle));
-						sdr::overlay::OverlayObject* pOverlayObject = new sdr::overlay::OverlayHatchRect(
+                        const SvtOptionsDrawinglayer aSvtOptionsDrawinglayer;
+                        const Color aHilightColor(aSvtOptionsDrawinglayer.getHilightColor());
+                        const double fTransparence(aSvtOptionsDrawinglayer.GetTransparentSelectionPercent() * 0.01);
+
+						sdr::overlay::OverlayObject* pOverlayObject = new sdr::overlay::OverlayRectangle(
 							aRange.getMinimum(),
 							aRange.getMaximum(),
-							Color(0x80, 0x80, 0x80),
+							aHilightColor,
+                            fTransparence,
 							6.0,
 							0.0,
-							45 * F_PI180,
-							0.0);
+							0.0,
+                            500,
+                            // make animation dependent from text edit active, because for tables
+                            // this handle is also used when text edit *is* active for it. This
+                            // interferes too much concerning repaint stuff (at least as long as
+                            // text edit is not yet on the overlay)
+                            getAnimate()); 
 
 						rPageWindow.GetOverlayManager()->add(*pOverlayObject);
 						maOverlayGroup.append(*pOverlayObject);

Modified: openoffice/branches/ia2/main/svx/source/table/tablehandles.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/svx/source/table/tablehandles.hxx?rev=1448495&r1=1448494&r2=1448495&view=diff
==============================================================================
--- openoffice/branches/ia2/main/svx/source/table/tablehandles.hxx (original)
+++ openoffice/branches/ia2/main/svx/source/table/tablehandles.hxx Thu Feb 21 02:52:59 2013
@@ -74,16 +74,22 @@ private:
 class TableBorderHdl : public SdrHdl
 {
 public:
-	TableBorderHdl( const Rectangle& rRect );
+	TableBorderHdl( 
+        const Rectangle& rRect,
+        bool bAnimate);
 
 	virtual Pointer GetPointer() const;
+    bool getAnimate() const { return mbAnimate; }
 
 protected:
 	// create marker for this kind
 	virtual void CreateB2dIAObject();
 
 private:
-	Rectangle maRectangle;
+    Rectangle maRectangle;
+
+    /// bitfield
+    bool            mbAnimate : 1;
 };
 
 } // end of namespace table

Modified: openoffice/branches/ia2/main/sw/source/core/doc/notxtfrm.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/sw/source/core/doc/notxtfrm.cxx?rev=1448495&r1=1448494&r2=1448495&view=diff
==============================================================================
--- openoffice/branches/ia2/main/sw/source/core/doc/notxtfrm.cxx (original)
+++ openoffice/branches/ia2/main/sw/source/core/doc/notxtfrm.cxx Thu Feb 21 02:52:59 2013
@@ -19,12 +19,9 @@
  * 
  *************************************************************/
 
-
-
 // MARKER(update_precomp.py): autogen include statement, do not remove
 #include "precompiled_sw.hxx"
 
-
 #include <hintids.hxx>
 #include <tools/urlobj.hxx>
 #include <vcl/print.hxx>
@@ -71,17 +68,13 @@
 #include <accessibilityoptions.hxx>
 #include <com/sun/star/embed/EmbedMisc.hpp>
 #include <com/sun/star/embed/EmbedStates.hpp>
-
 #include <svtools/embedhlp.hxx>
 #include <svx/charthelper.hxx>
-// --> OD 2009-03-05 #i99665#
 #include <dview.hxx>
-// <--
-
 #include <basegfx/matrix/b2dhommatrix.hxx>
-#include <svx/sdr/contact/objectcontacttools.hxx>
 #include <drawinglayer/processor2d/baseprocessor2d.hxx>
 #include <basegfx/matrix/b2dhommatrixtools.hxx>
+#include <drawinglayer/processor2d/processor2dtools.hxx>
 
 using namespace com::sun::star;
 
@@ -886,7 +879,7 @@ bool paintUsingPrimitivesHelper(
                 uno::Sequence< beans::PropertyValue >());
 
             // get a primitive processor for rendering
-            drawinglayer::processor2d::BaseProcessor2D* pProcessor2D = sdr::contact::createBaseProcessor2DFromOutputDevice(
+            drawinglayer::processor2d::BaseProcessor2D* pProcessor2D = drawinglayer::processor2d::createProcessor2DFromOutputDevice(
                 rOutputDevice, 
                 aViewInformation2D);
 

Modified: openoffice/branches/ia2/main/sw/source/core/frmedt/fecopy.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/sw/source/core/frmedt/fecopy.cxx?rev=1448495&r1=1448494&r2=1448495&view=diff
==============================================================================
--- openoffice/branches/ia2/main/sw/source/core/frmedt/fecopy.cxx (original)
+++ openoffice/branches/ia2/main/sw/source/core/frmedt/fecopy.cxx Thu Feb 21 02:52:59 2013
@@ -1466,7 +1466,43 @@ void SwFEShell::Paste( SvStream& rStrm, 
 		case SW_PASTESDR_SETATTR:
 			{
 				SfxItemSet aSet( GetAttrPool() );
-				aSet.Put(pClpObj->GetMergedItemSet());
+                const SdrGrafObj* pSdrGrafObj = dynamic_cast< const SdrGrafObj* >(pClpObj);
+
+                if(pSdrGrafObj)
+                {
+                    SdrObject* pTarget = 0;
+
+                    if(0 != pView->GetMarkedObjectList().GetMarkCount())
+                    {
+                        // try to get target (if it's at least one, take first)
+                        SdrMark* pMark = pView->GetMarkedObjectList().GetMark(0);
+
+                        if(pMark)
+                        {
+                            pTarget = pMark->GetMarkedSdrObj();
+                        }
+                    }
+
+                    if(pTarget)
+                    {
+                        // copy ItemSet from target
+                        aSet.Set(pTarget->GetMergedItemSet());
+                    }
+
+                    // for SdrGrafObj, use the graphic as fill style argument
+                    const Graphic& rGraphic = pSdrGrafObj->GetGraphic();
+
+                    if(GRAPHIC_NONE != rGraphic.GetType() && GRAPHIC_DEFAULT != rGraphic.GetType())
+                    {
+                        aSet.Put(XFillBitmapItem(String(), rGraphic));
+                        aSet.Put(XFillStyleItem(XFILL_BITMAP));
+                    }
+                }
+                else
+                {
+                    aSet.Put(pClpObj->GetMergedItemSet());
+                }
+
 				pView->SetAttributes( aSet, sal_False );
 			}
 			break;

Modified: openoffice/branches/ia2/main/sw/source/ui/dochdl/swdtflvr.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/sw/source/ui/dochdl/swdtflvr.cxx?rev=1448495&r1=1448494&r2=1448495&view=diff
==============================================================================
--- openoffice/branches/ia2/main/sw/source/ui/dochdl/swdtflvr.cxx (original)
+++ openoffice/branches/ia2/main/sw/source/ui/dochdl/swdtflvr.cxx Thu Feb 21 02:52:59 2013
@@ -397,8 +397,13 @@ sal_Bool SwTransferable::GetData( const 
 	{
         SelectionType nSelectionType = pWrtShell->GetSelectionType();
 
-// SEL_GRF kommt vom ContentType der editsh
-		if( (nsSelectionType::SEL_GRF | nsSelectionType::SEL_DRW_FORM) & nSelectionType )
+        // when pending we will not get the correct type, but nsSelectionType::SEL_TXT
+        // as fallback. This *happens* durning D&D, so we need to check if we are in
+        // the fallback and just try to get a graphic
+        const bool bPending(pWrtShell->BasicActionPend());
+
+        // SEL_GRF kommt vom ContentType der editsh
+		if(bPending || ((nsSelectionType::SEL_GRF | nsSelectionType::SEL_DRW_FORM) & nSelectionType))
 		{
 			pClpGraphic = new Graphic;
 			if( !pWrtShell->GetDrawObjGraphic( FORMAT_GDIMETAFILE, *pClpGraphic ))
@@ -1230,8 +1235,31 @@ int SwTransferable::PasteData( Transfera
 //            pTunneledTrans = (SwTransferable*) (sal_IntPtr) nHandle;
 //    }
 
-	if( pPt && ( bPasteSelection ? 0 != ( pTrans = pMod->pXSelection )
-								 : 0 != ( pTrans = pMod->pDragDrop) ))
+    // check for private drop
+    bool bPrivateDrop(pPt && (bPasteSelection ? 0 != (pTrans = pMod->pXSelection) : 0 != (pTrans = pMod->pDragDrop)));
+    bool bNeedToSelectBeforePaste(false);
+
+    if(bPrivateDrop && DND_ACTION_LINK == nDropAction)
+    {
+        // internal drop on object, suppress bPrivateDrop to change internal fill
+        bPrivateDrop = false;
+        bNeedToSelectBeforePaste = true;
+    }
+
+    if(bPrivateDrop && pPt && DND_ACTION_MOVE == nDropAction)
+    {
+        // check if dragged over a useful target. If yes, use as content exchange
+        // drop as if from external
+        const SwFrmFmt* pSwFrmFmt = rSh.GetFmtFromObj(*pPt);
+
+        if(pSwFrmFmt && 0 != dynamic_cast< const SwDrawFrmFmt* >(pSwFrmFmt))
+        {
+            bPrivateDrop = false;
+            bNeedToSelectBeforePaste = true;
+        }
+    }
+
+    if(bPrivateDrop)
 	{
 		// then internal Drag & Drop or XSelection
 		nRet = pTrans->PrivateDrop( rSh, *pPt, DND_ACTION_MOVE == nDropAction,
@@ -1283,7 +1311,7 @@ ASSERT( pPt, "EXCHG_OUT_ACTION_MOVE_PRIV
 			case SOT_FORMATSTR_ID_DRAWING:
 				nRet = SwTransferable::_PasteSdrFormat( rData, rSh,
 												SW_PASTESDR_INSERT, pPt,
-												nActionFlags );
+												nActionFlags, bNeedToSelectBeforePaste);
 				break;
 
 			case SOT_FORMATSTR_ID_HTML:
@@ -1321,7 +1349,7 @@ ASSERT( pPt, "EXCHG_OUT_ACTION_MOVE_PRIV
 			case SOT_FORMAT_GDIMETAFILE:
 				nRet = SwTransferable::_PasteGrf( rData, rSh, nFormat,
 												SW_PASTESDR_INSERT,pPt,
-												nActionFlags, bMsg );
+												nActionFlags, nDropAction, bNeedToSelectBeforePaste);
 				break;
 
 			case SOT_FORMATSTR_ID_XFORMS:
@@ -1441,7 +1469,7 @@ ASSERT( pPt, "EXCHG_OUT_ACTION_MOVE_PRIV
 			case SOT_FORMATSTR_ID_DRAWING:
 				nRet = SwTransferable::_PasteSdrFormat( rData, rSh,
 												SW_PASTESDR_SETATTR, pPt,
-												nActionFlags );
+												nActionFlags, bNeedToSelectBeforePaste);
 				break;
 			case SOT_FORMATSTR_ID_SVXB:
 			case SOT_FORMAT_GDIMETAFILE:
@@ -1452,7 +1480,7 @@ ASSERT( pPt, "EXCHG_OUT_ACTION_MOVE_PRIV
 			case SOT_FORMATSTR_ID_UNIFORMRESOURCELOCATOR:
 				nRet = SwTransferable::_PasteGrf( rData, rSh, nFormat,
 												SW_PASTESDR_SETATTR, pPt,
-												nActionFlags, bMsg );
+												nActionFlags, nDropAction, bNeedToSelectBeforePaste);
 				break;
 			default:
 				ASSERT( sal_False, "unbekanntes Format" );
@@ -1463,7 +1491,7 @@ ASSERT( pPt, "EXCHG_OUT_ACTION_MOVE_PRIV
 		case EXCHG_OUT_ACTION_INSERT_DRAWOBJ:
 			nRet = SwTransferable::_PasteSdrFormat( rData, rSh,
 												SW_PASTESDR_INSERT, pPt,
-												nActionFlags );
+												nActionFlags, bNeedToSelectBeforePaste);
 			break;
 		case EXCHG_OUT_ACTION_INSERT_SVXB:
 		case EXCHG_OUT_ACTION_INSERT_GDIMETAFILE:
@@ -1471,13 +1499,13 @@ ASSERT( pPt, "EXCHG_OUT_ACTION_MOVE_PRIV
 		case EXCHG_OUT_ACTION_INSERT_GRAPH:
 			nRet = SwTransferable::_PasteGrf( rData, rSh, nFormat,
 												SW_PASTESDR_INSERT, pPt,
-												nActionFlags, bMsg );
+												nActionFlags, nDropAction, bNeedToSelectBeforePaste);
 			break;
 
 		case EXCHG_OUT_ACTION_REPLACE_DRAWOBJ:
 			nRet = SwTransferable::_PasteSdrFormat( rData, rSh,
 												SW_PASTESDR_REPLACE, pPt,
-												nActionFlags );
+												nActionFlags, bNeedToSelectBeforePaste);
 			break;
 
 		case EXCHG_OUT_ACTION_REPLACE_SVXB:
@@ -1486,7 +1514,7 @@ ASSERT( pPt, "EXCHG_OUT_ACTION_MOVE_PRIV
 		case EXCHG_OUT_ACTION_REPLACE_GRAPH:
 			nRet = SwTransferable::_PasteGrf( rData, rSh, nFormat,
 												SW_PASTESDR_REPLACE,pPt,
-												nActionFlags, bMsg );
+												nActionFlags, nDropAction, bNeedToSelectBeforePaste);
 			break;
 
 		case EXCHG_OUT_ACTION_INSERT_INTERACTIVE:
@@ -2212,13 +2240,21 @@ int SwTransferable::_PasteDDE( Transfera
 
 int SwTransferable::_PasteSdrFormat(  TransferableDataHelper& rData,
 									SwWrtShell& rSh, sal_uInt16 nAction,
-									const Point* pPt, sal_uInt8 nActionFlags )
+									const Point* pPt, sal_uInt8 nActionFlags, bool bNeedToSelectBeforePaste)
 {
 	int nRet = 0;
 	SotStorageStreamRef xStrm;
 	if( rData.GetSotStorageStream( SOT_FORMATSTR_ID_DRAWING, xStrm ))
 	{
 		xStrm->SetVersion( SOFFICE_FILEFORMAT_50 );
+
+        if(bNeedToSelectBeforePaste && pPt)
+        {
+            // if this is an internal drag, need to set the target right (select it), else
+            // still the source will be selected
+            SwTransferable::SetSelInShell( rSh, sal_True, pPt );
+        }
+
 		rSh.Paste( *xStrm, nAction, pPt );
 		nRet = 1;
 
@@ -2233,7 +2269,7 @@ int SwTransferable::_PasteSdrFormat(  Tr
 
 int SwTransferable::_PasteGrf( TransferableDataHelper& rData, SwWrtShell& rSh,
 								sal_uLong nFmt, sal_uInt16 nAction, const Point* pPt,
-								sal_uInt8 nActionFlags, sal_Bool /*bMsg*/ )
+								sal_uInt8 nActionFlags, sal_Int8 /* nDropAction */, bool bNeedToSelectBeforePaste)
 {
 	int nRet = 0;
 
@@ -2248,6 +2284,19 @@ int SwTransferable::_PasteGrf( Transfera
 		nRet = rData.GetGraphic( nFmt, aGrf );
 		break;
 
+    case SOT_FORMATSTR_ID_SVXB:
+    {
+        SotStorageStreamRef xStm;
+
+        if(rData.GetSotStorageStream(SOT_FORMATSTR_ID_SVXB, xStm))
+        {
+            *xStm >> aGrf;
+            nRet = (GRAPHIC_NONE != aGrf.GetType() && GRAPHIC_DEFAULT != aGrf.GetType());
+        }
+
+        break;
+    }
+
 	case SOT_FORMATSTR_ID_NETSCAPE_BOOKMARK:
 	case SOT_FORMATSTR_ID_FILEGRPDESCRIPTOR:
 	case SOT_FORMATSTR_ID_UNIFORMRESOURCELOCATOR:
@@ -2307,6 +2356,15 @@ int SwTransferable::_PasteGrf( Transfera
 		}
 	}
 
+    if(pPt && bNeedToSelectBeforePaste)
+    {
+        // when using internal D&Ds, still the source object is selected and
+        // this is necessary to get the correct source data which is also
+        // dependent from selection. After receiving the drag data it is
+        // now tiime to select the correct target object
+        SwTransferable::SetSelInShell( rSh, sal_True, pPt );
+    }
+
 	if( nRet )
 	{
 		String sURL;
@@ -2475,10 +2533,10 @@ int SwTransferable::_PasteAsHyperlink( T
 int SwTransferable::_PasteFileName( TransferableDataHelper& rData,
 									SwWrtShell& rSh, sal_uLong nFmt,
 									sal_uInt16 nAction, const Point* pPt,
-									sal_uInt8 nActionFlags, sal_Bool bMsg )
+									sal_uInt8 nActionFlags, sal_Bool /* bMsg */)
 {
 	int nRet = SwTransferable::_PasteGrf( rData, rSh, nFmt, nAction,
-											pPt, nActionFlags, bMsg );
+											pPt, nActionFlags, 0, false);
     if( nRet )
         nRet |= SWTRANSFER_GRAPHIC_INSERTED;
     if( !nRet )

Modified: openoffice/branches/ia2/main/sw/source/ui/inc/swdtflvr.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/sw/source/ui/inc/swdtflvr.hxx?rev=1448495&r1=1448494&r2=1448495&view=diff
==============================================================================
--- openoffice/branches/ia2/main/sw/source/ui/inc/swdtflvr.hxx (original)
+++ openoffice/branches/ia2/main/sw/source/ui/inc/swdtflvr.hxx Thu Feb 21 02:52:59 2013
@@ -106,11 +106,11 @@ class SwTransferable : public Transferab
 
 	static int _PasteSdrFormat(  TransferableDataHelper& rData,
 									SwWrtShell& rSh, sal_uInt16 nAction,
-									const Point* pPt, sal_uInt8 nActionFlags );
+									const Point* pPt, sal_uInt8 nActionFlags, bool bNeedToSelectBeforePaste);
 
 	static int _PasteGrf( TransferableDataHelper& rData, SwWrtShell& rSh,
 								sal_uLong nFmt, sal_uInt16 nAction, const Point* pPt,
-								sal_uInt8 nActionFlags, sal_Bool bMsg );
+								sal_uInt8 nActionFlags, sal_Int8 nDropAction, bool bNeedToSelectBeforePaste);
 
 	static int _PasteImageMap( TransferableDataHelper& rData,
 									SwWrtShell& rSh );