summaryrefslogtreecommitdiff
path: root/editeng/source/items/paraitem.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'editeng/source/items/paraitem.cxx')
-rw-r--r--editeng/source/items/paraitem.cxx1705
1 files changed, 0 insertions, 1705 deletions
diff --git a/editeng/source/items/paraitem.cxx b/editeng/source/items/paraitem.cxx
deleted file mode 100644
index 0ee0c2b189..0000000000
--- a/editeng/source/items/paraitem.cxx
+++ /dev/null
@@ -1,1705 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_editeng.hxx"
-
-// include ---------------------------------------------------------------
-#include <com/sun/star/style/TabStop.hpp>
-#include <com/sun/star/style/LineSpacing.hpp>
-#include <com/sun/star/style/LineSpacingMode.hpp>
-#include <com/sun/star/uno/Sequence.hxx>
-#include <comphelper/processfactory.hxx>
-#include <unotools/syslocale.hxx>
-#include <comphelper/types.hxx>
-
-using namespace ::rtl;
-using namespace ::com::sun::star;
-
-#include <tools/rtti.hxx>
-#define GLOBALOVERFLOW3
-
-#define _SVX_PARAITEM_CXX
-#include <svl/itempool.hxx>
-
-#include <svl/memberid.hrc>
-#include <editeng/editrids.hrc>
-
-#include <editeng/lspcitem.hxx>
-#include <editeng/adjitem.hxx>
-#include <editeng/orphitem.hxx>
-#include <editeng/widwitem.hxx>
-#include <editeng/tstpitem.hxx>
-#include <editeng/pmdlitem.hxx>
-#include <editeng/spltitem.hxx>
-#include <editeng/hyznitem.hxx>
-#include <editeng/scriptspaceitem.hxx>
-#include <editeng/hngpnctitem.hxx>
-#include <editeng/forbiddenruleitem.hxx>
-#include <editeng/paravertalignitem.hxx>
-#include <editeng/pgrditem.hxx>
-#include <rtl/ustring.hxx>
-#include <editeng/memberids.hrc>
-#include <editeng/editids.hrc>
-#include <editeng/itemtype.hxx>
-#include <editeng/eerdll.hxx>
-#include <editeng/paperinf.hxx>
-#include <vcl/svapp.hxx>
-#include <algorithm>
-
-using namespace ::rtl;
-using namespace ::com::sun::star;
-
-// Konvertierung fuer UNO
-#define TWIP_TO_MM100(TWIP) ((TWIP) >= 0 ? (((TWIP)*127L+36L)/72L) : (((TWIP)*127L-36L)/72L))
-#define TWIP_TO_MM100_UNSIGNED(TWIP) ((((TWIP)*127L+36L)/72L))
-#define MM100_TO_TWIP(MM100) ((MM100) >= 0 ? (((MM100)*72L+63L)/127L) : (((MM100)*72L-63L)/127L))
-#define MM100_TO_TWIP_UNSIGNED(MM100) ((((MM100)*72L+63L)/127L))
-
-
-// STATIC DATA -----------------------------------------------------------
-
-
-// -----------------------------------------------------------------------
-
-
-TYPEINIT1_FACTORY(SvxLineSpacingItem, SfxPoolItem , new SvxLineSpacingItem(LINE_SPACE_DEFAULT_HEIGHT, 0));
-TYPEINIT1_FACTORY(SvxAdjustItem, SfxPoolItem, new SvxAdjustItem(SVX_ADJUST_LEFT, 0));
-TYPEINIT1_FACTORY(SvxWidowsItem, SfxByteItem, new SvxWidowsItem(0, 0));
-TYPEINIT1_FACTORY(SvxOrphansItem, SfxByteItem, new SvxOrphansItem(0, 0));
-TYPEINIT1_FACTORY(SvxHyphenZoneItem, SfxPoolItem, new SvxHyphenZoneItem(sal_False, 0));
-TYPEINIT1_FACTORY(SvxTabStopItem, SfxPoolItem, new SvxTabStopItem(0));
-TYPEINIT1_FACTORY(SvxFmtSplitItem, SfxBoolItem, new SvxFmtSplitItem(sal_False, 0));
-TYPEINIT1_FACTORY(SvxPageModelItem, SfxStringItem, new SvxPageModelItem(0));
-TYPEINIT1_FACTORY(SvxScriptSpaceItem, SfxBoolItem, new SvxScriptSpaceItem(sal_False, 0));
-TYPEINIT1_FACTORY(SvxHangingPunctuationItem, SfxBoolItem, new SvxHangingPunctuationItem(sal_False, 0));
-TYPEINIT1_FACTORY(SvxForbiddenRuleItem, SfxBoolItem, new SvxForbiddenRuleItem(sal_False, 0));
-TYPEINIT1_FACTORY(SvxParaVertAlignItem, SfxUInt16Item, new SvxParaVertAlignItem(0, 0));
-TYPEINIT1_FACTORY(SvxParaGridItem, SfxBoolItem, new SvxParaGridItem(sal_True, 0));
-
-SV_IMPL_VARARR_SORT( SvxTabStopArr, SvxTabStop )
-
-// -----------------------------------------------------------------------
-
-SvxLineSpacingItem::SvxLineSpacingItem( sal_uInt16 nHeight, const sal_uInt16 nId )
- : SfxEnumItemInterface( nId )
-{
- nPropLineSpace = 100;
- nInterLineSpace = 0;
- nLineHeight = nHeight;
- eLineSpace = SVX_LINE_SPACE_AUTO;
- eInterLineSpace = SVX_INTER_LINE_SPACE_OFF;
-}
-
-// -----------------------------------------------------------------------
-
-int SvxLineSpacingItem::operator==( const SfxPoolItem& rAttr ) const
-{
- DBG_ASSERT( SfxPoolItem::operator==(rAttr), "unequal types" );
-
- const SvxLineSpacingItem& rLineSpace = (const SvxLineSpacingItem&)rAttr;
- return (
- // Same Linespacing Rule?
- (eLineSpace == rLineSpace.eLineSpace)
- // For maximum and minimum Linespacing be the size must coincide.
- && (eLineSpace == SVX_LINE_SPACE_AUTO ||
- nLineHeight == rLineSpace.nLineHeight)
- // Same Linespacing Rule?
- && ( eInterLineSpace == rLineSpace.eInterLineSpace )
- // Either set proportional or additive.
- && (( eInterLineSpace == SVX_INTER_LINE_SPACE_OFF)
- || (eInterLineSpace == SVX_INTER_LINE_SPACE_PROP
- && nPropLineSpace == rLineSpace.nPropLineSpace)
- || (eInterLineSpace == SVX_INTER_LINE_SPACE_FIX
- && (nInterLineSpace == rLineSpace.nInterLineSpace)))) ?
- 1 : 0;
-}
-
-/* Who does still know why the LineSpacingItem is so complicated?
- We can not use it for UNO since there are only two values:
- - ein sal_uInt16 for the mode
- - ein sal_uInt32 for all values (distance, height, rel. detail)
-*/
-bool SvxLineSpacingItem::QueryValue( uno::Any& rVal, sal_uInt8 nMemberId ) const
-{
- sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
- nMemberId &= ~CONVERT_TWIPS;
-
- style::LineSpacing aLSp;
- switch( eLineSpace )
- {
- case SVX_LINE_SPACE_AUTO:
- if(eInterLineSpace == SVX_INTER_LINE_SPACE_FIX)
- {
- aLSp.Mode = style::LineSpacingMode::LEADING;
- aLSp.Height = ( bConvert ? (short)TWIP_TO_MM100(nInterLineSpace) : nInterLineSpace);
- }
- else if(eInterLineSpace == SVX_INTER_LINE_SPACE_OFF)
- {
- aLSp.Mode = style::LineSpacingMode::PROP;
- aLSp.Height = 100;
- }
- else
- {
- aLSp.Mode = style::LineSpacingMode::PROP;
- aLSp.Height = nPropLineSpace;
- }
- break;
- case SVX_LINE_SPACE_FIX :
- case SVX_LINE_SPACE_MIN :
- aLSp.Mode = eLineSpace == SVX_LINE_SPACE_FIX ? style::LineSpacingMode::FIX : style::LineSpacingMode::MINIMUM;
- aLSp.Height = ( bConvert ? (short)TWIP_TO_MM100_UNSIGNED(nLineHeight) : nLineHeight );
- break;
- default:
- ;//prevent warning about SVX_LINE_SPACE_END
- }
-
- switch ( nMemberId )
- {
- case 0 : rVal <<= aLSp; break;
- case MID_LINESPACE : rVal <<= aLSp.Mode; break;
- case MID_HEIGHT : rVal <<= aLSp.Height; break;
- default: OSL_FAIL("Wrong MemberId!"); break;
- }
-
- return true;
-}
-
-bool SvxLineSpacingItem::PutValue( const uno::Any& rVal, sal_uInt8 nMemberId )
-{
- sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
- nMemberId &= ~CONVERT_TWIPS;
-
- // fill with current data
- style::LineSpacing aLSp;
- uno::Any aAny;
- sal_Bool bRet = QueryValue( aAny, bConvert ? CONVERT_TWIPS : 0 ) && ( aAny >>= aLSp );
-
- // get new data
- switch ( nMemberId )
- {
- case 0 : bRet = (rVal >>= aLSp); break;
- case MID_LINESPACE : bRet = (rVal >>= aLSp.Mode); break;
- case MID_HEIGHT : bRet = (rVal >>= aLSp.Height); break;
- default: OSL_FAIL("Wrong MemberId!"); break;
- }
-
- if( bRet )
- {
- nLineHeight = aLSp.Height;
- switch( aLSp.Mode )
- {
- case style::LineSpacingMode::LEADING:
- {
- eInterLineSpace = SVX_INTER_LINE_SPACE_FIX;
- eLineSpace = SVX_LINE_SPACE_AUTO;
- nInterLineSpace = aLSp.Height;
- if(bConvert)
- nInterLineSpace = (short)MM100_TO_TWIP(nInterLineSpace);
-
- }
- break;
- case style::LineSpacingMode::PROP:
- {
- eLineSpace = SVX_LINE_SPACE_AUTO;
- nPropLineSpace = (sal_Int8)std::min(aLSp.Height, (short)0xFF);
- if(100 == aLSp.Height)
- eInterLineSpace = SVX_INTER_LINE_SPACE_OFF;
- else
- eInterLineSpace = SVX_INTER_LINE_SPACE_PROP;
- }
- break;
- case style::LineSpacingMode::FIX:
- case style::LineSpacingMode::MINIMUM:
- {
- eInterLineSpace = SVX_INTER_LINE_SPACE_OFF;
- eLineSpace = aLSp.Mode == style::LineSpacingMode::FIX ? SVX_LINE_SPACE_FIX : SVX_LINE_SPACE_MIN;
- nLineHeight = aLSp.Height;
- if(bConvert)
- nLineHeight = (sal_uInt16)MM100_TO_TWIP_UNSIGNED(nLineHeight);
- }
- break;
- }
- }
-
- return bRet;
-}
-
-// -----------------------------------------------------------------------
-
-SfxPoolItem* SvxLineSpacingItem::Clone( SfxItemPool * ) const
-{
- return new SvxLineSpacingItem( *this );
-}
-
-//------------------------------------------------------------------------
-
-SfxItemPresentation SvxLineSpacingItem::GetPresentation
-(
- SfxItemPresentation /*ePres*/,
- SfxMapUnit /*eCoreUnit*/,
- SfxMapUnit /*ePresUnit*/,
- XubString& rText, const IntlWrapper *
-) const
-{
-#ifdef DBG_UTIL
- rText.AssignAscii( RTL_CONSTASCII_STRINGPARAM( "SvxLineSpacingItem" ));
-#else
- rText.Erase();
-#endif
- return SFX_ITEM_PRESENTATION_NONE;
-}
-
-// -----------------------------------------------------------------------
-
-SfxPoolItem* SvxLineSpacingItem::Create(SvStream& rStrm, sal_uInt16) const
-{
- sal_Int8 nPropSpace;
- short nInterSpace;
- sal_uInt16 nHeight;
- sal_Int8 nRule, nInterRule;
-
- rStrm >> nPropSpace
- >> nInterSpace
- >> nHeight
- >> nRule
- >> nInterRule;
-
- SvxLineSpacingItem* pAttr = new SvxLineSpacingItem( nHeight, Which() );
- pAttr->SetInterLineSpace( nInterSpace );
- pAttr->SetPropLineSpace( nPropSpace );
- pAttr->GetLineSpaceRule() = (SvxLineSpace)nRule;
- pAttr->GetInterLineSpaceRule() = (SvxInterLineSpace)nInterRule;
- return pAttr;
-}
-
-// -----------------------------------------------------------------------
-
-SvStream& SvxLineSpacingItem::Store( SvStream& rStrm, sal_uInt16 /*nItemVersion*/ ) const
-{
- rStrm << (sal_Int8) GetPropLineSpace()
- << (short) GetInterLineSpace()
- << (sal_uInt16) GetLineHeight()
- << (sal_Int8) GetLineSpaceRule()
- << (sal_Int8) GetInterLineSpaceRule();
- return rStrm;
-}
-
-// -----------------------------------------------------------------------
-
-sal_uInt16 SvxLineSpacingItem::GetValueCount() const
-{
- return SVX_LINESPACE_END; // SVX_LINESPACE_TWO_LINES + 1
-}
-
-// -----------------------------------------------------------------------
-
-XubString SvxLineSpacingItem::GetValueTextByPos( sal_uInt16 nPos ) const
-{
- //! load strings from resource
- XubString aText;
- switch ( nPos )
- {
- case SVX_LINESPACE_USER : aText.AppendAscii( "User" ); break;
- case SVX_LINESPACE_ONE_LINE : aText.AppendAscii( "One line" ); break;
- case SVX_LINESPACE_ONE_POINT_FIVE_LINES : aText.AppendAscii( "1.5 line" ); break;
- case SVX_LINESPACE_TWO_LINES : aText.AppendAscii( "Two lines" ); break;
- }
- return aText;
-}
-
-// -----------------------------------------------------------------------
-
-sal_uInt16 SvxLineSpacingItem::GetEnumValue() const
-{
- sal_uInt16 nVal;
- switch ( nPropLineSpace )
- {
- case 100: nVal = SVX_LINESPACE_ONE_LINE; break;
- case 150: nVal = SVX_LINESPACE_ONE_POINT_FIVE_LINES; break;
- case 200: nVal = SVX_LINESPACE_TWO_LINES; break;
- default: nVal = SVX_LINESPACE_USER; break;
- }
- return nVal;
-}
-
-// -----------------------------------------------------------------------
-
-void SvxLineSpacingItem::SetEnumValue( sal_uInt16 nVal )
-{
- switch ( nVal )
- {
- case SVX_LINESPACE_ONE_LINE: nPropLineSpace = 100; break;
- case SVX_LINESPACE_ONE_POINT_FIVE_LINES: nPropLineSpace = 150; break;
- case SVX_LINESPACE_TWO_LINES: nPropLineSpace = 200; break;
- }
-}
-
-// class SvxAdjustItem ---------------------------------------------------
-
-SvxAdjustItem::SvxAdjustItem(const SvxAdjust eAdjst, const sal_uInt16 nId )
- : SfxEnumItemInterface( nId ),
- bOneBlock( sal_False ), bLastCenter( sal_False ), bLastBlock( sal_False )
-{
- SetAdjust( eAdjst );
-}
-
-// -----------------------------------------------------------------------
-
-int SvxAdjustItem::operator==( const SfxPoolItem& rAttr ) const
-{
- DBG_ASSERT( SfxPoolItem::operator==(rAttr), "unequal types" );
-
- return( ( GetAdjust() == ((SvxAdjustItem&)rAttr).GetAdjust() &&
- bOneBlock == ((SvxAdjustItem&)rAttr).bOneBlock &&
- bLastCenter == ((SvxAdjustItem&)rAttr).bLastCenter &&
- bLastBlock == ((SvxAdjustItem&)rAttr).bLastBlock )
- ? 1 : 0 );
-}
-
-bool SvxAdjustItem::QueryValue( uno::Any& rVal, sal_uInt8 nMemberId ) const
-{
- nMemberId &= ~CONVERT_TWIPS;
- switch( nMemberId )
- {
- case MID_PARA_ADJUST : rVal <<= (sal_Int16)GetAdjust(); break;
- case MID_LAST_LINE_ADJUST : rVal <<= (sal_Int16)GetLastBlock(); break;
- case MID_EXPAND_SINGLE :
- {
- sal_Bool bValue = bOneBlock;
- rVal.setValue( &bValue, ::getCppuBooleanType() );
- break;
- }
- default: ;//prevent warning
- }
- return true;
-}
-
-bool SvxAdjustItem::PutValue( const uno::Any& rVal, sal_uInt8 nMemberId )
-{
- nMemberId &= ~CONVERT_TWIPS;
- switch( nMemberId )
- {
- case MID_PARA_ADJUST :
- case MID_LAST_LINE_ADJUST :
- {
- sal_Int32 eVal = - 1;
- try
- {
- eVal = ::comphelper::getEnumAsINT32(rVal);
- }
- catch(...) {}
- if(eVal >= 0 && eVal <= 4)
- {
- if(MID_LAST_LINE_ADJUST == nMemberId &&
- eVal != SVX_ADJUST_LEFT &&
- eVal != SVX_ADJUST_BLOCK &&
- eVal != SVX_ADJUST_CENTER)
- return sal_False;
- if(eVal < (sal_uInt16)SVX_ADJUST_END)
- nMemberId == MID_PARA_ADJUST ?
- SetAdjust((SvxAdjust)eVal) :
- SetLastBlock((SvxAdjust)eVal);
- }
- }
- break;
- case MID_EXPAND_SINGLE :
- bOneBlock = Any2Bool(rVal);
- break;
- }
- return true;
-}
-
-// -----------------------------------------------------------------------
-
-SfxPoolItem* SvxAdjustItem::Clone( SfxItemPool * ) const
-{
- return new SvxAdjustItem( *this );
-}
-
-//------------------------------------------------------------------------
-
-SfxItemPresentation SvxAdjustItem::GetPresentation
-(
- SfxItemPresentation ePres,
- SfxMapUnit /*eCoreUnit*/,
- SfxMapUnit /*ePresUnit*/,
- XubString& rText, const IntlWrapper *
-) const
-{
- switch ( ePres )
- {
- case SFX_ITEM_PRESENTATION_NONE:
- rText.Erase();
- return SFX_ITEM_PRESENTATION_NONE;
- case SFX_ITEM_PRESENTATION_NAMELESS:
- case SFX_ITEM_PRESENTATION_COMPLETE:
- rText = GetValueTextByPos( (sal_uInt16)GetAdjust() );
- return ePres;
- default: ;//prevent warning
- }
- return SFX_ITEM_PRESENTATION_NONE;
-}
-
-// -----------------------------------------------------------------------
-
-sal_uInt16 SvxAdjustItem::GetValueCount() const
-{
- return SVX_ADJUST_END; // SVX_ADJUST_BLOCKLINE + 1
-}
-
-// -----------------------------------------------------------------------
-
-XubString SvxAdjustItem::GetValueTextByPos( sal_uInt16 nPos ) const
-{
- DBG_ASSERT( nPos <= (sal_uInt16)SVX_ADJUST_BLOCKLINE, "enum overflow!" );
- return EE_RESSTR(RID_SVXITEMS_ADJUST_BEGIN + nPos);
-}
-
-// -----------------------------------------------------------------------
-
-sal_uInt16 SvxAdjustItem::GetEnumValue() const
-{
- return (sal_uInt16)GetAdjust();
-}
-
-// -----------------------------------------------------------------------
-
-void SvxAdjustItem::SetEnumValue( sal_uInt16 nVal )
-{
- SetAdjust( (const SvxAdjust)nVal );
-}
-
-// -----------------------------------------------------------------------
-
-sal_uInt16 SvxAdjustItem::GetVersion( sal_uInt16 nFileVersion ) const
-{
- return (nFileVersion == SOFFICE_FILEFORMAT_31)
- ? 0 : ADJUST_LASTBLOCK_VERSION;
-}
-
-// -----------------------------------------------------------------------
-
-SfxPoolItem* SvxAdjustItem::Create(SvStream& rStrm, sal_uInt16 nVersion) const
-{
- char eAdjustment;
- rStrm >> eAdjustment;
- SvxAdjustItem *pRet = new SvxAdjustItem( (SvxAdjust)eAdjustment, Which() );
- if( nVersion >= ADJUST_LASTBLOCK_VERSION )
- {
- sal_Int8 nFlags;
- rStrm >> nFlags;
- pRet->bOneBlock = 0 != (nFlags & 0x0001);
- pRet->bLastCenter = 0 != (nFlags & 0x0002);
- pRet->bLastBlock = 0 != (nFlags & 0x0004);
- }
- return pRet;
-}
-
-// -----------------------------------------------------------------------
-
-SvStream& SvxAdjustItem::Store( SvStream& rStrm, sal_uInt16 nItemVersion ) const
-{
- rStrm << (char)GetAdjust();
- if ( nItemVersion >= ADJUST_LASTBLOCK_VERSION )
- {
- sal_Int8 nFlags = 0;
- if ( bOneBlock )
- nFlags |= 0x0001;
- if ( bLastCenter )
- nFlags |= 0x0002;
- if ( bLastBlock )
- nFlags |= 0x0004;
- rStrm << (sal_Int8) nFlags;
- }
- return rStrm;
-}
-
-// class SvxWidowsItem ---------------------------------------------------
-
-SvxWidowsItem::SvxWidowsItem(const sal_uInt8 nL, const sal_uInt16 nId ) :
- SfxByteItem( nId, nL )
-{
-}
-
-// -----------------------------------------------------------------------
-
-SfxPoolItem* SvxWidowsItem::Clone( SfxItemPool * ) const
-{
- return new SvxWidowsItem( *this );
-}
-
-// -----------------------------------------------------------------------
-
-SfxPoolItem* SvxWidowsItem::Create(SvStream& rStrm, sal_uInt16) const
-{
- sal_Int8 nLines;
- rStrm >> nLines;
- return new SvxWidowsItem( nLines, Which() );
-}
-
-// -----------------------------------------------------------------------
-
-SvStream& SvxWidowsItem::Store( SvStream& rStrm, sal_uInt16 /*nItemVersion*/ ) const
-{
- rStrm << (sal_Int8)GetValue();
- return rStrm;
-}
-
-//------------------------------------------------------------------------
-
-SfxItemPresentation SvxWidowsItem::GetPresentation
-(
- SfxItemPresentation ePres,
- SfxMapUnit /*eCoreUnit*/,
- SfxMapUnit /*ePresUnit*/,
- XubString& rText, const IntlWrapper *
-) const
-{
- switch ( ePres )
- {
- case SFX_ITEM_PRESENTATION_NONE:
- {
- rText.Erase();
- break;
- }
-
- case SFX_ITEM_PRESENTATION_NAMELESS:
- {
- rText = EE_RESSTR(RID_SVXITEMS_LINES);
- break;
- }
-
- case SFX_ITEM_PRESENTATION_COMPLETE:
- {
- rText = EE_RESSTR(RID_SVXITEMS_WIDOWS_COMPLETE);
- rText += ' ';
- rText += EE_RESSTR(RID_SVXITEMS_LINES);
- }
-
- default:
- {
- DBG_ERRORFILE( "SvxWidowsItem::GetPresentation(): unknown SfxItemPresentation" );
- }
- }
-
- rText.SearchAndReplace( String::CreateFromAscii( "%1" ), String::CreateFromInt32( GetValue() ) );
- return ePres;
-}
-
-// class SvxOrphansItem --------------------------------------------------
-
-SvxOrphansItem::SvxOrphansItem(const sal_uInt8 nL, const sal_uInt16 nId ) :
- SfxByteItem( nId, nL )
-{
-}
-
-// -----------------------------------------------------------------------
-
-SfxPoolItem* SvxOrphansItem::Clone( SfxItemPool * ) const
-{
- return new SvxOrphansItem( *this );
-}
-
-// -----------------------------------------------------------------------
-
-SfxPoolItem* SvxOrphansItem::Create(SvStream& rStrm, sal_uInt16) const
-{
- sal_Int8 nLines;
- rStrm >> nLines;
- return new SvxOrphansItem( nLines, Which() );
-}
-
-// -----------------------------------------------------------------------
-
-SvStream& SvxOrphansItem::Store( SvStream& rStrm, sal_uInt16 /*nItemVersion*/ ) const
-{
- rStrm << (sal_Int8) GetValue();
- return rStrm;
-}
-
-//------------------------------------------------------------------------
-
-SfxItemPresentation SvxOrphansItem::GetPresentation
-(
- SfxItemPresentation ePres,
- SfxMapUnit /*eCoreUnit*/,
- SfxMapUnit /*ePresUnit*/,
- XubString& rText, const IntlWrapper *
-) const
-{
- switch ( ePres )
- {
- case SFX_ITEM_PRESENTATION_NONE:
- {
- rText.Erase();
- break;
- }
-
- case SFX_ITEM_PRESENTATION_NAMELESS:
- {
- rText = EE_RESSTR(RID_SVXITEMS_LINES);
- break;
- }
-
- case SFX_ITEM_PRESENTATION_COMPLETE:
- {
- rText = EE_RESSTR(RID_SVXITEMS_ORPHANS_COMPLETE);
- rText += ' ';
- rText += EE_RESSTR(RID_SVXITEMS_LINES);
- }
-
- default:
- {
- DBG_ERRORFILE( "SvxOrphansItem::GetPresentation(): unknown SfxItemPresentation" );
- }
- }
-
- rText.SearchAndReplace( String::CreateFromAscii( "%1" ), String::CreateFromInt32( GetValue() ) );
- return ePres;
-}
-
-// class SvxHyphenZoneItem -----------------------------------------------
-
-SvxHyphenZoneItem::SvxHyphenZoneItem( const sal_Bool bHyph, const sal_uInt16 nId ) :
- SfxPoolItem( nId )
-{
- bHyphen = bHyph;
- bPageEnd = sal_True;
- nMinLead = nMinTrail = 0;
- nMaxHyphens = 255;
-}
-
-// -----------------------------------------------------------------------
-bool SvxHyphenZoneItem::QueryValue( uno::Any& rVal, sal_uInt8 nMemberId ) const
-{
- nMemberId &= ~CONVERT_TWIPS;
- switch(nMemberId)
- {
- case MID_IS_HYPHEN:
- rVal = Bool2Any(bHyphen);
- break;
- case MID_HYPHEN_MIN_LEAD:
- rVal <<= (sal_Int16)nMinLead;
- break;
- case MID_HYPHEN_MIN_TRAIL:
- rVal <<= (sal_Int16)nMinTrail;
- break;
- case MID_HYPHEN_MAX_HYPHENS:
- rVal <<= (sal_Int16)nMaxHyphens;
- break;
- }
- return true;
-}
-// -----------------------------------------------------------------------
-bool SvxHyphenZoneItem::PutValue( const uno::Any& rVal, sal_uInt8 nMemberId )
-{
- nMemberId &= ~CONVERT_TWIPS;
- sal_Int16 nNewVal = 0;
-
- if( nMemberId != MID_IS_HYPHEN )
- if(!(rVal >>= nNewVal))
- return false;
-
- switch(nMemberId)
- {
- case MID_IS_HYPHEN:
- bHyphen = Any2Bool(rVal);
- break;
- case MID_HYPHEN_MIN_LEAD:
- nMinLead = (sal_uInt8)nNewVal;
- break;
- case MID_HYPHEN_MIN_TRAIL:
- nMinTrail = (sal_uInt8)nNewVal;
- break;
- case MID_HYPHEN_MAX_HYPHENS:
- nMaxHyphens = (sal_uInt8)nNewVal;
- break;
- }
- return true;
-}
-
-// -----------------------------------------------------------------------
-
-int SvxHyphenZoneItem::operator==( const SfxPoolItem& rAttr ) const
-{
- DBG_ASSERT( SfxPoolItem::operator==(rAttr), "unequal types" );
-
- return ( (((SvxHyphenZoneItem&)rAttr).bHyphen == bHyphen)
- && (((SvxHyphenZoneItem&)rAttr).bPageEnd == bPageEnd)
- && (((SvxHyphenZoneItem&)rAttr).nMinLead == nMinLead)
- && (((SvxHyphenZoneItem&)rAttr).nMinTrail == nMinTrail)
- && (((SvxHyphenZoneItem&)rAttr).nMaxHyphens == nMaxHyphens) );
-}
-
-// -----------------------------------------------------------------------
-
-SfxPoolItem* SvxHyphenZoneItem::Clone( SfxItemPool * ) const
-{
- return new SvxHyphenZoneItem( *this );
-}
-
-//------------------------------------------------------------------------
-
-SfxItemPresentation SvxHyphenZoneItem::GetPresentation
-(
- SfxItemPresentation ePres,
- SfxMapUnit /*eCoreUnit*/,
- SfxMapUnit /*ePresUnit*/,
- XubString& rText, const IntlWrapper *
-) const
-{
- switch ( ePres )
- {
- case SFX_ITEM_PRESENTATION_NONE:
- rText.Erase();
- return SFX_ITEM_PRESENTATION_NONE;
- case SFX_ITEM_PRESENTATION_NAMELESS:
- {
- sal_uInt16 nId = RID_SVXITEMS_HYPHEN_FALSE;
-
- if ( bHyphen )
- nId = RID_SVXITEMS_HYPHEN_TRUE;
- rText = EE_RESSTR(nId);
- rText += cpDelim;
- nId = RID_SVXITEMS_PAGE_END_FALSE;
-
- if ( bPageEnd )
- nId = RID_SVXITEMS_PAGE_END_TRUE;
- rText += EE_RESSTR(nId);
- rText += cpDelim;
- rText += String::CreateFromInt32( nMinLead );
- rText += cpDelim;
- rText += String::CreateFromInt32( nMinTrail );
- rText += cpDelim;
- rText += String::CreateFromInt32( nMaxHyphens );
- return SFX_ITEM_PRESENTATION_COMPLETE;
- }
- case SFX_ITEM_PRESENTATION_COMPLETE:
- {
- sal_uInt16 nId = RID_SVXITEMS_HYPHEN_FALSE;
-
- if ( bHyphen )
- nId = RID_SVXITEMS_HYPHEN_TRUE;
- rText = EE_RESSTR(nId);
- rText += cpDelim;
- nId = RID_SVXITEMS_PAGE_END_FALSE;
-
- if ( bPageEnd )
- nId = RID_SVXITEMS_PAGE_END_TRUE;
- rText += EE_RESSTR(nId);
- rText += cpDelim;
- rText += String::CreateFromInt32(nMinLead);
- rText += EE_RESSTR(RID_SVXITEMS_HYPHEN_MINLEAD);
- rText += cpDelim;
- rText += String::CreateFromInt32(nMinTrail);
- rText += EE_RESSTR(RID_SVXITEMS_HYPHEN_MINTRAIL);
- rText += cpDelim;
- rText += String::CreateFromInt32(nMaxHyphens);
- rText += EE_RESSTR(RID_SVXITEMS_HYPHEN_MAX);
- return SFX_ITEM_PRESENTATION_COMPLETE;
- }
- default: ;//prevent warning
- }
- return SFX_ITEM_PRESENTATION_NONE;
-}
-
-// -----------------------------------------------------------------------
-
-SfxPoolItem* SvxHyphenZoneItem::Create(SvStream& rStrm, sal_uInt16) const
-{
- sal_Int8 _bHyphen, _bHyphenPageEnd;
- sal_Int8 _nMinLead, _nMinTrail, _nMaxHyphens;
- rStrm >> _bHyphen >> _bHyphenPageEnd >> _nMinLead >> _nMinTrail >> _nMaxHyphens;
- SvxHyphenZoneItem* pAttr = new SvxHyphenZoneItem( sal_False, Which() );
- pAttr->SetHyphen( sal_Bool( _bHyphen != 0 ) );
- pAttr->SetPageEnd( sal_Bool( _bHyphenPageEnd != 0 ) );
- pAttr->GetMinLead() = _nMinLead;
- pAttr->GetMinTrail() = _nMinTrail;
- pAttr->GetMaxHyphens() = _nMaxHyphens;
- return pAttr;
-}
-
-// -----------------------------------------------------------------------
-
-SvStream& SvxHyphenZoneItem::Store( SvStream& rStrm, sal_uInt16 /*nItemVersion*/ ) const
-{
- rStrm << (sal_Int8) IsHyphen()
- << (sal_Int8) IsPageEnd()
- << (sal_Int8) GetMinLead()
- << (sal_Int8) GetMinTrail()
- << (sal_Int8) GetMaxHyphens();
- return rStrm;
-}
-
-// class SvxTabStop ------------------------------------------------------
-
-SvxTabStop::SvxTabStop()
-{
- nTabPos = 0;
- eAdjustment = SVX_TAB_ADJUST_LEFT;
- m_cDecimal = cDfltDecimalChar;
- cFill = cDfltFillChar;
-}
-
-// -----------------------------------------------------------------------
-
-SvxTabStop::SvxTabStop( const sal_Int32 nPos, const SvxTabAdjust eAdjst,
- const sal_Unicode cDec, const sal_Unicode cFil )
-{
- nTabPos = nPos;
- eAdjustment = eAdjst;
- m_cDecimal = cDec;
- cFill = cFil;
-}
-// -----------------------------------------------------------------------------
-void SvxTabStop::fillDecimal() const
-{
- if ( cDfltDecimalChar == m_cDecimal )
- m_cDecimal = SvtSysLocale().GetLocaleData().getNumDecimalSep().GetChar(0);
-}
-// -----------------------------------------------------------------------
-
-XubString SvxTabStop::GetValueString() const
-{
- XubString aStr;
-
- aStr += sal_Unicode( '(' );
- aStr += UniString::CreateFromInt32(nTabPos);
- aStr += cpDelim;
- aStr += XubString( EditResId( RID_SVXITEMS_TAB_ADJUST_BEGIN + (sal_uInt16)eAdjustment ) );
-
- aStr += cpDelim;
- aStr += sal_Unicode('[');
- aStr += XubString( EditResId( RID_SVXITEMS_TAB_DECIMAL_CHAR ) );
- aStr += GetDecimal();
- aStr += sal_Unicode(']');
- aStr += cpDelim;
- aStr += cpDelim;
- aStr += sal_Unicode('[');
- aStr += XubString( EditResId( RID_SVXITEMS_TAB_FILL_CHAR ) );
- aStr += cFill;
- aStr += sal_Unicode(']');
- aStr += sal_Unicode(')');
-
- return aStr;
-}
-
-// class SvxTabStopItem --------------------------------------------------
-
-SvxTabStopItem::SvxTabStopItem( sal_uInt16 _nWhich ) :
- SfxPoolItem( _nWhich ),
- SvxTabStopArr( sal_Int8(SVX_TAB_DEFCOUNT) )
-{
- const sal_uInt16 nTabs = SVX_TAB_DEFCOUNT, nDist = SVX_TAB_DEFDIST;
- const SvxTabAdjust eAdjst= SVX_TAB_ADJUST_DEFAULT;
-
- for (sal_uInt16 i = 0; i < nTabs; ++i)
- {
- SvxTabStop aTab( (i + 1) * nDist, eAdjst );
- SvxTabStopArr::Insert( aTab );
- }
-}
-
-// -----------------------------------------------------------------------
-
-SvxTabStopItem::SvxTabStopItem( const sal_uInt16 nTabs,
- const sal_uInt16 nDist,
- const SvxTabAdjust eAdjst,
- sal_uInt16 _nWhich ) :
- SfxPoolItem( _nWhich ),
- SvxTabStopArr( sal_Int8(nTabs) )
-{
- for ( sal_uInt16 i = 0; i < nTabs; ++i )
- {
- SvxTabStop aTab( (i + 1) * nDist, eAdjst );
- SvxTabStopArr::Insert( aTab );
- }
-}
-
-// -----------------------------------------------------------------------
-
-SvxTabStopItem::SvxTabStopItem( const SvxTabStopItem& rTSI ) :
- SfxPoolItem( rTSI.Which() ),
- SvxTabStopArr( (sal_Int8)rTSI.Count() )
-{
- SvxTabStopArr::Insert( &rTSI );
-}
-
-// -----------------------------------------------------------------------
-
-sal_uInt16 SvxTabStopItem::GetPos( const SvxTabStop& rTab ) const
-{
- sal_uInt16 nFound;
- return Seek_Entry( rTab, &nFound ) ? nFound : SVX_TAB_NOTFOUND;
-}
-
-// -----------------------------------------------------------------------
-
-sal_uInt16 SvxTabStopItem::GetPos( const sal_Int32 nPos ) const
-{
- sal_uInt16 nFound;
- return Seek_Entry( SvxTabStop( nPos ), &nFound ) ? nFound : SVX_TAB_NOTFOUND;
-}
-
-// -----------------------------------------------------------------------
-
-SvxTabStopItem& SvxTabStopItem::operator=( const SvxTabStopItem& rTSI )
-{
- Remove( 0, Count() );
- SvxTabStopArr::Insert( &rTSI );
- return *this;
-}
-
-bool SvxTabStopItem::QueryValue( uno::Any& rVal, sal_uInt8 nMemberId ) const
-{
- sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
- nMemberId &= ~CONVERT_TWIPS;
- switch ( nMemberId )
- {
- case MID_TABSTOPS:
- {
- sal_uInt16 nCount = Count();
- uno::Sequence< style::TabStop> aSeq(nCount);
- style::TabStop* pArr = aSeq.getArray();
- for(sal_uInt16 i = 0; i < nCount; i++)
- {
- const SvxTabStop& rTab = *(GetStart() + i);
- pArr[i].Position = bConvert ? TWIP_TO_MM100(rTab.GetTabPos()) : rTab.GetTabPos();
- switch(rTab.GetAdjustment())
- {
- case SVX_TAB_ADJUST_LEFT : pArr[i].Alignment = style::TabAlign_LEFT; break;
- case SVX_TAB_ADJUST_RIGHT : pArr[i].Alignment = style::TabAlign_RIGHT; break;
- case SVX_TAB_ADJUST_DECIMAL: pArr[i].Alignment = style::TabAlign_DECIMAL; break;
- case SVX_TAB_ADJUST_CENTER : pArr[i].Alignment = style::TabAlign_CENTER; break;
- default: //SVX_TAB_ADJUST_DEFAULT
- pArr[i].Alignment = style::TabAlign_DEFAULT;
-
- }
- pArr[i].DecimalChar = rTab.GetDecimal();
- pArr[i].FillChar = rTab.GetFill();
- }
- rVal <<= aSeq;
- break;
- }
- case MID_STD_TAB:
- {
- const SvxTabStop &rTab = *(GetStart());
- rVal <<= (static_cast<sal_Int32>(bConvert ? TWIP_TO_MM100(rTab.GetTabPos()) : rTab.GetTabPos()));
- break;
- }
- }
- return sal_True;
-}
-
-bool SvxTabStopItem::PutValue( const uno::Any& rVal, sal_uInt8 nMemberId )
-{
- sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
- nMemberId &= ~CONVERT_TWIPS;
- switch ( nMemberId )
- {
- case MID_TABSTOPS:
- {
- uno::Sequence< style::TabStop> aSeq;
- if(!(rVal >>= aSeq))
- {
- uno::Sequence < uno::Sequence < uno::Any > > aAnySeq;
- if (!(rVal >>= aAnySeq))
- return sal_False;
- sal_Int32 nLength = aAnySeq.getLength();
- aSeq.realloc( nLength );
- for ( sal_Int32 n=0; n<nLength; n++ )
- {
- uno::Sequence < uno::Any >& rAnySeq = aAnySeq[n];
- if ( rAnySeq.getLength() == 4 )
- {
- if (!(rAnySeq[0] >>= aSeq[n].Position)) return sal_False;
- if (!(rAnySeq[1] >>= aSeq[n].Alignment))
- {
- sal_Int32 nVal = 0;
- if (rAnySeq[1] >>= nVal)
- aSeq[n].Alignment = (com::sun::star::style::TabAlign) nVal;
- else
- return sal_False;
- }
- if (!(rAnySeq[2] >>= aSeq[n].DecimalChar))
- {
- ::rtl::OUString aVal;
- if ( (rAnySeq[2] >>= aVal) && aVal.getLength() == 1 )
- aSeq[n].DecimalChar = aVal.toChar();
- else
- return sal_False;
- }
- if (!(rAnySeq[3] >>= aSeq[n].FillChar))
- {
- ::rtl::OUString aVal;
- if ( (rAnySeq[3] >>= aVal) && aVal.getLength() == 1 )
- aSeq[n].FillChar = aVal.toChar();
- else
- return sal_False;
- }
- }
- else
- return sal_False;
- }
- }
-
- SvxTabStopArr::Remove( 0, Count() );
- const style::TabStop* pArr = aSeq.getConstArray();
- const sal_uInt16 nCount = (sal_uInt16)aSeq.getLength();
- for(sal_uInt16 i = 0; i < nCount ; i++)
- {
- SvxTabAdjust eAdjust = SVX_TAB_ADJUST_DEFAULT;
- switch(pArr[i].Alignment)
- {
- case style::TabAlign_LEFT : eAdjust = SVX_TAB_ADJUST_LEFT; break;
- case style::TabAlign_CENTER : eAdjust = SVX_TAB_ADJUST_CENTER; break;
- case style::TabAlign_RIGHT : eAdjust = SVX_TAB_ADJUST_RIGHT; break;
- case style::TabAlign_DECIMAL: eAdjust = SVX_TAB_ADJUST_DECIMAL; break;
- default: ;//prevent warning
- }
- sal_Unicode cFill = pArr[i].FillChar;
- sal_Unicode cDecimal = pArr[i].DecimalChar;
- SvxTabStop aTab( bConvert ? MM100_TO_TWIP(pArr[i].Position) : pArr[i].Position,
- eAdjust,
- cDecimal,
- cFill );
- Insert(aTab);
- }
- break;
- }
- case MID_STD_TAB:
- {
- sal_Int32 nNewPos = 0;
- if (!(rVal >>= nNewPos) )
- return sal_False;
- if (bConvert)
- nNewPos = MM100_TO_TWIP ( nNewPos );
- if (nNewPos <= 0)
- return sal_False;
- const SvxTabStop& rTab = *(GetStart());
- SvxTabStop aNewTab ( nNewPos, rTab.GetAdjustment(), rTab.GetDecimal(), rTab.GetFill() );
- Remove ( 0 );
- Insert( aNewTab );
- break;
- }
- }
- return sal_True;
-}
-// -----------------------------------------------------------------------
-
-int SvxTabStopItem::operator==( const SfxPoolItem& rAttr ) const
-{
- DBG_ASSERT( SfxPoolItem::operator==(rAttr), "unequal types" );
-
- const SvxTabStopItem& rTSI = (SvxTabStopItem&)rAttr;
-
- if ( Count() != rTSI.Count() )
- return 0;
-
- for ( sal_uInt16 i = 0; i < Count(); ++i )
- if( !(*this)[i].IsEqual( rTSI[i] ) )
- return 0;
- return 1;
-}
-
-// -----------------------------------------------------------------------
-
-SfxPoolItem* SvxTabStopItem::Clone( SfxItemPool * ) const
-{
- return new SvxTabStopItem( *this );
-}
-
-//------------------------------------------------------------------------
-
-SfxItemPresentation SvxTabStopItem::GetPresentation
-(
- SfxItemPresentation ePres,
- SfxMapUnit eCoreUnit,
- SfxMapUnit ePresUnit,
- XubString& rText, const IntlWrapper *pIntl
-) const
-{
- rText.Erase();
-
- if ( ePres > SFX_ITEM_PRESENTATION_NONE )
- {
- sal_Bool bComma = sal_False;
-
- for ( sal_uInt16 i = 0; i < Count(); ++i )
- {
- if ( SVX_TAB_ADJUST_DEFAULT != ((*this)[i]).GetAdjustment() )
- {
- if ( bComma )
- rText += sal_Unicode(',');
- rText += GetMetricText(
- ((*this)[i]).GetTabPos(), eCoreUnit, ePresUnit, pIntl );
- if ( SFX_ITEM_PRESENTATION_COMPLETE == ePres )
- rText += EE_RESSTR(GetMetricId(ePresUnit));
- bComma = sal_True;
- }
- }
- }
- return ePres;
-}
-
-// -----------------------------------------------------------------------
-
-SfxPoolItem* SvxTabStopItem::Create( SvStream& rStrm, sal_uInt16 ) const
-{
- sal_Int8 nTabs;
- rStrm >> nTabs;
- SvxTabStopItem* pAttr =
- new SvxTabStopItem( 0, 0, SVX_TAB_ADJUST_DEFAULT, Which() );
-
- for ( sal_Int8 i = 0; i < nTabs; i++ )
- {
- sal_Int32 nPos(0);
- sal_Int8 eAdjust;
- unsigned char cDecimal, cFill;
- rStrm >> nPos >> eAdjust >> cDecimal >> cFill;
- if( !i || SVX_TAB_ADJUST_DEFAULT != eAdjust )
- pAttr->Insert( SvxTabStop
- ( nPos, (SvxTabAdjust)eAdjust, sal_Unicode(cDecimal), sal_Unicode(cFill) ) );
- }
- return pAttr;
-}
-
-// -----------------------------------------------------------------------
-
-SvStream& SvxTabStopItem::Store( SvStream& rStrm, sal_uInt16 /*nItemVersion*/ ) const
-{
- // Default-Tabs are only expanded for the default Attribute. For complete
- // backward compabillity (<=304) all tabs have to be expanded, this makes
- // the files grow large in size. All only SWG!
-
- const SfxItemPool *pPool = SfxItemPool::GetStoringPool();
- const bool bStoreDefTabs = pPool
- && pPool->GetName().EqualsAscii("SWG")
- && ::IsDefaultItem( this );
-
- const short nTabs = Count();
- sal_uInt16 nCount = 0, nDefDist = 0;
- sal_Int32 nNew = 0;
-
- if( bStoreDefTabs )
- {
- const SvxTabStopItem& rDefTab = (const SvxTabStopItem &)
- pPool->GetDefaultItem( pPool->GetWhich( SID_ATTR_TABSTOP, sal_False ) );
- nDefDist = sal_uInt16( rDefTab.GetStart()->GetTabPos() );
- const sal_Int32 nPos = nTabs > 0 ? (*this)[nTabs-1].GetTabPos() : 0;
- nCount = (sal_uInt16)(nPos / nDefDist);
- nNew = (nCount + 1) * nDefDist;
-
- if( nNew <= nPos + 50 )
- nNew += nDefDist;
-
- sal_Int32 lA3Width = SvxPaperInfo::GetPaperSize(PAPER_A3).Width();
- nCount = (sal_uInt16)(nNew < lA3Width ? ( lA3Width - nNew ) / nDefDist + 1 : 0);
- }
-
- rStrm << (sal_Int8) ( nTabs + nCount );
- for ( short i = 0; i < nTabs; i++ )
- {
- const SvxTabStop& rTab = (*this)[ i ];
- rStrm << rTab.GetTabPos()
- << (sal_Int8) rTab.GetAdjustment()
- << (unsigned char) rTab.GetDecimal()
- << (unsigned char) rTab.GetFill();
- }
-
- if ( bStoreDefTabs )
- for( ; nCount; --nCount )
- {
- SvxTabStop aSwTabStop(nNew, SVX_TAB_ADJUST_DEFAULT);
- rStrm << aSwTabStop.GetTabPos()
- << (sal_Int8) aSwTabStop.GetAdjustment()
- << (unsigned char) aSwTabStop.GetDecimal()
- << (unsigned char) aSwTabStop.GetFill();
- nNew += nDefDist;
- }
-
- return rStrm;
-}
-
-// -----------------------------------------------------------------------
-sal_Bool SvxTabStopItem::Insert( const SvxTabStop& rTab )
-{
- sal_uInt16 nTabPos = GetPos(rTab);
- if(SVX_TAB_NOTFOUND != nTabPos )
- Remove(nTabPos);
- return SvxTabStopArr::Insert( rTab );
-}
-// -----------------------------------------------------------------------
-void SvxTabStopItem::Insert( const SvxTabStopItem* pTabs, sal_uInt16 nStart,
- sal_uInt16 nEnd )
-{
- for( sal_uInt16 i = nStart; i < nEnd && i < pTabs->Count(); i++ )
- {
- const SvxTabStop& rTab = (*pTabs)[i];
- sal_uInt16 nTabPos = GetPos(rTab);
- if(SVX_TAB_NOTFOUND != nTabPos)
- Remove(nTabPos);
- }
- SvxTabStopArr::Insert( pTabs, nStart, nEnd );
-}
-
-
-
-// class SvxFmtSplitItem -------------------------------------------------
-SvxFmtSplitItem::~SvxFmtSplitItem()
-{
-}
-// -----------------------------------------------------------------------
-SfxPoolItem* SvxFmtSplitItem::Clone( SfxItemPool * ) const
-{
- return new SvxFmtSplitItem( *this );
-}
-
-// -----------------------------------------------------------------------
-
-SvStream& SvxFmtSplitItem::Store( SvStream& rStrm, sal_uInt16 /*nItemVersion*/ ) const
-{
- rStrm << (sal_Int8)GetValue();
- return rStrm;
-}
-
-// -----------------------------------------------------------------------
-
-SfxPoolItem* SvxFmtSplitItem::Create( SvStream& rStrm, sal_uInt16 ) const
-{
- sal_Int8 bIsSplit;
- rStrm >> bIsSplit;
- return new SvxFmtSplitItem( sal_Bool( bIsSplit != 0 ), Which() );
-}
-
-//------------------------------------------------------------------------
-
-SfxItemPresentation SvxFmtSplitItem::GetPresentation
-(
- SfxItemPresentation ePres,
- SfxMapUnit /*eCoreUnit*/,
- SfxMapUnit /*ePresUnit*/,
- XubString& rText, const IntlWrapper *
-) const
-{
- switch ( ePres )
- {
- case SFX_ITEM_PRESENTATION_NONE:
- rText.Erase();
- return SFX_ITEM_PRESENTATION_NONE;
- case SFX_ITEM_PRESENTATION_NAMELESS:
- case SFX_ITEM_PRESENTATION_COMPLETE:
- {
- sal_uInt16 nId = RID_SVXITEMS_FMTSPLIT_FALSE;
-
- if ( GetValue() )
- nId = RID_SVXITEMS_FMTSPLIT_TRUE;
- rText = EE_RESSTR(nId);
- return ePres;
- }
- default: ;//prevent warning
- }
- return SFX_ITEM_PRESENTATION_NONE;
-}
-
-// --------------------------------------------------------------------
-
-SfxPoolItem* SvxPageModelItem::Clone( SfxItemPool* ) const
-{
- return new SvxPageModelItem( *this );
-}
-
-//------------------------------------------------------------------------
-
-bool SvxPageModelItem::QueryValue( com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId ) const
-{
- nMemberId &= ~CONVERT_TWIPS;
-
- switch ( nMemberId )
- {
- case MID_AUTO: rVal <<= (sal_Bool) bAuto; break;
- case MID_NAME: rVal <<= ::rtl::OUString( GetValue() ); break;
- default: OSL_FAIL("Wrong MemberId!"); return sal_False;
- }
-
- return sal_True;
-}
-
-bool SvxPageModelItem::PutValue( const com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId )
-{
- nMemberId &= ~CONVERT_TWIPS;
- sal_Bool bRet;
- ::rtl::OUString aStr;
- switch ( nMemberId )
- {
- case MID_AUTO: bRet = ( rVal >>= bAuto ); break;
- case MID_NAME: bRet = ( rVal >>= aStr ); if ( bRet ) SetValue(aStr); break;
- default: OSL_FAIL("Wrong MemberId!"); return sal_False;
- }
-
- return bRet;
-}
-
-SfxItemPresentation SvxPageModelItem::GetPresentation
-(
- SfxItemPresentation ePres,
- SfxMapUnit /*eCoreUnit*/,
- SfxMapUnit /*ePresUnit*/,
- XubString& rText, const IntlWrapper *
-) const
-{
- rText.Erase();
- bool bSet = ( GetValue().Len() > 0 );
-
- switch ( ePres )
- {
- case SFX_ITEM_PRESENTATION_NONE:
- return SFX_ITEM_PRESENTATION_NONE;
-
- case SFX_ITEM_PRESENTATION_NAMELESS:
- if ( bSet )
- rText = GetValue();
- return SFX_ITEM_PRESENTATION_NAMELESS;
-
- case SFX_ITEM_PRESENTATION_COMPLETE:
- if ( bSet )
- {
- rText = EE_RESSTR(RID_SVXITEMS_PAGEMODEL_COMPLETE);
- rText += GetValue();
- }
- return SFX_ITEM_PRESENTATION_COMPLETE;
- default: ;//prevent warning
- }
- return SFX_ITEM_PRESENTATION_NONE;
-}
-
-//------------------------------------------------------------------------
-
-SvxScriptSpaceItem::SvxScriptSpaceItem( sal_Bool bOn, const sal_uInt16 nId )
- : SfxBoolItem( nId, bOn )
-{
-}
-
-SfxPoolItem* SvxScriptSpaceItem::Clone( SfxItemPool * ) const
-{
- return new SvxScriptSpaceItem( GetValue(), Which() );
-}
-
-SfxPoolItem* SvxScriptSpaceItem::Create(SvStream & rStrm, sal_uInt16) const
-{
- sal_Bool bFlag;
- rStrm >> bFlag;
- return new SvxScriptSpaceItem( bFlag, Which() );
-}
-
-sal_uInt16 SvxScriptSpaceItem::GetVersion( sal_uInt16 nFFVer ) const
-{
- DBG_ASSERT( SOFFICE_FILEFORMAT_31==nFFVer ||
- SOFFICE_FILEFORMAT_40==nFFVer ||
- SOFFICE_FILEFORMAT_50==nFFVer,
- "SvxTwoLinesItem: Is there a new file format? ");
-
- return SOFFICE_FILEFORMAT_50 > nFFVer ? USHRT_MAX : 0;
-}
-
-SfxItemPresentation SvxScriptSpaceItem::GetPresentation(
- SfxItemPresentation ePres,
- SfxMapUnit /*eCoreMetric*/, SfxMapUnit /*ePresMetric*/,
- String &rText, const IntlWrapper* /*pIntl*/ ) const
-{
- switch( ePres )
- {
- case SFX_ITEM_PRESENTATION_NONE:
- rText.Erase();
- break;
- case SFX_ITEM_PRESENTATION_NAMELESS:
- case SFX_ITEM_PRESENTATION_COMPLETE:
- {
- rText = EE_RESSTR( !GetValue()
- ? RID_SVXITEMS_SCRPTSPC_OFF
- : RID_SVXITEMS_SCRPTSPC_ON );
- return ePres;
- }
- default: ;//prevent warning
- }
- return SFX_ITEM_PRESENTATION_NONE;
-}
-
-//------------------------------------------------------------------------
-
-SvxHangingPunctuationItem::SvxHangingPunctuationItem(
- sal_Bool bOn, const sal_uInt16 nId )
- : SfxBoolItem( nId, bOn )
-{
-}
-
-SfxPoolItem* SvxHangingPunctuationItem::Clone( SfxItemPool * ) const
-{
- return new SvxHangingPunctuationItem( GetValue(), Which() );
-}
-
-SfxPoolItem* SvxHangingPunctuationItem::Create(SvStream & rStrm, sal_uInt16) const
-{
- sal_Bool nValue;
- rStrm >> nValue;
- return new SvxHangingPunctuationItem( nValue, Which() );
-}
-
-sal_uInt16 SvxHangingPunctuationItem::GetVersion( sal_uInt16 nFFVer ) const
-{
- DBG_ASSERT( SOFFICE_FILEFORMAT_31==nFFVer ||
- SOFFICE_FILEFORMAT_40==nFFVer ||
- SOFFICE_FILEFORMAT_50==nFFVer,
- "SvxHangingPunctuationItem: Is there a new file format? ");
-
- return SOFFICE_FILEFORMAT_50 > nFFVer ? USHRT_MAX : 0;
-}
-
-SfxItemPresentation SvxHangingPunctuationItem::GetPresentation(
- SfxItemPresentation ePres,
- SfxMapUnit /*eCoreMetric*/, SfxMapUnit /*ePresMetric*/,
- String &rText, const IntlWrapper* /*pIntl*/ ) const
-{
- switch( ePres )
- {
- case SFX_ITEM_PRESENTATION_NONE:
- rText.Erase();
- break;
- case SFX_ITEM_PRESENTATION_NAMELESS:
- case SFX_ITEM_PRESENTATION_COMPLETE:
- {
- rText = EE_RESSTR( !GetValue()
- ? RID_SVXITEMS_HNGPNCT_OFF
- : RID_SVXITEMS_HNGPNCT_ON );
- return ePres;
- }
- default: ;//prevent warning
- break;
- }
- return SFX_ITEM_PRESENTATION_NONE;
-}
-//------------------------------------------------------------------------
-
-SvxForbiddenRuleItem::SvxForbiddenRuleItem(
- sal_Bool bOn, const sal_uInt16 nId )
- : SfxBoolItem( nId, bOn )
-{
-}
-
-SfxPoolItem* SvxForbiddenRuleItem::Clone( SfxItemPool * ) const
-{
- return new SvxForbiddenRuleItem( GetValue(), Which() );
-}
-
-SfxPoolItem* SvxForbiddenRuleItem::Create(SvStream & rStrm, sal_uInt16) const
-{
- sal_Bool nValue;
- rStrm >> nValue;
- return new SvxForbiddenRuleItem( nValue, Which() );
-}
-
-sal_uInt16 SvxForbiddenRuleItem::GetVersion( sal_uInt16 nFFVer ) const
-{
- DBG_ASSERT( SOFFICE_FILEFORMAT_31==nFFVer ||
- SOFFICE_FILEFORMAT_40==nFFVer ||
- SOFFICE_FILEFORMAT_50==nFFVer,
- "SvxForbiddenRuleItem: Is there a new file format? ");
-
- return SOFFICE_FILEFORMAT_50 > nFFVer ? USHRT_MAX : 0;
-}
-
-SfxItemPresentation SvxForbiddenRuleItem::GetPresentation(
- SfxItemPresentation ePres,
- SfxMapUnit /*eCoreMetric*/, SfxMapUnit /*ePresMetric*/,
- String &rText, const IntlWrapper* /*pIntl*/ ) const
-{
- switch( ePres )
- {
- case SFX_ITEM_PRESENTATION_NONE:
- rText.Erase();
- break;
- case SFX_ITEM_PRESENTATION_NAMELESS:
- case SFX_ITEM_PRESENTATION_COMPLETE:
- {
- rText = EE_RESSTR( !GetValue()
- ? RID_SVXITEMS_FORBIDDEN_RULE_OFF
- : RID_SVXITEMS_FORBIDDEN_RULE_ON );
- return ePres;
- }
- default: ;//prevent warning
- break;
- }
- return SFX_ITEM_PRESENTATION_NONE;
-}
-
-/*************************************************************************
-|* class SvxParaVertAlignItem
-*************************************************************************/
-
-SvxParaVertAlignItem::SvxParaVertAlignItem( sal_uInt16 nValue,
- const sal_uInt16 nW )
- : SfxUInt16Item( nW, nValue )
-{
-}
-
-SfxPoolItem* SvxParaVertAlignItem::Clone( SfxItemPool* ) const
-{
- return new SvxParaVertAlignItem( GetValue(), Which() );
-}
-
-SfxPoolItem* SvxParaVertAlignItem::Create( SvStream& rStrm, sal_uInt16 ) const
-{
- sal_uInt16 nVal;
- rStrm >> nVal;
- return new SvxParaVertAlignItem( nVal, Which() );
-}
-
-SvStream& SvxParaVertAlignItem::Store( SvStream & rStrm, sal_uInt16 ) const
-{
- rStrm << GetValue();
- return rStrm;
-}
-
-sal_uInt16 SvxParaVertAlignItem::GetVersion( sal_uInt16 nFFVer ) const
-{
- return SOFFICE_FILEFORMAT_50 > nFFVer ? USHRT_MAX : 0;
-}
-
-SfxItemPresentation SvxParaVertAlignItem::GetPresentation(
- SfxItemPresentation ePres,
- SfxMapUnit /*eCoreMetric*/, SfxMapUnit /*ePresMetric*/,
- String &rText, const IntlWrapper* ) const
-{
- switch( ePres )
- {
- case SFX_ITEM_PRESENTATION_NONE:
- rText.Erase();
- break;
- case SFX_ITEM_PRESENTATION_NAMELESS:
- case SFX_ITEM_PRESENTATION_COMPLETE:
- {
- sal_uInt16 nTmp;
- switch( GetValue() )
- {
- case AUTOMATIC: nTmp = RID_SVXITEMS_PARAVERTALIGN_AUTO; break;
- case TOP: nTmp = RID_SVXITEMS_PARAVERTALIGN_TOP; break;
- case CENTER: nTmp = RID_SVXITEMS_PARAVERTALIGN_CENTER; break;
- case BOTTOM: nTmp = RID_SVXITEMS_PARAVERTALIGN_BOTTOM; break;
- default: nTmp = RID_SVXITEMS_PARAVERTALIGN_BASELINE; break;
- }
- rText = EE_RESSTR( nTmp );
- return ePres;
- }
- default: ;//prevent warning
- break;
- }
- return SFX_ITEM_PRESENTATION_NONE;
-}
-
-bool SvxParaVertAlignItem::QueryValue( com::sun::star::uno::Any& rVal,
- sal_uInt8 /*nMemberId*/ ) const
-{
- rVal <<= (sal_Int16)GetValue();
- return sal_True;
-}
-
-bool SvxParaVertAlignItem::PutValue( const com::sun::star::uno::Any& rVal,
- sal_uInt8 /*nMemberId*/ )
-{
- sal_Int16 nVal = sal_Int16();
- if((rVal >>= nVal) && nVal >=0 && nVal <= BOTTOM )
- {
- SetValue( (sal_uInt16)nVal );
- return sal_True;
- }
- else
- return sal_False;
-}
-
-int SvxParaVertAlignItem::operator==( const SfxPoolItem& rItem ) const
-{
- DBG_ASSERT( SfxPoolItem::operator==( rItem ), "unequal type" );
- return SfxUInt16Item::operator==( rItem );
-}
-
-
-SvxParaGridItem::SvxParaGridItem( sal_Bool bOn, const sal_uInt16 nId )
- : SfxBoolItem( nId, bOn )
-{
-}
-
-SfxPoolItem* SvxParaGridItem::Clone( SfxItemPool * ) const
-{
- return new SvxParaGridItem( GetValue(), Which() );
-}
-
-SfxPoolItem* SvxParaGridItem::Create(SvStream & rStrm, sal_uInt16) const
-{
- sal_Bool bFlag;
- rStrm >> bFlag;
- return new SvxParaGridItem( bFlag, Which() );
-}
-
-sal_uInt16 SvxParaGridItem::GetVersion( sal_uInt16 nFFVer ) const
-{
- DBG_ASSERT( SOFFICE_FILEFORMAT_31==nFFVer ||
- SOFFICE_FILEFORMAT_40==nFFVer ||
- SOFFICE_FILEFORMAT_50==nFFVer,
- "SvxParaGridItem: Is there a new file format? ");
-
- return SOFFICE_FILEFORMAT_50 > nFFVer ? USHRT_MAX : 0;
-}
-
-SfxItemPresentation SvxParaGridItem::GetPresentation(
- SfxItemPresentation ePres,
- SfxMapUnit /*eCoreMetric*/, SfxMapUnit /*ePresMetric*/,
- String &rText, const IntlWrapper* /*pIntl*/ ) const
-{
- switch( ePres )
- {
- case SFX_ITEM_PRESENTATION_NONE:
- rText.Erase();
- break;
- case SFX_ITEM_PRESENTATION_NAMELESS:
- case SFX_ITEM_PRESENTATION_COMPLETE:
- {
- rText = GetValue() ?
- EE_RESSTR( RID_SVXITEMS_PARASNAPTOGRID_ON ) :
- EE_RESSTR( RID_SVXITEMS_PARASNAPTOGRID_OFF );
-
- return ePres;
- }
- default: ;//prevent warning
- break;
- }
- return SFX_ITEM_PRESENTATION_NONE;
-}
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */