xref: /trunk/main/idl/inc/types.hxx (revision 914d351e5f5b84e4342a86d6ab8d4aca7308b9bd)
1*f3ea6674SAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3*f3ea6674SAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4*f3ea6674SAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5*f3ea6674SAndrew Rist  * distributed with this work for additional information
6*f3ea6674SAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7*f3ea6674SAndrew Rist  * to you under the Apache License, Version 2.0 (the
8*f3ea6674SAndrew Rist  * "License"); you may not use this file except in compliance
9*f3ea6674SAndrew Rist  * with the License.  You may obtain a copy of the License at
10cdf0e10cSrcweir  *
11*f3ea6674SAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12cdf0e10cSrcweir  *
13*f3ea6674SAndrew Rist  * Unless required by applicable law or agreed to in writing,
14*f3ea6674SAndrew Rist  * software distributed under the License is distributed on an
15*f3ea6674SAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*f3ea6674SAndrew Rist  * KIND, either express or implied.  See the License for the
17*f3ea6674SAndrew Rist  * specific language governing permissions and limitations
18*f3ea6674SAndrew Rist  * under the License.
19cdf0e10cSrcweir  *
20*f3ea6674SAndrew Rist  *************************************************************/
21*f3ea6674SAndrew Rist 
22*f3ea6674SAndrew Rist 
23cdf0e10cSrcweir 
24cdf0e10cSrcweir #ifndef _TYPES_HXX
25cdf0e10cSrcweir #define _TYPES_HXX
26cdf0e10cSrcweir 
27cdf0e10cSrcweir #include <tools/ref.hxx>
28cdf0e10cSrcweir #include <basobj.hxx>
29cdf0e10cSrcweir 
30cdf0e10cSrcweir class SvSlotElementList;
31cdf0e10cSrcweir struct SvSlotElement;
32cdf0e10cSrcweir 
33cdf0e10cSrcweir /******************** class SvMetaAttribute *****************************/
34cdf0e10cSrcweir SV_DECL_REF(SvMetaType)
35cdf0e10cSrcweir SV_DECL_REF(SvMetaAttribute)
36cdf0e10cSrcweir SV_DECL_PERSIST_LIST(SvMetaAttribute,SvMetaAttribute *)
37cdf0e10cSrcweir class SvMetaAttribute : public SvMetaReference
38cdf0e10cSrcweir {
39cdf0e10cSrcweir     SvMetaTypeRef       aType;
40cdf0e10cSrcweir     SvNumberIdentifier  aSlotId;
41cdf0e10cSrcweir     SvBOOL              aAutomation;
42cdf0e10cSrcweir     SvBOOL              aExport;
43cdf0e10cSrcweir     SvBOOL              aReadonly;
44cdf0e10cSrcweir     SvBOOL              aIsCollection;
45cdf0e10cSrcweir     SvBOOL              aReadOnlyDoc;
46cdf0e10cSrcweir     SvBOOL              aHidden;
47cdf0e10cSrcweir     sal_Bool                bNewAttr;
48cdf0e10cSrcweir 
49cdf0e10cSrcweir protected:
50cdf0e10cSrcweir #ifdef IDL_COMPILER
51cdf0e10cSrcweir     virtual void WriteCSource( SvIdlDataBase & rBase,
52cdf0e10cSrcweir                                 SvStream & rOutStm, sal_Bool bSet );
53cdf0e10cSrcweir     sal_uLong        MakeSlotValue( SvIdlDataBase & rBase, sal_Bool bVariable ) const;
54cdf0e10cSrcweir     virtual void WriteAttributes( SvIdlDataBase & rBase,
55cdf0e10cSrcweir                                     SvStream & rOutStm, sal_uInt16 nTab,
56cdf0e10cSrcweir                                     WriteType, WriteAttribute = 0 );
57cdf0e10cSrcweir     virtual void ReadAttributesSvIdl( SvIdlDataBase & rBase,
58cdf0e10cSrcweir                                     SvTokenStream & rInStm );
59cdf0e10cSrcweir     virtual void WriteAttributesSvIdl( SvIdlDataBase & rBase,
60cdf0e10cSrcweir                                     SvStream & rOutStm, sal_uInt16 nTab );
61cdf0e10cSrcweir #endif
62cdf0e10cSrcweir public:
63cdf0e10cSrcweir             SV_DECL_META_FACTORY1( SvMetaAttribute, SvMetaReference, 2 )
64cdf0e10cSrcweir                         SvMetaAttribute();
65cdf0e10cSrcweir                         SvMetaAttribute( SvMetaType * );
66cdf0e10cSrcweir 
SetNewAttribute(sal_Bool bNew)67cdf0e10cSrcweir     void                SetNewAttribute( sal_Bool bNew )
68cdf0e10cSrcweir                         { bNewAttr = bNew; }
IsNewAttribute() const69cdf0e10cSrcweir     sal_Bool                IsNewAttribute() const
70cdf0e10cSrcweir                         { return bNewAttr; }
71cdf0e10cSrcweir     sal_Bool                GetReadonly() const;
72cdf0e10cSrcweir 
SetSlotId(const SvNumberIdentifier & rId)73cdf0e10cSrcweir     void                SetSlotId( const SvNumberIdentifier & rId )
74cdf0e10cSrcweir                         { aSlotId = rId; }
75cdf0e10cSrcweir     const SvNumberIdentifier & GetSlotId() const;
76cdf0e10cSrcweir 
SetExport(sal_Bool bSet)77cdf0e10cSrcweir     void                SetExport( sal_Bool bSet )
78cdf0e10cSrcweir                         { aExport = bSet; }
79cdf0e10cSrcweir     sal_Bool                GetExport() const;
80cdf0e10cSrcweir 
SetHidden(sal_Bool bSet)81cdf0e10cSrcweir     void                SetHidden( sal_Bool bSet )
82cdf0e10cSrcweir                         { aHidden = bSet; }
83cdf0e10cSrcweir     sal_Bool                GetHidden() const;
84cdf0e10cSrcweir 
SetAutomation(sal_Bool bSet)85cdf0e10cSrcweir     void                SetAutomation( sal_Bool bSet )
86cdf0e10cSrcweir                         { aAutomation = bSet; }
87cdf0e10cSrcweir     sal_Bool                GetAutomation() const;
88cdf0e10cSrcweir 
SetIsCollection(sal_Bool bSet)89cdf0e10cSrcweir     void                SetIsCollection( sal_Bool bSet )
90cdf0e10cSrcweir                         { aIsCollection = bSet; }
91cdf0e10cSrcweir     sal_Bool                GetIsCollection() const;
SetReadOnlyDoc(sal_Bool bSet)92cdf0e10cSrcweir     void                SetReadOnlyDoc( sal_Bool bSet )
93cdf0e10cSrcweir                         { aReadOnlyDoc = bSet; }
94cdf0e10cSrcweir     sal_Bool                GetReadOnlyDoc() const;
95cdf0e10cSrcweir 
SetType(SvMetaType * pT)96cdf0e10cSrcweir     void                SetType( SvMetaType * pT ) { aType = pT; }
97cdf0e10cSrcweir     SvMetaType *        GetType() const;
98cdf0e10cSrcweir 
99cdf0e10cSrcweir     virtual sal_Bool        IsMethod() const;
100cdf0e10cSrcweir     virtual sal_Bool        IsVariable() const;
101cdf0e10cSrcweir     virtual ByteString      GetMangleName( sal_Bool bVariable ) const;
102cdf0e10cSrcweir 
103cdf0e10cSrcweir //    void                FillSbxObject( SbxInfo * pInfo, sal_uInt16 nSbxFlags = 0 );
104cdf0e10cSrcweir //    virtual void        FillSbxObject( SvIdlDataBase & rBase, SbxObject * pObj, sal_Bool bVariable );
105cdf0e10cSrcweir 
106cdf0e10cSrcweir #ifdef IDL_COMPILER
107cdf0e10cSrcweir     virtual sal_Bool        Test( SvIdlDataBase &, SvTokenStream & rInStm );
108cdf0e10cSrcweir     virtual sal_Bool        ReadSvIdl( SvIdlDataBase &, SvTokenStream & rInStm );
109cdf0e10cSrcweir     virtual void        WriteSvIdl( SvIdlDataBase & rBase, SvStream & rOutStm, sal_uInt16 nTab );
110cdf0e10cSrcweir     virtual void        WriteParam( SvIdlDataBase & rBase, SvStream & rOutStm, sal_uInt16 nTab,
111cdf0e10cSrcweir                                     WriteType );
112cdf0e10cSrcweir     void                WriteRecursiv_Impl( SvIdlDataBase & rBase,
113cdf0e10cSrcweir                                         SvStream & rOutStm, sal_uInt16 nTab,
114cdf0e10cSrcweir                                         WriteType, WriteAttribute );
115cdf0e10cSrcweir     virtual void        Write( SvIdlDataBase & rBase, SvStream & rOutStm, sal_uInt16 nTab,
116cdf0e10cSrcweir                                 WriteType, WriteAttribute = 0 );
117cdf0e10cSrcweir     sal_uLong               MakeSfx( ByteString * pAtrrArray );
118cdf0e10cSrcweir     virtual void        Insert( SvSlotElementList&, const ByteString & rPrefix,
119cdf0e10cSrcweir                                 SvIdlDataBase& );
120cdf0e10cSrcweir     virtual void        WriteHelpId( SvIdlDataBase & rBase, SvStream & rOutStm,
121cdf0e10cSrcweir                                   Table * pIdTable );
122cdf0e10cSrcweir     virtual void        WriteSrc( SvIdlDataBase & rBase, SvStream & rOutStm,
123cdf0e10cSrcweir                                   Table * pIdTable );
124cdf0e10cSrcweir     virtual void        WriteCSV( SvIdlDataBase&, SvStream& );
125cdf0e10cSrcweir     void                FillIDTable(Table *pIDTable);
126cdf0e10cSrcweir     ByteString              Compare( SvMetaAttribute *pAttr );
127cdf0e10cSrcweir #endif
128cdf0e10cSrcweir };
129cdf0e10cSrcweir SV_IMPL_REF(SvMetaAttribute)
130cdf0e10cSrcweir SV_IMPL_PERSIST_LIST(SvMetaAttribute,SvMetaAttribute *)
131cdf0e10cSrcweir 
132cdf0e10cSrcweir 
133cdf0e10cSrcweir /******************** class SvType *********************************/
134cdf0e10cSrcweir enum { CALL_VALUE, CALL_POINTER, CALL_REFERENCE };
135cdf0e10cSrcweir enum { TYPE_METHOD, TYPE_STRUCT, TYPE_BASE, TYPE_ENUM, TYPE_UNION,
136cdf0e10cSrcweir       TYPE_CLASS, TYPE_POINTER };
137cdf0e10cSrcweir class SvMetaType : public SvMetaExtern
138cdf0e10cSrcweir {
139cdf0e10cSrcweir     SvBOOL                      aIn;    // Eingangsparameter
140cdf0e10cSrcweir     SvBOOL                      aOut;   // Returnparameter
141cdf0e10cSrcweir     Svint                       aCall0, aCall1;
142cdf0e10cSrcweir     Svint                       aSbxDataType;
143cdf0e10cSrcweir     SvIdentifier                aSvName;
144cdf0e10cSrcweir     SvIdentifier                aSbxName;
145cdf0e10cSrcweir     SvIdentifier                aOdlName;
146cdf0e10cSrcweir     SvIdentifier                aCName;
147cdf0e10cSrcweir     SvIdentifier                aBasicPostfix;
148cdf0e10cSrcweir     SvIdentifier                aBasicName;
149cdf0e10cSrcweir     SvMetaAttributeMemberList * pAttrList;
150cdf0e10cSrcweir     int                         nType;
151cdf0e10cSrcweir     sal_Bool                        bIsItem;
152cdf0e10cSrcweir     sal_Bool                        bIsShell;
153cdf0e10cSrcweir     char                        cParserChar;
154cdf0e10cSrcweir 
155cdf0e10cSrcweir #ifdef IDL_COMPILER
156cdf0e10cSrcweir     void    WriteSfxItem( const ByteString & rItemName, SvIdlDataBase & rBase,
157cdf0e10cSrcweir                         SvStream & rOutStm );
158cdf0e10cSrcweir protected:
159cdf0e10cSrcweir     sal_Bool        ReadNamesSvIdl( SvIdlDataBase & rBase,
160cdf0e10cSrcweir                                     SvTokenStream & rInStm );
161cdf0e10cSrcweir     virtual void ReadAttributesSvIdl( SvIdlDataBase &, SvTokenStream & rInStm );
162cdf0e10cSrcweir     virtual void WriteAttributesSvIdl( SvIdlDataBase & rBase, SvStream & rOutStm, sal_uInt16 nTab );
163cdf0e10cSrcweir     virtual void ReadContextSvIdl( SvIdlDataBase &, SvTokenStream & rInStm );
164cdf0e10cSrcweir     virtual void WriteContextSvIdl( SvIdlDataBase &, SvStream & rOutStm,
165cdf0e10cSrcweir                                    sal_uInt16 nTab );
166cdf0e10cSrcweir 
167cdf0e10cSrcweir     virtual void WriteContext( SvIdlDataBase & rBase, SvStream & rOutStm,
168cdf0e10cSrcweir                                 sal_uInt16 nTab,
169cdf0e10cSrcweir                                 WriteType, WriteAttribute = 0 );
170cdf0e10cSrcweir     virtual void WriteAttributes( SvIdlDataBase & rBase, SvStream & rOutStm, sal_uInt16 nTab,
171cdf0e10cSrcweir                                 WriteType, WriteAttribute = 0 );
172cdf0e10cSrcweir     sal_Bool    ReadHeaderSvIdl( SvIdlDataBase &, SvTokenStream & rInStm );
173cdf0e10cSrcweir     void    WriteHeaderSvIdl( SvIdlDataBase &, SvStream & rOutStm,
174cdf0e10cSrcweir                               sal_uInt16 nTab );
175cdf0e10cSrcweir #endif
176cdf0e10cSrcweir public:
177cdf0e10cSrcweir             SV_DECL_META_FACTORY1( SvMetaType, SvMetaExtern, 18 )
178cdf0e10cSrcweir             SvMetaType();
179cdf0e10cSrcweir             SvMetaType( const ByteString & rTypeName, char cParserChar,
180cdf0e10cSrcweir                                 const ByteString & rCName );
181cdf0e10cSrcweir             SvMetaType( const ByteString & rTypeName, const ByteString & rSbxName,
182cdf0e10cSrcweir                         const ByteString & rOdlName, char cParserChar,
183cdf0e10cSrcweir                         const ByteString & rCName, const ByteString & rBasicName,
184cdf0e10cSrcweir                         const ByteString & rBasicPostfix/*, SbxDataType nT = SbxEMPTY */);
185cdf0e10cSrcweir 
186cdf0e10cSrcweir     SvMetaAttributeMemberList & GetAttrList() const;
GetAttrCount() const187cdf0e10cSrcweir     sal_uLong               GetAttrCount() const
188cdf0e10cSrcweir                         {
189cdf0e10cSrcweir                             return pAttrList ? pAttrList->Count() : 0L;
190cdf0e10cSrcweir                         }
AppendAttr(SvMetaAttribute * pAttr)191cdf0e10cSrcweir     void                AppendAttr( SvMetaAttribute * pAttr )
192cdf0e10cSrcweir                         {
193cdf0e10cSrcweir                             GetAttrList().Append( pAttr );
194cdf0e10cSrcweir                         }
195cdf0e10cSrcweir 
196cdf0e10cSrcweir     void                SetType( int nT );
GetType() const197cdf0e10cSrcweir     int                 GetType() const { return nType; }
198cdf0e10cSrcweir     SvMetaType *        GetBaseType() const;
199cdf0e10cSrcweir     SvMetaType *        GetReturnType() const;
IsItem() const200cdf0e10cSrcweir     sal_Bool                IsItem() const { return bIsItem; }
IsShell() const201cdf0e10cSrcweir     sal_Bool                IsShell() const { return bIsShell; }
202cdf0e10cSrcweir 
203cdf0e10cSrcweir //    void                SetSbxDataType( SbxDataType nT )
204cdf0e10cSrcweir //                        { aSbxDataType = (int)nT; }
205cdf0e10cSrcweir //    SbxDataType         GetSbxDataType() const;
206cdf0e10cSrcweir 
SetIn(sal_Bool b)207cdf0e10cSrcweir     void                SetIn( sal_Bool b ) { aIn = b; }
208cdf0e10cSrcweir     sal_Bool                GetIn() const;
209cdf0e10cSrcweir 
SetOut(sal_Bool b)210cdf0e10cSrcweir     void                SetOut( sal_Bool b ) { aOut = b; }
211cdf0e10cSrcweir     sal_Bool                GetOut() const;
212cdf0e10cSrcweir 
213cdf0e10cSrcweir     void                SetCall0( int e );
214cdf0e10cSrcweir     int                 GetCall0() const;
215cdf0e10cSrcweir 
216cdf0e10cSrcweir     void                SetCall1( int e);
217cdf0e10cSrcweir     int                 GetCall1() const;
218cdf0e10cSrcweir 
SetBasicName(const ByteString & rName)219cdf0e10cSrcweir     void                SetBasicName(const ByteString& rName)
220cdf0e10cSrcweir                         { aBasicName = rName; }
221cdf0e10cSrcweir 
222cdf0e10cSrcweir     const ByteString &      GetBasicName() const;
223cdf0e10cSrcweir     ByteString              GetBasicPostfix() const;
224cdf0e10cSrcweir     const ByteString &      GetSvName() const;
225cdf0e10cSrcweir     const ByteString &      GetSbxName() const;
226cdf0e10cSrcweir     const ByteString &      GetOdlName() const;
227cdf0e10cSrcweir     const ByteString &      GetCName() const;
GetParserChar() const228cdf0e10cSrcweir     char                GetParserChar() const { return cParserChar; }
229cdf0e10cSrcweir 
230cdf0e10cSrcweir     virtual sal_Bool        SetName( const ByteString & rName, SvIdlDataBase * = NULL );
231cdf0e10cSrcweir 
232cdf0e10cSrcweir //    void                FillSbxObject( SbxVariable * pObj, sal_Bool bVariable );
233cdf0e10cSrcweir 
234cdf0e10cSrcweir #ifdef IDL_COMPILER
235cdf0e10cSrcweir     virtual sal_Bool        ReadSvIdl( SvIdlDataBase &, SvTokenStream & rInStm );
236cdf0e10cSrcweir     virtual void        WriteSvIdl( SvIdlDataBase & rBase,
237cdf0e10cSrcweir                                     SvStream & rOutStm, sal_uInt16 nTab );
238cdf0e10cSrcweir     virtual void        Write( SvIdlDataBase & rBase, SvStream & rOutStm, sal_uInt16 nTab,
239cdf0e10cSrcweir                                 WriteType, WriteAttribute = 0 );
240cdf0e10cSrcweir     ByteString              GetCString() const;
241cdf0e10cSrcweir     void                WriteSvIdlType( SvIdlDataBase & rBase, SvStream & rOutStm, sal_uInt16 nTab );
242cdf0e10cSrcweir     void                WriteOdlType( SvIdlDataBase & rBase, SvStream & rOutStm, sal_uInt16 nTab );
243cdf0e10cSrcweir     void                AppendParserString (ByteString &rString);
244cdf0e10cSrcweir 
245cdf0e10cSrcweir     sal_uLong               MakeSfx( ByteString * pAtrrArray );
246cdf0e10cSrcweir     virtual void        WriteSfx( SvIdlDataBase & rBase, SvStream & rOutStm );
247cdf0e10cSrcweir     //sal_Bool              ReadTypePrefix( SvIdlDataBase &, SvTokenStream & rInStm );
248cdf0e10cSrcweir     sal_Bool                ReadMethodArgs( SvIdlDataBase & rBase,
249cdf0e10cSrcweir                                         SvTokenStream & rInStm );
250cdf0e10cSrcweir     void                WriteTypePrefix( SvIdlDataBase & rBase, SvStream & rOutStm, sal_uInt16 nTab, WriteType );
251cdf0e10cSrcweir     void                WriteMethodArgs( SvIdlDataBase & rBase, SvStream & rOutStm, sal_uInt16 nTab, WriteType );
252cdf0e10cSrcweir     void                WriteTheType( SvIdlDataBase & rBase, SvStream & rOutStm, sal_uInt16 nTab, WriteType );
253cdf0e10cSrcweir     ByteString              GetParserString() const;
254cdf0e10cSrcweir     void                WriteParamNames( SvIdlDataBase & rBase, SvStream & rOutStm,
255cdf0e10cSrcweir                                         const ByteString & rChief );
256cdf0e10cSrcweir #endif
257cdf0e10cSrcweir };
258cdf0e10cSrcweir SV_IMPL_REF(SvMetaType)
259cdf0e10cSrcweir DECLARE_LIST(SvMetaTypeList,SvMetaType *)
260cdf0e10cSrcweir SV_DECL_IMPL_PERSIST_LIST(SvMetaType,SvMetaType *)
261cdf0e10cSrcweir 
262cdf0e10cSrcweir 
263cdf0e10cSrcweir /******************** class SvTypeString *********************************/
264cdf0e10cSrcweir class SvMetaTypeString : public SvMetaType
265cdf0e10cSrcweir {
266cdf0e10cSrcweir public:
267cdf0e10cSrcweir             SV_DECL_META_FACTORY1( SvMetaTypeString, SvMetaType, 19 )
268cdf0e10cSrcweir             SvMetaTypeString();
269cdf0e10cSrcweir };
270cdf0e10cSrcweir SV_DECL_IMPL_REF(SvMetaTypeString)
271cdf0e10cSrcweir SV_DECL_IMPL_PERSIST_LIST(SvMetaTypeString,SvMetaTypeString *)
272cdf0e10cSrcweir 
273cdf0e10cSrcweir 
274cdf0e10cSrcweir /******************** class SvMetaEnumValue **********************************/
275cdf0e10cSrcweir class SvMetaEnumValue : public SvMetaName
276cdf0e10cSrcweir {
277cdf0e10cSrcweir     ByteString      aEnumValue;
278cdf0e10cSrcweir public:
279cdf0e10cSrcweir             SV_DECL_META_FACTORY1( SvMetaEnumValue, SvMetaName, 20 )
280cdf0e10cSrcweir             SvMetaEnumValue();
281cdf0e10cSrcweir 
282cdf0e10cSrcweir #ifdef IDL_COMPILER
283cdf0e10cSrcweir     virtual sal_Bool        ReadSvIdl( SvIdlDataBase &, SvTokenStream & rInStm );
284cdf0e10cSrcweir     virtual void        WriteSvIdl( SvIdlDataBase & rBase, SvStream & rOutStm, sal_uInt16 nTab );
285cdf0e10cSrcweir     virtual void        Write( SvIdlDataBase & rBase, SvStream & rOutStm, sal_uInt16 nTab,
286cdf0e10cSrcweir                                 WriteType, WriteAttribute = 0 );
287cdf0e10cSrcweir #endif
288cdf0e10cSrcweir };
289cdf0e10cSrcweir SV_DECL_IMPL_REF(SvMetaEnumValue)
290cdf0e10cSrcweir SV_DECL_IMPL_PERSIST_LIST(SvMetaEnumValue,SvMetaEnumValue *)
291cdf0e10cSrcweir 
292cdf0e10cSrcweir 
293cdf0e10cSrcweir /******************** class SvTypeEnum *********************************/
294cdf0e10cSrcweir class SvMetaTypeEnum : public SvMetaType
295cdf0e10cSrcweir {
296cdf0e10cSrcweir     SvMetaEnumValueMemberList   aEnumValueList;
297cdf0e10cSrcweir     ByteString                      aPrefix;
298cdf0e10cSrcweir protected:
299cdf0e10cSrcweir #ifdef IDL_COMPILER
300cdf0e10cSrcweir     virtual void ReadContextSvIdl( SvIdlDataBase &, SvTokenStream & rInStm );
301cdf0e10cSrcweir     virtual void WriteContextSvIdl( SvIdlDataBase &, SvStream & rOutStm,
302cdf0e10cSrcweir                                    sal_uInt16 nTab );
303cdf0e10cSrcweir     virtual void WriteContext( SvIdlDataBase & rBase, SvStream & rOutStm, sal_uInt16 nTab,
304cdf0e10cSrcweir                                 WriteType, WriteAttribute = 0 );
305cdf0e10cSrcweir #endif
306cdf0e10cSrcweir public:
307cdf0e10cSrcweir             SV_DECL_META_FACTORY1( SvMetaTypeEnum, SvMetaType, 21 )
308cdf0e10cSrcweir             SvMetaTypeEnum();
309cdf0e10cSrcweir 
310cdf0e10cSrcweir     sal_uInt16              GetMaxValue() const;
Count() const311cdf0e10cSrcweir     sal_uLong               Count() const { return aEnumValueList.Count(); }
GetPrefix() const312cdf0e10cSrcweir     const ByteString &      GetPrefix() const { return aPrefix; }
GetObject(sal_uLong n) const313cdf0e10cSrcweir     SvMetaEnumValue *   GetObject( sal_uLong n ) const
314cdf0e10cSrcweir                         { return aEnumValueList.GetObject( n ); }
315cdf0e10cSrcweir 
316cdf0e10cSrcweir #ifdef IDL_COMPILER
317cdf0e10cSrcweir     virtual sal_Bool        ReadSvIdl( SvIdlDataBase &, SvTokenStream & rInStm );
318cdf0e10cSrcweir     virtual void        WriteSvIdl( SvIdlDataBase & rBase, SvStream & rOutStm, sal_uInt16 nTab );
319cdf0e10cSrcweir 
320cdf0e10cSrcweir     virtual void        Write( SvIdlDataBase & rBase, SvStream & rOutStm,
321cdf0e10cSrcweir                                 sal_uInt16 nTab,
322cdf0e10cSrcweir                                 WriteType, WriteAttribute = 0 );
323cdf0e10cSrcweir #endif
324cdf0e10cSrcweir };
325cdf0e10cSrcweir SV_DECL_IMPL_REF(SvMetaTypeEnum)
326cdf0e10cSrcweir SV_DECL_IMPL_PERSIST_LIST(SvMetaTypeEnum,SvMetaTypeEnum *)
327cdf0e10cSrcweir 
328cdf0e10cSrcweir 
329cdf0e10cSrcweir /******************** class SvTypeVoid ***********************************/
330cdf0e10cSrcweir class SvMetaTypevoid : public SvMetaType
331cdf0e10cSrcweir {
332cdf0e10cSrcweir public:
333cdf0e10cSrcweir             SV_DECL_META_FACTORY1( SvMetaTypevoid, SvMetaName, 22 )
334cdf0e10cSrcweir             SvMetaTypevoid();
335cdf0e10cSrcweir };
336cdf0e10cSrcweir SV_DECL_IMPL_REF(SvMetaTypevoid)
337cdf0e10cSrcweir SV_DECL_IMPL_PERSIST_LIST(SvMetaTypevoid,SvMetaTypevoid *)
338cdf0e10cSrcweir 
339cdf0e10cSrcweir 
340cdf0e10cSrcweir #endif // _TYPES_HXX
341