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 _NUMRULE_HXX 24cdf0e10cSrcweir #define _NUMRULE_HXX 25cdf0e10cSrcweir 26cdf0e10cSrcweir #include <tools/link.hxx> 27cdf0e10cSrcweir #include <tools/gen.hxx> 28cdf0e10cSrcweir #include <tools/string.hxx> 29cdf0e10cSrcweir #include <editeng/svxenum.hxx> 30cdf0e10cSrcweir #include <editeng/numitem.hxx> 31cdf0e10cSrcweir #include "swdllapi.h" 32cdf0e10cSrcweir #include <swtypes.hxx> 33cdf0e10cSrcweir #include <calbck.hxx> 34cdf0e10cSrcweir #include <errhdl.hxx> 35cdf0e10cSrcweir #include <error.h> 36cdf0e10cSrcweir #include <hints.hxx> 37cdf0e10cSrcweir #include <hash_map> 38cdf0e10cSrcweir #include <stringhash.hxx> 39cdf0e10cSrcweir #include <SwNumberTreeTypes.hxx> 40cdf0e10cSrcweir #include <vector> 41cdf0e10cSrcweir 42cdf0e10cSrcweir class SwTxtFmtColl; 43cdf0e10cSrcweir class IDocumentListsAccess; 44cdf0e10cSrcweir class SwNodeNum; 45cdf0e10cSrcweir class Font; 46cdf0e10cSrcweir class SvxBrushItem; 47cdf0e10cSrcweir class SvxNumRule; 48cdf0e10cSrcweir class SwCharFmt; 49cdf0e10cSrcweir class SwDoc; 50cdf0e10cSrcweir class SwFmtVertOrient; 51cdf0e10cSrcweir class SwTxtNode; 52cdf0e10cSrcweir 53cdf0e10cSrcweir const sal_Unicode cBulletChar = 0x2022; // Charakter fuer Aufzaehlungen 54cdf0e10cSrcweir 55cdf0e10cSrcweir class SW_DLLPUBLIC SwNumFmt : public SvxNumberFormat, public SwClient 56cdf0e10cSrcweir { 57cdf0e10cSrcweir SwFmtVertOrient* pVertOrient; 58cdf0e10cSrcweir 59cdf0e10cSrcweir SW_DLLPRIVATE void UpdateNumNodes( SwDoc* pDoc ); 60cdf0e10cSrcweir SW_DLLPRIVATE virtual void NotifyGraphicArrived(); 61cdf0e10cSrcweir 62cdf0e10cSrcweir using SvxNumberFormat::operator ==; 63cdf0e10cSrcweir using SvxNumberFormat::operator !=; 64cdf0e10cSrcweir 65cdf0e10cSrcweir protected: 66cdf0e10cSrcweir virtual void Modify( const SfxPoolItem* pOld, const SfxPoolItem* pNew ); 67cdf0e10cSrcweir 68cdf0e10cSrcweir public: 69cdf0e10cSrcweir SwNumFmt(); 70cdf0e10cSrcweir SwNumFmt( const SwNumFmt& ); 71cdf0e10cSrcweir SwNumFmt( const SvxNumberFormat&, SwDoc* pDoc); 72cdf0e10cSrcweir 73cdf0e10cSrcweir virtual ~SwNumFmt(); 74cdf0e10cSrcweir 75cdf0e10cSrcweir SwNumFmt& operator=( const SwNumFmt& ); 76cdf0e10cSrcweir 77cdf0e10cSrcweir sal_Bool operator==( const SwNumFmt& ) const; 78cdf0e10cSrcweir sal_Bool operator!=( const SwNumFmt& r ) const { return !(*this == r); } 79cdf0e10cSrcweir 80cdf0e10cSrcweir SwCharFmt* GetCharFmt() const { return (SwCharFmt*)GetRegisteredIn(); } 81cdf0e10cSrcweir void SetCharFmt( SwCharFmt* ); 82cdf0e10cSrcweir void ForgetCharFmt(); 83cdf0e10cSrcweir 84cdf0e10cSrcweir virtual void SetCharFmtName(const String& rSet); 85cdf0e10cSrcweir virtual const String& GetCharFmtName()const; 86cdf0e10cSrcweir 87cdf0e10cSrcweir virtual void SetGraphicBrush( const SvxBrushItem* pBrushItem, const Size* pSize = 0, const sal_Int16* pOrient = 0); 88cdf0e10cSrcweir 89cdf0e10cSrcweir virtual void SetVertOrient(sal_Int16 eSet); 90cdf0e10cSrcweir virtual sal_Int16 GetVertOrient() const; 91cdf0e10cSrcweir const SwFmtVertOrient* GetGraphicOrientation() const; 92cdf0e10cSrcweir 93cdf0e10cSrcweir sal_Bool IsEnumeration() const; // #i22362# 94cdf0e10cSrcweir sal_Bool IsItemize() const; // #i29560# 95cdf0e10cSrcweir }; 96cdf0e10cSrcweir 97cdf0e10cSrcweir class SwPaM; 98cdf0e10cSrcweir enum SwNumRuleType { OUTLINE_RULE = 0, NUM_RULE = 1, RULE_END = 2 }; 99cdf0e10cSrcweir class SW_DLLPUBLIC SwNumRule 100cdf0e10cSrcweir { 101cdf0e10cSrcweir // --> OD 2008-02-19 #refactorlists# 102cdf0e10cSrcweir public: 103cdf0e10cSrcweir typedef std::vector< SwTxtNode* > tTxtNodeList; 104cdf0e10cSrcweir typedef std::vector< SwTxtFmtColl* > tParagraphStyleList; 105cdf0e10cSrcweir // <-- 106cdf0e10cSrcweir private: 107cdf0e10cSrcweir friend void _FinitCore(); 108cdf0e10cSrcweir 109cdf0e10cSrcweir #ifdef DBG_UTIL 110cdf0e10cSrcweir long int nSerial; 111cdf0e10cSrcweir static long int nInstances; 112cdf0e10cSrcweir #endif 113cdf0e10cSrcweir 114cdf0e10cSrcweir static SwNumFmt* aBaseFmts [ RULE_END ][ MAXLEVEL ]; 115cdf0e10cSrcweir static sal_uInt16 aDefNumIndents[ MAXLEVEL ]; 116cdf0e10cSrcweir // --> OD 2008-02-11 #newlistlevelattrs# 117cdf0e10cSrcweir // default list level properties for position-and-space mode LABEL_ALIGNMENT 118cdf0e10cSrcweir static SwNumFmt* aLabelAlignmentBaseFmts [ RULE_END ][ MAXLEVEL ]; 119cdf0e10cSrcweir // <-- 120cdf0e10cSrcweir static sal_uInt16 nRefCount; 121cdf0e10cSrcweir static char* pDefOutlineName; 122cdf0e10cSrcweir 123cdf0e10cSrcweir SwNumFmt* aFmts[ MAXLEVEL ]; 124cdf0e10cSrcweir 125cdf0e10cSrcweir /** container for associated text nodes 126cdf0e10cSrcweir 127cdf0e10cSrcweir */ 128cdf0e10cSrcweir // --> OD 2008-02-19 #refactorlists# 129cdf0e10cSrcweir // SwTxtNodeTable* pTxtNodeList; 130cdf0e10cSrcweir tTxtNodeList maTxtNodeList; 131cdf0e10cSrcweir // <-- 132cdf0e10cSrcweir 133cdf0e10cSrcweir /** container for associated paragraph styles 134cdf0e10cSrcweir 135cdf0e10cSrcweir OD 2008-03-03 #refactorlists# 136cdf0e10cSrcweir */ 137cdf0e10cSrcweir tParagraphStyleList maParagraphStyleList; 138cdf0e10cSrcweir 139cdf0e10cSrcweir // #i36749# 140cdf0e10cSrcweir /** 141cdf0e10cSrcweir hash_map containing "name->rule" relation 142cdf0e10cSrcweir */ 143cdf0e10cSrcweir std::hash_map<String, SwNumRule *, StringHash> * pNumRuleMap; 144cdf0e10cSrcweir 145cdf0e10cSrcweir String sName; 146cdf0e10cSrcweir SwNumRuleType eRuleType; 147cdf0e10cSrcweir sal_uInt16 nPoolFmtId; // Id-fuer "automatich" erzeugte NumRules 148cdf0e10cSrcweir sal_uInt16 nPoolHelpId; // HelpId fuer diese Pool-Vorlage 149cdf0e10cSrcweir sal_uInt8 nPoolHlpFileId; // FilePos ans Doc auf die Vorlagen-Hilfen 150cdf0e10cSrcweir sal_Bool bAutoRuleFlag : 1; 151cdf0e10cSrcweir sal_Bool bInvalidRuleFlag : 1; 152cdf0e10cSrcweir sal_Bool bContinusNum : 1; // Fortlaufende Numerierung - ohne Ebenen 153cdf0e10cSrcweir sal_Bool bAbsSpaces : 1; // die Ebenen repraesentieren absol. Einzuege 154cdf0e10cSrcweir bool mbCountPhantoms; 155cdf0e10cSrcweir 156cdf0e10cSrcweir // --> OD 2008-02-11 #newlistlevelattrs# 157cdf0e10cSrcweir const SvxNumberFormat::SvxNumPositionAndSpaceMode meDefaultNumberFormatPositionAndSpaceMode; 158cdf0e10cSrcweir // <-- 159cdf0e10cSrcweir 160cdf0e10cSrcweir // --> OD 2008-04-03 #refactorlists# 161cdf0e10cSrcweir String msDefaultListId; 162cdf0e10cSrcweir // <-- 163cdf0e10cSrcweir 164cdf0e10cSrcweir public: 165cdf0e10cSrcweir // --> OD 2008-02-08 #newlistlevelattrs# 166cdf0e10cSrcweir // add parameter <eDefaultNumberFormatPositionAndSpaceMode> 167cdf0e10cSrcweir SwNumRule( const String& rNm, 168cdf0e10cSrcweir const SvxNumberFormat::SvxNumPositionAndSpaceMode eDefaultNumberFormatPositionAndSpaceMode, 169cdf0e10cSrcweir SwNumRuleType = NUM_RULE, 170cdf0e10cSrcweir sal_Bool bAutoFlg = sal_True ); 171cdf0e10cSrcweir 172cdf0e10cSrcweir SwNumRule( const SwNumRule& ); 173cdf0e10cSrcweir ~SwNumRule(); 174cdf0e10cSrcweir 175cdf0e10cSrcweir SwNumRule& operator=( const SwNumRule& ); 176cdf0e10cSrcweir sal_Bool operator==( const SwNumRule& ) const; 177cdf0e10cSrcweir sal_Bool operator!=( const SwNumRule& r ) const { return !(*this == r); } 178cdf0e10cSrcweir 179cdf0e10cSrcweir const SwNumFmt* GetNumFmt( sal_uInt16 i ) const; 180cdf0e10cSrcweir const SwNumFmt& Get( sal_uInt16 i ) const; 181cdf0e10cSrcweir 182cdf0e10cSrcweir void Set( sal_uInt16 i, const SwNumFmt* ); 183cdf0e10cSrcweir void Set( sal_uInt16 i, const SwNumFmt& ); 184cdf0e10cSrcweir String MakeNumString( const SwNodeNum&, sal_Bool bInclStrings = sal_True, 185cdf0e10cSrcweir sal_Bool bOnlyArabic = sal_False ) const; 186cdf0e10cSrcweir // --> OD 2005-10-17 #126238# 187cdf0e10cSrcweir // - add optional parameter <_nRestrictToThisLevel> in order to 188cdf0e10cSrcweir // restrict returned string to this level. 189cdf0e10cSrcweir String MakeNumString( const SwNumberTree::tNumberVector & rNumVector, 190cdf0e10cSrcweir const sal_Bool bInclStrings = sal_True, 191cdf0e10cSrcweir const sal_Bool bOnlyArabic = sal_False, 192cdf0e10cSrcweir const unsigned int _nRestrictToThisLevel = MAXLEVEL ) const; 193cdf0e10cSrcweir // <-- 194cdf0e10cSrcweir // --> OD 2007-08-24 #i81002# 195cdf0e10cSrcweir String MakeRefNumString( const SwNodeNum& rNodeNum, 196cdf0e10cSrcweir const bool bInclSuperiorNumLabels = false, 197cdf0e10cSrcweir const sal_uInt8 nRestrictInclToThisLevel = 0 ) const; 198cdf0e10cSrcweir // <-- 199cdf0e10cSrcweir 200cdf0e10cSrcweir /** Returns list of associated text nodes. 201cdf0e10cSrcweir 202cdf0e10cSrcweir OD 2008-02-19 #refactorlists# 203cdf0e10cSrcweir 204cdf0e10cSrcweir @return list of associated text nodes 205cdf0e10cSrcweir */ 206cdf0e10cSrcweir // const SwTxtNodeTable * GetTxtNodeList() const { return pTxtNodeList; } 207cdf0e10cSrcweir void GetTxtNodeList( SwNumRule::tTxtNodeList& rTxtNodeList ) const; 208cdf0e10cSrcweir SwNumRule::tTxtNodeList::size_type GetTxtNodeListSize() const; 209cdf0e10cSrcweir 210cdf0e10cSrcweir // --> OD 2008-02-19 #refactorlists# 211cdf0e10cSrcweir void AddTxtNode( SwTxtNode& rTxtNode ); 212cdf0e10cSrcweir void RemoveTxtNode( SwTxtNode& rTxtNode ); 213cdf0e10cSrcweir // <-- 214cdf0e10cSrcweir 215cdf0e10cSrcweir // --> OD 2008-03-03 #refactorlists# 216cdf0e10cSrcweir SwNumRule::tParagraphStyleList::size_type GetParagraphStyleListSize() const; 217cdf0e10cSrcweir void AddParagraphStyle( SwTxtFmtColl& rTxtFmtColl ); 218cdf0e10cSrcweir void RemoveParagraphStyle( SwTxtFmtColl& rTxtFmtColl ); 219cdf0e10cSrcweir // <-- 220cdf0e10cSrcweir 221cdf0e10cSrcweir // --> OD 2008-04-03 #refactorlists# 222cdf0e10cSrcweir inline void SetDefaultListId( const String sDefaultListId ) 223cdf0e10cSrcweir { 224cdf0e10cSrcweir msDefaultListId = sDefaultListId; 225cdf0e10cSrcweir } 226cdf0e10cSrcweir inline String GetDefaultListId() const 227cdf0e10cSrcweir { 228cdf0e10cSrcweir return msDefaultListId; 229cdf0e10cSrcweir } 230cdf0e10cSrcweir // <-- 231cdf0e10cSrcweir // #i36749# 232cdf0e10cSrcweir /** 233cdf0e10cSrcweir Register this rule in a "name->numrule" map. 234cdf0e10cSrcweir 235cdf0e10cSrcweir @param pNumRuleMap map to register in 236cdf0e10cSrcweir */ 237cdf0e10cSrcweir void SetNumRuleMap( 238cdf0e10cSrcweir std::hash_map<String, SwNumRule *, StringHash>* pNumRuleMap ); 239cdf0e10cSrcweir 240cdf0e10cSrcweir static char* GetOutlineRuleName() { return pDefOutlineName; } 241cdf0e10cSrcweir 242cdf0e10cSrcweir static sal_uInt16 GetNumIndent( sal_uInt8 nLvl ); 243cdf0e10cSrcweir static sal_uInt16 GetBullIndent( sal_uInt8 nLvl ); 244cdf0e10cSrcweir 245cdf0e10cSrcweir SwNumRuleType GetRuleType() const { return eRuleType; } 246cdf0e10cSrcweir void SetRuleType( SwNumRuleType eNew ) { eRuleType = eNew; 247cdf0e10cSrcweir bInvalidRuleFlag = sal_True; } 248cdf0e10cSrcweir 249cdf0e10cSrcweir // eine Art Copy-Constructor, damit die Num-Formate auch an den 250cdf0e10cSrcweir // richtigen CharFormaten eines Dokumentes haengen !! 251cdf0e10cSrcweir // (Kopiert die NumFormate und returnt sich selbst) 252cdf0e10cSrcweir SwNumRule& CopyNumRule( SwDoc*, const SwNumRule& ); 253cdf0e10cSrcweir 254cdf0e10cSrcweir // testet ob die CharFormate aus dem angegeben Doc sind und kopiert 255cdf0e10cSrcweir // die gegebenfalls 256cdf0e10cSrcweir void CheckCharFmts( SwDoc* pDoc ); 257cdf0e10cSrcweir 258cdf0e10cSrcweir const String& GetName() const { return sName; } 259cdf0e10cSrcweir // --> OD 2008-07-08 #i91400# 260cdf0e10cSrcweir void SetName( const String& rNm, 261cdf0e10cSrcweir IDocumentListsAccess& rDocListAccess ); // #i36749# 262cdf0e10cSrcweir // <-- 263cdf0e10cSrcweir 264cdf0e10cSrcweir sal_Bool IsAutoRule() const { return bAutoRuleFlag; } 265cdf0e10cSrcweir void SetAutoRule( sal_Bool bFlag ) { bAutoRuleFlag = bFlag; } 266cdf0e10cSrcweir 267cdf0e10cSrcweir sal_Bool IsInvalidRule() const { return bInvalidRuleFlag; } 268cdf0e10cSrcweir void SetInvalidRule( sal_Bool bFlag ); 269cdf0e10cSrcweir 270cdf0e10cSrcweir sal_Bool IsContinusNum() const { return bContinusNum; } 271cdf0e10cSrcweir void SetContinusNum( sal_Bool bFlag ) { bContinusNum = bFlag; } 272cdf0e10cSrcweir 273cdf0e10cSrcweir sal_Bool IsAbsSpaces() const { return bAbsSpaces; } 274cdf0e10cSrcweir void SetAbsSpaces( sal_Bool bFlag ) { bAbsSpaces = bFlag; } 275cdf0e10cSrcweir 276cdf0e10cSrcweir // #115901# 277cdf0e10cSrcweir sal_Bool IsOutlineRule() const { return eRuleType == OUTLINE_RULE; } 278cdf0e10cSrcweir 279cdf0e10cSrcweir bool IsCountPhantoms() const; 280cdf0e10cSrcweir void SetCountPhantoms(bool bCountPhantoms); 281cdf0e10cSrcweir 282cdf0e10cSrcweir // erfragen und setzen der Poolvorlagen-Id's 283cdf0e10cSrcweir sal_uInt16 GetPoolFmtId() const { return nPoolFmtId; } 284cdf0e10cSrcweir void SetPoolFmtId( sal_uInt16 nId ) { nPoolFmtId = nId; } 285cdf0e10cSrcweir 286cdf0e10cSrcweir // erfragen und setzen der Hilfe-Id's fuer die Document-Vorlagen 287cdf0e10cSrcweir sal_uInt16 GetPoolHelpId() const { return nPoolHelpId; } 288cdf0e10cSrcweir void SetPoolHelpId( sal_uInt16 nId ) { nPoolHelpId = nId; } 289cdf0e10cSrcweir sal_uInt8 GetPoolHlpFileId() const { return nPoolHlpFileId; } 290cdf0e10cSrcweir void SetPoolHlpFileId( sal_uInt8 nId ) { nPoolHlpFileId = nId; } 291cdf0e10cSrcweir 292cdf0e10cSrcweir void SetSvxRule(const SvxNumRule&, SwDoc* pDoc); 293cdf0e10cSrcweir SvxNumRule MakeSvxNumRule() const; 294cdf0e10cSrcweir 295cdf0e10cSrcweir // #i23726#, #i23725# 296cdf0e10cSrcweir // --> OD 2008-06-09 #i90078# 297cdf0e10cSrcweir // refactoring: provide certain method for certain purpose 298cdf0e10cSrcweir // void Indent(short aAmount, int nLevel = -1, 299cdf0e10cSrcweir // int nReferenceLevel = -1, sal_Bool bRelative = sal_True, 300cdf0e10cSrcweir // sal_Bool bFirstLine = sal_True, sal_Bool bCheckGtZero = sal_True); 301cdf0e10cSrcweir // change indent of all list levels by given difference 302cdf0e10cSrcweir void ChangeIndent( const short nDiff ); 303cdf0e10cSrcweir // set indent of certain list level to given value 304cdf0e10cSrcweir void SetIndent( const short nNewIndent, 305cdf0e10cSrcweir const sal_uInt16 nListLevel ); 306cdf0e10cSrcweir // set indent of first list level to given value and change other list level's 307cdf0e10cSrcweir // indents accordingly 308cdf0e10cSrcweir void SetIndentOfFirstListLevelAndChangeOthers( const short nNewIndent ); 309cdf0e10cSrcweir // <-- 310cdf0e10cSrcweir 311cdf0e10cSrcweir void Validate(); 312cdf0e10cSrcweir }; 313cdf0e10cSrcweir 314cdf0e10cSrcweir // --> OD 2006-06-27 #b6440955# 315cdf0e10cSrcweir // namespace for static functions and methods for numbering and bullets 316cdf0e10cSrcweir namespace numfunc 317cdf0e10cSrcweir { 318cdf0e10cSrcweir /** retrieve font family name used for the default bullet list characters 319cdf0e10cSrcweir 320cdf0e10cSrcweir @author OD 321cdf0e10cSrcweir */ 322cdf0e10cSrcweir const String& GetDefBulletFontname(); 323cdf0e10cSrcweir 324cdf0e10cSrcweir /** determine if default bullet font is user defined 325cdf0e10cSrcweir 326cdf0e10cSrcweir OD 2008-06-06 #i63395# 327cdf0e10cSrcweir The default bullet font is user defined, if it is given in the user configuration 328cdf0e10cSrcweir 329cdf0e10cSrcweir @author OD 330cdf0e10cSrcweir */ 331cdf0e10cSrcweir bool IsDefBulletFontUserDefined(); 332cdf0e10cSrcweir 333cdf0e10cSrcweir /** retrieve font used for the default bullet list characters 334cdf0e10cSrcweir 335cdf0e10cSrcweir @author OD 336cdf0e10cSrcweir */ 337cdf0e10cSrcweir SW_DLLPUBLIC const Font& GetDefBulletFont(); 338cdf0e10cSrcweir 339cdf0e10cSrcweir /** retrieve unicode of character used for the default bullet list for the given list level 340cdf0e10cSrcweir 341cdf0e10cSrcweir @author OD 342cdf0e10cSrcweir */ 343cdf0e10cSrcweir sal_Unicode GetBulletChar( sal_uInt8 nLevel ); 344cdf0e10cSrcweir 345cdf0e10cSrcweir /** configuration, if at first position of the first list item the <TAB>-key 346cdf0e10cSrcweir increased the indent of the complete list or only demotes this list item. 347cdf0e10cSrcweir The same for <SHIFT-TAB>-key at the same position for decreasing the 348cdf0e10cSrcweir indent of the complete list or only promotes this list item. 349cdf0e10cSrcweir 350cdf0e10cSrcweir OD 2007-10-01 #b6600435# 351cdf0e10cSrcweir 352cdf0e10cSrcweir @author OD 353cdf0e10cSrcweir */ 354cdf0e10cSrcweir sal_Bool ChangeIndentOnTabAtFirstPosOfFirstListItem(); 355cdf0e10cSrcweir 356cdf0e10cSrcweir /** 357cdf0e10cSrcweir OD 2008-06-06 #i89178# 358cdf0e10cSrcweir 359cdf0e10cSrcweir @author OD 360cdf0e10cSrcweir */ 361cdf0e10cSrcweir SvxNumberFormat::SvxNumPositionAndSpaceMode GetDefaultPositionAndSpaceMode(); 362cdf0e10cSrcweir } 363cdf0e10cSrcweir 364cdf0e10cSrcweir #endif // _NUMRULE_HXX 365