1*f7c60c9cSAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 3*f7c60c9cSAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 4*f7c60c9cSAndrew Rist * or more contributor license agreements. See the NOTICE file 5*f7c60c9cSAndrew Rist * distributed with this work for additional information 6*f7c60c9cSAndrew Rist * regarding copyright ownership. The ASF licenses this file 7*f7c60c9cSAndrew Rist * to you under the Apache License, Version 2.0 (the 8*f7c60c9cSAndrew Rist * "License"); you may not use this file except in compliance 9*f7c60c9cSAndrew Rist * with the License. You may obtain a copy of the License at 10*f7c60c9cSAndrew Rist * 11*f7c60c9cSAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12*f7c60c9cSAndrew Rist * 13*f7c60c9cSAndrew Rist * Unless required by applicable law or agreed to in writing, 14*f7c60c9cSAndrew Rist * software distributed under the License is distributed on an 15*f7c60c9cSAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*f7c60c9cSAndrew Rist * KIND, either express or implied. See the License for the 17*f7c60c9cSAndrew Rist * specific language governing permissions and limitations 18*f7c60c9cSAndrew Rist * under the License. 19*f7c60c9cSAndrew Rist * 20*f7c60c9cSAndrew Rist *************************************************************/ 21*f7c60c9cSAndrew Rist 22*f7c60c9cSAndrew Rist 23cdf0e10cSrcweir #ifndef _RSCSTR_HXX 24cdf0e10cSrcweir #define _RSCSTR_HXX 25cdf0e10cSrcweir 26cdf0e10cSrcweir #include <rscall.h> 27cdf0e10cSrcweir #include <rscerror.h> 28cdf0e10cSrcweir #include <rschash.hxx> 29cdf0e10cSrcweir #include <rsctop.hxx> 30cdf0e10cSrcweir 31cdf0e10cSrcweir /******************* R s c S t r i n g ***********************************/ 32cdf0e10cSrcweir class RscString : public RscTop 33cdf0e10cSrcweir { 34cdf0e10cSrcweir RscTop * pRefClass; 35cdf0e10cSrcweir struct RscStringInst { 36cdf0e10cSrcweir char * pStr; // Zeiger auf String 37cdf0e10cSrcweir sal_Bool bDflt; // Ist Default 38cdf0e10cSrcweir RscId aRefId; // ReferenzName 39cdf0e10cSrcweir }; 40cdf0e10cSrcweir sal_uInt32 nSize; 41cdf0e10cSrcweir public: 42cdf0e10cSrcweir RscString( Atom nId, sal_uInt32 nTypId ); 43cdf0e10cSrcweir virtual RSCCLASS_TYPE GetClassType() const; 44cdf0e10cSrcweir SetRefClass(RscTop * pClass)45cdf0e10cSrcweir void SetRefClass( RscTop * pClass ) 46cdf0e10cSrcweir { 47cdf0e10cSrcweir pRefClass = pClass; 48cdf0e10cSrcweir }; 49cdf0e10cSrcweir RSCINST Create( RSCINST * pInst, const RSCINST & rDfltInst, sal_Bool ); 50cdf0e10cSrcweir // Der zulaessige Bereich wird gesetzt 51cdf0e10cSrcweir void Destroy( const RSCINST & rInst ); Size()52cdf0e10cSrcweir sal_uInt32 Size(){ return nSize; } SetToDefault(const RSCINST & rInst)53cdf0e10cSrcweir void SetToDefault( const RSCINST & rInst ) 54cdf0e10cSrcweir { 55cdf0e10cSrcweir ((RscStringInst*)rInst.pData)->bDflt = sal_True; 56cdf0e10cSrcweir } IsDefault(const RSCINST & rInst)57cdf0e10cSrcweir sal_Bool IsDefault( const RSCINST & rInst) 58cdf0e10cSrcweir { 59cdf0e10cSrcweir return( ((RscStringInst*)rInst.pData)->bDflt ); 60cdf0e10cSrcweir }; 61cdf0e10cSrcweir // Als Default setzen 62cdf0e10cSrcweir sal_Bool IsValueDefault( const RSCINST & rInst, CLASS_DATA pDef ); 63cdf0e10cSrcweir ERRTYPE SetString( const RSCINST &, const char * pStr ); 64cdf0e10cSrcweir ERRTYPE GetString( const RSCINST &, char ** ppStr ); 65cdf0e10cSrcweir ERRTYPE GetRef( const RSCINST & rInst, RscId * ); 66cdf0e10cSrcweir ERRTYPE SetRef( const RSCINST & rInst, const RscId & rRefId ); 67cdf0e10cSrcweir void WriteSrc( const RSCINST &, FILE * fOutput, 68cdf0e10cSrcweir RscTypCont * pTC, sal_uInt32 nTab, const char * ); 69cdf0e10cSrcweir ERRTYPE WriteRc( const RSCINST &, RscWriteRc & aMem, 70cdf0e10cSrcweir RscTypCont * pTC, sal_uInt32, sal_Bool bExtra ); 71cdf0e10cSrcweir virtual void WriteRcAccess( FILE * fOutput, RscTypCont * pTC, 72cdf0e10cSrcweir const char * ); 73cdf0e10cSrcweir }; 74cdf0e10cSrcweir 75cdf0e10cSrcweir #endif // _RSCSTR_HXX 76