diff options
Diffstat (limited to 'sw/source/ui/docvw/HeaderFooterWin.cxx')
-rw-r--r-- | sw/source/ui/docvw/HeaderFooterWin.cxx | 53 |
1 files changed, 15 insertions, 38 deletions
diff --git a/sw/source/ui/docvw/HeaderFooterWin.cxx b/sw/source/ui/docvw/HeaderFooterWin.cxx index d7c9c848199a..6f59189afa77 100644 --- a/sw/source/ui/docvw/HeaderFooterWin.cxx +++ b/sw/source/ui/docvw/HeaderFooterWin.cxx @@ -45,7 +45,6 @@ #include <basegfx/polygon/b2dpolygon.hxx> #include <basegfx/color/bcolortools.hxx> -#include <editeng/ulspitem.hxx> #include <svtools/svtdata.hxx> #include <vcl/decoview.hxx> #include <vcl/gradient.hxx> @@ -184,7 +183,7 @@ void SwHeaderFooterWin::SetOffset( Point aOffset ) aTextPxRect.GetHeight() + TEXT_PADDING * 2 ); long nYFooterOff = 0; - if ( !IsHeader() ) + if ( !m_bIsHeader ) nYFooterOff = aBoxSize.Height(); Point aBoxPos( aOffset.X() - aBoxSize.Width() - BOX_DISTANCE, @@ -270,54 +269,29 @@ bool SwHeaderFooterWin::IsEmptyHeaderFooter( ) return bResult; } -void SwHeaderFooterWin::ChangeHeaderOrFooter( bool bAdd ) -{ - SwWrtShell& rSh = m_pEditWin->GetView().GetWrtShell(); - rSh.addCurrentPosition(); - rSh.StartAllAction(); - rSh.StartUndo( UNDO_HEADER_FOOTER ); - - const SwPageDesc* pPageDesc = GetPageFrame()->GetPageDesc(); - SwFrmFmt& rMaster = const_cast< SwFrmFmt& > (pPageDesc->GetMaster() ); - - if ( m_bIsHeader ) - rMaster.SetFmtAttr( SwFmtHeader( bAdd ) ); - else - rMaster.SetFmtAttr( SwFmtFooter( bAdd ) ); - - if ( bAdd ) - { - SvxULSpaceItem aUL( m_bIsHeader ? 0 : MM50, m_bIsHeader ? MM50 : 0, RES_UL_SPACE ); - SwFrmFmt* pFmt = m_bIsHeader ? - ( SwFrmFmt* )rMaster.GetHeader().GetHeaderFmt(): - ( SwFrmFmt* )rMaster.GetFooter().GetFooterFmt(); - pFmt->SetFmtAttr( aUL ); - } - - - rSh.EndUndo( UNDO_HEADER_FOOTER ); - rSh.EndAllAction(); -} - void SwHeaderFooterWin::ExecuteCommand( sal_uInt16 nSlot ) { + SwView& rView = m_pEditWin->GetView(); + SwWrtShell& rSh = rView.GetWrtShell(); + + const String& rStyleName = GetPageFrame()->GetPageDesc()->GetName(); switch ( nSlot ) { case FN_HEADERFOOTER_EDIT: { - SwView& rView = m_pEditWin->GetView(); - SwWrtShell& rSh = rView.GetWrtShell(); sal_uInt16 nPageId = TP_FOOTER_PAGE; - if ( IsHeader() ) + if ( m_bIsHeader ) nPageId = TP_HEADER_PAGE; rView.GetDocShell()->FormatPage( - GetPageFrame()->GetPageDesc()->GetName(), + rStyleName, nPageId, &rSh ); } break; case FN_HEADERFOOTER_DELETE: - ChangeHeaderOrFooter( false ); + { + rSh.ChangeHeaderOrFooter( rStyleName, m_bIsHeader, false, true ); + } break; default: break; @@ -334,8 +308,11 @@ void SwHeaderFooterWin::MouseButtonDown( const MouseEvent& rMEvt ) { if ( IsEmptyHeaderFooter( ) ) { - // Add the header / footer - ChangeHeaderOrFooter( true ); + SwView& rView = m_pEditWin->GetView(); + SwWrtShell& rSh = rView.GetWrtShell(); + + const String& rStyleName = GetPageFrame()->GetPageDesc()->GetName(); + rSh.ChangeHeaderOrFooter( rStyleName, m_bIsHeader, true, false ); } else MenuButton::MouseButtonDown( rMEvt ); |