xref: /aoo41x/main/sw/inc/SwNodeNum.hxx (revision 1d2dbeb0)
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
10*1d2dbeb0SAndrew Rist  *
11*1d2dbeb0SAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12*1d2dbeb0SAndrew Rist  *
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.
19*1d2dbeb0SAndrew Rist  *
20*1d2dbeb0SAndrew Rist  *************************************************************/
21*1d2dbeb0SAndrew Rist 
22*1d2dbeb0SAndrew Rist 
23cdf0e10cSrcweir 
24cdf0e10cSrcweir #ifndef _SW_NODE_NUM_HXX
25cdf0e10cSrcweir #define _SW_NODE_NUM_HXX
26cdf0e10cSrcweir 
27cdf0e10cSrcweir #include <SwNumberTree.hxx>
28cdf0e10cSrcweir 
29cdf0e10cSrcweir class SwTxtNode;
30cdf0e10cSrcweir struct SwPosition;
31cdf0e10cSrcweir class SwNumRule;
32cdf0e10cSrcweir class SwNumFmt;
33cdf0e10cSrcweir 
34cdf0e10cSrcweir class SW_DLLPUBLIC SwNodeNum : public SwNumberTreeNode
35cdf0e10cSrcweir {
36cdf0e10cSrcweir public:
37cdf0e10cSrcweir     // --> OD 2008-02-19 #refactorlists#
38cdf0e10cSrcweir     explicit SwNodeNum( SwTxtNode* pTxtNode );
39cdf0e10cSrcweir     explicit SwNodeNum( SwNumRule* pNumRule );
40cdf0e10cSrcweir     // <--
41cdf0e10cSrcweir     virtual ~SwNodeNum();
42cdf0e10cSrcweir 
43cdf0e10cSrcweir     SwNumRule* GetNumRule() const;
44cdf0e10cSrcweir     void ChangeNumRule( SwNumRule& rNumRule );
45cdf0e10cSrcweir     SwTxtNode* GetTxtNode() const;
46cdf0e10cSrcweir 
47cdf0e10cSrcweir     virtual bool IsNotificationEnabled() const;
48cdf0e10cSrcweir 
49cdf0e10cSrcweir     virtual bool IsContinuous() const;
50cdf0e10cSrcweir 
51cdf0e10cSrcweir     virtual bool IsCounted() const;
52cdf0e10cSrcweir 
53cdf0e10cSrcweir     virtual bool LessThan(const SwNumberTreeNode & rNode) const;
54cdf0e10cSrcweir 
55cdf0e10cSrcweir     virtual bool IsRestart() const;
56cdf0e10cSrcweir 
57cdf0e10cSrcweir     virtual SwNumberTree::tSwNumTreeNumber GetStartValue() const;
58cdf0e10cSrcweir 
59cdf0e10cSrcweir //    String ToString() const;
60cdf0e10cSrcweir 
61cdf0e10cSrcweir     SwPosition GetPosition() const;
62cdf0e10cSrcweir 
63cdf0e10cSrcweir     // --> OD 2006-03-07 #131436#
64cdf0e10cSrcweir     // The number tree root node is deleted, when the corresponding numbering
65cdf0e10cSrcweir     // rule is deleted. In this situation the number tree should be empty -
66cdf0e10cSrcweir     // still registered text nodes aren't allowed. But it is possible, that
67cdf0e10cSrcweir     // text nodes of the undo nodes array are still registered. These will be
68cdf0e10cSrcweir     // unregistered.
69cdf0e10cSrcweir     // Text nodes of the document nodes array aren't allowed to be registered
70cdf0e10cSrcweir     // in this situation - this will be asserted.
71cdf0e10cSrcweir     static void HandleNumberTreeRootNodeDelete( SwNodeNum& rNodeNum );
72cdf0e10cSrcweir     // <--
73cdf0e10cSrcweir 
74cdf0e10cSrcweir     /** determines the <SwNodeNum> instance, which is preceding the given text node
75cdf0e10cSrcweir 
76cdf0e10cSrcweir         OD 2007-09-06 #i81002#
77cdf0e10cSrcweir 
78cdf0e10cSrcweir         @author OD
79cdf0e10cSrcweir     */
80cdf0e10cSrcweir     const SwNodeNum* GetPrecedingNodeNumOf( const SwTxtNode& rTxtNode ) const;
81cdf0e10cSrcweir 
82cdf0e10cSrcweir protected:
83cdf0e10cSrcweir     virtual SwNumberTreeNode * Create() const;
84cdf0e10cSrcweir 
85cdf0e10cSrcweir     // --> OD 2006-04-26 #i64010#
86cdf0e10cSrcweir     virtual bool HasCountedChildren() const;
87cdf0e10cSrcweir     virtual bool IsCountedForNumbering() const;
88cdf0e10cSrcweir     // <--
89cdf0e10cSrcweir 
90cdf0e10cSrcweir     // --> OD 2008-02-19 #refactorlists#
91cdf0e10cSrcweir     // method called before this tree node has been added to the list tree
92cdf0e10cSrcweir     virtual void PreAdd();
93cdf0e10cSrcweir     // method called at a child after this child has been removed from the list tree
94cdf0e10cSrcweir     virtual void PostRemove();
95cdf0e10cSrcweir     // <--
96cdf0e10cSrcweir private:
97cdf0e10cSrcweir     SwTxtNode * mpTxtNode;
98cdf0e10cSrcweir     SwNumRule * mpNumRule;
99cdf0e10cSrcweir 
100cdf0e10cSrcweir     // --> OD 2006-03-07 #131436#
101cdf0e10cSrcweir     static void _UnregisterMeAndChildrenDueToRootDelete( SwNodeNum& rNodeNum );
102cdf0e10cSrcweir     // <--
103cdf0e10cSrcweir 
104cdf0e10cSrcweir     SwNodeNum( const SwNodeNum& );              // no copy constructor
105cdf0e10cSrcweir     SwNodeNum& operator=( const SwNodeNum& );   // no assignment operator
106cdf0e10cSrcweir 
107cdf0e10cSrcweir     virtual bool IsCountPhantoms() const;
108cdf0e10cSrcweir 
109cdf0e10cSrcweir     virtual bool IsNotifiable() const;
110cdf0e10cSrcweir 
111cdf0e10cSrcweir     virtual void NotifyNode();
112cdf0e10cSrcweir };
113cdf0e10cSrcweir 
114cdf0e10cSrcweir #endif // _SW_NODE_NUM_HXX
115