| /************************************************************** |
| * |
| * 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 <tools/stream.hxx> |
| |
| |
| #include <svx/pageitem.hxx> |
| #include <editeng/itemtype.hxx> |
| #include <svx/unomid.hxx> |
| #include <com/sun/star/style/PageStyleLayout.hpp> |
| #include <com/sun/star/style/BreakType.hpp> |
| #include <svl/itemset.hxx> |
| #include <svx/svxitems.hrc> |
| #include <svx/dialmgr.hxx> |
| |
| 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; |
| } |
| |
| |