diff options
author | Kurt Zenker <kz@openoffice.org> | 2004-07-30 15:19:05 +0000 |
---|---|---|
committer | Kurt Zenker <kz@openoffice.org> | 2004-07-30 15:19:05 +0000 |
commit | 3fb96415adad548982592b6b95f21baf75a12fd7 (patch) | |
tree | fa4eae185eccfc90eb62ffd54d1d16c7b27fd559 /sc/source/filter/excel/xepage.cxx | |
parent | a255ac9d9c4c5403321a6698dcc02fbec374c6e5 (diff) |
INTEGRATION: CWS dr19 (1.5.14); FILE MERGED
2004/06/23 10:02:52 dr 1.5.14.2: #i23296# #i30586# handle headers/footers overlaying sheet data
2004/06/16 14:36:33 dr 1.5.14.1: #i23296# correct export of header/footer position
Diffstat (limited to 'sc/source/filter/excel/xepage.cxx')
-rw-r--r-- | sc/source/filter/excel/xepage.cxx | 44 |
1 files changed, 30 insertions, 14 deletions
diff --git a/sc/source/filter/excel/xepage.cxx b/sc/source/filter/excel/xepage.cxx index 890a11c31c1f..9cc456298547 100644 --- a/sc/source/filter/excel/xepage.cxx +++ b/sc/source/filter/excel/xepage.cxx @@ -2,9 +2,9 @@ * * $RCSfile: xepage.cxx,v $ * - * $Revision: 1.5 $ + * $Revision: 1.6 $ * - * last change: $Author: obo $ $Date: 2004-06-04 10:46:11 $ + * last change: $Author: kz $ $Date: 2004-07-30 16:19:05 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -274,12 +274,12 @@ XclExpPageSettings::XclExpPageSettings( const XclExpRoot& rRoot ) : // *** page settings *** - maData.mbPrintInRows = !GETITEMVALUE( rItemSet, SfxBoolItem, ATTR_PAGE_TOPDOWN, bool ); - maData.mbHorCenter = GETITEMVALUE( rItemSet, SfxBoolItem, ATTR_PAGE_HORCENTER, bool ); - maData.mbVerCenter = GETITEMVALUE( rItemSet, SfxBoolItem, ATTR_PAGE_VERCENTER, bool ); - maData.mbPrintHeadings = GETITEMVALUE( rItemSet, SfxBoolItem, ATTR_PAGE_HEADERS, bool ); - maData.mbPrintGrid = GETITEMVALUE( rItemSet, SfxBoolItem, ATTR_PAGE_GRID, bool ); - maData.mbPrintNotes = GETITEMVALUE( rItemSet, SfxBoolItem, ATTR_PAGE_NOTES, bool ); + maData.mbPrintInRows = !GETITEMBOOL( rItemSet, ATTR_PAGE_TOPDOWN ); + maData.mbHorCenter = GETITEMBOOL( rItemSet, ATTR_PAGE_HORCENTER ); + maData.mbVerCenter = GETITEMBOOL( rItemSet, ATTR_PAGE_VERCENTER ); + maData.mbPrintHeadings = GETITEMBOOL( rItemSet, ATTR_PAGE_HEADERS ); + maData.mbPrintGrid = GETITEMBOOL( rItemSet, ATTR_PAGE_GRID ); + maData.mbPrintNotes = GETITEMBOOL( rItemSet, ATTR_PAGE_NOTES ); maData.mnStartPage = GETITEMVALUE( rItemSet, SfxUInt16Item, ATTR_PAGE_FIRSTPAGENO, sal_uInt16 ); maData.mbManualStart = maData.mnStartPage && (!nScTab || rDoc.NeedPageResetAfterTab( nScTab - 1 )); @@ -326,21 +326,37 @@ XclExpPageSettings::XclExpPageSettings( const XclExpRoot& rRoot ) : // header const SfxItemSet& rHdrItemSet = GETITEM( rItemSet, SvxSetItem, ATTR_PAGE_HEADERSET ).GetItemSet(); - if( GETITEMVALUE( rHdrItemSet, SfxBoolItem, ATTR_PAGE_ON, bool ) ) + if( GETITEMBOOL( rHdrItemSet, ATTR_PAGE_ON ) ) { const ScPageHFItem& rHFItem = GETITEM( rItemSet, ScPageHFItem, ATTR_PAGE_HEADERRIGHT ); - maData.maHeader = aHFConv.GenerateString( rHFItem.GetLeftArea(), rHFItem.GetCenterArea(), rHFItem.GetRightArea() ); + aHFConv.GenerateString( rHFItem.GetLeftArea(), rHFItem.GetCenterArea(), rHFItem.GetRightArea() ); + maData.maHeader = aHFConv.GetHFString(); + // header height (Excel excludes header from top margin) + sal_Int32 nHdrHeight = GETITEMBOOL( rHdrItemSet, ATTR_PAGE_DYNAMIC ) ? + // dynamic height: calculate header height, add header <-> sheet area distance + (aHFConv.GetTotalHeight() + GETITEM( rHdrItemSet, SvxULSpaceItem, ATTR_ULSPACE ).GetLower()) : + // static height: ATTR_PAGE_SIZE already includes header <-> sheet area distance + static_cast< sal_Int32 >( GETITEM( rHdrItemSet, SvxSizeItem, ATTR_PAGE_SIZE ).GetSize().Height() ); + maData.mfHeaderMargin = maData.mfTopMargin; + maData.mfTopMargin += XclTools::GetInchFromTwips( nHdrHeight ); } - maData.mfHeaderMargin = XclTools::GetInchFromTwips( GETITEM( rHdrItemSet, SvxULSpaceItem, ATTR_ULSPACE ).GetLower() ); // footer const SfxItemSet& rFtrItemSet = GETITEM( rItemSet, SvxSetItem, ATTR_PAGE_FOOTERSET ).GetItemSet(); - if( GETITEMVALUE( rFtrItemSet, SfxBoolItem, ATTR_PAGE_ON, bool ) ) + if( GETITEMBOOL( rFtrItemSet, ATTR_PAGE_ON ) ) { const ScPageHFItem& rHFItem = GETITEM( rItemSet, ScPageHFItem, ATTR_PAGE_FOOTERRIGHT ); - maData.maFooter = aHFConv.GenerateString( rHFItem.GetLeftArea(), rHFItem.GetCenterArea(), rHFItem.GetRightArea() ); + aHFConv.GenerateString( rHFItem.GetLeftArea(), rHFItem.GetCenterArea(), rHFItem.GetRightArea() ); + maData.maFooter = aHFConv.GetHFString(); + // footer height (Excel excludes footer from bottom margin) + sal_Int32 nFtrHeight = GETITEMBOOL( rFtrItemSet, ATTR_PAGE_DYNAMIC ) ? + // dynamic height: calculate footer height, add sheet area <-> footer distance + (aHFConv.GetTotalHeight() + GETITEM( rFtrItemSet, SvxULSpaceItem, ATTR_ULSPACE ).GetUpper()) : + // static height: ATTR_PAGE_SIZE already includes sheet area <-> footer distance + static_cast< sal_Int32 >( GETITEM( rFtrItemSet, SvxSizeItem, ATTR_PAGE_SIZE ).GetSize().Height() ); + maData.mfFooterMargin = maData.mfBottomMargin; + maData.mfBottomMargin += XclTools::GetInchFromTwips( nFtrHeight ); } - maData.mfFooterMargin = XclTools::GetInchFromTwips( GETITEM( rFtrItemSet, SvxULSpaceItem, ATTR_ULSPACE ).GetUpper() ); } // *** page breaks *** |