summaryrefslogtreecommitdiff
path: root/xmloff/source/style/PageMasterPropMapper.cxx
diff options
context:
space:
mode:
authorMichael Brauer <mib@openoffice.org>2000-11-07 12:33:09 +0000
committerMichael Brauer <mib@openoffice.org>2000-11-07 12:33:09 +0000
commitb5fc47fe5c2892dd712e2bda922656eacbd932f1 (patch)
treee00ae2ef750a72ad2b10b1b4cdbe31a02b7ecb33 /xmloff/source/style/PageMasterPropMapper.cxx
parentaa841ce0e4fb3e83c7bcccc541447def18e14e75 (diff)
shape import and export for text documents
Diffstat (limited to 'xmloff/source/style/PageMasterPropMapper.cxx')
-rw-r--r--xmloff/source/style/PageMasterPropMapper.cxx259
1 files changed, 2 insertions, 257 deletions
diff --git a/xmloff/source/style/PageMasterPropMapper.cxx b/xmloff/source/style/PageMasterPropMapper.cxx
index be6cd08eb08c..3e5a760fff93 100644
--- a/xmloff/source/style/PageMasterPropMapper.cxx
+++ b/xmloff/source/style/PageMasterPropMapper.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: PageMasterPropMapper.cxx,v $
*
- * $Revision: 1.9 $
+ * $Revision: 1.10 $
*
- * last change: $Author: dr $ $Date: 2000-10-26 07:54:14 $
+ * last change: $Author: mib $ $Date: 2000-11-07 13:33:06 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -63,13 +63,6 @@
#include "PageMasterPropMapper.hxx"
#endif
-#ifndef _COMPHELPER_TYPES_HXX_
-#include <comphelper/types.hxx>
-#endif
-
-#ifndef _COM_SUN_STAR_TABLE_BORDERLINE_HPP_
-#include <com/sun/star/table/BorderLine.hpp>
-#endif
#ifndef _XMLOFF_PAGEMASTERSTYLEMAP_HXX
#include "PageMasterStyleMap.hxx"
@@ -81,165 +74,6 @@
using namespace ::com::sun::star;
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::beans;
-using namespace ::comphelper;
-
-
-//______________________________________________________________________________
-
-inline sal_Bool lcl_HasSameLineWidth( const table::BorderLine& rLine1, const table::BorderLine& rLine2 )
-{
- return (rLine1.InnerLineWidth == rLine2.InnerLineWidth) &&
- (rLine1.OuterLineWidth == rLine2.OuterLineWidth) &&
- (rLine1.LineDistance == rLine2.LineDistance);
-}
-
-inline sal_Bool operator==( const table::BorderLine& rLine1, const table::BorderLine& rLine2 )
-{
- return (rLine1.Color == rLine2.Color) &&
- lcl_HasSameLineWidth( rLine1, rLine2 );
-}
-
-inline void lcl_RemoveState( XMLPropertyState* pState )
-{
- pState->mnIndex = -1;
- pState->maValue.clear();
-}
-
-void lcl_RemoveStateIfZero16( XMLPropertyState* pState )
-{
- sal_Int16 nValue;
- if( (pState->maValue >>= nValue) && !nValue )
- lcl_RemoveState( pState );
-}
-
-
-//______________________________________________________________________________
-// helper struct to handle equal XMLPropertyState's for page, header and footer
-
-struct XMLPropertyStateBuffer
-{
- XMLPropertyState* pPMBorderAll;
- XMLPropertyState* pPMBorderTop;
- XMLPropertyState* pPMBorderBottom;
- XMLPropertyState* pPMBorderLeft;
- XMLPropertyState* pPMBorderRight;
-
- XMLPropertyState* pPMBorderWidthAll;
- XMLPropertyState* pPMBorderWidthTop;
- XMLPropertyState* pPMBorderWidthBottom;
- XMLPropertyState* pPMBorderWidthLeft;
- XMLPropertyState* pPMBorderWidthRight;
-
- XMLPropertyState* pPMPaddingAll;
- XMLPropertyState* pPMPaddingTop;
- XMLPropertyState* pPMPaddingBottom;
- XMLPropertyState* pPMPaddingLeft;
- XMLPropertyState* pPMPaddingRight;
-
- XMLPropertyStateBuffer();
- void ContextFilter( ::std::vector< XMLPropertyState >& rPropState );
-};
-
-XMLPropertyStateBuffer::XMLPropertyStateBuffer() :
- pPMBorderAll( NULL ),
- pPMBorderTop( NULL ),
- pPMBorderBottom( NULL ),
- pPMBorderLeft( NULL ),
- pPMBorderRight( NULL ),
-
- pPMBorderWidthAll( NULL ),
- pPMBorderWidthTop( NULL ),
- pPMBorderWidthBottom( NULL ),
- pPMBorderWidthLeft( NULL ),
- pPMBorderWidthRight( NULL ),
-
- pPMPaddingAll( NULL ),
- pPMPaddingTop( NULL ),
- pPMPaddingBottom( NULL ),
- pPMPaddingLeft( NULL ),
- pPMPaddingRight( NULL )
-{
-}
-
-void XMLPropertyStateBuffer::ContextFilter( ::std::vector< XMLPropertyState >& rPropState )
-{
- if( pPMBorderAll )
- {
- if( pPMBorderTop && pPMBorderBottom && pPMBorderLeft && pPMBorderRight )
- {
- table::BorderLine aLineTop, aLineBottom, aLineLeft, aLineRight;
-
- pPMBorderTop->maValue >>= aLineTop;
- pPMBorderBottom->maValue >>= aLineBottom;
- pPMBorderLeft->maValue >>= aLineLeft;
- pPMBorderRight->maValue >>= aLineRight;
-
- if( (aLineTop == aLineBottom) && (aLineBottom == aLineLeft) && (aLineLeft == aLineRight) )
- {
- lcl_RemoveState( pPMBorderTop );
- lcl_RemoveState( pPMBorderBottom );
- lcl_RemoveState( pPMBorderLeft );
- lcl_RemoveState( pPMBorderRight );
- }
- else
- lcl_RemoveState( pPMBorderAll );
- }
- else
- lcl_RemoveState( pPMBorderAll );
- }
-
- if( pPMBorderWidthAll )
- {
- if( pPMBorderWidthTop && pPMBorderWidthBottom && pPMBorderWidthLeft && pPMBorderWidthRight )
- {
- table::BorderLine aLineTop, aLineBottom, aLineLeft, aLineRight;
-
- pPMBorderWidthTop->maValue >>= aLineTop;
- pPMBorderWidthBottom->maValue >>= aLineBottom;
- pPMBorderWidthLeft->maValue >>= aLineLeft;
- pPMBorderWidthRight->maValue >>= aLineRight;
-
- if( lcl_HasSameLineWidth( aLineTop, aLineBottom ) &&
- lcl_HasSameLineWidth( aLineBottom, aLineLeft ) &&
- lcl_HasSameLineWidth( aLineLeft, aLineRight ) )
- {
- lcl_RemoveState( pPMBorderWidthTop );
- lcl_RemoveState( pPMBorderWidthBottom );
- lcl_RemoveState( pPMBorderWidthLeft );
- lcl_RemoveState( pPMBorderWidthRight );
- }
- else
- lcl_RemoveState( pPMBorderWidthAll );
- }
- else
- lcl_RemoveState( pPMBorderWidthAll );
- }
-
- if( pPMPaddingAll )
- {
- if( pPMPaddingTop && pPMPaddingBottom && pPMPaddingLeft && pPMPaddingRight )
- {
- sal_Int32 nTop, nBottom, nLeft, nRight;
-
- pPMPaddingTop->maValue >>= nTop;
- pPMPaddingBottom->maValue >>= nBottom;
- pPMPaddingLeft->maValue >>= nLeft;
- pPMPaddingRight->maValue >>= nRight;
-
- if( (nTop == nBottom) && (nBottom == nLeft) && (nLeft == nRight) )
- {
- lcl_RemoveState( pPMPaddingTop );
- lcl_RemoveState( pPMPaddingBottom );
- lcl_RemoveState( pPMPaddingLeft );
- lcl_RemoveState( pPMPaddingRight );
- }
- else
- lcl_RemoveState( pPMPaddingAll );
- }
- else
- lcl_RemoveState( pPMPaddingAll );
- }
-}
//______________________________________________________________________________
@@ -260,92 +94,3 @@ XMLPageMasterPropSetMapper::~XMLPageMasterPropSetMapper()
{
}
-void XMLPageMasterPropSetMapper::ContextFilter(
- ::std::vector< XMLPropertyState >& rPropState,
- Reference< XPropertySet > rPropSet ) const
-{
- XMLPropertyStateBuffer aPageBuffer;
- XMLPropertyStateBuffer aHeaderBuffer;
- XMLPropertyStateBuffer aFooterBuffer;
-
- XMLPropertyState* pPMHeaderHeight = NULL;
- XMLPropertyState* pPMHeaderMinHeight = NULL;
- XMLPropertyState* pPMHeaderDynamic = NULL;
-
- XMLPropertyState* pPMFooterHeight = NULL;
- XMLPropertyState* pPMFooterMinHeight = NULL;
- XMLPropertyState* pPMFooterDynamic = NULL;
-
- XMLPropertyState* pPMScaleTo = NULL;
- XMLPropertyState* pPMScaleToPages = NULL;
-
- for( ::std::vector< XMLPropertyState >::iterator pProp = rPropState.begin(); pProp != rPropState.end(); pProp++ )
- {
- sal_Int16 nContextId = GetEntryContextId( pProp->mnIndex );
- sal_Int16 nFlag = nContextId & CTF_PM_FLAGMASK;
- sal_Int16 nSimpleId = nContextId & ~CTF_PM_FLAGMASK;
-
- XMLPropertyStateBuffer* pBuffer;
- switch( nFlag )
- {
- case CTF_PM_HEADERFLAG: pBuffer = &aHeaderBuffer; break;
- case CTF_PM_FOOTERFLAG: pBuffer = &aFooterBuffer; break;
- default: pBuffer = &aPageBuffer; break;
- }
-
- switch( nSimpleId )
- {
- case CTF_PM_BORDERALL: pBuffer->pPMBorderAll = pProp; break;
- case CTF_PM_BORDERTOP: pBuffer->pPMBorderTop = pProp; break;
- case CTF_PM_BORDERBOTTOM: pBuffer->pPMBorderBottom = pProp; break;
- case CTF_PM_BORDERLEFT: pBuffer->pPMBorderLeft = pProp; break;
- case CTF_PM_BORDERRIGHT: pBuffer->pPMBorderRight = pProp; break;
- case CTF_PM_BORDERWIDTHALL: pBuffer->pPMBorderWidthAll = pProp; break;
- case CTF_PM_BORDERWIDTHTOP: pBuffer->pPMBorderWidthTop = pProp; break;
- case CTF_PM_BORDERWIDTHBOTTOM: pBuffer->pPMBorderWidthBottom = pProp; break;
- case CTF_PM_BORDERWIDTHLEFT: pBuffer->pPMBorderWidthLeft = pProp; break;
- case CTF_PM_BORDERWIDTHRIGHT: pBuffer->pPMBorderWidthRight = pProp; break;
- case CTF_PM_PADDINGALL: pBuffer->pPMPaddingAll = pProp; break;
- case CTF_PM_PADDINGTOP: pBuffer->pPMPaddingTop = pProp; break;
- case CTF_PM_PADDINGBOTTOM: pBuffer->pPMPaddingBottom = pProp; break;
- case CTF_PM_PADDINGLEFT: pBuffer->pPMPaddingLeft = pProp; break;
- case CTF_PM_PADDINGRIGHT: pBuffer->pPMPaddingRight = pProp; break;
- }
-
- switch( nContextId )
- {
- case CTF_PM_HEADERHEIGHT: pPMHeaderHeight = pProp; break;
- case CTF_PM_HEADERMINHEIGHT: pPMHeaderMinHeight = pProp; break;
- case CTF_PM_HEADERDYNAMIC: pPMHeaderDynamic = pProp; break;
- case CTF_PM_FOOTERHEIGHT: pPMFooterHeight = pProp; break;
- case CTF_PM_FOOTERMINHEIGHT: pPMFooterMinHeight = pProp; break;
- case CTF_PM_FOOTERDYNAMIC: pPMFooterDynamic = pProp; break;
- case CTF_PM_SCALETO: pPMScaleTo = pProp; break;
- case CTF_PM_SCALETOPAGES: pPMScaleToPages = pProp; break;
- }
- }
-
- aPageBuffer.ContextFilter( rPropState );
- aHeaderBuffer.ContextFilter( rPropState );
- aFooterBuffer.ContextFilter( rPropState );
-
- if( pPMHeaderHeight && (!pPMHeaderDynamic || (pPMHeaderDynamic && getBOOL( pPMHeaderDynamic->maValue ))) )
- lcl_RemoveState( pPMHeaderHeight );
- if( pPMHeaderMinHeight && pPMHeaderDynamic && !getBOOL( pPMHeaderDynamic->maValue ) )
- lcl_RemoveState( pPMHeaderMinHeight );
- if( pPMHeaderDynamic )
- lcl_RemoveState( pPMHeaderDynamic );
-
- if( pPMFooterHeight && (!pPMFooterDynamic || (pPMFooterDynamic && getBOOL( pPMFooterDynamic->maValue ))) )
- lcl_RemoveState( pPMFooterHeight );
- if( pPMFooterMinHeight && pPMFooterDynamic && !getBOOL( pPMFooterDynamic->maValue ) )
- lcl_RemoveState( pPMFooterMinHeight );
- if( pPMFooterDynamic )
- lcl_RemoveState( pPMFooterDynamic );
-
- if( pPMScaleTo )
- lcl_RemoveStateIfZero16( pPMScaleTo );
- if( pPMScaleToPages )
- lcl_RemoveStateIfZero16( pPMScaleToPages );
-}
-