summaryrefslogtreecommitdiff
path: root/svx/source/dialog/hdft.cxx
diff options
context:
space:
mode:
authorArmin Le Grand <alg@apache.org>2014-07-14 19:09:11 +0000
committerArmin Le Grand <alg@apache.org>2014-07-14 19:09:11 +0000
commit3c1d4742e649fe9c8aed8c2817fe3e1f3364f298 (patch)
treee0c6e02c89aa9227726c9469da1001b3e29c41df /svx/source/dialog/hdft.cxx
parentc5c31e2aeaedbdf76e1f38d3c385e34f5ed875ca (diff)
Resync to trunk, windows non-pro buildaoo/aw080
Diffstat (limited to 'svx/source/dialog/hdft.cxx')
-rw-r--r--svx/source/dialog/hdft.cxx476
1 files changed, 328 insertions, 148 deletions
diff --git a/svx/source/dialog/hdft.cxx b/svx/source/dialog/hdft.cxx
index 4eb9ca73712b..70bae5fa376b 100644
--- a/svx/source/dialog/hdft.cxx
+++ b/svx/source/dialog/hdft.cxx
@@ -19,12 +19,9 @@
*
*************************************************************/
-
-
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_svx.hxx"
-// include ---------------------------------------------------------------
#include <tools/shl.hxx>
#include <svl/itemiter.hxx>
#include <sfx2/app.hxx>
@@ -32,31 +29,33 @@
#include <sfx2/module.hxx>
#include <vcl/msgbox.hxx>
#include <vcl/graph.hxx>
-
#include <sfx2/sfxsids.hrc>
#include <svx/svxids.hrc>
#include <svx/dialogs.hrc>
#include "hdft.hrc"
#include <svl/intitem.hxx>
-
#define _SVX_HDFT_CXX
-
#include <svx/hdft.hxx>
#include <svx/pageitem.hxx>
-//CHINA001 #include "bbdlg.hxx"
#include "svx/dlgutil.hxx"
#include <svx/dialmgr.hxx>
#include "svx/htmlmode.hxx"
-
#include <editeng/brshitem.hxx>
#include <editeng/lrspitem.hxx>
#include <editeng/ulspitem.hxx>
#include <editeng/shaditem.hxx>
#include <editeng/sizeitem.hxx>
#include <editeng/boxitem.hxx>
-
#include <svx/svxdlg.hxx> //CHINA001
#include <svx/dialogs.hrc> //CHINA001
+
+//UUUU
+#include <svx/xdef.hxx>
+#include <svx/xenum.hxx>
+#include <svx/xfillit0.hxx>
+#include <svx/unobrushitemhelper.hxx>
+#include <sfx2/request.hxx>
+
// static ----------------------------------------------------------------
// --> OD 2004-06-18 #i19922#
@@ -70,6 +69,11 @@ static const long DEF_DIST_CALC = 250; // 2,5mm (Calc)
static sal_uInt16 pRanges[] =
{
SID_ATTR_BRUSH, SID_ATTR_BRUSH,
+
+ //UUUU Support DrawingLayer FillStyles (no real call to below GetRanges()
+ // detected, still do the complete transition)
+ XATTR_FILL_FIRST, XATTR_FILL_LAST,
+
SID_ATTR_BORDER_OUTER, SID_ATTR_BORDER_OUTER,
SID_ATTR_BORDER_INNER, SID_ATTR_BORDER_INNER,
SID_ATTR_BORDER_SHADOW, SID_ATTR_BORDER_SHADOW,
@@ -138,9 +142,8 @@ SvxFooterPage::SvxFooterPage( Window* pParent, const SfxItemSet& rAttr ) :
// -----------------------------------------------------------------------
-SvxHFPage::SvxHFPage( Window* pParent, sal_uInt16 nResId, const SfxItemSet& rAttr, sal_uInt16 nSetId ) :
-
- SfxTabPage( pParent, SVX_RES( nResId ), rAttr ),
+SvxHFPage::SvxHFPage( Window* pParent, sal_uInt16 nResId, const SfxItemSet& rAttr, sal_uInt16 nSetId )
+: SfxTabPage( pParent, SVX_RES( nResId ), rAttr ),
aFrm ( this, SVX_RES( FL_FRAME ) ),
aTurnOnBox ( this, SVX_RES( CB_TURNON ) ),
@@ -158,11 +161,13 @@ SvxHFPage::SvxHFPage( Window* pParent, sal_uInt16 nResId, const SfxItemSet& rAtt
aBspWin ( this, SVX_RES( WN_BSP ) ),
aBackgroundBtn ( this, SVX_RES( BTN_EXTRAS ) ),
- nId ( nSetId ),
- pBBSet ( NULL ),
- bDisableQueryBox ( sal_False ),
- bEnableBackgroundSelector ( sal_True )
+ nId ( nSetId ),
+ pBBSet ( NULL ),
+ // bitfield
+ mbDisableQueryBox(false),
+ mbEnableBackgroundSelector(true),
+ mbEnableDrawingLayerFillStyles(false)
{
InitHandler();
aBspWin.EnableRTL( sal_False );
@@ -205,34 +210,49 @@ SvxHFPage::~SvxHFPage()
sal_Bool SvxHFPage::FillItemSet( SfxItemSet& rSet )
{
- const sal_uInt16 nWSize = GetWhich( SID_ATTR_PAGE_SIZE );
- const sal_uInt16 nWLRSpace = GetWhich( SID_ATTR_LRSPACE );
- const sal_uInt16 nWULSpace = GetWhich( SID_ATTR_ULSPACE );
- const sal_uInt16 nWOn = GetWhich( SID_ATTR_PAGE_ON );
- const sal_uInt16 nWDynamic = GetWhich( SID_ATTR_PAGE_DYNAMIC );
- const sal_uInt16 nWDynSpacing = GetWhich( SID_ATTR_HDFT_DYNAMIC_SPACING );
- const sal_uInt16 nWShared = GetWhich( SID_ATTR_PAGE_SHARED );
- const sal_uInt16 nWBrush = GetWhich( SID_ATTR_BRUSH );
- const sal_uInt16 nWBox = GetWhich( SID_ATTR_BORDER_OUTER );
- const sal_uInt16 nWBoxInfo = GetWhich( SID_ATTR_BORDER_INNER );
- const sal_uInt16 nWShadow = GetWhich( SID_ATTR_BORDER_SHADOW );
- const sal_uInt16 aWhichTab[] = { nWSize, nWSize,
- nWLRSpace, nWLRSpace,
- nWULSpace, nWULSpace,
- nWOn, nWOn,
- nWDynamic, nWDynamic,
- nWShared, nWShared,
- nWBrush, nWBrush,
- nWBoxInfo, nWBoxInfo,
- nWBox, nWBox,
- nWShadow, nWShadow,
- nWDynSpacing, nWDynSpacing,
- 0 };
- const SfxItemSet& rOldSet = GetItemSet();
- SfxItemPool* pPool = rOldSet.GetPool();
- DBG_ASSERT( pPool, "no pool :-(" );
- SfxMapUnit eUnit = pPool->GetMetric( nWSize );
- SfxItemSet aSet ( *pPool, aWhichTab );
+ const sal_uInt16 nWSize = GetWhich(SID_ATTR_PAGE_SIZE);
+ const sal_uInt16 nWLRSpace = GetWhich(SID_ATTR_LRSPACE);
+ const sal_uInt16 nWULSpace = GetWhich(SID_ATTR_ULSPACE);
+ const sal_uInt16 nWOn = GetWhich(SID_ATTR_PAGE_ON);
+ const sal_uInt16 nWDynamic = GetWhich(SID_ATTR_PAGE_DYNAMIC);
+ const sal_uInt16 nWDynSpacing = GetWhich(SID_ATTR_HDFT_DYNAMIC_SPACING);
+ const sal_uInt16 nWShared = GetWhich(SID_ATTR_PAGE_SHARED);
+ const sal_uInt16 nWBrush = GetWhich(SID_ATTR_BRUSH);
+ const sal_uInt16 nWBox = GetWhich(SID_ATTR_BORDER_OUTER);
+ const sal_uInt16 nWBoxInfo = GetWhich(SID_ATTR_BORDER_INNER);
+ const sal_uInt16 nWShadow = GetWhich(SID_ATTR_BORDER_SHADOW);
+
+ const sal_uInt16 aWhichTab[] = {
+ nWSize, nWSize,
+ nWLRSpace, nWLRSpace,
+ nWULSpace, nWULSpace,
+ nWOn, nWOn,
+ nWDynamic, nWDynamic,
+ nWShared, nWShared,
+ nWBrush, nWBrush,
+ nWBoxInfo, nWBoxInfo,
+ nWBox, nWBox,
+ nWShadow, nWShadow,
+ nWDynSpacing, nWDynSpacing,
+
+ //UUUU take over DrawingLayer FillStyles
+ XATTR_FILL_FIRST, XATTR_FILL_LAST, // [1014
+
+ 0, 0};
+
+ const SfxItemSet& rOldSet = GetItemSet();
+ SfxItemPool* pPool = rOldSet.GetPool();
+ DBG_ASSERT(pPool,"no pool :-(");
+ SfxMapUnit eUnit = pPool->GetMetric(nWSize);
+ SfxItemSet aSet(*pPool,aWhichTab);
+
+ if(mbEnableDrawingLayerFillStyles)
+ {
+ //UUUU When using the XATTR_FILLSTYLE DrawingLayer FillStyle definition
+ // extra action has to be done here since the pool default is XFILL_SOLID
+ // instead of XFILL_NONE (to have the default blue fill color at start).
+ aSet.Put(XFillStyleItem(XFILL_NONE));
+ }
//--------------------------------------------------------------------
@@ -274,26 +294,47 @@ sal_Bool SvxHFPage::FillItemSet( SfxItemSet& rSet )
aSet.Put( aUL );
// Hintergrund und Umrandung?
- if ( pBBSet )
- aSet.Put( *pBBSet );
+ if(pBBSet)
+ {
+ aSet.Put(*pBBSet);
+ }
else
{
const SfxItemSet* _pSet;
const SfxPoolItem* pItem;
- if ( SFX_ITEM_SET ==
- GetItemSet().GetItemState( GetWhich( nId ), sal_False, &pItem ) )
+ if(SFX_ITEM_SET == GetItemSet().GetItemState(GetWhich(nId), sal_False, &pItem))
{
- _pSet = &( (SvxSetItem*)pItem )->GetItemSet();
-
- if ( _pSet->GetItemState( nWBrush ) == SFX_ITEM_SET )
- aSet.Put( (const SvxBrushItem&)_pSet->Get( nWBrush ) );
- if ( _pSet->GetItemState( nWBoxInfo ) == SFX_ITEM_SET )
- aSet.Put( (const SvxBoxInfoItem&)_pSet->Get( nWBoxInfo ) );
- if ( _pSet->GetItemState( nWBox ) == SFX_ITEM_SET )
- aSet.Put( (const SvxBoxItem&)_pSet->Get( nWBox ) );
- if ( _pSet->GetItemState( nWShadow ) == SFX_ITEM_SET )
- aSet.Put( (const SvxShadowItem&)_pSet->Get( nWShadow ) );
+ _pSet = &(static_cast< const SvxSetItem* >(pItem)->GetItemSet());
+
+ if(_pSet->GetItemState(nWBrush) == SFX_ITEM_SET)
+ {
+ aSet.Put(_pSet->Get(nWBrush));
+ }
+
+ if(_pSet->GetItemState(nWBoxInfo) == SFX_ITEM_SET)
+ {
+ aSet.Put(_pSet->Get(nWBoxInfo));
+ }
+
+ if(_pSet->GetItemState(nWBox) == SFX_ITEM_SET)
+ {
+ aSet.Put(_pSet->Get(nWBox));
+ }
+
+ if(_pSet->GetItemState(nWShadow) == SFX_ITEM_SET)
+ {
+ aSet.Put(_pSet->Get(nWShadow));
+ }
+
+ //UUUU take care of [XATTR_XATTR_FILL_FIRST .. XATTR_FILL_LAST]
+ for(sal_uInt16 nFillStyleId(XATTR_FILL_FIRST); nFillStyleId <= XATTR_FILL_LAST; nFillStyleId++)
+ {
+ if(_pSet->GetItemState(nFillStyleId) == SFX_ITEM_SET)
+ {
+ aSet.Put(_pSet->Get(nFillStyleId));
+ }
+ }
}
}
@@ -466,7 +507,7 @@ IMPL_LINK( SvxHFPage, TurnOnHdl, CheckBox *, pBox )
{
sal_Bool bDelete = sal_True;
- if ( !bDisableQueryBox && pBox && aTurnOnBox.GetSavedValue() == sal_True )
+ if ( !mbDisableQueryBox && pBox && aTurnOnBox.GetSavedValue() == sal_True )
bDelete = ( QueryBox( this, SVX_RES( RID_SVXQBX_DELETE_HEADFOOT ) ).Execute() == RET_YES );
if ( bDelete )
@@ -529,80 +570,169 @@ IMPL_LINK_INLINE_END( SvxHFPage, BorderModify, MetricField *, EMPTYARG )
IMPL_LINK( SvxHFPage, BackgroundHdl, Button *, EMPTYARG )
{
- if ( !pBBSet )
+ if(!pBBSet)
{
// nur die n"otigen Items f"uer Umrandung und Hintergrund benutzen
- sal_uInt16 nBrush = GetWhich( SID_ATTR_BRUSH );
- sal_uInt16 nOuter = GetWhich( SID_ATTR_BORDER_OUTER );
- sal_uInt16 nInner = GetWhich( SID_ATTR_BORDER_INNER, sal_False );
- sal_uInt16 nShadow = GetWhich( SID_ATTR_BORDER_SHADOW );
-
- // einen leeren Set erzeugenc
- pBBSet = new SfxItemSet( *GetItemSet().GetPool(), nBrush, nBrush,
- nOuter, nOuter, nInner, nInner,
- nShadow, nShadow, 0 );
+ const sal_uInt16 nOuter(GetWhich(SID_ATTR_BORDER_OUTER));
+ const sal_uInt16 nInner(GetWhich(SID_ATTR_BORDER_INNER, sal_False));
+ const sal_uInt16 nShadow(GetWhich(SID_ATTR_BORDER_SHADOW));
+
+ if(mbEnableDrawingLayerFillStyles)
+ {
+ pBBSet = new SfxItemSet(
+ *GetItemSet().GetPool(),
+ XATTR_FILL_FIRST, XATTR_FILL_LAST, // DrawingLayer FillStyle definitions
+ SID_COLOR_TABLE, SID_BITMAP_LIST, // XPropertyLists for Color, Gradient, Hatch and Graphic fills
+ nOuter, nOuter,
+ nInner, nInner,
+ nShadow, nShadow,
+ 0, 0);
+
+ //UUUU copy items for XPropertyList entries from the DrawModel so that
+ // the Area TabPage can access them
+ static const sal_uInt16 nCopyFlags[] = {
+ SID_COLOR_TABLE,
+ SID_GRADIENT_LIST,
+ SID_HATCH_LIST,
+ SID_BITMAP_LIST,
+ 0
+ };
+
+ for(sal_uInt16 a(0); nCopyFlags[a]; a++)
+ {
+ const SfxPoolItem* pItem = GetItemSet().GetItem(nCopyFlags[a]);
+
+ if(pItem)
+ {
+ pBBSet->Put(*pItem);
+ }
+ else
+ {
+ OSL_ENSURE(false, "XPropertyList missing (!)");
+ }
+ }
+ }
+ else
+ {
+ const sal_uInt16 nBrush(GetWhich(SID_ATTR_BRUSH));
+
+ pBBSet = new SfxItemSet(
+ *GetItemSet().GetPool(),
+ nBrush, nBrush,
+ nOuter, nOuter,
+ nInner, nInner,
+ nShadow, nShadow,
+ 0, 0);
+ }
+
const SfxPoolItem* pItem;
- if ( SFX_ITEM_SET ==
- GetItemSet().GetItemState( GetWhich( nId ), sal_False, &pItem ) )
- // wenn es schon einen gesetzen Set gibt, dann diesen benutzen
- pBBSet->Put( ( (SvxSetItem*)pItem)->GetItemSet() );
+ if(SFX_ITEM_SET == GetItemSet().GetItemState(GetWhich(nId), sal_False, &pItem))
+ {
+ // If a SfxItemSet from the SetItem for SID_ATTR_PAGE_HEADERSET or
+ // SID_ATTR_PAGE_FOOTERSET exists, use it's content
+ pBBSet->Put(((SvxSetItem*)pItem)->GetItemSet());
+ }
+ else
+ {
+ if(mbEnableDrawingLayerFillStyles)
+ {
+ //UUUU The style for header/footer is not yet created, need to reset
+ // XFillStyleItem to XFILL_NONE which is the same as in the style
+ // initialization. This needs to be done since the pool default for
+ // XFillStyleItem is XFILL_SOLID
+ pBBSet->Put(XFillStyleItem(XFILL_NONE));
+ }
+ }
- if ( SFX_ITEM_SET ==
- GetItemSet().GetItemState( nInner, sal_False, &pItem ) )
+ if(SFX_ITEM_SET == GetItemSet().GetItemState(nInner, sal_False, &pItem))
+ {
// das gesetze InfoItem wird immer ben"otigt
- pBBSet->Put( *pItem );
+ pBBSet->Put(*pItem);
+ }
}
- //CHINA001 SvxBorderBackgroundDlg* pDlg =
-//CHINA001 new SvxBorderBackgroundDlg( this, *pBBSet, bEnableBackgroundSelector );
SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
+
if(pFact)
{
- SfxAbstractTabDialog* pDlg = pFact->CreateSvxBorderBackgroundDlg( this, *pBBSet, bEnableBackgroundSelector );
- DBG_ASSERT(pDlg, "Dialogdiet fail!");//CHINA001
- if ( pDlg->Execute() == RET_OK && pDlg->GetOutputItemSet() )
+ //UUUU
+ SfxAbstractTabDialog* pDlg = pFact->CreateSvxBorderBackgroundDlg(
+ this,
+ *pBBSet,
+ mbEnableBackgroundSelector,
+ mbEnableDrawingLayerFillStyles);
+
+ DBG_ASSERT(pDlg,"Dialogdiet fail!");//CHINA001
+ if(RET_OK == pDlg->Execute() && pDlg->GetOutputItemSet())
{
- SfxItemIter aIter( *pDlg->GetOutputItemSet() );
+ SfxItemIter aIter(*pDlg->GetOutputItemSet());
const SfxPoolItem* pItem = aIter.FirstItem();
- while ( pItem )
+ while(pItem)
{
- if ( !IsInvalidItem( pItem ) )
- pBBSet->Put( *pItem );
+ if(!IsInvalidItem(pItem))
+ {
+ pBBSet->Put(*pItem);
+ }
+
pItem = aIter.NextItem();
}
//----------------------------------------------------------------
-
- sal_uInt16 nWhich = GetWhich( SID_ATTR_BRUSH );
-
- if ( pBBSet->GetItemState( nWhich ) == SFX_ITEM_SET )
{
- const SvxBrushItem& rItem = (const SvxBrushItem&)pBBSet->Get( nWhich );
- if ( nId == SID_ATTR_PAGE_HEADERSET )
- aBspWin.SetHdColor( rItem.GetColor() );
+ drawinglayer::attribute::SdrAllFillAttributesHelperPtr aFillAttributes;
+
+ if(mbEnableDrawingLayerFillStyles)
+ {
+ //UUUU create FillAttributes directly from DrawingLayer FillStyle entries
+ aFillAttributes.reset(new drawinglayer::attribute::SdrAllFillAttributesHelper(*pBBSet));
+ }
else
- aBspWin.SetFtColor( rItem.GetColor() );
+ {
+ const sal_uInt16 nWhich = GetWhich(SID_ATTR_BRUSH);
+
+ if(pBBSet->GetItemState(nWhich) == SFX_ITEM_SET)
+ {
+ //UUUU create FillAttributes from SvxBrushItem
+ const SvxBrushItem& rItem = static_cast< const SvxBrushItem& >(pBBSet->Get(nWhich));
+ SfxItemSet aTempSet(*pBBSet->GetPool(), XATTR_FILL_FIRST, XATTR_FILL_LAST);
+
+ setSvxBrushItemAsFillAttributesToTargetSet(rItem, aTempSet);
+ aFillAttributes.reset(new drawinglayer::attribute::SdrAllFillAttributesHelper(aTempSet));
+ }
+ }
+
+ if(SID_ATTR_PAGE_HEADERSET == nId)
+ {
+ //aBspWin.SetHdColor(rItem.GetColor());
+ aBspWin.setHeaderFillAttributes(aFillAttributes);
+ }
+ else
+ {
+ //aBspWin.SetFtColor(rItem.GetColor());
+ aBspWin.setFooterFillAttributes(aFillAttributes);
+ }
}
//----------------------------------------------------------------
-
- nWhich = GetWhich( SID_ATTR_BORDER_OUTER );
-
- if ( pBBSet->GetItemState( nWhich ) == SFX_ITEM_SET )
{
- const SvxBoxItem& rItem = (const SvxBoxItem&)pBBSet->Get( nWhich );
+ const sal_uInt16 nWhich = GetWhich(SID_ATTR_BORDER_OUTER);
- if ( nId == SID_ATTR_PAGE_HEADERSET )
- aBspWin.SetHdBorder( rItem );
- else
- aBspWin.SetFtBorder( rItem );
+ if(pBBSet->GetItemState(nWhich) == SFX_ITEM_SET)
+ {
+ const SvxBoxItem& rItem = (const SvxBoxItem&)pBBSet->Get(nWhich);
+
+ if(nId == SID_ATTR_PAGE_HEADERSET)
+ aBspWin.SetHdBorder(rItem);
+ else
+ aBspWin.SetFtBorder(rItem);
+ }
}
UpdateExample();
}
- delete pDlg;
+ delete pDlg;
}
return 0;
}
@@ -638,87 +768,122 @@ void SvxHFPage::UpdateExample()
void SvxHFPage::ResetBackground_Impl( const SfxItemSet& rSet )
{
- sal_uInt16 nWhich = GetWhich( SID_ATTR_PAGE_HEADERSET );
+ sal_uInt16 nWhich(GetWhich(SID_ATTR_PAGE_HEADERSET));
- if ( rSet.GetItemState( nWhich, sal_False ) == SFX_ITEM_SET )
+ if(SFX_ITEM_SET == rSet.GetItemState(nWhich, sal_False))
{
- const SvxSetItem& rSetItem =
- (const SvxSetItem&)rSet.Get( nWhich, sal_False );
+ const SvxSetItem& rSetItem = static_cast< const SvxSetItem& >(rSet.Get(nWhich, sal_False));
const SfxItemSet& rTmpSet = rSetItem.GetItemSet();
- const SfxBoolItem& rOn =
- (const SfxBoolItem&)rTmpSet.Get( GetWhich( SID_ATTR_PAGE_ON ) );
+ const SfxBoolItem& rOn = static_cast< const SfxBoolItem& >(rTmpSet.Get(GetWhich(SID_ATTR_PAGE_ON)));
- if ( rOn.GetValue() )
+ if(rOn.GetValue())
{
- nWhich = GetWhich( SID_ATTR_BRUSH );
+ drawinglayer::attribute::SdrAllFillAttributesHelperPtr aHeaderFillAttributes;
- if ( rTmpSet.GetItemState( nWhich ) == SFX_ITEM_SET )
+ if(mbEnableDrawingLayerFillStyles)
{
- const SvxBrushItem& rItem = (const SvxBrushItem&)rTmpSet.Get( nWhich );
- aBspWin.SetHdColor( rItem.GetColor() );
+ //UUUU create FillAttributes directly from DrawingLayer FillStyle entries
+ aHeaderFillAttributes.reset(new drawinglayer::attribute::SdrAllFillAttributesHelper(rTmpSet));
}
- nWhich = GetWhich( SID_ATTR_BORDER_OUTER );
+ else
+ {
+ nWhich = GetWhich(SID_ATTR_BRUSH);
+
+ if(SFX_ITEM_SET == rTmpSet.GetItemState(nWhich))
+ {
+ //UUUU create FillAttributes from SvxBrushItem
+ const SvxBrushItem& rItem = static_cast< const SvxBrushItem& >(rTmpSet.Get(nWhich));
+ SfxItemSet aTempSet(*rTmpSet.GetPool(), XATTR_FILL_FIRST, XATTR_FILL_LAST);
+
+ setSvxBrushItemAsFillAttributesToTargetSet(rItem, aTempSet);
+ aHeaderFillAttributes.reset(new drawinglayer::attribute::SdrAllFillAttributesHelper(aTempSet));
+ }
+ }
+
+ aBspWin.setHeaderFillAttributes(aHeaderFillAttributes);
+ nWhich = GetWhich(SID_ATTR_BORDER_OUTER);
- if ( rTmpSet.GetItemState( nWhich ) == SFX_ITEM_SET )
+ if(rTmpSet.GetItemState(nWhich) == SFX_ITEM_SET)
{
const SvxBoxItem& rItem =
- (const SvxBoxItem&)rTmpSet.Get( nWhich );
- aBspWin.SetHdBorder( rItem );
+ (const SvxBoxItem&)rTmpSet.Get(nWhich);
+ aBspWin.SetHdBorder(rItem);
}
}
}
- nWhich = GetWhich( SID_ATTR_PAGE_FOOTERSET );
+ nWhich = GetWhich(SID_ATTR_PAGE_FOOTERSET);
- if ( rSet.GetItemState( nWhich, sal_False ) == SFX_ITEM_SET )
+ if(SFX_ITEM_SET == rSet.GetItemState(nWhich, sal_False))
{
- const SvxSetItem& rSetItem =
- (const SvxSetItem&)rSet.Get( nWhich, sal_False );
+ const SvxSetItem& rSetItem = static_cast< const SvxSetItem& >(rSet.Get(nWhich, sal_False));
const SfxItemSet& rTmpSet = rSetItem.GetItemSet();
- const SfxBoolItem& rOn =
- (const SfxBoolItem&)rTmpSet.Get( GetWhich( SID_ATTR_PAGE_ON ) );
+ const SfxBoolItem& rOn = static_cast< const SfxBoolItem& >(rTmpSet.Get(GetWhich(SID_ATTR_PAGE_ON)));
- if ( rOn.GetValue() )
+ if(rOn.GetValue())
{
- nWhich = GetWhich( SID_ATTR_BRUSH );
+ drawinglayer::attribute::SdrAllFillAttributesHelperPtr aFooterFillAttributes;
- if ( rTmpSet.GetItemState( nWhich ) == SFX_ITEM_SET )
+ if(mbEnableDrawingLayerFillStyles)
{
- const SvxBrushItem& rItem = (const SvxBrushItem&)rTmpSet.Get( nWhich );
- aBspWin.SetFtColor( rItem.GetColor() );
+ //UUUU create FillAttributes directly from DrawingLayer FillStyle entries
+ aFooterFillAttributes.reset(new drawinglayer::attribute::SdrAllFillAttributesHelper(rTmpSet));
}
- nWhich = GetWhich( SID_ATTR_BORDER_OUTER );
+ else
+ {
+ nWhich = GetWhich(SID_ATTR_BRUSH);
+
+ if(SFX_ITEM_SET == rTmpSet.GetItemState(nWhich))
+ {
+ //UUUU create FillAttributes from SvxBrushItem
+ const SvxBrushItem& rItem = static_cast< const SvxBrushItem& >(rTmpSet.Get(nWhich));
+ SfxItemSet aTempSet(*rTmpSet.GetPool(), XATTR_FILL_FIRST, XATTR_FILL_LAST);
+
+ setSvxBrushItemAsFillAttributesToTargetSet(rItem, aTempSet);
+ aFooterFillAttributes.reset(new drawinglayer::attribute::SdrAllFillAttributesHelper(aTempSet));
+ }
+ }
+
+ aBspWin.setFooterFillAttributes(aFooterFillAttributes);
+ nWhich = GetWhich(SID_ATTR_BORDER_OUTER);
- if ( rTmpSet.GetItemState( nWhich ) == SFX_ITEM_SET )
+ if(rTmpSet.GetItemState(nWhich) == SFX_ITEM_SET)
{
- const SvxBoxItem& rItem =
- (const SvxBoxItem&)rTmpSet.Get( nWhich );
- aBspWin.SetFtBorder( rItem );
+ const SvxBoxItem& rItem = static_cast< const SvxBoxItem& >(rTmpSet.Get(nWhich));
+ aBspWin.SetFtBorder(rItem);
}
}
}
- nWhich = GetWhich( SID_ATTR_BRUSH );
- if ( rSet.GetItemState( nWhich ) >= SFX_ITEM_AVAILABLE )
+ drawinglayer::attribute::SdrAllFillAttributesHelperPtr aPageFillAttributes;
+
+ if(mbEnableDrawingLayerFillStyles)
+ {
+ //UUUU create FillAttributes directly from DrawingLayer FillStyle entries
+ aPageFillAttributes.reset(new drawinglayer::attribute::SdrAllFillAttributesHelper(rSet));
+ }
+ else
{
- const SvxBrushItem& rItem = (const SvxBrushItem&)rSet.Get( nWhich );
- aBspWin.SetColor( rItem.GetColor() );
- const Graphic* pGrf = rItem.GetGraphic();
+ nWhich = GetWhich(SID_ATTR_BRUSH);
- if ( pGrf )
+ if(rSet.GetItemState(nWhich) >= SFX_ITEM_AVAILABLE)
{
- Bitmap aBitmap = pGrf->GetBitmap();
- aBspWin.SetBitmap( &aBitmap );
+ //UUUU create FillAttributes from SvxBrushItem
+ const SvxBrushItem& rItem = static_cast< const SvxBrushItem& >(rSet.Get(nWhich));
+ SfxItemSet aTempSet(*rSet.GetPool(), XATTR_FILL_FIRST, XATTR_FILL_LAST);
+
+ setSvxBrushItemAsFillAttributesToTargetSet(rItem, aTempSet);
+ aPageFillAttributes.reset(new drawinglayer::attribute::SdrAllFillAttributesHelper(aTempSet));
}
- else
- aBspWin.SetBitmap( NULL );
}
- nWhich = GetWhich( SID_ATTR_BORDER_OUTER );
- if ( rSet.GetItemState( nWhich ) >= SFX_ITEM_AVAILABLE )
+ aBspWin.setPageFillAttributes(aPageFillAttributes);
+ nWhich = GetWhich(SID_ATTR_BORDER_OUTER);
+
+ if(rSet.GetItemState(nWhich) >= SFX_ITEM_AVAILABLE)
{
- const SvxBoxItem& rItem = (const SvxBoxItem&)rSet.Get( nWhich );
- aBspWin.SetBorder( rItem );
+ const SvxBoxItem& rItem = static_cast< const SvxBoxItem& >(rSet.Get(nWhich));
+ aBspWin.SetBorder(rItem);
}
}
@@ -973,6 +1138,7 @@ void lcl_Move(Window& rWin, sal_Int32 nDiff)
aPos.Y() -= nDiff;
rWin.SetPosPixel(aPos);
}
+
void SvxHFPage::EnableDynamicSpacing()
{
aDynSpacingCB.Show();
@@ -991,3 +1157,17 @@ void SvxHFPage::EnableDynamicSpacing()
lcl_Move(*aMoveWindows[nIdx++], nOffset);
}
+void SvxHFPage::PageCreated(SfxAllItemSet aSet)
+{
+ //UUUU
+ SFX_ITEMSET_ARG (&aSet, pSupportDrawingLayerFillStyleItem, SfxBoolItem, SID_DRAWINGLAYER_FILLSTYLES);
+
+ if(pSupportDrawingLayerFillStyleItem)
+ {
+ const bool bNew(pSupportDrawingLayerFillStyleItem->GetValue());
+
+ EnableDrawingLayerFillStyles(bNew);
+ }
+}
+
+//eof