xref: /aoo4110/main/sw/inc/SwNodeNum.hxx (revision b1cdbd2c)
1*b1cdbd2cSJim Jagielski /**************************************************************
2*b1cdbd2cSJim Jagielski  *
3*b1cdbd2cSJim Jagielski  * Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski  * or more contributor license agreements.  See the NOTICE file
5*b1cdbd2cSJim Jagielski  * distributed with this work for additional information
6*b1cdbd2cSJim Jagielski  * regarding copyright ownership.  The ASF licenses this file
7*b1cdbd2cSJim Jagielski  * to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski  * "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski  * with the License.  You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski  *
11*b1cdbd2cSJim Jagielski  *   http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski  *
13*b1cdbd2cSJim Jagielski  * Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski  * software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski  * KIND, either express or implied.  See the License for the
17*b1cdbd2cSJim Jagielski  * specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski  * under the License.
19*b1cdbd2cSJim Jagielski  *
20*b1cdbd2cSJim Jagielski  *************************************************************/
21*b1cdbd2cSJim Jagielski 
22*b1cdbd2cSJim Jagielski 
23*b1cdbd2cSJim Jagielski 
24*b1cdbd2cSJim Jagielski #ifndef _SW_NODE_NUM_HXX
25*b1cdbd2cSJim Jagielski #define _SW_NODE_NUM_HXX
26*b1cdbd2cSJim Jagielski 
27*b1cdbd2cSJim Jagielski #include <SwNumberTree.hxx>
28*b1cdbd2cSJim Jagielski 
29*b1cdbd2cSJim Jagielski class SwTxtNode;
30*b1cdbd2cSJim Jagielski struct SwPosition;
31*b1cdbd2cSJim Jagielski class SwNumRule;
32*b1cdbd2cSJim Jagielski class SwNumFmt;
33*b1cdbd2cSJim Jagielski 
34*b1cdbd2cSJim Jagielski class SW_DLLPUBLIC SwNodeNum : public SwNumberTreeNode
35*b1cdbd2cSJim Jagielski {
36*b1cdbd2cSJim Jagielski public:
37*b1cdbd2cSJim Jagielski     // --> OD 2008-02-19 #refactorlists#
38*b1cdbd2cSJim Jagielski     explicit SwNodeNum( SwTxtNode* pTxtNode );
39*b1cdbd2cSJim Jagielski     explicit SwNodeNum( SwNumRule* pNumRule );
40*b1cdbd2cSJim Jagielski     // <--
41*b1cdbd2cSJim Jagielski     virtual ~SwNodeNum();
42*b1cdbd2cSJim Jagielski 
43*b1cdbd2cSJim Jagielski     SwNumRule* GetNumRule() const;
44*b1cdbd2cSJim Jagielski     void ChangeNumRule( SwNumRule& rNumRule );
45*b1cdbd2cSJim Jagielski     SwTxtNode* GetTxtNode() const;
46*b1cdbd2cSJim Jagielski 
47*b1cdbd2cSJim Jagielski     virtual bool IsNotificationEnabled() const;
48*b1cdbd2cSJim Jagielski 
49*b1cdbd2cSJim Jagielski     virtual bool IsContinuous() const;
50*b1cdbd2cSJim Jagielski 
51*b1cdbd2cSJim Jagielski     virtual bool IsCounted() const;
52*b1cdbd2cSJim Jagielski 
53*b1cdbd2cSJim Jagielski     virtual bool LessThan(const SwNumberTreeNode & rNode) const;
54*b1cdbd2cSJim Jagielski 
55*b1cdbd2cSJim Jagielski     virtual bool IsRestart() const;
56*b1cdbd2cSJim Jagielski 
57*b1cdbd2cSJim Jagielski     virtual SwNumberTree::tSwNumTreeNumber GetStartValue() const;
58*b1cdbd2cSJim Jagielski 
59*b1cdbd2cSJim Jagielski //    String ToString() const;
60*b1cdbd2cSJim Jagielski 
61*b1cdbd2cSJim Jagielski     SwPosition GetPosition() const;
62*b1cdbd2cSJim Jagielski 
63*b1cdbd2cSJim Jagielski     // --> OD 2006-03-07 #131436#
64*b1cdbd2cSJim Jagielski     // The number tree root node is deleted, when the corresponding numbering
65*b1cdbd2cSJim Jagielski     // rule is deleted. In this situation the number tree should be empty -
66*b1cdbd2cSJim Jagielski     // still registered text nodes aren't allowed. But it is possible, that
67*b1cdbd2cSJim Jagielski     // text nodes of the undo nodes array are still registered. These will be
68*b1cdbd2cSJim Jagielski     // unregistered.
69*b1cdbd2cSJim Jagielski     // Text nodes of the document nodes array aren't allowed to be registered
70*b1cdbd2cSJim Jagielski     // in this situation - this will be asserted.
71*b1cdbd2cSJim Jagielski     static void HandleNumberTreeRootNodeDelete( SwNodeNum& rNodeNum );
72*b1cdbd2cSJim Jagielski     // <--
73*b1cdbd2cSJim Jagielski 
74*b1cdbd2cSJim Jagielski     /** determines the <SwNodeNum> instance, which is preceding the given text node
75*b1cdbd2cSJim Jagielski 
76*b1cdbd2cSJim Jagielski         OD 2007-09-06 #i81002#
77*b1cdbd2cSJim Jagielski 
78*b1cdbd2cSJim Jagielski         @author OD
79*b1cdbd2cSJim Jagielski     */
80*b1cdbd2cSJim Jagielski     const SwNodeNum* GetPrecedingNodeNumOf( const SwTxtNode& rTxtNode ) const;
81*b1cdbd2cSJim Jagielski 
82*b1cdbd2cSJim Jagielski protected:
83*b1cdbd2cSJim Jagielski     virtual SwNumberTreeNode * Create() const;
84*b1cdbd2cSJim Jagielski 
85*b1cdbd2cSJim Jagielski     // --> OD 2006-04-26 #i64010#
86*b1cdbd2cSJim Jagielski     virtual bool HasCountedChildren() const;
87*b1cdbd2cSJim Jagielski     virtual bool IsCountedForNumbering() const;
88*b1cdbd2cSJim Jagielski     // <--
89*b1cdbd2cSJim Jagielski 
90*b1cdbd2cSJim Jagielski     // --> OD 2008-02-19 #refactorlists#
91*b1cdbd2cSJim Jagielski     // method called before this tree node has been added to the list tree
92*b1cdbd2cSJim Jagielski     virtual void PreAdd();
93*b1cdbd2cSJim Jagielski     // method called at a child after this child has been removed from the list tree
94*b1cdbd2cSJim Jagielski     virtual void PostRemove();
95*b1cdbd2cSJim Jagielski     // <--
96*b1cdbd2cSJim Jagielski private:
97*b1cdbd2cSJim Jagielski     SwTxtNode * mpTxtNode;
98*b1cdbd2cSJim Jagielski     SwNumRule * mpNumRule;
99*b1cdbd2cSJim Jagielski 
100*b1cdbd2cSJim Jagielski     // --> OD 2006-03-07 #131436#
101*b1cdbd2cSJim Jagielski     static void _UnregisterMeAndChildrenDueToRootDelete( SwNodeNum& rNodeNum );
102*b1cdbd2cSJim Jagielski     // <--
103*b1cdbd2cSJim Jagielski 
104*b1cdbd2cSJim Jagielski     SwNodeNum( const SwNodeNum& );              // no copy constructor
105*b1cdbd2cSJim Jagielski     SwNodeNum& operator=( const SwNodeNum& );   // no assignment operator
106*b1cdbd2cSJim Jagielski 
107*b1cdbd2cSJim Jagielski     virtual bool IsCountPhantoms() const;
108*b1cdbd2cSJim Jagielski 
109*b1cdbd2cSJim Jagielski     virtual bool IsNotifiable() const;
110*b1cdbd2cSJim Jagielski 
111*b1cdbd2cSJim Jagielski     virtual void NotifyNode();
112*b1cdbd2cSJim Jagielski };
113*b1cdbd2cSJim Jagielski 
114*b1cdbd2cSJim Jagielski #endif // _SW_NODE_NUM_HXX
115