xref: /AOO41X/main/sw/inc/numrule.hxx (revision 1d2dbeb0b7301723c6d13094e87a8714ef81a328)
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