bump product version to 5.0.4.1
[LibreOffice.git] / rsc / inc / rscrsc.hxx
blob5d982d2ff77a3141cb5c74890fc1417aaa0361ef
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
19 #ifndef INCLUDED_RSC_INC_RSCRSC_HXX
20 #define INCLUDED_RSC_INC_RSCRSC_HXX
22 #include <rscall.h>
23 #include <rscerror.h>
24 #include <rsctools.hxx>
26 #include <list>
28 class RscTypCont;
31 /****************** R s c C m d L i n e **********************************/
32 class RscCmdLine
34 void Init();
36 public:
38 RscStrList aInputList; // Liste der Quelldateien
39 OString aPath; // Liste der Pfade
40 RSCBYTEORDER_TYPE nByteOrder;
41 unsigned short nCommands; // Steuerbits
42 OString aOutputSrs; // Name der Srs-Ausgabedatei
43 OString aILDir;
45 struct OutputFile
47 OString aLangName; // language name
48 OString aOutputRc; // target file
49 OString aLangSearchPath; // language specific search path
50 ::std::list< OString > aSysSearchDirs; // paths to search for images
52 OutputFile() {}
55 std::list<OutputFile> m_aOutputFiles;
56 std::list< std::pair< OString, OString > > m_aReplacements;
58 RscCmdLine( int argc, char ** argv, RscError * pEH );
59 ~RscCmdLine();
61 OString substitutePaths( const OString& rIn );
63 /****************** R s c ************************************************/
65 struct WriteRcContext;
67 class RscCompiler
69 private:
70 void CreateResFile( const char * pRc );
72 static bool GetImageFilePath( const RscCmdLine::OutputFile& rOutputFile,
73 const WriteRcContext& rContext,
74 const OString& rBaseFileName,
75 OString& rImagePath,
76 FILE* pSysListFile );
77 void PreprocessSrsFile( const RscCmdLine::OutputFile& rOutputFile,
78 const WriteRcContext& rContext,
79 const OUString& rSrsInPath,
80 const OUString& rSrsOutPath );
82 public:
83 RscTypCont* pTC; // String und Id-Verwalter
84 RscCmdLine* pCL; // Kommandozeile
85 FILE * fListing; // Ausgabedatei fuer Listings
86 FILE * fExitFile; // bei Abbruch muss diese Datei geschlossen werden
88 RscCompiler( RscCmdLine *, RscTypCont * );
89 ~RscCompiler();
91 ERRTYPE Start();
93 // Include Statements lesen
94 ERRTYPE IncludeParser( sal_uLong lFileKey );
95 ERRTYPE ParseOneFile( sal_uLong lFileKey, const RscCmdLine::OutputFile* pOutputFile, const WriteRcContext* pContext );
96 ERRTYPE Link();
97 void EndCompile();
100 #endif // INCLUDED_RSC_INC_RSCRSC_HXX
102 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */