1*1d2dbeb0SAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 3*1d2dbeb0SAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 4*1d2dbeb0SAndrew Rist * or more contributor license agreements. See the NOTICE file 5*1d2dbeb0SAndrew Rist * distributed with this work for additional information 6*1d2dbeb0SAndrew Rist * regarding copyright ownership. The ASF licenses this file 7*1d2dbeb0SAndrew Rist * to you under the Apache License, Version 2.0 (the 8*1d2dbeb0SAndrew Rist * "License"); you may not use this file except in compliance 9*1d2dbeb0SAndrew Rist * with the License. You may obtain a copy of the License at 10cdf0e10cSrcweir * 11*1d2dbeb0SAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12cdf0e10cSrcweir * 13*1d2dbeb0SAndrew Rist * Unless required by applicable law or agreed to in writing, 14*1d2dbeb0SAndrew Rist * software distributed under the License is distributed on an 15*1d2dbeb0SAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*1d2dbeb0SAndrew Rist * KIND, either express or implied. See the License for the 17*1d2dbeb0SAndrew Rist * specific language governing permissions and limitations 18*1d2dbeb0SAndrew Rist * under the License. 19cdf0e10cSrcweir * 20*1d2dbeb0SAndrew Rist *************************************************************/ 21*1d2dbeb0SAndrew Rist 22*1d2dbeb0SAndrew Rist 23cdf0e10cSrcweir #ifndef _PARATR_HXX 24cdf0e10cSrcweir #define _PARATR_HXX 25cdf0e10cSrcweir #include <svl/eitem.hxx> 26cdf0e10cSrcweir #include <svl/stritem.hxx> 27cdf0e10cSrcweir #include "swdllapi.h" 28cdf0e10cSrcweir #include <hintids.hxx> 29cdf0e10cSrcweir #include <calbck.hxx> 30cdf0e10cSrcweir #include <swatrset.hxx> 31cdf0e10cSrcweir #include <format.hxx> 32cdf0e10cSrcweir #include <swtypes.hxx> 33cdf0e10cSrcweir 34cdf0e10cSrcweir class SwCharFmt; 35cdf0e10cSrcweir class IntlWrapper; 36cdf0e10cSrcweir 37cdf0e10cSrcweir /************************************************************************* 38cdf0e10cSrcweir |* class SwFmtDrop 39cdf0e10cSrcweir *************************************************************************/ 40cdf0e10cSrcweir 41cdf0e10cSrcweir #define DROP_WHOLEWORD ((sal_uInt16)0x0001) 42cdf0e10cSrcweir 43cdf0e10cSrcweir //Wenn ein SwFmtDrop Client ist, so ist dies das CharFmt welches den Font fuer 44cdf0e10cSrcweir //die DropCaps beschreibt. Ist es kein Client, so wird von der Formatierung 45cdf0e10cSrcweir //das CharFmt des Absatzes benutzt. 46cdf0e10cSrcweir //Wird das CharFmt verandert, so wird diese Aenderung ueber das Modify des 47cdf0e10cSrcweir //SwFmtDrop an die Absatze propagiert. 48cdf0e10cSrcweir class SW_DLLPUBLIC SwFmtDrop: public SfxPoolItem, public SwClient 49cdf0e10cSrcweir { 50cdf0e10cSrcweir SwModify* pDefinedIn; // Modify-Object, in dem der DropCaps steht 51cdf0e10cSrcweir // kann nur TxtFmtCollection/TxtNode sein 52cdf0e10cSrcweir sal_uInt16 nDistance; // Abstand zum Textbeginn 53cdf0e10cSrcweir sal_uInt16 nReadFmt; // fuer den Sw3-Reader: CharFormat-Id (Pool laden!) 54cdf0e10cSrcweir sal_uInt8 nLines; // Anzahl der Zeilen 55cdf0e10cSrcweir sal_uInt8 nChars; // Anzahl der Zeichen 56cdf0e10cSrcweir sal_Bool bWholeWord; // Erstes Wort als Initialen 57cdf0e10cSrcweir public: 58cdf0e10cSrcweir TYPEINFO(); //Bereits in der Basisklasse SwClient 59cdf0e10cSrcweir 60cdf0e10cSrcweir SwFmtDrop(); 61cdf0e10cSrcweir virtual ~SwFmtDrop(); 62cdf0e10cSrcweir 63cdf0e10cSrcweir // @@@ public copy ctor, but no copy assignment? 64cdf0e10cSrcweir SwFmtDrop( const SwFmtDrop & ); 65cdf0e10cSrcweir private: 66cdf0e10cSrcweir // @@@ public copy ctor, but no copy assignment? 67cdf0e10cSrcweir SwFmtDrop & operator= (const SwFmtDrop &); 68cdf0e10cSrcweir 69cdf0e10cSrcweir protected: 70cdf0e10cSrcweir virtual void Modify( const SfxPoolItem*, const SfxPoolItem* ); 71cdf0e10cSrcweir 72cdf0e10cSrcweir public: 73cdf0e10cSrcweir 74cdf0e10cSrcweir // "pure virtual Methoden" vom SfxPoolItem 75cdf0e10cSrcweir virtual int operator==( const SfxPoolItem& ) const; 76cdf0e10cSrcweir virtual SfxPoolItem* Clone( SfxItemPool* pPool = 0 ) const; 77cdf0e10cSrcweir virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres, 78cdf0e10cSrcweir SfxMapUnit eCoreMetric, 79cdf0e10cSrcweir SfxMapUnit ePresMetric, 80cdf0e10cSrcweir String &rText, 81cdf0e10cSrcweir const IntlWrapper* pIntl = 0) const; 82cdf0e10cSrcweir virtual sal_Bool QueryValue( com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId = 0 ) const; 83cdf0e10cSrcweir virtual sal_Bool PutValue( const com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId = 0 ); 84cdf0e10cSrcweir 85cdf0e10cSrcweir inline sal_uInt8 GetLines() const { return nLines; } 86cdf0e10cSrcweir inline sal_uInt8 &GetLines() { return nLines; } 87cdf0e10cSrcweir 88cdf0e10cSrcweir inline sal_uInt8 GetChars() const { return nChars; } 89cdf0e10cSrcweir inline sal_uInt8 &GetChars() { return nChars; } 90cdf0e10cSrcweir 91cdf0e10cSrcweir inline sal_Bool GetWholeWord() const { return bWholeWord; } 92cdf0e10cSrcweir inline sal_uInt8 &GetWholeWord() { return bWholeWord; } 93cdf0e10cSrcweir 94cdf0e10cSrcweir inline sal_uInt16 GetDistance() const { return nDistance; } 95cdf0e10cSrcweir inline sal_uInt16 &GetDistance() { return nDistance; } 96cdf0e10cSrcweir 97cdf0e10cSrcweir inline const SwCharFmt *GetCharFmt() const { return (SwCharFmt*)GetRegisteredIn(); } 98cdf0e10cSrcweir inline SwCharFmt *GetCharFmt() { return (SwCharFmt*)GetRegisteredIn(); } 99cdf0e10cSrcweir void SetCharFmt( SwCharFmt *pNew ); 100cdf0e10cSrcweir // erfrage vom Client Informationen 101cdf0e10cSrcweir virtual sal_Bool GetInfo( SfxPoolItem& ) const; 102cdf0e10cSrcweir 103cdf0e10cSrcweir // erfrage und setze den Modify-Pointer 104cdf0e10cSrcweir inline const SwModify* GetDefinedIn() const { return pDefinedIn; } 105cdf0e10cSrcweir inline void ChgDefinedIn( const SwModify* pNew ) 106cdf0e10cSrcweir { pDefinedIn = (SwModify*)pNew; } 107cdf0e10cSrcweir }; 108cdf0e10cSrcweir 109cdf0e10cSrcweir class SwRegisterItem : public SfxBoolItem 110cdf0e10cSrcweir { 111cdf0e10cSrcweir public: 112cdf0e10cSrcweir TYPEINFO(); 113cdf0e10cSrcweir 114cdf0e10cSrcweir inline SwRegisterItem( const sal_Bool bRegister = sal_False ); 115cdf0e10cSrcweir 116cdf0e10cSrcweir // @@@ public copy assignment, but no copy ctor? 117cdf0e10cSrcweir inline SwRegisterItem& operator=( const SwRegisterItem& rRegister ); 118cdf0e10cSrcweir 119cdf0e10cSrcweir // "pure virtual Methoden" vom SfxPoolItem 120cdf0e10cSrcweir virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const; 121cdf0e10cSrcweir virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres, 122cdf0e10cSrcweir SfxMapUnit eCoreMetric, 123cdf0e10cSrcweir SfxMapUnit ePresMetric, 124cdf0e10cSrcweir String &rText, 125cdf0e10cSrcweir const IntlWrapper* pIntl = 0 ) const; 126cdf0e10cSrcweir }; 127cdf0e10cSrcweir 128cdf0e10cSrcweir inline SwRegisterItem::SwRegisterItem( const sal_Bool bRegister ) : 129cdf0e10cSrcweir SfxBoolItem( RES_PARATR_REGISTER, bRegister ) 130cdf0e10cSrcweir {} 131cdf0e10cSrcweir 132cdf0e10cSrcweir inline SwRegisterItem& SwRegisterItem::operator=( 133cdf0e10cSrcweir const SwRegisterItem& rRegister ) 134cdf0e10cSrcweir { 135cdf0e10cSrcweir SetValue( rRegister.GetValue() ); 136cdf0e10cSrcweir return *this; 137cdf0e10cSrcweir } 138cdf0e10cSrcweir 139cdf0e10cSrcweir class SW_DLLPUBLIC SwNumRuleItem : public SfxStringItem 140cdf0e10cSrcweir { 141cdf0e10cSrcweir public: 142cdf0e10cSrcweir TYPEINFO(); 143cdf0e10cSrcweir 144cdf0e10cSrcweir // --> OD 2008-03-04 #refactorlists# - removed <pDefinedIn> 145cdf0e10cSrcweir SwNumRuleItem() 146cdf0e10cSrcweir : SfxStringItem( RES_PARATR_NUMRULE, aEmptyStr ) {} 147cdf0e10cSrcweir 148cdf0e10cSrcweir SwNumRuleItem( const String& rRuleName ) 149cdf0e10cSrcweir : SfxStringItem( RES_PARATR_NUMRULE, rRuleName ) {} 150cdf0e10cSrcweir 151cdf0e10cSrcweir SwNumRuleItem( const SwNumRuleItem& rCpy ) 152cdf0e10cSrcweir : SfxStringItem( RES_PARATR_NUMRULE, rCpy.GetValue() ) {} 153cdf0e10cSrcweir 154cdf0e10cSrcweir SwNumRuleItem& operator=( const SwNumRuleItem& rCpy ) 155cdf0e10cSrcweir { SetValue( rCpy.GetValue() ); return *this; } 156cdf0e10cSrcweir // <-- 157cdf0e10cSrcweir 158cdf0e10cSrcweir // "pure virtual Methoden" vom SfxPoolItem 159cdf0e10cSrcweir virtual int operator==( const SfxPoolItem& ) const; 160cdf0e10cSrcweir virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const; 161cdf0e10cSrcweir virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres, 162cdf0e10cSrcweir SfxMapUnit eCoreMetric, 163cdf0e10cSrcweir SfxMapUnit ePresMetric, 164cdf0e10cSrcweir String &rText, 165cdf0e10cSrcweir const IntlWrapper* pIntl = 0 ) const; 166cdf0e10cSrcweir 167cdf0e10cSrcweir virtual sal_Bool QueryValue( com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId ) const; 168cdf0e10cSrcweir virtual sal_Bool PutValue( const com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId ); 169cdf0e10cSrcweir }; 170cdf0e10cSrcweir 171cdf0e10cSrcweir class SwParaConnectBorderItem : public SfxBoolItem 172cdf0e10cSrcweir { 173cdf0e10cSrcweir public: 174cdf0e10cSrcweir TYPEINFO(); 175cdf0e10cSrcweir 176cdf0e10cSrcweir inline SwParaConnectBorderItem( const sal_Bool bConnect = sal_True ); 177cdf0e10cSrcweir 178cdf0e10cSrcweir // @@@ public copy assignment, but no copy ctor? 179cdf0e10cSrcweir inline SwParaConnectBorderItem& operator=( const SwParaConnectBorderItem& rConnect ); 180cdf0e10cSrcweir 181cdf0e10cSrcweir // "pure virtual Methoden" vom SfxPoolItem 182cdf0e10cSrcweir virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const; 183cdf0e10cSrcweir virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres, 184cdf0e10cSrcweir SfxMapUnit eCoreMetric, 185cdf0e10cSrcweir SfxMapUnit ePresMetric, 186cdf0e10cSrcweir String &rText, 187cdf0e10cSrcweir const IntlWrapper* pIntl = 0 ) const; 188cdf0e10cSrcweir }; 189cdf0e10cSrcweir 190cdf0e10cSrcweir inline SwParaConnectBorderItem::SwParaConnectBorderItem( const sal_Bool bConnect ) : 191cdf0e10cSrcweir SfxBoolItem( RES_PARATR_CONNECT_BORDER, bConnect ) 192cdf0e10cSrcweir {} 193cdf0e10cSrcweir 194cdf0e10cSrcweir inline SwParaConnectBorderItem& SwParaConnectBorderItem::operator=( 195cdf0e10cSrcweir const SwParaConnectBorderItem& rConnect ) 196cdf0e10cSrcweir { 197cdf0e10cSrcweir SetValue( rConnect.GetValue() ); 198cdf0e10cSrcweir return *this; 199cdf0e10cSrcweir } 200cdf0e10cSrcweir 201cdf0e10cSrcweir 202cdf0e10cSrcweir 203cdf0e10cSrcweir /****************************************************************************** 204cdf0e10cSrcweir * Implementierung der Paragraph-Attribut Methoden vom SwAttrSet 205cdf0e10cSrcweir ******************************************************************************/ 206cdf0e10cSrcweir 207cdf0e10cSrcweir inline const SvxLineSpacingItem &SwAttrSet::GetLineSpacing(sal_Bool bInP) const 208cdf0e10cSrcweir { return (const SvxLineSpacingItem&)Get( RES_PARATR_LINESPACING,bInP); } 209cdf0e10cSrcweir inline const SvxAdjustItem &SwAttrSet::GetAdjust(sal_Bool bInP) const 210cdf0e10cSrcweir { return (const SvxAdjustItem&)Get( RES_PARATR_ADJUST,bInP); } 211cdf0e10cSrcweir inline const SvxFmtSplitItem &SwAttrSet::GetSplit(sal_Bool bInP) const 212cdf0e10cSrcweir { return (const SvxFmtSplitItem&)Get( RES_PARATR_SPLIT,bInP); } 213cdf0e10cSrcweir inline const SwRegisterItem &SwAttrSet::GetRegister(sal_Bool bInP) const 214cdf0e10cSrcweir { return (const SwRegisterItem&)Get( RES_PARATR_REGISTER,bInP); } 215cdf0e10cSrcweir inline const SvxWidowsItem &SwAttrSet::GetWidows(sal_Bool bInP) const 216cdf0e10cSrcweir { return (const SvxWidowsItem&)Get( RES_PARATR_WIDOWS,bInP); } 217cdf0e10cSrcweir inline const SvxOrphansItem &SwAttrSet::GetOrphans(sal_Bool bInP) const 218cdf0e10cSrcweir { return (const SvxOrphansItem&)Get( RES_PARATR_ORPHANS,bInP); } 219cdf0e10cSrcweir inline const SvxTabStopItem &SwAttrSet::GetTabStops(sal_Bool bInP) const 220cdf0e10cSrcweir { return (const SvxTabStopItem&)Get( RES_PARATR_TABSTOP,bInP); } 221cdf0e10cSrcweir inline const SvxHyphenZoneItem &SwAttrSet::GetHyphenZone(sal_Bool bInP) const 222cdf0e10cSrcweir { return (const SvxHyphenZoneItem&)Get(RES_PARATR_HYPHENZONE,bInP); } 223cdf0e10cSrcweir inline const SwFmtDrop &SwAttrSet::GetDrop(sal_Bool bInP) const 224cdf0e10cSrcweir { return (const SwFmtDrop&)Get(RES_PARATR_DROP,bInP); } 225cdf0e10cSrcweir inline const SwNumRuleItem &SwAttrSet::GetNumRule(sal_Bool bInP) const 226cdf0e10cSrcweir { return (const SwNumRuleItem&)Get(RES_PARATR_NUMRULE,bInP); } 227cdf0e10cSrcweir inline const SvxScriptSpaceItem& SwAttrSet::GetScriptSpace(sal_Bool bInP) const 228cdf0e10cSrcweir { return (const SvxScriptSpaceItem&)Get(RES_PARATR_SCRIPTSPACE,bInP); } 229cdf0e10cSrcweir inline const SvxHangingPunctuationItem &SwAttrSet::GetHangingPunctuation(sal_Bool bInP) const 230cdf0e10cSrcweir { return (const SvxHangingPunctuationItem&)Get(RES_PARATR_HANGINGPUNCTUATION,bInP); } 231cdf0e10cSrcweir inline const SvxForbiddenRuleItem &SwAttrSet::GetForbiddenRule(sal_Bool bInP) const 232cdf0e10cSrcweir { return (const SvxForbiddenRuleItem&)Get(RES_PARATR_FORBIDDEN_RULES, bInP); } 233cdf0e10cSrcweir inline const SvxParaVertAlignItem &SwAttrSet::GetParaVertAlign(sal_Bool bInP) const 234cdf0e10cSrcweir { return (const SvxParaVertAlignItem&)Get( RES_PARATR_VERTALIGN, bInP ); } 235cdf0e10cSrcweir inline const SvxParaGridItem &SwAttrSet::GetParaGrid(sal_Bool bInP) const 236cdf0e10cSrcweir { return (const SvxParaGridItem&)Get( RES_PARATR_SNAPTOGRID, bInP ); } 237cdf0e10cSrcweir inline const SwParaConnectBorderItem &SwAttrSet::GetParaConnectBorder(sal_Bool bInP) const 238cdf0e10cSrcweir { return (const SwParaConnectBorderItem&)Get( RES_PARATR_CONNECT_BORDER, bInP ); } 239cdf0e10cSrcweir 240cdf0e10cSrcweir /****************************************************************************** 241cdf0e10cSrcweir * Implementierung der Paragraph-Attribut Methoden vom SwFmt 242cdf0e10cSrcweir ******************************************************************************/ 243cdf0e10cSrcweir 244cdf0e10cSrcweir inline const SvxLineSpacingItem &SwFmt::GetLineSpacing(sal_Bool bInP) const 245cdf0e10cSrcweir { return aSet.GetLineSpacing(bInP); } 246cdf0e10cSrcweir inline const SvxAdjustItem &SwFmt::GetAdjust(sal_Bool bInP) const 247cdf0e10cSrcweir { return aSet.GetAdjust(bInP); } 248cdf0e10cSrcweir inline const SvxFmtSplitItem &SwFmt::GetSplit(sal_Bool bInP) const 249cdf0e10cSrcweir { return aSet.GetSplit(bInP); } 250cdf0e10cSrcweir inline const SwRegisterItem &SwFmt::GetRegister(sal_Bool bInP) const 251cdf0e10cSrcweir { return aSet.GetRegister(bInP); } 252cdf0e10cSrcweir inline const SvxWidowsItem &SwFmt::GetWidows(sal_Bool bInP) const 253cdf0e10cSrcweir { return aSet.GetWidows(bInP); } 254cdf0e10cSrcweir inline const SvxOrphansItem &SwFmt::GetOrphans(sal_Bool bInP) const 255cdf0e10cSrcweir { return aSet.GetOrphans(bInP); } 256cdf0e10cSrcweir inline const SvxTabStopItem &SwFmt::GetTabStops(sal_Bool bInP) const 257cdf0e10cSrcweir { return aSet.GetTabStops(bInP); } 258cdf0e10cSrcweir inline const SvxHyphenZoneItem &SwFmt::GetHyphenZone(sal_Bool bInP) const 259cdf0e10cSrcweir { return aSet.GetHyphenZone(bInP); } 260cdf0e10cSrcweir inline const SwFmtDrop &SwFmt::GetDrop(sal_Bool bInP) const 261cdf0e10cSrcweir { return aSet.GetDrop(bInP); } 262cdf0e10cSrcweir inline const SwNumRuleItem &SwFmt::GetNumRule(sal_Bool bInP) const 263cdf0e10cSrcweir { return aSet.GetNumRule(bInP); } 264cdf0e10cSrcweir inline const SvxScriptSpaceItem& SwFmt::GetScriptSpace(sal_Bool bInP) const 265cdf0e10cSrcweir { return aSet.GetScriptSpace(bInP) ; } 266cdf0e10cSrcweir inline const SvxHangingPunctuationItem &SwFmt::GetHangingPunctuation(sal_Bool bInP) const 267cdf0e10cSrcweir { return aSet.GetHangingPunctuation(bInP) ; } 268cdf0e10cSrcweir inline const SvxForbiddenRuleItem &SwFmt::GetForbiddenRule(sal_Bool bInP) const 269cdf0e10cSrcweir { return (const SvxForbiddenRuleItem&)aSet.Get(RES_PARATR_FORBIDDEN_RULES, bInP); } 270cdf0e10cSrcweir inline const SvxParaVertAlignItem &SwFmt::GetParaVertAlign(sal_Bool bInP) const 271cdf0e10cSrcweir { return (const SvxParaVertAlignItem&)aSet.Get( RES_PARATR_VERTALIGN, bInP ); } 272cdf0e10cSrcweir inline const SvxParaGridItem &SwFmt::GetParaGrid(sal_Bool bInP) const 273cdf0e10cSrcweir { return (const SvxParaGridItem&)aSet.Get( RES_PARATR_SNAPTOGRID, bInP ); } 274cdf0e10cSrcweir inline const SwParaConnectBorderItem &SwFmt::GetParaConnectBorder(sal_Bool bInP) const 275cdf0e10cSrcweir { return (const SwParaConnectBorderItem&)aSet.Get( RES_PARATR_CONNECT_BORDER, bInP ); } 276cdf0e10cSrcweir 277cdf0e10cSrcweir #endif 278