merge the formfield patch from ooo-build
[ooovba.git] / rsc / inc / rscclobj.hxx
blob8693b48369fd93a0bdff67d51e70e6cc4cac67c2
1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * Copyright 2008 by Sun Microsystems, Inc.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * $RCSfile: rscclobj.hxx,v $
10 * $Revision: 1.6 $
12 * This file is part of OpenOffice.org.
14 * OpenOffice.org is free software: you can redistribute it and/or modify
15 * it under the terms of the GNU Lesser General Public License version 3
16 * only, as published by the Free Software Foundation.
18 * OpenOffice.org is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU Lesser General Public License version 3 for more details
22 * (a copy is included in the LICENSE file that accompanied this code).
24 * You should have received a copy of the GNU Lesser General Public License
25 * version 3 along with OpenOffice.org. If not, see
26 * <http://www.openoffice.org/license.html>
27 * for a copy of the LGPLv3 License.
29 ************************************************************************/
30 #ifndef _RSCCLOBJ_HXX
31 #define _RSCCLOBJ_HXX
33 #include <rsctree.hxx>
34 #include <rscdef.hxx>
35 #include <rscall.h>
37 /****************** C L A S S E S ****************************************/
38 class RscTypCont;
40 /*********** R s c I n c o n s i s t e n t *******************************/
41 class RscInconsistent {
42 public:
43 RscId aFirstId; //Paar von inkonsistenten Id's
44 RscId aSecondId;
45 RscInconsistent( const RscId & rFirst, const RscId & rSecond ){
46 aFirstId = rFirst;
47 aSecondId = rSecond;
51 DECLARE_LIST( RscInconsList, RscInconsistent * )
53 /******************* O b j N o d e ***************************************/
54 class ObjNode : public IdNode{
55 RscId aRscId; // Id der Resource
56 CLASS_DATA pRscObj;// pointer to a resourceobject
57 ULONG lFileKey;// Dateischluessel
58 protected:
59 using NameNode::Search;
61 public:
62 using NameNode::Insert;
64 ObjNode( const RscId & rId, CLASS_DATA pData, ULONG lKey );
65 ObjNode * DelObjNode( RscTop * pClass, ULONG lFileKey );
66 sal_uInt32 GetId() const;
67 RscId GetRscId(){ return( aRscId ); }
68 ULONG GetFileKey(){ return lFileKey; };
69 ObjNode* Search( const RscId &rName ) const{
70 // search the index in the b-tree
71 return( (ObjNode *)IdNode::Search( rName ) );
73 BOOL Insert( ObjNode* pTN ){
74 // insert a new node in the b-tree
75 return( IdNode::Insert( (IdNode *)pTN ) );
77 CLASS_DATA GetRscObj(){
78 // get the Object from this Node
79 return( pRscObj );
81 BOOL IsConsistent( RscInconsList * pList = NULL );
84 /******************* R e f N o d e ***************************************/
85 class RefNode : public IdNode{
86 Atom nTypNameId; // index of a Name in a hashtabel
87 protected:
88 using NameNode::Search;
90 public:
91 using NameNode::Insert;
93 ObjNode* pObjBiTree; // Zeiger auf Objektbaum
94 RefNode( Atom nTyp );
95 sal_uInt32 GetId() const;
96 RefNode* Search( Atom typ ) const{
97 // search the index in the b-tree
98 return( (RefNode *)IdNode::Search( typ ) );
100 BOOL Insert( RefNode* pTN ){
101 // insert a new node in the b-tree
102 return( IdNode::Insert( (IdNode *)pTN ) );
104 BOOL PutObjNode( ObjNode * pPutObject );
106 // insert new node in b-tree pObjBiTree
107 ObjNode * GetObjNode( const RscId &rRscId );
109 ObjNode * GetObjNode(){
110 // hole pObjBiTree
111 return( pObjBiTree );
115 #endif // _RSCCLOBJ_HXX