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