xref: /aoo42x/main/svtools/inc/svtools/htmlout.hxx (revision 01aa44aa)
1*01aa44aaSAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3*01aa44aaSAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4*01aa44aaSAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5*01aa44aaSAndrew Rist  * distributed with this work for additional information
6*01aa44aaSAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7*01aa44aaSAndrew Rist  * to you under the Apache License, Version 2.0 (the
8*01aa44aaSAndrew Rist  * "License"); you may not use this file except in compliance
9*01aa44aaSAndrew Rist  * with the License.  You may obtain a copy of the License at
10*01aa44aaSAndrew Rist  *
11*01aa44aaSAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12*01aa44aaSAndrew Rist  *
13*01aa44aaSAndrew Rist  * Unless required by applicable law or agreed to in writing,
14*01aa44aaSAndrew Rist  * software distributed under the License is distributed on an
15*01aa44aaSAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*01aa44aaSAndrew Rist  * KIND, either express or implied.  See the License for the
17*01aa44aaSAndrew Rist  * specific language governing permissions and limitations
18*01aa44aaSAndrew Rist  * under the License.
19*01aa44aaSAndrew Rist  *
20*01aa44aaSAndrew Rist  *************************************************************/
21*01aa44aaSAndrew Rist 
22*01aa44aaSAndrew Rist 
23cdf0e10cSrcweir 
24cdf0e10cSrcweir #ifndef _HTMLOUT_HXX
25cdf0e10cSrcweir #define _HTMLOUT_HXX
26cdf0e10cSrcweir 
27cdf0e10cSrcweir #include "svtools/svtdllapi.h"
28cdf0e10cSrcweir #include <tools/solar.h>
29cdf0e10cSrcweir #include <rtl/textenc.h>
30cdf0e10cSrcweir #include <svl/macitem.hxx>
31cdf0e10cSrcweir 
32cdf0e10cSrcweir class Color;
33cdf0e10cSrcweir class ImageMap;
34cdf0e10cSrcweir class String;
35cdf0e10cSrcweir class SvStream;
36cdf0e10cSrcweir class SvxMacroTableDtor;
37cdf0e10cSrcweir class SvNumberFormatter;
38cdf0e10cSrcweir class SvDataObject;
39cdf0e10cSrcweir 
40cdf0e10cSrcweir struct HTMLOutEvent
41cdf0e10cSrcweir {
42cdf0e10cSrcweir 	const sal_Char *pBasicName;
43cdf0e10cSrcweir 	const sal_Char *pJavaName;
44cdf0e10cSrcweir 	sal_uInt16 nEvent;
45cdf0e10cSrcweir };
46cdf0e10cSrcweir 
47cdf0e10cSrcweir struct SVT_DLLPUBLIC HTMLOutContext
48cdf0e10cSrcweir {
49cdf0e10cSrcweir 	rtl_TextEncoding m_eDestEnc;
50cdf0e10cSrcweir 	rtl_TextToUnicodeConverter m_hConv;
51cdf0e10cSrcweir 	rtl_TextToUnicodeContext   m_hContext;
52cdf0e10cSrcweir 
53cdf0e10cSrcweir 	HTMLOutContext( rtl_TextEncoding eDestEnc );
54cdf0e10cSrcweir 	~HTMLOutContext();
55cdf0e10cSrcweir };
56cdf0e10cSrcweir 
57cdf0e10cSrcweir struct HTMLOutFuncs
58cdf0e10cSrcweir {
59cdf0e10cSrcweir #if defined(UNX)
60cdf0e10cSrcweir 	static const sal_Char sNewLine;		// nur \012 oder \015
61cdf0e10cSrcweir #else
62cdf0e10cSrcweir 	static const sal_Char __FAR_DATA sNewLine[];	// \015\012
63cdf0e10cSrcweir #endif
64cdf0e10cSrcweir 
65cdf0e10cSrcweir 	SVT_DLLPUBLIC static void ConvertStringToHTML( const String& sSrc, ByteString& rDest,
66cdf0e10cSrcweir 						rtl_TextEncoding eDestEnc = RTL_TEXTENCODING_MS_1252,
67cdf0e10cSrcweir 						String *pNonConvertableChars = 0);
68cdf0e10cSrcweir 
69cdf0e10cSrcweir 	SVT_DLLPUBLIC static SvStream& Out_AsciiTag( SvStream&, const sal_Char* pStr,
70cdf0e10cSrcweir 								   sal_Bool bOn = sal_True,
71cdf0e10cSrcweir 						rtl_TextEncoding eDestEnc = RTL_TEXTENCODING_MS_1252);
72cdf0e10cSrcweir 	SVT_DLLPUBLIC static SvStream& Out_Char( SvStream&, sal_Unicode cChar,
73cdf0e10cSrcweir 						HTMLOutContext& rContext,
74cdf0e10cSrcweir 						String *pNonConvertableChars = 0 );
75cdf0e10cSrcweir 	SVT_DLLPUBLIC static SvStream& Out_String( SvStream&, const String&,
76cdf0e10cSrcweir 						rtl_TextEncoding eDestEnc = RTL_TEXTENCODING_MS_1252,
77cdf0e10cSrcweir 						String *pNonConvertableChars = 0 );
78cdf0e10cSrcweir 	SVT_DLLPUBLIC static SvStream& Out_Hex( SvStream&, sal_uLong nHex, sal_uInt8 nLen,
79cdf0e10cSrcweir 						rtl_TextEncoding eDestEnc = RTL_TEXTENCODING_MS_1252 );
80cdf0e10cSrcweir 	SVT_DLLPUBLIC static SvStream& Out_Color( SvStream&, const Color&,
81cdf0e10cSrcweir 						rtl_TextEncoding eDestEnc = RTL_TEXTENCODING_MS_1252 );
82cdf0e10cSrcweir     SVT_DLLPUBLIC static SvStream& Out_ImageMap( SvStream&, const String&, const ImageMap&, const String&,
83cdf0e10cSrcweir 								   const HTMLOutEvent *pEventTable,
84cdf0e10cSrcweir 								   sal_Bool bOutStarBasic,
85cdf0e10cSrcweir 								   const sal_Char *pDelim = 0,
86cdf0e10cSrcweir 								   const sal_Char *pIndentArea = 0,
87cdf0e10cSrcweir 								   const sal_Char *pIndentMap = 0,
88cdf0e10cSrcweir 						rtl_TextEncoding eDestEnc = RTL_TEXTENCODING_MS_1252,
89cdf0e10cSrcweir 						String *pNonConvertableChars = 0 );
90cdf0e10cSrcweir 	SVT_DLLPUBLIC static SvStream& FlushToAscii( SvStream&, HTMLOutContext& rContext );
91cdf0e10cSrcweir 
92cdf0e10cSrcweir 	SVT_DLLPUBLIC static SvStream& OutScript( SvStream& rStrm,
93cdf0e10cSrcweir                                 const String& rBaseURL,
94cdf0e10cSrcweir 								const String& rSource,
95cdf0e10cSrcweir 								const String& rLanguage,
96cdf0e10cSrcweir 								ScriptType eScriptType,
97cdf0e10cSrcweir 								const String& rSrc,
98cdf0e10cSrcweir 								const String *pSBLibrary = 0,
99cdf0e10cSrcweir 								const String *pSBModule = 0,
100cdf0e10cSrcweir 						rtl_TextEncoding eDestEnc = RTL_TEXTENCODING_MS_1252,
101cdf0e10cSrcweir 						String *pNonConvertableChars = 0 );
102cdf0e10cSrcweir 
103cdf0e10cSrcweir 	// der 3. Parameter ist ein Array von HTMLOutEvents, das mit einem
104cdf0e10cSrcweir 	// nur aus 0 bestehen Eintrag terminiert ist.
105cdf0e10cSrcweir 	SVT_DLLPUBLIC static SvStream& Out_Events( SvStream&, const SvxMacroTableDtor&,
106cdf0e10cSrcweir 								 const HTMLOutEvent*, sal_Bool bOutStarBasic,
107cdf0e10cSrcweir 						rtl_TextEncoding eDestEnc = RTL_TEXTENCODING_MS_1252,
108cdf0e10cSrcweir 						String *pNonConvertableChars = 0 );
109cdf0e10cSrcweir 
110cdf0e10cSrcweir 	// <TD SDVAL="..." SDNUM="...">
111cdf0e10cSrcweir 	SVT_DLLPUBLIC static ByteString&	CreateTableDataOptionsValNum( ByteString& aStrTD,
112cdf0e10cSrcweir 				sal_Bool bValue, double fVal, sal_uLong nFormat,
113cdf0e10cSrcweir 				SvNumberFormatter& rFormatter,
114cdf0e10cSrcweir                 rtl_TextEncoding eDestEnc = RTL_TEXTENCODING_MS_1252,
115cdf0e10cSrcweir                 String *pNonConvertableChars = 0 );
116cdf0e10cSrcweir 
117cdf0e10cSrcweir 	SVT_DLLPUBLIC static sal_Bool PrivateURLToInternalImg( String& rURL );
118cdf0e10cSrcweir };
119cdf0e10cSrcweir 
120cdf0e10cSrcweir #endif
121cdf0e10cSrcweir 
122