/************************************************************** * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. * *************************************************************/ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_svx.hxx" // include --------------------------------------------------------------- #include #include #include #include #include #include #include #include #include using namespace ::rtl; using namespace ::com::sun::star; // STATIC DATA ----------------------------------------------------------- TYPEINIT1_FACTORY( SvxPageItem, SfxPoolItem , new SvxPageItem(0)); /*-------------------------------------------------------------------- Beschreibung: Konstruktor --------------------------------------------------------------------*/ SvxPageItem::SvxPageItem( const sal_uInt16 nId ) : SfxPoolItem( nId ), eNumType ( SVX_ARABIC ), bLandscape ( sal_False ), eUse ( SVX_PAGE_ALL ) { } /*-------------------------------------------------------------------- Beschreibung: Copy-Konstruktor --------------------------------------------------------------------*/ SvxPageItem::SvxPageItem( const SvxPageItem& rItem ) : SfxPoolItem( rItem ) { eNumType = rItem.eNumType; bLandscape = rItem.bLandscape; eUse = rItem.eUse; } /*-------------------------------------------------------------------- Beschreibung: Clonen --------------------------------------------------------------------*/ SfxPoolItem* SvxPageItem::Clone( SfxItemPool * ) const { return new SvxPageItem( *this ); } /*-------------------------------------------------------------------- Beschreibung: Abfrage auf Gleichheit --------------------------------------------------------------------*/ int SvxPageItem::operator==( const SfxPoolItem& rAttr ) const { DBG_ASSERT( SfxPoolItem::operator==(rAttr), "unequal types" ); const SvxPageItem& rItem = (SvxPageItem&)rAttr; return ( eNumType == rItem.eNumType && bLandscape == rItem.bLandscape && eUse == rItem.eUse ); } inline XubString GetUsageText( const sal_uInt16 eU ) { if ( eU & SVX_PAGE_LEFT ) return SVX_RESSTR(RID_SVXITEMS_PAGE_USAGE_LEFT); if ( eU & SVX_PAGE_RIGHT ) return SVX_RESSTR(RID_SVXITEMS_PAGE_USAGE_RIGHT); if ( eU & SVX_PAGE_ALL ) return SVX_RESSTR(RID_SVXITEMS_PAGE_USAGE_ALL); if ( eU & SVX_PAGE_MIRROR ) return SVX_RESSTR(RID_SVXITEMS_PAGE_USAGE_MIRROR); return String(); } //------------------------------------------------------------------------ SfxItemPresentation SvxPageItem::GetPresentation ( SfxItemPresentation ePres, SfxMapUnit /*eCoreUnit*/, SfxMapUnit /*ePresUnit*/, XubString& rText, const IntlWrapper * ) const { rText.Erase(); switch ( ePres ) { case SFX_ITEM_PRESENTATION_NONE: return SFX_ITEM_PRESENTATION_NONE; case SFX_ITEM_PRESENTATION_NAMELESS: { if ( aDescName.Len() ) { rText = aDescName; rText += cpDelim; } DBG_ASSERT( eNumType <= SVX_NUMBER_NONE, "enum overflow" ); rText += SVX_RESSTR(RID_SVXITEMS_PAGE_NUM_BEGIN + eNumType); rText += cpDelim; if ( bLandscape ) rText += SVX_RESSTR(RID_SVXITEMS_PAGE_LAND_TRUE); else rText += SVX_RESSTR(RID_SVXITEMS_PAGE_LAND_FALSE); rText += GetUsageText( eUse ); return SFX_ITEM_PRESENTATION_NAMELESS; } case SFX_ITEM_PRESENTATION_COMPLETE: { rText += SVX_RESSTR(RID_SVXITEMS_PAGE_COMPLETE); if ( aDescName.Len() ) { rText += aDescName; rText += cpDelim; } DBG_ASSERT( eNumType <= SVX_NUMBER_NONE, "enum overflow" ); rText += SVX_RESSTR(RID_SVXITEMS_PAGE_NUM_BEGIN + eNumType); rText += cpDelim; if ( bLandscape ) rText += SVX_RESSTR(RID_SVXITEMS_PAGE_LAND_TRUE); else rText += SVX_RESSTR(RID_SVXITEMS_PAGE_LAND_FALSE); rText += GetUsageText( eUse ); return SFX_ITEM_PRESENTATION_COMPLETE; } default: ;//prevent warning } return SFX_ITEM_PRESENTATION_NONE; } //------------------------------------------------------------------------ sal_Bool SvxPageItem::QueryValue( uno::Any& rVal, sal_uInt8 nMemberId ) const { // sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS); nMemberId &= ~CONVERT_TWIPS; switch( nMemberId ) { case MID_PAGE_NUMTYPE: { //! die Konstanten sind nicht mehr in den IDLs ?!? rVal <<= (sal_Int16)( eNumType ); } break; case MID_PAGE_ORIENTATION: //Landscape= sal_True rVal = Bool2Any(bLandscape); break; case MID_PAGE_LAYOUT : { style::PageStyleLayout eRet; switch(eUse & 0x0f) { case SVX_PAGE_LEFT : eRet = style::PageStyleLayout_LEFT; break; case SVX_PAGE_RIGHT : eRet = style::PageStyleLayout_RIGHT; break; case SVX_PAGE_ALL : eRet = style::PageStyleLayout_ALL; break; case SVX_PAGE_MIRROR: eRet = style::PageStyleLayout_MIRRORED; break; default: DBG_ERROR("was fuer ein Layout ist das?"); return sal_False; } rVal <<= eRet; } break; } return sal_True; } //------------------------------------------------------------------------ sal_Bool SvxPageItem::PutValue( const uno::Any& rVal, sal_uInt8 nMemberId ) { switch( nMemberId ) { case MID_PAGE_NUMTYPE: { sal_Int32 nValue = 0; if(!(rVal >>= nValue)) return sal_False; eNumType = (SvxNumType)nValue; } break; case MID_PAGE_ORIENTATION: bLandscape = Any2Bool(rVal); break; case MID_PAGE_LAYOUT : { style::PageStyleLayout eLayout; if(!(rVal >>= eLayout)) { sal_Int32 nValue = 0; if(!(rVal >>= nValue)) return sal_False; eLayout = (style::PageStyleLayout)nValue; } eUse &= 0xfff0; switch( eLayout ) { case style::PageStyleLayout_LEFT : eUse |= SVX_PAGE_LEFT ; break; case style::PageStyleLayout_RIGHT : eUse |= SVX_PAGE_RIGHT; break; case style::PageStyleLayout_ALL : eUse |= SVX_PAGE_ALL ; break; case style::PageStyleLayout_MIRRORED: eUse |= SVX_PAGE_MIRROR;break; default: ;//prevent warning } } break; } return sal_True; } //------------------------------------------------------------------------ SfxPoolItem* SvxPageItem::Create( SvStream& rStream, sal_uInt16 ) const { XubString sStr; sal_uInt8 eType; sal_Bool bLand; sal_uInt16 nUse; // UNICODE: rStream >> sStr; rStream.ReadByteString( sStr ); rStream >> eType; rStream >> bLand; rStream >> nUse; SvxPageItem* pPage = new SvxPageItem( Which() ); pPage->SetDescName( sStr ); pPage->SetNumType( (SvxNumType)eType ); pPage->SetLandscape( bLand ); pPage->SetPageUsage( nUse ); return pPage; } //------------------------------------------------------------------------ SvStream& SvxPageItem::Store( SvStream &rStrm, sal_uInt16 /*nItemVersion*/ ) const { // UNICODE: rStrm << aDescName; rStrm.WriteByteString(aDescName); rStrm << (sal_uInt8)eNumType << bLandscape << eUse; return rStrm; } /*-------------------------------------------------------------------- Beschreibung: HeaderFooterSet --------------------------------------------------------------------*/ SvxSetItem::SvxSetItem( const sal_uInt16 nId, const SfxItemSet& rSet ) : SfxSetItem( nId, rSet ) { } SvxSetItem::SvxSetItem( const SvxSetItem& rItem ) : SfxSetItem( rItem ) { } SvxSetItem::SvxSetItem( const sal_uInt16 nId, SfxItemSet* _pSet ) : SfxSetItem( nId, _pSet ) { } SfxPoolItem* SvxSetItem::Clone( SfxItemPool * ) const { return new SvxSetItem(*this); } //------------------------------------------------------------------------ SfxItemPresentation SvxSetItem::GetPresentation ( SfxItemPresentation /*ePres*/, SfxMapUnit /*eCoreUnit*/, SfxMapUnit /*ePresUnit*/, XubString& rText, const IntlWrapper * ) const { rText.Erase(); return SFX_ITEM_PRESENTATION_NONE; } SfxPoolItem* SvxSetItem::Create(SvStream &rStrm, sal_uInt16 /*nVersion*/) const { SfxItemSet* _pSet = new SfxItemSet( *GetItemSet().GetPool(), GetItemSet().GetRanges() ); _pSet->Load( rStrm ); return new SvxSetItem( Which(), *_pSet ); } SvStream& SvxSetItem::Store(SvStream &rStrm, sal_uInt16 nItemVersion) const { GetItemSet().Store( rStrm, nItemVersion ); return rStrm; }