diff options
author | Cédric Bosdonnat <cedric.bosdonnat.ooo@free.fr> | 2011-09-15 10:54:46 +0200 |
---|---|---|
committer | Cédric Bosdonnat <cedric.bosdonnat.ooo@free.fr> | 2011-09-15 10:57:30 +0200 |
commit | c95d90199397b529de1a9979c065a7f35e52a188 (patch) | |
tree | 0d09b69bc627a184716e8d436f4e3403fa6b7938 /sw/source/ui | |
parent | 8081794d91884f471494a0bbf41e69f5ec80e247 (diff) |
Header/Footer: add the Border and Background... menu item
Diffstat (limited to 'sw/source/ui')
-rw-r--r-- | sw/source/ui/app/mn.src | 6 | ||||
-rw-r--r-- | sw/source/ui/docvw/HeaderFooterWin.cxx | 48 |
2 files changed, 54 insertions, 0 deletions
diff --git a/sw/source/ui/app/mn.src b/sw/source/ui/app/mn.src index 4156ba2232c4..3a5c21c50d6c 100644 --- a/sw/source/ui/app/mn.src +++ b/sw/source/ui/app/mn.src @@ -1446,6 +1446,12 @@ Menu MN_HEADERFOOTER_BUTTON }; MenuItem { + Identifier = FN_HEADERFOOTER_BORDERBACK ; + HelpID = CMD_FN_HEADERFOOTER_BORDERBACK ; + Text [ en-US ] = "Border and Background..." ; + }; + MenuItem + { Identifier = FN_HEADERFOOTER_DELETE ; HelpID = CMD_FN_HEADERFOOTER_DELETE ; Text [ en-US ] = "Delete $1..." ; diff --git a/sw/source/ui/docvw/HeaderFooterWin.cxx b/sw/source/ui/docvw/HeaderFooterWin.cxx index 1f7bbaefb54b..a7066398a602 100644 --- a/sw/source/ui/docvw/HeaderFooterWin.cxx +++ b/sw/source/ui/docvw/HeaderFooterWin.cxx @@ -45,7 +45,9 @@ #include <basegfx/polygon/b2dpolygon.hxx> #include <basegfx/color/bcolortools.hxx> +#include <editeng/boxitem.hxx> #include <svtools/svtdata.hxx> +#include <svx/hdft.hxx> #include <vcl/decoview.hxx> #include <vcl/gradient.hxx> #include <vcl/menubtn.hxx> @@ -292,6 +294,52 @@ void SwHeaderFooterWin::ExecuteCommand( sal_uInt16 nSlot ) nPageId, &rSh ); } break; + case FN_HEADERFOOTER_BORDERBACK: + { + const SwPageDesc* pDesc = m_pPageFrm->GetPageDesc(); + const SwFrmFmt& rMaster = pDesc->GetMaster(); + SwFrmFmt* pHFFmt = const_cast< SwFrmFmt* >( rMaster.GetFooter().GetFooterFmt() ); + if ( m_bIsHeader ) + pHFFmt = const_cast< SwFrmFmt* >( rMaster.GetHeader().GetHeaderFmt() ); + + + SfxItemPool* pPool = pHFFmt->GetAttrSet().GetPool(); + SfxItemSet aSet( *pPool, + RES_BACKGROUND, RES_BACKGROUND, + RES_BOX, RES_BOX, + SID_ATTR_BORDER_INNER, SID_ATTR_BORDER_INNER, + RES_SHADOW, RES_SHADOW, 0 ); + + aSet.Put( pHFFmt->GetAttrSet() ); + + // Create a box info item... needed by the dialog + SvxBoxInfoItem aBoxInfo( SID_ATTR_BORDER_INNER ); + const SfxPoolItem *pBoxInfo; + if ( SFX_ITEM_SET == pHFFmt->GetAttrSet().GetItemState( SID_ATTR_BORDER_INNER, + sal_True, &pBoxInfo) ) + aBoxInfo = *(SvxBoxInfoItem*)pBoxInfo; + + aBoxInfo.SetTable( sal_False ); + aBoxInfo.SetDist( sal_True); + aBoxInfo.SetMinDist( sal_False ); + aBoxInfo.SetDefDist( MIN_BORDER_DIST ); + aBoxInfo.SetValid( VALID_DISABLE ); + aSet.Put( aBoxInfo ); + + if ( svx::ShowBorderBackgroundDlg( this, &aSet, true ) ) + { + const SfxPoolItem* pItem; + if ( SFX_ITEM_SET == aSet.GetItemState( RES_BACKGROUND, sal_False, &pItem ) ) + pHFFmt->SetFmtAttr( *pItem ); + + if ( SFX_ITEM_SET == aSet.GetItemState( RES_BOX, sal_False, &pItem ) ) + pHFFmt->SetFmtAttr( *pItem ); + + if ( SFX_ITEM_SET == aSet.GetItemState( RES_SHADOW, sal_False, &pItem ) ) + pHFFmt->SetFmtAttr( *pItem ); + } + } + break; case FN_HEADERFOOTER_DELETE: { rSh.ChangeHeaderOrFooter( rStyleName, m_bIsHeader, false, true ); |