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