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 2014/03/19 17:17:04 UTC

svn commit: r1579280 [1/8] - in /openoffice/trunk: ./ main/boost/ main/chart2/source/controller/main/ main/comphelper/inc/comphelper/ main/comphelper/source/property/ main/cui/source/factory/ main/cui/source/inc/ main/cui/source/tabpages/ main/drawingl...

Author: alg
Date: Wed Mar 19 16:17:02 2014
New Revision: 1579280

URL: http://svn.apache.org/r1579280
Log:
Merge back branch alg_writerframes to trunk

Added:
    openoffice/trunk/main/sw/inc/fillattributes.hxx
      - copied unchanged from r1579189, openoffice/branches/alg_writerframes/main/sw/inc/fillattributes.hxx
    openoffice/trunk/main/sw/inc/unobrushitemhelper.hxx
      - copied unchanged from r1579189, openoffice/branches/alg_writerframes/main/sw/inc/unobrushitemhelper.hxx
    openoffice/trunk/main/sw/source/core/layout/fillattributes.cxx
      - copied unchanged from r1579189, openoffice/branches/alg_writerframes/main/sw/source/core/layout/fillattributes.cxx
    openoffice/trunk/main/sw/source/core/unocore/unobrushitemhelper.cxx
      - copied unchanged from r1579189, openoffice/branches/alg_writerframes/main/sw/source/core/unocore/unobrushitemhelper.cxx
Modified:
    openoffice/trunk/   (props changed)
    openoffice/trunk/main/boost/boost-os2.patch   (props changed)
    openoffice/trunk/main/chart2/source/controller/main/ShapeController.cxx
    openoffice/trunk/main/comphelper/inc/comphelper/TypeGeneration.hxx
    openoffice/trunk/main/comphelper/source/property/TypeGeneration.cxx
    openoffice/trunk/main/cui/source/factory/dlgfact.cxx
    openoffice/trunk/main/cui/source/factory/dlgfact.hxx
    openoffice/trunk/main/cui/source/inc/cuitabarea.hxx
    openoffice/trunk/main/cui/source/tabpages/tabarea.cxx
    openoffice/trunk/main/cui/source/tabpages/tabarea.hrc
    openoffice/trunk/main/cui/source/tabpages/tabarea.src
    openoffice/trunk/main/cui/source/tabpages/tparea.cxx
    openoffice/trunk/main/drawinglayer/inc/drawinglayer/primitive2d/fillgradientprimitive2d.hxx
    openoffice/trunk/main/drawinglayer/inc/drawinglayer/primitive2d/fillhatchprimitive2d.hxx
    openoffice/trunk/main/drawinglayer/inc/drawinglayer/primitive2d/polypolygonprimitive2d.hxx
    openoffice/trunk/main/drawinglayer/inc/drawinglayer/texture/texture.hxx
    openoffice/trunk/main/drawinglayer/source/attribute/sdrfillgraphicattribute.cxx
    openoffice/trunk/main/drawinglayer/source/primitive2d/fillgradientprimitive2d.cxx
    openoffice/trunk/main/drawinglayer/source/primitive2d/fillhatchprimitive2d.cxx
    openoffice/trunk/main/drawinglayer/source/primitive2d/polypolygonprimitive2d.cxx
    openoffice/trunk/main/drawinglayer/source/primitive3d/hatchtextureprimitive3d.cxx
    openoffice/trunk/main/drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx
    openoffice/trunk/main/drawinglayer/source/processor2d/vclpixelprocessor2d.cxx
    openoffice/trunk/main/drawinglayer/source/processor3d/defaultprocessor3d.cxx
    openoffice/trunk/main/drawinglayer/source/texture/texture.cxx
    openoffice/trunk/main/drawinglayer/source/texture/texture3d.cxx
    openoffice/trunk/main/editeng/inc/editeng/brshitem.hxx
    openoffice/trunk/main/editeng/inc/editeng/unoprnms.hxx
    openoffice/trunk/main/editeng/inc/editeng/unotext.hxx
    openoffice/trunk/main/editeng/source/items/frmitems.cxx
    openoffice/trunk/main/officecfg/registry/data/org/openoffice/Office/UI/Sidebar.xcu
    openoffice/trunk/main/reportdesign/source/ui/misc/UITools.cxx
    openoffice/trunk/main/sc/source/ui/drawfunc/drawsh.cxx
    openoffice/trunk/main/sd/source/ui/func/fuarea.cxx
    openoffice/trunk/main/sfx2/source/dialog/tabdlg.cxx
    openoffice/trunk/main/svl/source/undo/undo.cxx
    openoffice/trunk/main/svx/inc/svx/sdr/primitive2d/sdrattributecreator.hxx
    openoffice/trunk/main/svx/inc/svx/sdr/primitive2d/sdrdecompositiontools.hxx
    openoffice/trunk/main/svx/inc/svx/svxdlg.hxx
    openoffice/trunk/main/svx/inc/svx/svxids.hrc
    openoffice/trunk/main/svx/inc/svx/unoshprp.hxx
    openoffice/trunk/main/svx/source/sdr/contact/viewcontactofmasterpagedescriptor.cxx
    openoffice/trunk/main/svx/source/sdr/contact/viewcontactofsdrcaptionobj.cxx
    openoffice/trunk/main/svx/source/sdr/contact/viewcontactofsdrpage.cxx
    openoffice/trunk/main/svx/source/sdr/primitive2d/sdrcaptionprimitive2d.cxx
    openoffice/trunk/main/svx/source/sdr/primitive2d/sdrconnectorprimitive2d.cxx
    openoffice/trunk/main/svx/source/sdr/primitive2d/sdrdecompositiontools.cxx
    openoffice/trunk/main/svx/source/sdr/primitive2d/sdrellipseprimitive2d.cxx
    openoffice/trunk/main/svx/source/sdr/primitive2d/sdrgrafprimitive2d.cxx
    openoffice/trunk/main/svx/source/sdr/primitive2d/sdrmeasureprimitive2d.cxx
    openoffice/trunk/main/svx/source/sdr/primitive2d/sdrole2primitive2d.cxx
    openoffice/trunk/main/svx/source/sdr/primitive2d/sdrpathprimitive2d.cxx
    openoffice/trunk/main/svx/source/sdr/primitive2d/sdrrectangleprimitive2d.cxx
    openoffice/trunk/main/svx/source/svdraw/svddrgmt.cxx
    openoffice/trunk/main/svx/source/table/viewcontactoftableobj.cxx
    openoffice/trunk/main/sw/Library_sw.mk
    openoffice/trunk/main/sw/inc/doc.hxx
    openoffice/trunk/main/sw/inc/format.hxx
    openoffice/trunk/main/sw/inc/frmatr.hxx
    openoffice/trunk/main/sw/inc/frmfmt.hxx
    openoffice/trunk/main/sw/inc/hintids.hxx
    openoffice/trunk/main/sw/inc/swatrset.hxx
    openoffice/trunk/main/sw/inc/unoframe.hxx
    openoffice/trunk/main/sw/inc/unomap.hxx
    openoffice/trunk/main/sw/inc/unoprnms.hxx
    openoffice/trunk/main/sw/sdi/_frmsh.sdi
    openoffice/trunk/main/sw/source/core/access/accpara.cxx
    openoffice/trunk/main/sw/source/core/attr/format.cxx
    openoffice/trunk/main/sw/source/core/attr/swatrset.cxx
    openoffice/trunk/main/sw/source/core/bastyp/init.cxx
    openoffice/trunk/main/sw/source/core/doc/docdraw.cxx
    openoffice/trunk/main/sw/source/core/doc/docfly.cxx
    openoffice/trunk/main/sw/source/core/doc/notxtfrm.cxx
    openoffice/trunk/main/sw/source/core/doc/poolfmt.cxx
    openoffice/trunk/main/sw/source/core/inc/frame.hxx
    openoffice/trunk/main/sw/source/core/inc/frmtool.hxx
    openoffice/trunk/main/sw/source/core/layout/atrfrm.cxx
    openoffice/trunk/main/sw/source/core/layout/paintfrm.cxx
    openoffice/trunk/main/sw/source/core/layout/wsfrm.cxx
    openoffice/trunk/main/sw/source/core/text/inftxt.cxx
    openoffice/trunk/main/sw/source/core/text/porfld.cxx
    openoffice/trunk/main/sw/source/core/text/txtfly.cxx
    openoffice/trunk/main/sw/source/core/txtnode/fntcache.cxx
    openoffice/trunk/main/sw/source/core/unocore/unoframe.cxx
    openoffice/trunk/main/sw/source/core/unocore/unomap.cxx
    openoffice/trunk/main/sw/source/core/unocore/unoprnms.cxx
    openoffice/trunk/main/sw/source/core/unocore/unostyle.cxx
    openoffice/trunk/main/sw/source/ui/app/docst.cxx
    openoffice/trunk/main/sw/source/ui/app/docstyle.cxx
    openoffice/trunk/main/sw/source/ui/fmtui/tmpdlg.cxx
    openoffice/trunk/main/sw/source/ui/fmtui/tmpdlg.src
    openoffice/trunk/main/sw/source/ui/frmdlg/frmdlg.cxx
    openoffice/trunk/main/sw/source/ui/frmdlg/frmmgr.cxx
    openoffice/trunk/main/sw/source/ui/frmdlg/frmpage.src
    openoffice/trunk/main/sw/source/ui/inc/frmsh.hxx
    openoffice/trunk/main/sw/source/ui/shells/basesh.cxx
    openoffice/trunk/main/sw/source/ui/shells/drawdlg.cxx
    openoffice/trunk/main/sw/source/ui/shells/frmsh.cxx
    openoffice/trunk/main/vcl/source/gdi/impgraph.cxx
    openoffice/trunk/main/xmloff/inc/xmloff/txtprmap.hxx
    openoffice/trunk/main/xmloff/inc/xmloff/xmltypes.hxx
    openoffice/trunk/main/xmloff/source/text/txtexppr.cxx
    openoffice/trunk/main/xmloff/source/text/txtprhdl.cxx
    openoffice/trunk/main/xmloff/source/text/txtprmap.cxx
    openoffice/trunk/test/   (props changed)

Propchange: openoffice/trunk/
------------------------------------------------------------------------------
  Merged /openoffice/branches/alg_writerframes:r1556289-1579189

Propchange: openoffice/trunk/main/boost/boost-os2.patch
------------------------------------------------------------------------------
  Merged /openoffice/branches/alg_writerframes/main/boost/boost-os2.patch:r1579184-1579189

Modified: openoffice/trunk/main/chart2/source/controller/main/ShapeController.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/chart2/source/controller/main/ShapeController.cxx?rev=1579280&r1=1579279&r2=1579280&view=diff
==============================================================================
--- openoffice/trunk/main/chart2/source/controller/main/ShapeController.cxx (original)
+++ openoffice/trunk/main/chart2/source/controller/main/ShapeController.cxx Wed Mar 19 16:17:02 2014
@@ -316,8 +316,7 @@ void ShapeController::executeDispatch_Fo
             if ( pFact )
             {
                 ::boost::scoped_ptr< AbstractSvxAreaTabDialog > pDlg(
-                    pFact->CreateSvxAreaTabDialog( pParent, &aAttr, &pDrawModelWrapper->getSdrModel(),
-                        pDrawViewWrapper ) );
+                    pFact->CreateSvxAreaTabDialog( pParent, &aAttr, &pDrawModelWrapper->getSdrModel(), true ) );
                 if ( pDlg.get() )
                 {
                     SfxItemPool& rItemPool = pDrawViewWrapper->GetModel()->GetItemPool();

Modified: openoffice/trunk/main/comphelper/inc/comphelper/TypeGeneration.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/comphelper/inc/comphelper/TypeGeneration.hxx?rev=1579280&r1=1579279&r2=1579280&view=diff
==============================================================================
--- openoffice/trunk/main/comphelper/inc/comphelper/TypeGeneration.hxx (original)
+++ openoffice/trunk/main/comphelper/inc/comphelper/TypeGeneration.hxx Wed Mar 19 16:17:02 2014
@@ -113,6 +113,13 @@ namespace comphelper
         CPPUTYPE_TABLEBORDERDISTANCES, //getCppuType( (table::TableBorderDistances*)0 )
         CPPUTPYE_REFEMBEDDEDOBJECT, // XEmbeddedObject::static_type
 
+        //UUUU add types needed for fill style definitions in SW
+        CPPUTYPE_RECTANGLEPOINT,    //getCppuType((drawing::RectanglePoint*)0)
+        CPPUTYPE_BITMAPMODE,        // getCppuType((drawing::BitmapMode*)0)
+        CPPUTYPE_GRADIENT,          // getCppuType((awt::Gradient*)0)
+        CPPUTYPE_HATCH,             // getCppuType((drawing::Hatch*)0)
+        CPPUTYPE_FILLSTYLE,         // getCppuType((drawing::FillStyle*)0)
+
         CPPUTYPE_END
 	};
 	COMPHELPER_DLLPUBLIC void GenerateCppuType (

Modified: openoffice/trunk/main/comphelper/source/property/TypeGeneration.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/comphelper/source/property/TypeGeneration.cxx?rev=1579280&r1=1579279&r2=1579280&view=diff
==============================================================================
--- openoffice/trunk/main/comphelper/source/property/TypeGeneration.cxx (original)
+++ openoffice/trunk/main/comphelper/source/property/TypeGeneration.cxx Wed Mar 19 16:17:02 2014
@@ -131,6 +131,13 @@
 #include <com/sun/star/graphic/XGraphic.hpp>
 #include <com/sun/star/embed/XEmbeddedObject.hpp>
 
+//UUUU add types needed for fill style definitions in SW
+#include <com/sun/star/drawing/RectanglePoint.hpp>
+#include <com/sun/star/drawing/BitmapMode.hpp>
+#include <com/sun/star/awt/Gradient.hpp>
+#include <com/sun/star/drawing/Hatch.hpp>
+#include <com/sun/star/drawing/FillStyle.hpp>
+
 using ::rtl::OUString;
 using namespace ::com::sun::star;
 using namespace ::com::sun::star::container;
@@ -228,7 +235,15 @@ namespace comphelper
             case CPPUTYPE_REFXGRAPHIC:      pType = &::getCppuType( (Reference< graphic::XGraphic >*)0); break;
             case CPPUTYPE_TABLEBORDERDISTANCES:     pType = &::getCppuType( (table::TableBorderDistances*)0 ); break;
             case CPPUTPYE_REFEMBEDDEDOBJECT:        pType = &embed::XEmbeddedObject::static_type(); break;
-			default:
+
+            //UUUU add types needed for fill style definitions in SW
+            case CPPUTYPE_RECTANGLEPOINT:   pType = &getCppuType((drawing::RectanglePoint*)0); break;
+            case CPPUTYPE_BITMAPMODE:       pType = &getCppuType((drawing::BitmapMode*)0); break;
+            case CPPUTYPE_GRADIENT:         pType = &getCppuType((awt::Gradient*)0); break;
+            case CPPUTYPE_HATCH:            pType = &getCppuType((drawing::Hatch*)0); break;
+            case CPPUTYPE_FILLSTYLE:        pType = &getCppuType((drawing::FillStyle*)0); break;
+
+            default:
 				OSL_ASSERT( "Unknown CPPU type" );
 		}
 	}

Modified: openoffice/trunk/main/cui/source/factory/dlgfact.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/cui/source/factory/dlgfact.cxx?rev=1579280&r1=1579279&r2=1579280&view=diff
==============================================================================
--- openoffice/trunk/main/cui/source/factory/dlgfact.cxx (original)
+++ openoffice/trunk/main/cui/source/factory/dlgfact.cxx Wed Mar 19 16:17:02 2014
@@ -1607,9 +1607,9 @@ AbstractGraphicFilterDialog * AbstractDi
 AbstractSvxAreaTabDialog* AbstractDialogFactory_Impl::CreateSvxAreaTabDialog( Window* pParent,
 															const SfxItemSet* pAttr,
 															SdrModel* pModel,
-															const SdrView* pSdrView )
+                                                            bool bShadow)
 {
-	SvxAreaTabDialog* pDlg = new SvxAreaTabDialog( pParent, pAttr, pModel,pSdrView );
+	SvxAreaTabDialog* pDlg = new SvxAreaTabDialog( pParent, pAttr, pModel, bShadow );
 	return new AbstractSvxAreaTabDialog_Impl( pDlg );
 }
 

Modified: openoffice/trunk/main/cui/source/factory/dlgfact.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/cui/source/factory/dlgfact.hxx?rev=1579280&r1=1579279&r2=1579280&view=diff
==============================================================================
--- openoffice/trunk/main/cui/source/factory/dlgfact.hxx (original)
+++ openoffice/trunk/main/cui/source/factory/dlgfact.hxx Wed Mar 19 16:17:02 2014
@@ -741,7 +741,7 @@ public:
 	virtual AbstractSvxAreaTabDialog* 		CreateSvxAreaTabDialog( Window* pParent,//add for SvxAreaTabDialog
 															const SfxItemSet* pAttr,
 															SdrModel* pModel,
-															const SdrView* pSdrView = NULL ); //add for SvxAreaTabDialog
+                                                            bool bShadow ); //add for SvxAreaTabDialog
 	virtual SfxAbstractTabDialog*			CreateSvxLineTabDialog( Window* pParent, const SfxItemSet* pAttr, //add for SvxLineTabDialog
 																 SdrModel* pModel,
 																 const SdrObject* pObj = NULL,

Modified: openoffice/trunk/main/cui/source/inc/cuitabarea.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/cui/source/inc/cuitabarea.hxx?rev=1579280&r1=1579279&r2=1579280&view=diff
==============================================================================
--- openoffice/trunk/main/cui/source/inc/cuitabarea.hxx (original)
+++ openoffice/trunk/main/cui/source/inc/cuitabarea.hxx Wed Mar 19 16:17:02 2014
@@ -71,9 +71,7 @@ protected:
 #endif
 
 public:
-	SvxAreaTabDialog( Window* pParent,
-					  const SfxItemSet* pAttr, SdrModel* pModel,
-					  const SdrView* pSdrView = NULL );
+	SvxAreaTabDialog( Window* pParent, const SfxItemSet* pAttr, SdrModel* pModel, bool bShadow );
 	~SvxAreaTabDialog();
 
 	void SetNewColorTable( XColorListSharedPtr aColTab ) { maNewColorTab = aColTab; }
@@ -107,10 +105,8 @@ class SvxTransparenceTabPage : public Sv
 	const SfxItemSet&   rOutAttrs;
 	RECT_POINT          eRP;
 
-	//CHINA001 sal_uInt16*             pPageType;
-	//CHINA001 sal_uInt16*             pDlgType;
-	sal_uInt16             nPageType; //add CHINA001 
-	sal_uInt16             nDlgType;  //add CHINA001 
+	sal_uInt16             nPageType;
+	sal_uInt16             nDlgType;
 
 	// main selection
     FixedLine           aFlProp;
@@ -240,19 +236,23 @@ private:
 	XHatchListSharedPtr     maHatchingList;
 	XBitmapListSharedPtr    maBitmapList;
 
+    // Placeholders for pointer-based entries; these will be inited
+    // to point to these so that the page is usable without that
+    // SvxAreaTabDialog has to call the setter methods (e.g. SetColorChgd).
+    // Without that the pages used in SvxAreaTabDialog are not usable
+    ChangeType          maFixed_ChangeType;
+    sal_Bool            maFixed_sal_Bool;
+
 	ChangeType*         pnColorTableState;
 	ChangeType*         pnBitmapListState;
 	ChangeType*         pnGradientListState;
 	ChangeType*         pnHatchingListState;
 
-	//CHINA001 sal_uInt16*             pPageType;
-	//CHINA001 sal_uInt16*             pDlgType;
-	//CHINA001 sal_uInt16*             pPos;
-	sal_uInt16 nPageType; //add CHINA001 
-	sal_uInt16 nDlgType;//add CHINA001 
-	sal_uInt16 nPos; //add CHINA001 
+	sal_uInt16          nPageType;
+	sal_uInt16          nDlgType;
+	sal_uInt16          nPos;
 
-	sal_Bool*               pbAreaTP;
+	sal_Bool*           pbAreaTP;
 
 	XOutdevItemPool*    pXPool;
 	XFillAttrSetItem    aXFillAttr;
@@ -261,6 +261,14 @@ private:
 	SfxMapUnit			ePoolUnit;
 	FieldUnit			eFUnit;
 
+    //UUUU
+    bool                mbOfferImportButton;
+    bool                mbPositionsAdapted;
+    bool                mbDirectGraphicSet;
+    Graphic             maDirectGraphic;
+    String              maDirectName;
+    PushButton          maBtnImport;
+
 #ifdef _SVX_TPAREA_CXX
 	DECL_LINK( SelectDialogTypeHdl_Impl, ListBox * );
 	DECL_LINK( ClickInvisibleHdl_Impl, void * );
@@ -276,12 +284,16 @@ private:
 	DECL_LINK( ModifyBitmapHdl_Impl, void * );
 //	DECL_LINK( ModifyTransparentHdl_Impl, void * );
 	DECL_LINK( ModifyStepCountHdl_Impl, void * );
+
+    //UUUU
+    DECL_LINK( ClickImportHdl_Impl, void * );
+
 	DECL_LINK( ModifyTileHdl_Impl, void * );
 	DECL_LINK( ClickScaleHdl_Impl, void * );
 #endif
 
 public:
-	SvxAreaTabPage( Window* pParent, const SfxItemSet& rInAttrs  );
+	SvxAreaTabPage( Window* pParent, const SfxItemSet& rInAttrs );
 
 	void    Construct();
 

Modified: openoffice/trunk/main/cui/source/tabpages/tabarea.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/cui/source/tabpages/tabarea.cxx?rev=1579280&r1=1579279&r2=1579280&view=diff
==============================================================================
--- openoffice/trunk/main/cui/source/tabpages/tabarea.cxx (original)
+++ openoffice/trunk/main/cui/source/tabpages/tabarea.cxx Wed Mar 19 16:17:02 2014
@@ -62,7 +62,7 @@ SvxAreaTabDialog::SvxAreaTabDialog
 	Window* pParent,
 	const SfxItemSet* pAttr,
 	SdrModel* pModel,
-	const SdrView* /* pSdrView */
+    bool bShadow
 ) :
 
 	SfxTabDialog( pParent, CUI_RES( RID_SVXDLG_AREA ), pAttr ),
@@ -86,20 +86,29 @@ SvxAreaTabDialog::SvxAreaTabDialog
     mnPos( 0 ),
     mbAreaTP( sal_False )
 {
-	FreeResource();
+    FreeResource();
 
-	AddTabPage( RID_SVXPAGE_AREA, SvxAreaTabPage::Create, 0 );
-	AddTabPage( RID_SVXPAGE_SHADOW, SvxShadowTabPage::Create, 0 );
-	AddTabPage( RID_SVXPAGE_TRANSPARENCE, SvxTransparenceTabPage::Create,  0);
-	AddTabPage( RID_SVXPAGE_COLOR, SvxColorTabPage::Create, 0 );
-	AddTabPage( RID_SVXPAGE_GRADIENT, SvxGradientTabPage::Create, 0 );
-	AddTabPage( RID_SVXPAGE_HATCH, SvxHatchTabPage::Create, 0 );
-	AddTabPage( RID_SVXPAGE_BITMAP, SvxBitmapTabPage::Create,  0);
+    AddTabPage( RID_SVXPAGE_AREA, SvxAreaTabPage::Create, 0 );
 
-	SetCurPageId( RID_SVXPAGE_AREA );
+    if(bShadow)
+    {
+        AddTabPage( RID_SVXPAGE_SHADOW, SvxShadowTabPage::Create, 0 );
+    }
+    else
+    {
+        RemoveTabPage( RID_SVXPAGE_SHADOW );
+    }
+
+    AddTabPage( RID_SVXPAGE_TRANSPARENCE, SvxTransparenceTabPage::Create,  0);
+    AddTabPage( RID_SVXPAGE_COLOR, SvxColorTabPage::Create, 0 );
+    AddTabPage( RID_SVXPAGE_GRADIENT, SvxGradientTabPage::Create, 0 );
+    AddTabPage( RID_SVXPAGE_HATCH, SvxHatchTabPage::Create, 0 );
+    AddTabPage( RID_SVXPAGE_BITMAP, SvxBitmapTabPage::Create,  0);
+
+    SetCurPageId( RID_SVXPAGE_AREA );
 
-	CancelButton& rBtnCancel = GetCancelButton();
-	rBtnCancel.SetClickHdl( LINK( this, SvxAreaTabDialog, CancelHdlImpl ) );
+    CancelButton& rBtnCancel = GetCancelButton();
+    rBtnCancel.SetClickHdl( LINK( this, SvxAreaTabDialog, CancelHdlImpl ) );
 //! rBtnCancel.SetText( CUI_RESSTR( RID_SVXSTR_CLOSE ) );
 }
 

Modified: openoffice/trunk/main/cui/source/tabpages/tabarea.hrc
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/cui/source/tabpages/tabarea.hrc?rev=1579280&r1=1579279&r2=1579280&view=diff
==============================================================================
--- openoffice/trunk/main/cui/source/tabpages/tabarea.hrc (original)
+++ openoffice/trunk/main/cui/source/tabpages/tabarea.hrc Wed Mar 19 16:17:02 2014
@@ -142,6 +142,8 @@
 #define RBT_COLUMN 7
 #define MTR_FLD_OFFSET 3
 #define GRP_OFFSET 8
+//UUUU
+#define BTN_IMPORTOPTIONAL 1
 
 #define FT_TRANSPARENT 9
 #define FT_X_SIZE 10

Modified: openoffice/trunk/main/cui/source/tabpages/tabarea.src
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/cui/source/tabpages/tabarea.src?rev=1579280&r1=1579279&r2=1579280&view=diff
==============================================================================
--- openoffice/trunk/main/cui/source/tabpages/tabarea.src (original)
+++ openoffice/trunk/main/cui/source/tabpages/tabarea.src Wed Mar 19 16:17:02 2014
@@ -560,6 +560,15 @@ TabPage RID_SVXPAGE_AREA
 		Last = 100 ;
 		SpinSize = 5 ;
 	};
+    //UUUU
+    PushButton BTN_IMPORTOPTIONAL
+    {
+        HelpID = "cui:PushButton:MD_ICONSELECTOR:BTN_IMPORTOPTIONAL";
+        Pos = MAP_APPFONT ( 132 + 12, 157 + 6 ) ;
+        Size = MAP_APPFONT ( 100 , 14 ) ;
+        TabStop = TRUE ;
+        Text[ en-US ] = "Import Graphic...";
+    };
 };
  // RID_SVXPAGE_SHADOW ------------------------------------------------------
 TabPage RID_SVXPAGE_SHADOW

Modified: openoffice/trunk/main/cui/source/tabpages/tparea.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/cui/source/tabpages/tparea.cxx?rev=1579280&r1=1579279&r2=1579280&view=diff
==============================================================================
--- openoffice/trunk/main/cui/source/tabpages/tparea.cxx (original)
+++ openoffice/trunk/main/cui/source/tabpages/tparea.cxx Wed Mar 19 16:17:02 2014
@@ -54,6 +54,11 @@
 #include <svl/intitem.hxx> //add CHINA001
 #include <sfx2/request.hxx>//add CHINA001
 #include "paragrph.hrc"
+
+//UUUU
+#include "sfx2/opengrf.hxx"
+#include <vcl/msgbox.hxx>
+
 #define DLGWIN this->GetParent()->GetParent()
 
 // static ----------------------------------------------------------------
@@ -248,8 +253,10 @@ void SvxTransparenceTabPage::SetControlS
 }
 
 SvxTransparenceTabPage::SvxTransparenceTabPage(Window* pParent, const SfxItemSet& rInAttrs)
-:	SvxTabPage			( pParent, CUI_RES( RID_SVXPAGE_TRANSPARENCE ), rInAttrs),
+:   SvxTabPage			( pParent, CUI_RES( RID_SVXPAGE_TRANSPARENCE ), rInAttrs),
     rOutAttrs           ( rInAttrs ),
+    eRP                 ( RP_MM ),
+
     nPageType(0),
     nDlgType(0),
     
@@ -616,9 +623,8 @@ void SvxTransparenceTabPage::PageCreated
 |*
 \************************************************************************/
 
-SvxAreaTabPage::SvxAreaTabPage( Window* pParent, const SfxItemSet& rInAttrs ) :
-
-	SvxTabPage			( pParent, CUI_RES( RID_SVXPAGE_AREA ), rInAttrs ),
+SvxAreaTabPage::SvxAreaTabPage( Window* pParent, const SfxItemSet& rInAttrs ) 
+:   SvxTabPage			( pParent, CUI_RES( RID_SVXPAGE_AREA ), rInAttrs ),
 
     aFlProp             ( this, CUI_RES( FL_PROP ) ),
     aTypeLB             ( this, CUI_RES( LB_AREA_TYPE ) ),
@@ -659,15 +665,43 @@ SvxAreaTabPage::SvxAreaTabPage( Window* 
     aCtlXRectPreview    ( this, CUI_RES( CTL_COLOR_PREVIEW ) ),
     
     rOutAttrs           ( rInAttrs ),
+    eRP                 ( RP_MM ),
 
     maColorTab(),
     maGradientList(),
     maHatchingList(),
     maBitmapList(),
 
+    // local fixed not o be changed values for local pointers
+    maFixed_ChangeType(CT_NONE),
+    maFixed_sal_Bool(false),
+
+    // init with pointers to fixed ChangeType
+    pnColorTableState(&maFixed_ChangeType),
+    pnBitmapListState(&maFixed_ChangeType),
+    pnGradientListState(&maFixed_ChangeType),
+    pnHatchingListState(&maFixed_ChangeType),
+
+    nPageType(0),
+    nDlgType(0),
+    nPos(0),
+
+    // init with pointer to fixed bool
+    pbAreaTP(&maFixed_sal_Bool),
+
     pXPool              ( (XOutdevItemPool*) rInAttrs.GetPool() ),
     aXFillAttr          ( pXPool ),
-    rXFSet              ( aXFillAttr.GetItemSet() )
+    rXFSet              ( aXFillAttr.GetItemSet() ),
+
+    ePoolUnit(SFX_MAPUNIT_100TH_MM),
+    eFUnit(FUNIT_NONE),
+
+    //UUUU
+    mbOfferImportButton(false),
+    mbPositionsAdapted(false),
+    mbDirectGraphicSet(false),
+    maDirectGraphic(),
+    maBtnImport(this, CUI_RES(BTN_IMPORTOPTIONAL))
 {
 	FreeResource();
 
@@ -683,6 +717,8 @@ SvxAreaTabPage::SvxAreaTabPage( Window* 
 	aTsbStepCount.Hide();
 	aNumFldStepCount.Hide();
 
+    //UUUU
+    maBtnImport.Hide();
 	aTsbTile.Hide();
 	aTsbStretch.Hide();
 	aTsbScale.Hide();
@@ -702,6 +738,7 @@ SvxAreaTabPage::SvxAreaTabPage( Window* 
 	aFtYOffset.Hide();
 	aMtrFldYOffset.Hide();
     aFlPosition.Hide();
+
 	// Controls for Hatch-Background
 	aCbxHatchBckgrd.Hide();
 	aLbHatchBckgrdColor.Hide();
@@ -754,6 +791,10 @@ SvxAreaTabPage::SvxAreaTabPage( Window* 
 	aNumFldStepCount.SetModifyHdl(
 		LINK( this, SvxAreaTabPage, ModifyStepCountHdl_Impl ) );
 
+    //UUUU
+    maBtnImport.SetClickHdl(LINK(this, SvxAreaTabPage, ClickImportHdl_Impl));
+    maBtnImport.SetAccessibleRelationMemberOf(&aFlProp);
+
 	Link aLink( LINK( this, SvxAreaTabPage, ModifyTileHdl_Impl ) );
 	aTsbTile.SetClickHdl( aLink );
 	aTsbStretch.SetClickHdl( aLink );
@@ -1124,33 +1165,44 @@ sal_Bool SvxAreaTabPage::FillItemSet( Sf
             break;
             case XFILL_BITMAP:
             {
-                nPos = aLbBitmap.GetSelectEntryPos();
-                if( nPos != LISTBOX_ENTRY_NOTFOUND &&
-                    nPos != aLbBitmap.GetSavedValue() )
+                //UUUU
+                if(mbDirectGraphicSet && GRAPHIC_NONE != maDirectGraphic.GetType())
                 {
-                    const XBitmapEntry* pXBitmapEntry = maBitmapList->GetBitmap(nPos);
-                    const String aString(aLbBitmap.GetSelectEntry());
-                    const XFillBitmapItem aFillBitmapItem(aString, pXBitmapEntry->GetGraphicObject());
-                    pOld = GetOldItem( rAttrs, XATTR_FILLBITMAP );
-                    if ( !pOld || !( *(const XFillBitmapItem*)pOld == aFillBitmapItem ) )
-                    {
-                        rAttrs.Put( aFillBitmapItem );
-                        bModified = sal_True;
-                    }
+                    const XFillBitmapItem aXBmpItem(maDirectName, maDirectGraphic);
+                    rAttrs.Put(XFillStyleItem(XFILL_BITMAP));
+                    rAttrs.Put(aXBmpItem);
+                    bModified = sal_True;
                 }
-                // NEU
-                if( (eSavedStyle != eStyle) &&
-                    ( bModified ||
-                      SFX_ITEM_SET == rOutAttrs.GetItemState( GetWhich( XATTR_FILLBITMAP ), sal_True ) ) )
+                else
                 {
-                    XFillStyleItem aStyleItem( XFILL_BITMAP );
-                    pOld = GetOldItem( rAttrs, XATTR_FILLSTYLE );
-                    if ( !pOld || !( *(const XFillStyleItem*)pOld == aStyleItem ) )
+                    nPos = aLbBitmap.GetSelectEntryPos();
+                    if( nPos != LISTBOX_ENTRY_NOTFOUND &&
+                        nPos != aLbBitmap.GetSavedValue() )
                     {
-                        rAttrs.Put( aStyleItem );
-                        bModified = sal_True;
+                        const XBitmapEntry* pXBitmapEntry = maBitmapList->GetBitmap(nPos);
+                        const String aString(aLbBitmap.GetSelectEntry());
+                        const XFillBitmapItem aFillBitmapItem(aString, pXBitmapEntry->GetGraphicObject());
+                        pOld = GetOldItem( rAttrs, XATTR_FILLBITMAP );
+                        if ( !pOld || !( *(const XFillBitmapItem*)pOld == aFillBitmapItem ) )
+                        {
+                            rAttrs.Put( aFillBitmapItem );
+                            bModified = sal_True;
+                        }
                     }
-               }
+                    // NEU
+                    if( (eSavedStyle != eStyle) &&
+                        ( bModified ||
+                          SFX_ITEM_SET == rOutAttrs.GetItemState( GetWhich( XATTR_FILLBITMAP ), sal_True ) ) )
+                    {
+                        XFillStyleItem aStyleItem( XFILL_BITMAP );
+                        pOld = GetOldItem( rAttrs, XATTR_FILLSTYLE );
+                        if ( !pOld || !( *(const XFillStyleItem*)pOld == aStyleItem ) )
+                        {
+                            rAttrs.Put( aStyleItem );
+                            bModified = sal_True;
+                        }
+                   }
+                }
            }
            break;
        }
@@ -1778,6 +1830,8 @@ IMPL_LINK( SvxAreaTabPage, SelectDialogT
 
 IMPL_LINK( SvxAreaTabPage, ClickInvisibleHdl_Impl, void *, EMPTYARG )
 {
+    //UUUU
+    maBtnImport.Hide();
 	aTsbTile.Hide();
 	aTsbStretch.Hide();
 	aTsbScale.Hide();
@@ -1827,6 +1881,8 @@ IMPL_LINK( SvxAreaTabPage, ClickInvisibl
 
 IMPL_LINK( SvxAreaTabPage, ClickColorHdl_Impl, void *, EMPTYARG )
 {
+    //UUUU
+    maBtnImport.Hide();
 	aTsbTile.Hide();
 	aTsbStretch.Hide();
 	aTsbScale.Hide();
@@ -1915,6 +1971,8 @@ IMPL_LINK( SvxAreaTabPage, ModifyColorHd
 
 IMPL_LINK( SvxAreaTabPage, ClickGradientHdl_Impl, void *, EMPTYARG )
 {
+    //UUUU
+    maBtnImport.Hide();
 	aTsbTile.Hide();
 	aTsbStretch.Hide();
 	aTsbScale.Hide();
@@ -2023,6 +2081,8 @@ IMPL_LINK( SvxAreaTabPage, ClickHatching
 	aTsbStepCount.Hide();
 	aNumFldStepCount.Hide();
 
+    //UUUU
+    maBtnImport.Hide();
 	aTsbTile.Hide();
 	aTsbStretch.Hide();
 	aTsbScale.Hide();
@@ -2197,6 +2257,50 @@ IMPL_LINK( SvxAreaTabPage, ClickBitmapHd
 	aCbxHatchBckgrd.Hide();
 	aLbHatchBckgrdColor.Hide();
 
+    //UUUU
+    if(mbOfferImportButton)
+    {
+        maBtnImport.Show();
+        maBtnImport.Enable();
+    }
+    else
+    {
+        maBtnImport.Hide();
+        maBtnImport.Disable();
+    }
+
+    if(mbOfferImportButton && !mbPositionsAdapted)
+    {
+        //UUUU adapt positions only once in dialogs lifetime
+        mbPositionsAdapted = true;
+
+        // adapt in y from position of FL_SIZE MAP_APPFONT(3) to position of MTR_FLD_OFFSET MAP_APPFONT(157)
+        const sal_uInt32 nOrigStartY(aFlSize.GetPosPixel().Y());
+        const sal_uInt32 nOrigHeight(aMtrFldOffset.GetPosPixel().Y() - nOrigStartY);
+        const sal_uInt32 nBtnImportHeight(maBtnImport.GetSizePixel().Height());
+        const sal_uInt32 nNewHeight(nOrigHeight - nBtnImportHeight);
+
+        aFlSize.SetPosPixel(Point(aFlSize.GetPosPixel().X(), nOrigStartY + (((aFlSize.GetPosPixel().Y() - nOrigStartY) * nNewHeight) / nOrigHeight)));
+        aTsbOriginal.SetPosPixel(Point(aTsbOriginal.GetPosPixel().X(), nOrigStartY + (((aTsbOriginal.GetPosPixel().Y() - nOrigStartY) * nNewHeight) / nOrigHeight)));
+        aTsbScale.SetPosPixel(Point(aTsbScale.GetPosPixel().X(), nOrigStartY + (((aTsbScale.GetPosPixel().Y() - nOrigStartY) * nNewHeight) / nOrigHeight)));
+        aFtXSize.SetPosPixel(Point(aFtXSize.GetPosPixel().X(), nOrigStartY + (((aFtXSize.GetPosPixel().Y() - nOrigStartY) * nNewHeight) / nOrigHeight)));
+        aMtrFldXSize.SetPosPixel(Point(aMtrFldXSize.GetPosPixel().X(), nOrigStartY + (((aMtrFldXSize.GetPosPixel().Y() - nOrigStartY) * nNewHeight) / nOrigHeight)));
+        aFtYSize.SetPosPixel(Point(aFtYSize.GetPosPixel().X(), nOrigStartY + (((aFtYSize.GetPosPixel().Y() - nOrigStartY) * nNewHeight) / nOrigHeight)));
+        aMtrFldYSize.SetPosPixel(Point(aMtrFldYSize.GetPosPixel().X(), nOrigStartY + (((aMtrFldYSize.GetPosPixel().Y() - nOrigStartY) * nNewHeight) / nOrigHeight)));
+        aFlPosition.SetPosPixel(Point(aFlPosition.GetPosPixel().X(), nOrigStartY + (((aFlPosition.GetPosPixel().Y() - nOrigStartY) * nNewHeight) / nOrigHeight)));
+        aCtlPosition.SetPosPixel(Point(aCtlPosition.GetPosPixel().X(), nOrigStartY + (((aCtlPosition.GetPosPixel().Y() - nOrigStartY) * nNewHeight) / nOrigHeight)));
+        aFtXOffset.SetPosPixel(Point(aFtXOffset.GetPosPixel().X(), nOrigStartY + (((aFtXOffset.GetPosPixel().Y() - nOrigStartY) * nNewHeight) / nOrigHeight)));
+        aMtrFldXOffset.SetPosPixel(Point(aMtrFldXOffset.GetPosPixel().X(), nOrigStartY + (((aMtrFldXOffset.GetPosPixel().Y() - nOrigStartY) * nNewHeight) / nOrigHeight)));
+        aFtYOffset.SetPosPixel(Point(aFtYOffset.GetPosPixel().X(), nOrigStartY + (((aFtYOffset.GetPosPixel().Y() - nOrigStartY) * nNewHeight) / nOrigHeight)));
+        aMtrFldYOffset.SetPosPixel(Point(aMtrFldYOffset.GetPosPixel().X(), nOrigStartY + (((aMtrFldYOffset.GetPosPixel().Y() - nOrigStartY) * nNewHeight) / nOrigHeight)));
+        aTsbTile.SetPosPixel(Point(aTsbTile.GetPosPixel().X(), nOrigStartY + (((aTsbTile.GetPosPixel().Y() - nOrigStartY) * nNewHeight) / nOrigHeight)));
+        aTsbStretch.SetPosPixel(Point(aTsbStretch.GetPosPixel().X(), nOrigStartY + (((aTsbStretch.GetPosPixel().Y() - nOrigStartY) * nNewHeight) / nOrigHeight)));
+        aFlOffset.SetPosPixel(Point(aFlOffset.GetPosPixel().X(), nOrigStartY + (((aFlOffset.GetPosPixel().Y() - nOrigStartY) * nNewHeight) / nOrigHeight)));
+        aRbtRow.SetPosPixel(Point(aRbtRow.GetPosPixel().X(), nOrigStartY + (((aRbtRow.GetPosPixel().Y() - nOrigStartY) * nNewHeight) / nOrigHeight)));
+        aRbtColumn.SetPosPixel(Point(aRbtColumn.GetPosPixel().X(), nOrigStartY + (((aRbtColumn.GetPosPixel().Y() - nOrigStartY) * nNewHeight) / nOrigHeight)));
+        aMtrFldOffset.SetPosPixel(Point(aMtrFldOffset.GetPosPixel().X(), nOrigStartY + (((aMtrFldOffset.GetPosPixel().Y() - nOrigStartY) * nNewHeight) / nOrigHeight)));
+    }
+
 	aTsbTile.Show();
 	aTsbStretch.Show();
 	aTsbScale.Show();
@@ -2244,6 +2348,11 @@ IMPL_LINK( SvxAreaTabPage, ClickBitmapHd
 
 IMPL_LINK( SvxAreaTabPage, ModifyBitmapHdl_Impl, void *, EMPTYARG )
 {
+    //UUUU
+    mbDirectGraphicSet = false;
+    maDirectGraphic.Clear();
+    maDirectName = String();
+
 	const SfxPoolItem* pPoolItem = NULL;
     sal_uInt16 _nPos = aLbBitmap.GetSelectEntryPos();
     if( _nPos != LISTBOX_ENTRY_NOTFOUND )
@@ -2320,94 +2429,167 @@ IMPL_LINK( SvxAreaTabPage, ModifyStepCou
 
 //------------------------------------------------------------------------
 
+IMPL_LINK( SvxAreaTabPage, ClickImportHdl_Impl, void *, EMPTYARG )
+{
+    ResMgr& rMgr = CUI_MGR();
+    SvxOpenGraphicDialog aDlg(UniString::CreateFromAscii(RTL_CONSTASCII_STRINGPARAM("Import")));
+    aDlg.EnableLink(sal_False);
+
+    if(!aDlg.Execute())
+    {
+        EnterWait();
+        const int nError(aDlg.GetGraphic(maDirectGraphic));
+        LeaveWait();
+
+        if(!nError && GRAPHIC_NONE != maDirectGraphic.GetType())
+        {
+            // extract name from filename
+            const INetURLObject aURL(aDlg.GetPath());
+            maDirectName = String(aURL.GetName()).GetToken( 0, '.' );
+
+            // use loaded graphic
+            const XFillBitmapItem aXBmpItem(maDirectName, maDirectGraphic);
+            rXFSet.Put(XFillStyleItem(XFILL_BITMAP));
+            rXFSet.Put(aXBmpItem);
+
+            // trigger state flag for directly loaded graphic
+            mbDirectGraphicSet = true;
+
+            // preview
+            aCtlBitmapPreview.SetAttributes(aXFillAttr.GetItemSet());
+            aCtlBitmapPreview.Invalidate();
+        }
+        else
+        {
+            // graphic could not be loaded
+            ErrorBox(DLGWIN, WinBits(WB_OK), String(ResId(RID_SVXSTR_READ_DATA_ERROR, rMgr))).Execute();
+        }
+    }
+
+    return 0L;
+}
+
+//------------------------------------------------------------------------
+
 IMPL_LINK( SvxAreaTabPage, ModifyTileHdl_Impl, void *, EMPTYARG )
 {
-	TriState eState = aTsbTile.GetState();
-	if( eState == STATE_CHECK )
-	{
-		aTsbStretch.Disable();
-		aRbtRow.Enable();
-		aRbtColumn.Enable();
-		aMtrFldOffset.Enable();
+    TriState eState = aTsbTile.GetState();
+    if( eState == STATE_CHECK )
+    {
+        // tiled
+        // disable stretched for tiled graphic
+        aTsbStretch.Disable();
+
+        // allow tile offset
+        aRbtRow.Enable();
+        aRbtColumn.Enable();
+        aMtrFldOffset.Enable();
         aFlOffset.Enable();
 
-		aCtlPosition.Enable();
-		aCtlPosition.Invalidate();
-		aFtXOffset.Enable();
-		aMtrFldXOffset.Enable();
-		aFtYOffset.Enable();
-		aMtrFldYOffset.Enable();
+        // allow positioning
+        aCtlPosition.Enable();
+        aCtlPosition.Invalidate();
+
+        // allow offsets
+        aFtXOffset.Enable();
+        aMtrFldXOffset.Enable();
+        aFtYOffset.Enable();
+        aMtrFldYOffset.Enable();
+
+        // allow 'Position" title
         aFlPosition.Enable();
 
-		aTsbScale.Enable();
-		aTsbOriginal.Enable();
-		aFtXSize.Enable();
-		aMtrFldXSize.Enable();
-		aFtYSize.Enable();
-		aMtrFldYSize.Enable();
+        // allow size definitions
+        aTsbScale.Enable();
+        aTsbOriginal.Enable();
+        aFtXSize.Enable();
+        aMtrFldXSize.Enable();
+        aFtYSize.Enable();
+        aMtrFldYSize.Enable();
         aFlSize.Enable();
-	}
-	else if( eState == STATE_NOCHECK )
-	{
-		aTsbStretch.Enable();
-		aRbtRow.Disable();
-		aRbtColumn.Disable();
-		aMtrFldOffset.Disable();
+    }
+    else if( eState == STATE_NOCHECK )
+    {
+        // non-tiled
+        // enable stretch selection
+        aTsbStretch.Enable();
+
+        // no need for tile offset
+        aRbtRow.Disable();
+        aRbtColumn.Disable();
+        aMtrFldOffset.Disable();
         aFlOffset.Disable();
 
-		aCtlPosition.Disable();
-		aCtlPosition.Invalidate();
-		aFtXOffset.Disable();
-		aMtrFldXOffset.Disable();
-		aFtYOffset.Disable();
-		aMtrFldYOffset.Disable();
-        aFlPosition.Disable();
+        // no need for offsets, only position is supported in non-tiled
+        aFtXOffset.Disable();
+        aMtrFldXOffset.Disable();
+        aFtYOffset.Disable();
+        aMtrFldYOffset.Disable();
 
-		if( aTsbStretch.GetState() != STATE_NOCHECK )
-		{
-			aTsbScale.Disable();
-			aTsbOriginal.Disable();
-			aFtXSize.Disable();
-			aMtrFldXSize.Disable();
-			aFtYSize.Disable();
-			aMtrFldYSize.Disable();
+        if( aTsbStretch.GetState() != STATE_NOCHECK )
+        {
+            // non-tiled, stretched
+            // no need for positioning
+            aCtlPosition.Disable();
+            aCtlPosition.Invalidate();
+
+            // no need for 'Position" title, all deactivated
+            aFlPosition.Disable();
+
+            // no need for size definitions
+            aTsbScale.Disable();
+            aTsbOriginal.Disable();
+            aFtXSize.Disable();
+            aMtrFldXSize.Disable();
+            aFtYSize.Disable();
+            aMtrFldYSize.Disable();
             aFlSize.Disable();
-		}
-		else
-		{
-			aTsbScale.Enable();
-			aTsbOriginal.Enable();
-			aFtXSize.Enable();
-			aMtrFldXSize.Enable();
-			aFtYSize.Enable();
-			aMtrFldYSize.Enable();
+        }
+        else
+        {
+            // non-tiled, non-stretched
+            // allow positioning
+            aCtlPosition.Enable();
+            aCtlPosition.Invalidate();
+
+            // allow 'Position" title, positioning is active
+            aFlPosition.Enable();
+
+            // allow size definitions
+            aTsbScale.Enable();
+            aTsbOriginal.Enable();
+            aFtXSize.Enable();
+            aMtrFldXSize.Enable();
+            aFtYSize.Enable();
+            aMtrFldYSize.Enable();
             aFlSize.Enable();
-		}
-	}
-	else
-	{
-		aTsbStretch.Disable();
-		aRbtRow.Disable();
-		aRbtColumn.Disable();
-		aMtrFldOffset.Disable();
+        }
+    }
+    else
+    {
+        // disable all when tiling is undefined
+        aTsbStretch.Disable();
+        aRbtRow.Disable();
+        aRbtColumn.Disable();
+        aMtrFldOffset.Disable();
         aFlOffset.Disable();
 
-		aCtlPosition.Disable();
-		aCtlPosition.Invalidate();
-		aFtXOffset.Disable();
-		aMtrFldXOffset.Disable();
-		aFtYOffset.Disable();
-		aMtrFldYOffset.Disable();
+        aCtlPosition.Disable();
+        aCtlPosition.Invalidate();
+        aFtXOffset.Disable();
+        aMtrFldXOffset.Disable();
+        aFtYOffset.Disable();
+        aMtrFldYOffset.Disable();
         aFlPosition.Disable();
 
-		aTsbScale.Disable();
-		aTsbOriginal.Disable();
-		aFtXSize.Disable();
-		aMtrFldXSize.Disable();
-		aFtYSize.Disable();
-		aMtrFldYSize.Disable();
+        aTsbScale.Disable();
+        aTsbOriginal.Disable();
+        aFtXSize.Disable();
+        aMtrFldXSize.Disable();
+        aFtYSize.Disable();
+        aMtrFldYSize.Disable();
         aFlSize.Disable();
-	}
+    }
 
 	if( aTsbOriginal.GetState() == STATE_CHECK )
 	{
@@ -2573,6 +2755,8 @@ void SvxAreaTabPage::PageCreated (SfxAll
 	SFX_ITEMSET_ARG (&aSet,pPageTypeItem,SfxUInt16Item,SID_PAGE_TYPE,sal_False);
 	SFX_ITEMSET_ARG (&aSet,pDlgTypeItem,SfxUInt16Item,SID_DLG_TYPE,sal_False);
 	SFX_ITEMSET_ARG (&aSet,pPosItem,SfxUInt16Item,SID_TABPAGE_POS,sal_False);
+    //UUUU
+    SFX_ITEMSET_ARG (&aSet, pOfferImportItem, SfxBoolItem, SID_OFFER_IMPORT, sal_False);
 
 	if (pColorTabItem)
 		SetColorTable(pColorTabItem->GetColorTable());
@@ -2588,6 +2772,19 @@ void SvxAreaTabPage::PageCreated (SfxAll
 		SetDlgType(pDlgTypeItem->GetValue());
 	if (pPosItem)
 		SetPos(pPosItem->GetValue());
+
+    //UUUU
+    if(pOfferImportItem)
+    {
+        const bool bNew(pOfferImportItem->GetValue());
+
+        if(mbOfferImportButton != bNew)
+        {
+            mbOfferImportButton = bNew;
+        }
+    }
+
 	Construct();
 }
 
+//eof

Modified: openoffice/trunk/main/drawinglayer/inc/drawinglayer/primitive2d/fillgradientprimitive2d.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/drawinglayer/inc/drawinglayer/primitive2d/fillgradientprimitive2d.hxx?rev=1579280&r1=1579279&r2=1579280&view=diff
==============================================================================
--- openoffice/trunk/main/drawinglayer/inc/drawinglayer/primitive2d/fillgradientprimitive2d.hxx (original)
+++ openoffice/trunk/main/drawinglayer/inc/drawinglayer/primitive2d/fillgradientprimitive2d.hxx Wed Mar 19 16:17:02 2014
@@ -55,55 +55,64 @@ namespace drawinglayer
             version is used in the MetafilePrimitive2D decomposition when the old XOR
             paint was recorded.
          */
-		class DRAWINGLAYER_DLLPUBLIC FillGradientPrimitive2D : public BufferedDecompositionPrimitive2D
-		{
-		private:
-            /// the geometric definition
-			basegfx::B2DRange						maObjectRange;
+        class DRAWINGLAYER_DLLPUBLIC FillGradientPrimitive2D : public BufferedDecompositionPrimitive2D
+        {
+        private:
+            /// the geometrically visible area
+            basegfx::B2DRange                       maOutputRange;
+
+            /// the area the gradient definition is based on
+            /// in the simplest case identical to OutputRange
+            basegfx::B2DRange                       maDefinitionRange;
 
             /// the gradient definition
-			attribute::FillGradientAttribute		maFillGradient;
+            attribute::FillGradientAttribute        maFillGradient;
 
             /// local helpers
             void generateMatricesAndColors(
                 std::vector< drawinglayer::texture::B2DHomMatrixAndBColor >& rEntries, 
-                basegfx::BColor& rOutmostColor) const;
+                basegfx::BColor& rOuterColor) const;
             Primitive2DSequence createOverlappingFill(
                 const std::vector< drawinglayer::texture::B2DHomMatrixAndBColor >& rEntries, 
-                const basegfx::BColor& rOutmostColor,
+                const basegfx::BColor& rOuterColor,
                 const basegfx::B2DPolygon& rUnitPolygon) const;
             Primitive2DSequence createNonOverlappingFill(
                 const std::vector< drawinglayer::texture::B2DHomMatrixAndBColor >& rEntries, 
-                const basegfx::BColor& rOutmostColor,
+                const basegfx::BColor& rOuterColor,
                 const basegfx::B2DPolygon& rUnitPolygon) const;
 
-		protected:
+        protected:
             /// local helper
-    		Primitive2DSequence createFill(bool bOverlapping) const;
+            Primitive2DSequence createFill(bool bOverlapping) const;
 
             /// local decomposition.
-			virtual Primitive2DSequence create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const;
+            virtual Primitive2DSequence create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const;
 
-		public:
-            /// constructor
-			FillGradientPrimitive2D(
-				const basegfx::B2DRange& rObjectRange, 
-				const attribute::FillGradientAttribute& rFillGradient);
-
-			/// data read access
-			const basegfx::B2DRange& getObjectRange() const { return maObjectRange; }
-			const attribute::FillGradientAttribute& getFillGradient() const { return maFillGradient; }
-
-			/// 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
+        public:
+            /// constructors. The one without definition range will use output range as definition range
+            FillGradientPrimitive2D(
+                const basegfx::B2DRange& rOutputRange, 
+                const attribute::FillGradientAttribute& rFillGradient);
+            FillGradientPrimitive2D(
+                const basegfx::B2DRange& rOutputRange, 
+                const basegfx::B2DRange& rDefinitionRange, 
+                const attribute::FillGradientAttribute& rFillGradient);
+
+            /// data read access
+            const basegfx::B2DRange& getOutputRange() const { return maOutputRange; }
+            const basegfx::B2DRange& getDefinitionRange() const { return maDefinitionRange; }
+            const attribute::FillGradientAttribute& getFillGradient() const { return maFillGradient; }
+
+            /// 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
 
 //////////////////////////////////////////////////////////////////////////////

Modified: openoffice/trunk/main/drawinglayer/inc/drawinglayer/primitive2d/fillhatchprimitive2d.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/drawinglayer/inc/drawinglayer/primitive2d/fillhatchprimitive2d.hxx?rev=1579280&r1=1579279&r2=1579280&view=diff
==============================================================================
--- openoffice/trunk/main/drawinglayer/inc/drawinglayer/primitive2d/fillhatchprimitive2d.hxx (original)
+++ openoffice/trunk/main/drawinglayer/inc/drawinglayer/primitive2d/fillhatchprimitive2d.hxx Wed Mar 19 16:17:02 2014
@@ -34,8 +34,8 @@
 
 namespace drawinglayer
 {
-	namespace primitive2d
-	{
+    namespace primitive2d
+    {
         /** FillHatchPrimitive2D class
 
             This class defines a hatch filling for a rectangular area. The
@@ -50,47 +50,57 @@ namespace drawinglayer
 
             The decomposition will deliver the hatch lines.
          */
-		class DRAWINGLAYER_DLLPUBLIC FillHatchPrimitive2D : public DiscreteMetricDependentPrimitive2D
-		{
-		private:
-            /// the geometric definition
-			basegfx::B2DRange						maObjectRange;
+        class DRAWINGLAYER_DLLPUBLIC FillHatchPrimitive2D : public DiscreteMetricDependentPrimitive2D
+        {
+        private:
+            /// the geometrically visible area
+            basegfx::B2DRange                       maOutputRange;
+
+            /// the area the gradient definition is based on
+            /// in the simplest case identical to OutputRange
+            basegfx::B2DRange                       maDefinitionRange;
 
             /// the hatch definition
-			attribute::FillHatchAttribute			maFillHatch;
+            attribute::FillHatchAttribute           maFillHatch;
 
             /// hatch background color (if used)
-			basegfx::BColor							maBColor;
+            basegfx::BColor                         maBColor;
 
-		protected:
-			/// local decomposition.
-			virtual Primitive2DSequence create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const;
+        protected:
+            /// local decomposition.
+            virtual Primitive2DSequence create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const;
 
         public:
-            /// constructor
-			FillHatchPrimitive2D(
-				const basegfx::B2DRange& rObjectRange, 
-				const basegfx::BColor& rBColor, 
-				const attribute::FillHatchAttribute& rFillHatch);
-
-			/// data read access
-			const basegfx::B2DRange& getObjectRange() const { return maObjectRange; }
-			const attribute::FillHatchAttribute& getFillHatch() const { return maFillHatch; }
-			const basegfx::BColor& getBColor() const { return maBColor; }
+            /// constructors. The one without definition range will use output range as definition range
+            FillHatchPrimitive2D(
+                const basegfx::B2DRange& rOutputRange, 
+                const basegfx::BColor& rBColor, 
+                const attribute::FillHatchAttribute& rFillHatch);
+            FillHatchPrimitive2D(
+                const basegfx::B2DRange& rOutputRange, 
+                const basegfx::B2DRange& rDefinitionRange, 
+                const basegfx::BColor& rBColor, 
+                const attribute::FillHatchAttribute& rFillHatch);
+
+            /// data read access
+            const basegfx::B2DRange& getOutputRange() const { return maOutputRange; }
+            const basegfx::B2DRange& getDefinitionRange() const { return maDefinitionRange; }
+            const attribute::FillHatchAttribute& getFillHatch() const { return maFillHatch; }
+            const basegfx::BColor& getBColor() const { return maBColor; }
 
-			/// compare operator
-			virtual bool operator==(const BasePrimitive2D& rPrimitive) const;
+            /// compare operator
+            virtual bool operator==(const BasePrimitive2D& rPrimitive) const;
 
-			/// get range
-			virtual basegfx::B2DRange getB2DRange(const geometry::ViewInformation2D& rViewInformation) const;
+            /// get range
+            virtual basegfx::B2DRange getB2DRange(const geometry::ViewInformation2D& rViewInformation) const;
 
-			/// get local decomposition. Overloaded since this decomposition is view-dependent
-			virtual Primitive2DSequence get2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const;
+            /// get local decomposition. Overloaded since this decomposition is view-dependent
+            virtual Primitive2DSequence get2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const;
 
             /// provide unique ID
-			DeclPrimitrive2DIDBlock()
-		};
-	} // end of namespace primitive2d
+            DeclPrimitrive2DIDBlock()
+        };
+    } // end of namespace primitive2d
 } // end of namespace drawinglayer
 
 //////////////////////////////////////////////////////////////////////////////

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=1579280&r1=1579279&r2=1579280&view=diff
==============================================================================
--- openoffice/trunk/main/drawinglayer/inc/drawinglayer/primitive2d/polypolygonprimitive2d.hxx (original)
+++ openoffice/trunk/main/drawinglayer/inc/drawinglayer/primitive2d/polypolygonprimitive2d.hxx Wed Mar 19 16:17:02 2014
@@ -41,45 +41,45 @@
 
 namespace drawinglayer
 {
-	namespace primitive2d
-	{
+    namespace primitive2d
+    {
         /** PolyPolygonHairlinePrimitive2D class
 
             This primitive defines a multi-PolygonHairlinePrimitive2D and is
             just for convenience. The definition is not different from the single
-            defined PolygonHairlinePrimitive2Ds.
+                defined PolygonHairlinePrimitive2Ds.
          */
-		class DRAWINGLAYER_DLLPUBLIC PolyPolygonHairlinePrimitive2D : public BufferedDecompositionPrimitive2D
-		{
-		private:
+        class DRAWINGLAYER_DLLPUBLIC PolyPolygonHairlinePrimitive2D : public BufferedDecompositionPrimitive2D
+        {
+        private:
             /// the hairline geometry
-			basegfx::B2DPolyPolygon					maPolyPolygon;
+            basegfx::B2DPolyPolygon                 maPolyPolygon;
 
             /// the hairline color
-			basegfx::BColor							maBColor;
+            basegfx::BColor                         maBColor;
 
-		protected:
-			/// local decomposition.
-			virtual Primitive2DSequence create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const;
+        protected:
+            /// local decomposition.
+            virtual Primitive2DSequence create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const;
 
-		public:
+        public:
             /// constructor
-			PolyPolygonHairlinePrimitive2D(const basegfx::B2DPolyPolygon& rPolyPolygon, const basegfx::BColor& rBColor);
+            PolyPolygonHairlinePrimitive2D(const basegfx::B2DPolyPolygon& rPolyPolygon, const basegfx::BColor& rBColor);
+
+            /// data read access
+            const basegfx::B2DPolyPolygon& getB2DPolyPolygon() const { return maPolyPolygon; }
+            const basegfx::BColor& getBColor() const { return maBColor; }
 
-			/// data read access
-			const basegfx::B2DPolyPolygon& getB2DPolyPolygon() const { return maPolyPolygon; }
-			const basegfx::BColor& getBColor() const { return maBColor; }
-
-			/// 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
+            /// 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
 
 //////////////////////////////////////////////////////////////////////////////
@@ -87,55 +87,55 @@ namespace drawinglayer
 
 namespace drawinglayer
 {
-	namespace primitive2d
-	{
+    namespace primitive2d
+    {
         /** PolyPolygonMarkerPrimitive2D class
 
             This primitive defines a multi-PolygonMarkerPrimitive2D and is
             just for convenience. The definition is not different from the single
             defined PolygonMarkerPrimitive2Ds.
          */
-		class DRAWINGLAYER_DLLPUBLIC PolyPolygonMarkerPrimitive2D : public BufferedDecompositionPrimitive2D
-		{
-		private:
+        class DRAWINGLAYER_DLLPUBLIC PolyPolygonMarkerPrimitive2D : public BufferedDecompositionPrimitive2D
+        {
+        private:
             /// the marker hairline geometry
-			basegfx::B2DPolyPolygon					maPolyPolygon;
+            basegfx::B2DPolyPolygon                 maPolyPolygon;
             
             /// the two colors
-			basegfx::BColor							maRGBColorA;
-			basegfx::BColor							maRGBColorB;
+            basegfx::BColor                         maRGBColorA;
+            basegfx::BColor                         maRGBColorB;
 
             /// the dash distance in 'pixels'
-			double									mfDiscreteDashLength;
+            double                                  mfDiscreteDashLength;
 
-		protected:
-			/// local decomposition.
-			virtual Primitive2DSequence create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const;
+        protected:
+            /// local decomposition.
+            virtual Primitive2DSequence create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const;
 
-		public:
+        public:
             /// constructor
-			PolyPolygonMarkerPrimitive2D(
-				const basegfx::B2DPolyPolygon& rPolyPolygon, 
-				const basegfx::BColor& rRGBColorA,
-				const basegfx::BColor& rRGBColorB,
-				double fDiscreteDashLength);
-
-			// data read access
-			const basegfx::B2DPolyPolygon& getB2DPolyPolygon() const { return maPolyPolygon; }
-			const basegfx::BColor& getRGBColorA() const { return maRGBColorA; }
-			const basegfx::BColor& getRGBColorB() const { return maRGBColorB; }
-			double getDiscreteDashLength() const { return mfDiscreteDashLength; }
-
-			/// 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
+            PolyPolygonMarkerPrimitive2D(
+                const basegfx::B2DPolyPolygon& rPolyPolygon, 
+                const basegfx::BColor& rRGBColorA,
+                const basegfx::BColor& rRGBColorB,
+                double fDiscreteDashLength);
+
+            // data read access
+            const basegfx::B2DPolyPolygon& getB2DPolyPolygon() const { return maPolyPolygon; }
+            const basegfx::BColor& getRGBColorA() const { return maRGBColorA; }
+            const basegfx::BColor& getRGBColorB() const { return maRGBColorB; }
+            double getDiscreteDashLength() const { return mfDiscreteDashLength; }
+
+            /// 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
 
 //////////////////////////////////////////////////////////////////////////////
@@ -143,57 +143,57 @@ namespace drawinglayer
 
 namespace drawinglayer
 {
-	namespace primitive2d
-	{
+    namespace primitive2d
+    {
         /** PolyPolygonStrokePrimitive2D class
 
             This primitive defines a multi-PolygonStrokePrimitive2D and is
             just for convenience. The definition is not different from the single
             defined PolygonStrokePrimitive2Ds.
          */
-		class DRAWINGLAYER_DLLPUBLIC PolyPolygonStrokePrimitive2D : public BufferedDecompositionPrimitive2D
-		{
-		private:
+        class DRAWINGLAYER_DLLPUBLIC PolyPolygonStrokePrimitive2D : public BufferedDecompositionPrimitive2D
+        {
+        private:
             /// the line geometry
-			basegfx::B2DPolyPolygon					maPolyPolygon;
+            basegfx::B2DPolyPolygon                 maPolyPolygon;
             
             /// the line attributes like width, join and color
-			attribute::LineAttribute				maLineAttribute;
+            attribute::LineAttribute                maLineAttribute;
             
             /// the line stroking (if used)
-			attribute::StrokeAttribute				maStrokeAttribute;
+            attribute::StrokeAttribute              maStrokeAttribute;
 
-		protected:
-			/// local decomposition.
-			virtual Primitive2DSequence create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const;
+        protected:
+            /// local decomposition.
+            virtual Primitive2DSequence create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const;
 
-		public:
+        public:
             /// constructor
-			PolyPolygonStrokePrimitive2D(
-				const basegfx::B2DPolyPolygon& rPolyPolygon, 
-    			const attribute::LineAttribute& rLineAttribute,
-				const attribute::StrokeAttribute& rStrokeAttribute);
+            PolyPolygonStrokePrimitive2D(
+                const basegfx::B2DPolyPolygon& rPolyPolygon, 
+                const attribute::LineAttribute& rLineAttribute,
+                const attribute::StrokeAttribute& rStrokeAttribute);
 
             /// constructor without stroking
-			PolyPolygonStrokePrimitive2D(
-				const basegfx::B2DPolyPolygon& rPolyPolygon, 
-    			const attribute::LineAttribute& rLineAttribute);
-
-			/// data read access
-			const basegfx::B2DPolyPolygon& getB2DPolyPolygon() const { return maPolyPolygon; }
-			const attribute::LineAttribute& getLineAttribute() const { return maLineAttribute; }
-			const attribute::StrokeAttribute& getStrokeAttribute() const { return maStrokeAttribute; }
-
-			/// 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
+            PolyPolygonStrokePrimitive2D(
+                const basegfx::B2DPolyPolygon& rPolyPolygon, 
+                const attribute::LineAttribute& rLineAttribute);
+
+            /// data read access
+            const basegfx::B2DPolyPolygon& getB2DPolyPolygon() const { return maPolyPolygon; }
+            const attribute::LineAttribute& getLineAttribute() const { return maLineAttribute; }
+            const attribute::StrokeAttribute& getStrokeAttribute() const { return maStrokeAttribute; }
+
+            /// 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
 
 //////////////////////////////////////////////////////////////////////////////
@@ -201,55 +201,55 @@ namespace drawinglayer
 
 namespace drawinglayer
 {
-	namespace primitive2d
-	{
+    namespace primitive2d
+    {
         /** PolyPolygonStrokePrimitive2D class
 
             This primitive defines a multi-PolygonStrokeArrowPrimitive2D and is
             just for convenience. The definition is not different from the single
             defined PolygonStrokeArrowPrimitive2Ds.
          */
-		class DRAWINGLAYER_DLLPUBLIC PolyPolygonStrokeArrowPrimitive2D : public PolyPolygonStrokePrimitive2D
-		{
-		private:
+        class DRAWINGLAYER_DLLPUBLIC PolyPolygonStrokeArrowPrimitive2D : public PolyPolygonStrokePrimitive2D
+        {
+        private:
             /// geometric definitions for line start and end
-			attribute::LineStartEndAttribute				maStart;
-			attribute::LineStartEndAttribute				maEnd;
+            attribute::LineStartEndAttribute                maStart;
+            attribute::LineStartEndAttribute                maEnd;
 
-		protected:
-			/// local decomposition.
-			virtual Primitive2DSequence create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const;
+        protected:
+            /// local decomposition.
+            virtual Primitive2DSequence create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const;
 
-		public:
+        public:
             /// constructor
-			PolyPolygonStrokeArrowPrimitive2D(
-				const basegfx::B2DPolyPolygon& rPolyPolygon, 
-    			const attribute::LineAttribute& rLineAttribute,
-				const attribute::StrokeAttribute& rStrokeAttribute, 
-				const attribute::LineStartEndAttribute& rStart, 
-				const attribute::LineStartEndAttribute& rEnd);
+            PolyPolygonStrokeArrowPrimitive2D(
+                const basegfx::B2DPolyPolygon& rPolyPolygon, 
+                const attribute::LineAttribute& rLineAttribute,
+                const attribute::StrokeAttribute& rStrokeAttribute, 
+                const attribute::LineStartEndAttribute& rStart, 
+                const attribute::LineStartEndAttribute& rEnd);
 
             /// constructor without stroking
-			PolyPolygonStrokeArrowPrimitive2D(
-				const basegfx::B2DPolyPolygon& rPolyPolygon, 
-    			const attribute::LineAttribute& rLineAttribute,
-				const attribute::LineStartEndAttribute& rStart, 
-				const attribute::LineStartEndAttribute& rEnd);
-
-			/// data read access
-			const attribute::LineStartEndAttribute& getStart() const { return maStart; }
-			const attribute::LineStartEndAttribute& getEnd() const { return maEnd; }
-
-			/// 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
+            PolyPolygonStrokeArrowPrimitive2D(
+                const basegfx::B2DPolyPolygon& rPolyPolygon, 
+                const attribute::LineAttribute& rLineAttribute,
+                const attribute::LineStartEndAttribute& rStart, 
+                const attribute::LineStartEndAttribute& rEnd);
+
+            /// data read access
+            const attribute::LineStartEndAttribute& getStart() const { return maStart; }
+            const attribute::LineStartEndAttribute& getEnd() const { return maEnd; }
+
+            /// 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
 
 //////////////////////////////////////////////////////////////////////////////
@@ -257,43 +257,43 @@ namespace drawinglayer
 
 namespace drawinglayer
 {
-	namespace primitive2d
-	{
+    namespace primitive2d
+    {
         /** PolyPolygonColorPrimitive2D class
 
             This primitive defines a PolyPolygon filled with a single color.
             This is one of the non-decomposable primitives, so a renderer
             should proccess it.
          */
-		class DRAWINGLAYER_DLLPUBLIC PolyPolygonColorPrimitive2D : public BasePrimitive2D
-		{
-		private:
+        class DRAWINGLAYER_DLLPUBLIC PolyPolygonColorPrimitive2D : public BasePrimitive2D
+        {
+        private:
             /// the PolyPolygon geometry
-			basegfx::B2DPolyPolygon					maPolyPolygon;
+            basegfx::B2DPolyPolygon                 maPolyPolygon;
 
             /// the polygon fill color
-			basegfx::BColor							maBColor;
+            basegfx::BColor                         maBColor;
 
-		public:
+        public:
             /// constructor
-			PolyPolygonColorPrimitive2D(
-				const basegfx::B2DPolyPolygon& rPolyPolygon, 
-				const basegfx::BColor& rBColor);
-
-			/// data read access
-			const basegfx::B2DPolyPolygon& getB2DPolyPolygon() const { return maPolyPolygon; }
-			const basegfx::BColor& getBColor() const { return maBColor; }
-
-			/// 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
+            PolyPolygonColorPrimitive2D(
+                const basegfx::B2DPolyPolygon& rPolyPolygon, 
+                const basegfx::BColor& rBColor);
+
+            /// data read access
+            const basegfx::B2DPolyPolygon& getB2DPolyPolygon() const { return maPolyPolygon; }
+            const basegfx::BColor& getBColor() const { return maBColor; }
+
+            /// 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
 
 //////////////////////////////////////////////////////////////////////////////
@@ -301,44 +301,52 @@ namespace drawinglayer
 
 namespace drawinglayer
 {
-	namespace primitive2d
-	{
+    namespace primitive2d
+    {
         /** PolyPolygonColorPrimitive2D class
 
             This primitive defines a PolyPolygon filled with a gradient. The
             decomosition will create a MaskPrimitive2D containing a 
             FillGradientPrimitive2D.
          */
-		class DRAWINGLAYER_DLLPUBLIC PolyPolygonGradientPrimitive2D : public BufferedDecompositionPrimitive2D
-		{
-		private:
+        class DRAWINGLAYER_DLLPUBLIC PolyPolygonGradientPrimitive2D : public BufferedDecompositionPrimitive2D
+        {
+        private:
             /// the PolyPolygon geometry
-			basegfx::B2DPolyPolygon						maPolyPolygon;
+            basegfx::B2DPolyPolygon                     maPolyPolygon;
+
+            /// the definition range
+            basegfx::B2DRange                           maDefinitionRange;
 
             /// the gradient definition
-			attribute::FillGradientAttribute			maFillGradient;
+            attribute::FillGradientAttribute            maFillGradient;
 
-		protected:
-			/// local decomposition.
-			virtual Primitive2DSequence create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const;
+        protected:
+            /// local decomposition.
+            virtual Primitive2DSequence create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const;
 
-		public:
-            /// constructor
-			PolyPolygonGradientPrimitive2D(
-				const basegfx::B2DPolyPolygon& rPolyPolygon, 
-				const attribute::FillGradientAttribute& rFillGradient);
-
-			/// data read access
-			const basegfx::B2DPolyPolygon& getB2DPolyPolygon() const { return maPolyPolygon; }
-			const attribute::FillGradientAttribute& getFillGradient() const { return maFillGradient; }
-
-			/// compare operator
-			virtual bool operator==(const BasePrimitive2D& rPrimitive) const;
-
-			/// provide unique ID
-			DeclPrimitrive2DIDBlock()
-		};
-	} // end of namespace primitive2d
+        public:
+            /// constructors. The one without definition range will use output range as definition range
+            PolyPolygonGradientPrimitive2D(
+                const basegfx::B2DPolyPolygon& rPolyPolygon, 
+                const attribute::FillGradientAttribute& rFillGradient);
+            PolyPolygonGradientPrimitive2D(
+                const basegfx::B2DPolyPolygon& rPolyPolygon, 
+                const basegfx::B2DRange& rDefinitionRange,
+                const attribute::FillGradientAttribute& rFillGradient);
+
+            /// data read access
+            const basegfx::B2DPolyPolygon& getB2DPolyPolygon() const { return maPolyPolygon; }
+            const basegfx::B2DRange& getDefinitionRange() const { return maDefinitionRange; }
+            const attribute::FillGradientAttribute& getFillGradient() const { return maFillGradient; }
+
+            /// compare operator
+            virtual bool operator==(const BasePrimitive2D& rPrimitive) const;
+
+            /// provide unique ID
+            DeclPrimitrive2DIDBlock()
+        };
+    } // end of namespace primitive2d
 } // end of namespace drawinglayer
 
 //////////////////////////////////////////////////////////////////////////////
@@ -346,49 +354,58 @@ namespace drawinglayer
 
 namespace drawinglayer
 {
-	namespace primitive2d
-	{
+    namespace primitive2d
+    {
         /** PolyPolygonHatchPrimitive2D class
 
             This primitive defines a PolyPolygon filled with a hatch. The
             decomosition will create a MaskPrimitive2D containing a 
             FillHatchPrimitive2D.
          */
-		class DRAWINGLAYER_DLLPUBLIC PolyPolygonHatchPrimitive2D : public BufferedDecompositionPrimitive2D
-		{
-		private:
+        class DRAWINGLAYER_DLLPUBLIC PolyPolygonHatchPrimitive2D : public BufferedDecompositionPrimitive2D
+        {
+        private:
             /// the PolyPolygon geometry
-			basegfx::B2DPolyPolygon						maPolyPolygon;
+            basegfx::B2DPolyPolygon                     maPolyPolygon;
+
+            /// the definition range
+            basegfx::B2DRange                           maDefinitionRange;
 
             /// the hatch background color (if used)
-			basegfx::BColor								maBackgroundColor;
+            basegfx::BColor                             maBackgroundColor;
 
             /// the hatch definition
-			attribute::FillHatchAttribute				maFillHatch;
+            attribute::FillHatchAttribute               maFillHatch;
 
-		protected:
-			/// local decomposition.
-			virtual Primitive2DSequence create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const;
+        protected:
+            /// local decomposition.
+            virtual Primitive2DSequence create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const;
 
-		public:
-            /// constructor
-			PolyPolygonHatchPrimitive2D(
-				const basegfx::B2DPolyPolygon& rPolyPolygon,
-				const basegfx::BColor& rBackgroundColor,
-				const attribute::FillHatchAttribute& rFillHatch);
-
-			/// data read access
-			const basegfx::B2DPolyPolygon& getB2DPolyPolygon() const { return maPolyPolygon; }
-			const basegfx::BColor& getBackgroundColor() const { return maBackgroundColor; }
-			const attribute::FillHatchAttribute& getFillHatch() const { return maFillHatch; }
-
-			/// compare operator
-			virtual bool operator==(const BasePrimitive2D& rPrimitive) const;
-
-			/// provide unique ID
-			DeclPrimitrive2DIDBlock()
-		};
-	} // end of namespace primitive2d
+        public:
+            /// constructors. The one without definition range will use output range as definition range
+            PolyPolygonHatchPrimitive2D(
+                const basegfx::B2DPolyPolygon& rPolyPolygon,
+                const basegfx::BColor& rBackgroundColor,
+                const attribute::FillHatchAttribute& rFillHatch);
+            PolyPolygonHatchPrimitive2D(
+                const basegfx::B2DPolyPolygon& rPolyPolygon,
+                const basegfx::B2DRange& rDefinitionRange,
+                const basegfx::BColor& rBackgroundColor,
+                const attribute::FillHatchAttribute& rFillHatch);
+
+            /// data read access
+            const basegfx::B2DPolyPolygon& getB2DPolyPolygon() const { return maPolyPolygon; }
+            const basegfx::B2DRange& getDefinitionRange() const { return maDefinitionRange; }
+            const basegfx::BColor& getBackgroundColor() const { return maBackgroundColor; }
+            const attribute::FillHatchAttribute& getFillHatch() const { return maFillHatch; }
+
+            /// compare operator
+            virtual bool operator==(const BasePrimitive2D& rPrimitive) const;
+
+            /// provide unique ID
+            DeclPrimitrive2DIDBlock()
+        };
+    } // end of namespace primitive2d
 } // end of namespace drawinglayer
 
 //////////////////////////////////////////////////////////////////////////////
@@ -396,44 +413,52 @@ namespace drawinglayer
 
 namespace drawinglayer
 {
-	namespace primitive2d
-	{
+    namespace primitive2d
+    {
         /** PolyPolygonGraphicPrimitive2D class
 
             This primitive defines a PolyPolygon filled with bitmap data 
             (including transparence). The decomosition will create a MaskPrimitive2D 
             containing a FillGraphicPrimitive2D.
          */
-		class DRAWINGLAYER_DLLPUBLIC PolyPolygonGraphicPrimitive2D : public BufferedDecompositionPrimitive2D
-		{
-		private:
+        class DRAWINGLAYER_DLLPUBLIC PolyPolygonGraphicPrimitive2D : public BufferedDecompositionPrimitive2D
+        {
+        private:
             /// the PolyPolygon geometry
-			basegfx::B2DPolyPolygon						maPolyPolygon;
+            basegfx::B2DPolyPolygon                     maPolyPolygon;
+
+            /// the definition range
+            basegfx::B2DRange                           maDefinitionRange;
 
             /// the bitmap fill definition (may include tiling)
-			attribute::FillGraphicAttribute				maFillGraphic;
+            attribute::FillGraphicAttribute             maFillGraphic;
 
-		protected:
-			/// local decomposition.
-			virtual Primitive2DSequence create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const;
+        protected:
+            /// local decomposition.
+            virtual Primitive2DSequence create2DDecomposition(const geometry::ViewInformation2D& rViewInformation) const;
 
-		public:
-            /// constructor
-			PolyPolygonGraphicPrimitive2D(
-				const basegfx::B2DPolyPolygon& rPolyPolygon, 
-				const attribute::FillGraphicAttribute& rFillGraphic);
-
-			/// data read access
-			const basegfx::B2DPolyPolygon& getB2DPolyPolygon() const { return maPolyPolygon; }
-			const attribute::FillGraphicAttribute& getFillGraphic() const { return maFillGraphic; }
-
-			/// compare operator
-			virtual bool operator==(const BasePrimitive2D& rPrimitive) const;
-
-			/// provide unique ID
-			DeclPrimitrive2DIDBlock()
-		};
-	} // end of namespace primitive2d
+        public:
+            /// constructors. The one without definition range will use output range as definition range
+            PolyPolygonGraphicPrimitive2D(
+                const basegfx::B2DPolyPolygon& rPolyPolygon, 
+                const attribute::FillGraphicAttribute& rFillGraphic);
+            PolyPolygonGraphicPrimitive2D(
+                const basegfx::B2DPolyPolygon& rPolyPolygon, 
+                const basegfx::B2DRange& rDefinitionRange,
+                const attribute::FillGraphicAttribute& rFillGraphic);
+
+            /// data read access
+            const basegfx::B2DPolyPolygon& getB2DPolyPolygon() const { return maPolyPolygon; }
+            const basegfx::B2DRange& getDefinitionRange() const { return maDefinitionRange; }
+            const attribute::FillGraphicAttribute& getFillGraphic() const { return maFillGraphic; }
+
+            /// compare operator
+            virtual bool operator==(const BasePrimitive2D& rPrimitive) const;
+
+            /// provide unique ID
+            DeclPrimitrive2DIDBlock()
+        };
+    } // end of namespace primitive2d
 } // end of namespace drawinglayer
 
 //////////////////////////////////////////////////////////////////////////////