Add a comment to clarify what kind of inputs the class handles
[LibreOffice.git] / sw / source / filter / html / htmlflyt.cxx
blob58c807dc6103007f4023333a27487500cba559a1
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 .
20 #include "htmlfly.hxx"
21 #include <svtools/htmlcfg.hxx>
23 constexpr sal_uInt16 MAX_FRMTYPES = HTML_FRMTYPE_END;
24 constexpr sal_uInt16 MAX_BROWSERS = HTML_CFG_MAX + 1;
26 constexpr AllHtmlFlags aHTMLOutFramePageFlyTable[][MAX_BROWSERS] =
29 // text frame with table
30 { HtmlOut::Div, HtmlPosition::Prefix, HtmlContainerFlags::NONE }, // IE 4
31 { HtmlOut::Div, HtmlPosition::Prefix, HtmlContainerFlags::NONE }, // SW
32 { HtmlOut::Div, HtmlPosition::Prefix, HtmlContainerFlags::NONE } // Netscape 4!
35 // text frame with table and headline
36 { HtmlOut::Div, HtmlPosition::Prefix, HtmlContainerFlags::NONE }, // IE 4
37 { HtmlOut::Div, HtmlPosition::Prefix, HtmlContainerFlags::NONE }, // SW
38 { HtmlOut::Div, HtmlPosition::Prefix, HtmlContainerFlags::NONE } // Netscape 4
41 // column frame
42 { HtmlOut::GraphicFrame, HtmlPosition::Prefix, HtmlContainerFlags::NONE }, // IE 4
43 { HtmlOut::MultiCol, HtmlPosition::Prefix, HtmlContainerFlags::NONE }, // SW
44 { HtmlOut::MultiCol, HtmlPosition::Prefix, HtmlContainerFlags::Div } // Netscape 4
47 // empty text frame
48 { HtmlOut::Div, HtmlPosition::Prefix, HtmlContainerFlags::NONE }, // IE 4
49 { HtmlOut::Div, HtmlPosition::Prefix, HtmlContainerFlags::NONE }, // SW
50 { HtmlOut::Div, HtmlPosition::Prefix, HtmlContainerFlags::NONE } // Netscape 4
53 // other text frame
54 { HtmlOut::Div, HtmlPosition::Prefix, HtmlContainerFlags::NONE }, // IE 4
55 { HtmlOut::Div, HtmlPosition::Prefix, HtmlContainerFlags::NONE }, // SW
56 { HtmlOut::Div, HtmlPosition::Prefix, HtmlContainerFlags::NONE } // Netscape 4
59 // graphic node
60 { HtmlOut::GraphicNode, HtmlPosition::Prefix, HtmlContainerFlags::NONE }, // IE 4
61 { HtmlOut::GraphicNode, HtmlPosition::Prefix, HtmlContainerFlags::NONE }, // SW
62 { HtmlOut::GraphicNode, HtmlPosition::Prefix, HtmlContainerFlags::Span } // Netscape 4
65 // plug-in
66 { HtmlOut::OleNode, HtmlPosition::Prefix, HtmlContainerFlags::NONE }, // IE 4
67 { HtmlOut::OleNode, HtmlPosition::Prefix, HtmlContainerFlags::NONE }, // SW
68 { HtmlOut::OleNode, HtmlPosition::Prefix, HtmlContainerFlags::Span } // Netscape 4
71 // applet
72 { HtmlOut::OleNode, HtmlPosition::Prefix, HtmlContainerFlags::NONE }, // IE 4
73 { HtmlOut::OleNode, HtmlPosition::Prefix, HtmlContainerFlags::NONE }, // SW
74 { HtmlOut::OleNode, HtmlPosition::Prefix, HtmlContainerFlags::Span } // Netscape 4
77 // floating frame
78 { HtmlOut::OleNode, HtmlPosition::Prefix, HtmlContainerFlags::NONE }, // IE 4
79 { HtmlOut::OleNode, HtmlPosition::Prefix, HtmlContainerFlags::NONE }, // SW
80 { HtmlOut::OleGraphic, HtmlPosition::Prefix, HtmlContainerFlags::Span } // Netscape 4
83 // other OLE objects
84 { HtmlOut::OleGraphic, HtmlPosition::Prefix, HtmlContainerFlags::NONE }, // IE 4
85 { HtmlOut::OleGraphic, HtmlPosition::Prefix, HtmlContainerFlags::NONE }, // SW
86 { HtmlOut::OleGraphic, HtmlPosition::Prefix, HtmlContainerFlags::Span } // Netscape 4
89 // marquee
90 { HtmlOut::AMarquee, HtmlPosition::Prefix, HtmlContainerFlags::NONE }, // IE 4
91 { HtmlOut::AMarquee, HtmlPosition::Prefix, HtmlContainerFlags::NONE }, // SW
92 { HtmlOut::GraphicFrame, HtmlPosition::Prefix, HtmlContainerFlags::Span } // Netscape 4
95 // controls
96 { HtmlOut::Control, HtmlPosition::Prefix, HtmlContainerFlags::NONE }, // IE 4
97 { HtmlOut::Control, HtmlPosition::Prefix, HtmlContainerFlags::NONE }, // SW
98 // Netscape disables FROM at controls in absolute position span.
99 { HtmlOut::Control, HtmlPosition::Inside, HtmlContainerFlags::NONE } // Netscape 4
102 // other character objects
103 { HtmlOut::GraphicFrame, HtmlPosition::Prefix, HtmlContainerFlags::NONE }, // IE 4
104 { HtmlOut::GraphicFrame, HtmlPosition::Prefix, HtmlContainerFlags::NONE }, // SW
105 { HtmlOut::GraphicFrame, HtmlPosition::Prefix, HtmlContainerFlags::Span } // Netscape 4
109 const AllHtmlFlags & getHTMLOutFramePageFlyTable(SwHTMLFrameType eFrameType, sal_uInt16 nExportMode)
111 static_assert(std::size(aHTMLOutFramePageFlyTable) == MAX_FRMTYPES);
112 assert(eFrameType < HTML_FRMTYPE_END);
113 assert(nExportMode <= HTML_CFG_MAX);
115 return aHTMLOutFramePageFlyTable[eFrameType][nExportMode];
118 constexpr AllHtmlFlags aHTMLOutFrameParaFrameTable[][MAX_BROWSERS] =
121 // text frame with table
122 { HtmlOut::TableNode, HtmlPosition::Before, HtmlContainerFlags::NONE }, // IE 4
123 { HtmlOut::TableNode, HtmlPosition::Before, HtmlContainerFlags::NONE }, // SW
124 { HtmlOut::TableNode, HtmlPosition::Before, HtmlContainerFlags::NONE } // Netscape 4
127 // text frame with table and headline
128 { HtmlOut::Div, HtmlPosition::Before, HtmlContainerFlags::NONE }, // IE 4
129 { HtmlOut::Div, HtmlPosition::Before, HtmlContainerFlags::NONE }, // SW
130 { HtmlOut::TableNode, HtmlPosition::Before, HtmlContainerFlags::NONE } // Netscape 4
133 // column frame
134 { HtmlOut::GraphicFrame, HtmlPosition::Before, HtmlContainerFlags::NONE }, // IE 4
135 { HtmlOut::MultiCol, HtmlPosition::Before, HtmlContainerFlags::NONE }, // SW
136 { HtmlOut::MultiCol, HtmlPosition::Before, HtmlContainerFlags::Div } // Netscape 4
139 // empty text frame
140 { HtmlOut::Div, HtmlPosition::Before, HtmlContainerFlags::NONE }, // IE 4
141 { HtmlOut::Spacer, HtmlPosition::Before, HtmlContainerFlags::NONE }, // SW
142 { HtmlOut::Spacer, HtmlPosition::Before, HtmlContainerFlags::NONE } // Netscape 4
145 // other text frame
146 { HtmlOut::Div, HtmlPosition::Before, HtmlContainerFlags::NONE }, // IE 4
147 { HtmlOut::Div, HtmlPosition::Before, HtmlContainerFlags::NONE }, // SW
148 { HtmlOut::Div, HtmlPosition::Before, HtmlContainerFlags::NONE } // Netscape 4
151 // graphic node
152 { HtmlOut::GraphicNode, HtmlPosition::Before, HtmlContainerFlags::NONE }, // IE 4
153 { HtmlOut::GraphicNode, HtmlPosition::Before, HtmlContainerFlags::NONE }, // SW
154 { HtmlOut::GraphicNode, HtmlPosition::Before, HtmlContainerFlags::NONE } // Netscape 4
157 // plug-in
158 { HtmlOut::OleNode, HtmlPosition::Before, HtmlContainerFlags::NONE }, // IE 4
159 { HtmlOut::OleNode, HtmlPosition::Before, HtmlContainerFlags::NONE }, // SW
160 { HtmlOut::OleNode, HtmlPosition::Before, HtmlContainerFlags::NONE } // Netscape 4
163 // applet
164 { HtmlOut::OleNode, HtmlPosition::Before, HtmlContainerFlags::NONE }, // IE 4
165 { HtmlOut::OleNode, HtmlPosition::Before, HtmlContainerFlags::NONE }, // SW
166 { HtmlOut::OleNode, HtmlPosition::Before, HtmlContainerFlags::NONE } // Netscape 4
169 // floating frame
170 { HtmlOut::OleNode, HtmlPosition::Before, HtmlContainerFlags::NONE }, // IE 4
171 { HtmlOut::OleNode, HtmlPosition::Before, HtmlContainerFlags::NONE }, // SW
172 { HtmlOut::OleGraphic, HtmlPosition::Before, HtmlContainerFlags::NONE } // Netscape 4
175 // other OLE objects
176 { HtmlOut::OleGraphic, HtmlPosition::Before, HtmlContainerFlags::NONE }, // IE 4
177 { HtmlOut::OleGraphic, HtmlPosition::Before, HtmlContainerFlags::NONE }, // SW
178 { HtmlOut::OleGraphic, HtmlPosition::Before, HtmlContainerFlags::NONE } // Netscape 4
181 // marquee (for Netscape 4 in container, so that
182 // the marquee appears at the right spot)
183 { HtmlOut::AMarquee, HtmlPosition::Before, HtmlContainerFlags::NONE }, // IE 4
184 { HtmlOut::AMarquee, HtmlPosition::Before, HtmlContainerFlags::NONE }, // SW
185 { HtmlOut::GraphicFrame, HtmlPosition::Before, HtmlContainerFlags::NONE } // Netscape 4
188 // controls
189 { HtmlOut::Control, HtmlPosition::Before, HtmlContainerFlags::NONE }, // IE 4
190 { HtmlOut::Control, HtmlPosition::Before, HtmlContainerFlags::NONE }, // SW
191 // here you could make container out if it (import is missing)
192 { HtmlOut::Control, HtmlPosition::Before, HtmlContainerFlags::NONE } // Netscape 4
195 // other character objects
196 { HtmlOut::GraphicFrame, HtmlPosition::Before, HtmlContainerFlags::NONE }, // IE 4
197 { HtmlOut::GraphicFrame, HtmlPosition::Before, HtmlContainerFlags::NONE }, // SW
198 { HtmlOut::GraphicFrame, HtmlPosition::Before, HtmlContainerFlags::NONE } // Netscape 4
202 const AllHtmlFlags & getHTMLOutFrameParaFrameTable(SwHTMLFrameType eFrameType, sal_uInt16 nExportMode)
204 static_assert(std::size(aHTMLOutFrameParaFrameTable) == MAX_FRMTYPES);
205 assert(eFrameType < HTML_FRMTYPE_END);
206 assert(nExportMode <= HTML_CFG_MAX);
208 return aHTMLOutFrameParaFrameTable[eFrameType][nExportMode];
211 constexpr AllHtmlFlags aHTMLOutFrameParaPrtAreaTable[][MAX_BROWSERS] =
214 // text frame with table
215 { HtmlOut::TableNode, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // IE 4
216 { HtmlOut::TableNode, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // SW
217 { HtmlOut::TableNode, HtmlPosition::Inside, HtmlContainerFlags::NONE } // Netscape 4
220 // text frame with table and headline
221 { HtmlOut::Span, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // IE 4
222 { HtmlOut::Span, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // SW
223 { HtmlOut::Span, HtmlPosition::Inside, HtmlContainerFlags::NONE } // Netscape 4
226 // column frame
227 { HtmlOut::GraphicFrame, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // IE 4
228 { HtmlOut::MultiCol, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // SW
229 { HtmlOut::MultiCol, HtmlPosition::Inside, HtmlContainerFlags::Span } // Netscape 4
232 // empty text frame
233 { HtmlOut::Span, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // IE 4
234 { HtmlOut::Spacer, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // SW
235 { HtmlOut::Spacer, HtmlPosition::Inside, HtmlContainerFlags::NONE } // Netscape 4
238 // other text frame
239 { HtmlOut::Span, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // IE 4
240 { HtmlOut::Span, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // SW
241 { HtmlOut::Span, HtmlPosition::Inside, HtmlContainerFlags::NONE } // Netscape 4
244 // graphic node
245 { HtmlOut::GraphicNode, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // IE 4
246 { HtmlOut::GraphicNode, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // SW
247 { HtmlOut::GraphicNode, HtmlPosition::Inside, HtmlContainerFlags::NONE } // Netscape 4
250 // plug-in
251 { HtmlOut::OleNode, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // IE 4
252 { HtmlOut::OleNode, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // SW
253 { HtmlOut::OleNode, HtmlPosition::Inside, HtmlContainerFlags::NONE } // Netscape 4
256 // applet
257 { HtmlOut::OleNode, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // IE 4
258 { HtmlOut::OleNode, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // SW
259 { HtmlOut::OleNode, HtmlPosition::Inside, HtmlContainerFlags::NONE } // Netscape 4
262 // floating frame
263 { HtmlOut::OleNode, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // IE 4
264 { HtmlOut::OleNode, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // SW
265 { HtmlOut::OleGraphic, HtmlPosition::Inside, HtmlContainerFlags::NONE } // Netscape 4
268 // other OLE objects
269 { HtmlOut::OleGraphic, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // IE 4
270 { HtmlOut::OleGraphic, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // SW
271 { HtmlOut::OleGraphic, HtmlPosition::Inside, HtmlContainerFlags::NONE } // Netscape 4
274 // marquee
275 { HtmlOut::AMarquee, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // IE 4
276 { HtmlOut::AMarquee, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // SW
277 { HtmlOut::GraphicFrame, HtmlPosition::Inside, HtmlContainerFlags::NONE } // Netscape 4
280 // controls
281 { HtmlOut::Control, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // IE 4
282 { HtmlOut::Control, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // SW
283 // here you could make container out if it (import is missing)
284 { HtmlOut::Control, HtmlPosition::Inside, HtmlContainerFlags::NONE } // Netscape 4
287 // other character objects
288 { HtmlOut::GraphicFrame, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // IE 4
289 { HtmlOut::GraphicFrame, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // SW
290 { HtmlOut::GraphicFrame, HtmlPosition::Inside, HtmlContainerFlags::NONE } // Netscape 4
294 const AllHtmlFlags & getHTMLOutFrameParaPrtAreaTable(SwHTMLFrameType eFrameType, sal_uInt16 nExportMode)
296 static_assert(std::size(aHTMLOutFrameParaPrtAreaTable) == MAX_FRMTYPES);
297 assert(eFrameType < HTML_FRMTYPE_END);
298 assert(nExportMode <= HTML_CFG_MAX);
300 return aHTMLOutFrameParaPrtAreaTable[eFrameType][nExportMode];
303 constexpr AllHtmlFlags aHTMLOutFrameParaOtherTable[][MAX_BROWSERS] =
306 // text frame with table
307 { HtmlOut::Span, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // IE 4
308 { HtmlOut::Span, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // SW
309 { HtmlOut::Span, HtmlPosition::Inside, HtmlContainerFlags::NONE } // Netscape 4
312 // text frame with table and headline
313 { HtmlOut::Span, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // IE 4
314 { HtmlOut::Span, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // SW
315 { HtmlOut::Span, HtmlPosition::Inside, HtmlContainerFlags::NONE } // Netscape 4
318 // column frame
319 { HtmlOut::GraphicFrame, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // IE 4
320 { HtmlOut::MultiCol, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // SW
321 { HtmlOut::MultiCol, HtmlPosition::Inside, HtmlContainerFlags::Span } // Netscape 4
324 // empty text frame
325 { HtmlOut::Span, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // IE 4
326 { HtmlOut::Span, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // SW
327 { HtmlOut::Span, HtmlPosition::Inside, HtmlContainerFlags::NONE } // Netscape 4
330 // other text frame
331 { HtmlOut::Span, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // IE 4
332 { HtmlOut::Span, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // SW
333 { HtmlOut::Span, HtmlPosition::Inside, HtmlContainerFlags::NONE } // Netscape 4
336 // graphic node
337 { HtmlOut::GraphicNode, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // IE 4
338 { HtmlOut::GraphicNode, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // SW
339 { HtmlOut::GraphicNode, HtmlPosition::Inside, HtmlContainerFlags::Span } // Netscape 4
342 // plug-in
343 { HtmlOut::OleNode, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // IE 4
344 { HtmlOut::OleNode, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // SW
345 { HtmlOut::OleNode, HtmlPosition::Inside, HtmlContainerFlags::Span } // Netscape 4
348 // applet
349 { HtmlOut::OleNode, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // IE 4
350 { HtmlOut::OleNode, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // SW
351 { HtmlOut::OleNode, HtmlPosition::Inside, HtmlContainerFlags::Span } // Netscape 4
354 // floating frame
355 { HtmlOut::OleNode, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // IE 4
356 { HtmlOut::OleNode, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // SW
357 { HtmlOut::OleGraphic, HtmlPosition::Inside, HtmlContainerFlags::Span } // Netscape 4
360 // other OLE objects
361 { HtmlOut::OleGraphic, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // IE 4
362 { HtmlOut::OleGraphic, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // SW
363 { HtmlOut::OleGraphic, HtmlPosition::Inside, HtmlContainerFlags::Span } // Netscape 4
366 // marquee
367 { HtmlOut::AMarquee, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // IE 4
368 { HtmlOut::AMarquee, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // SW
369 { HtmlOut::GraphicFrame, HtmlPosition::Inside, HtmlContainerFlags::Span } // Netscape 4
372 // controls
373 { HtmlOut::Control, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // IE 4
374 { HtmlOut::Control, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // SW
375 // Netscape disables FROM at controls in absolute position span.
376 { HtmlOut::Control, HtmlPosition::Inside, HtmlContainerFlags::NONE } // Netscape 4
379 // other character objects
380 { HtmlOut::GraphicFrame, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // IE 4
381 { HtmlOut::GraphicFrame, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // SW
382 { HtmlOut::GraphicFrame, HtmlPosition::Inside, HtmlContainerFlags::Span } // Netscape 4
386 const AllHtmlFlags & getHTMLOutFrameParaOtherTable(SwHTMLFrameType eFrameType, sal_uInt16 nExportMode)
388 static_assert(std::size(aHTMLOutFrameParaOtherTable) == MAX_FRMTYPES);
389 assert(eFrameType < HTML_FRMTYPE_END);
390 assert(nExportMode <= HTML_CFG_MAX);
392 return aHTMLOutFrameParaOtherTable[eFrameType][nExportMode];
395 constexpr AllHtmlFlags aHTMLOutFrameAsCharTable[][MAX_BROWSERS] =
398 // text frame with table
399 { HtmlOut::GraphicFrame, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // IE 4
400 { HtmlOut::GraphicFrame, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // SW
401 { HtmlOut::GraphicFrame, HtmlPosition::Inside, HtmlContainerFlags::NONE } // Netscape 4
404 // text frame with table and headline
405 { HtmlOut::GraphicFrame, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // IE 4
406 { HtmlOut::GraphicFrame, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // SW
407 { HtmlOut::GraphicFrame, HtmlPosition::Inside, HtmlContainerFlags::NONE } // Netscape 4
410 // column frame
411 { HtmlOut::GraphicFrame, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // IE 4
412 { HtmlOut::MultiCol, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // SW
413 { HtmlOut::MultiCol, HtmlPosition::Inside, HtmlContainerFlags::NONE } // Netscape 4
416 // empty text frame
417 { HtmlOut::GraphicFrame, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // IE 4
418 { HtmlOut::Spacer, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // SW
419 { HtmlOut::Spacer, HtmlPosition::Inside, HtmlContainerFlags::NONE } // Netscape 4
422 // other text frame
423 { HtmlOut::GraphicFrame, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // IE 4
424 { HtmlOut::GraphicFrame, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // SW
425 { HtmlOut::GraphicFrame, HtmlPosition::Inside, HtmlContainerFlags::NONE } // Netscape 4
428 // graphic node
429 { HtmlOut::GraphicNode, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // IE 4
430 { HtmlOut::GraphicNode, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // SW
431 { HtmlOut::GraphicNode, HtmlPosition::Inside, HtmlContainerFlags::NONE } // Netscape 4
434 // plug-in
435 { HtmlOut::OleNode, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // IE 4
436 { HtmlOut::OleNode, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // SW
437 { HtmlOut::OleNode, HtmlPosition::Inside, HtmlContainerFlags::NONE } // Netscape 4
440 // applet
441 { HtmlOut::OleNode, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // IE 4
442 { HtmlOut::OleNode, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // SW
443 { HtmlOut::OleNode, HtmlPosition::Inside, HtmlContainerFlags::NONE } // Netscape 4
446 // floating frame
447 { HtmlOut::OleNode, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // IE 4
448 { HtmlOut::OleNode, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // SW
449 { HtmlOut::OleGraphic, HtmlPosition::Inside, HtmlContainerFlags::NONE } // Netscape 4
452 // other OLE objects
453 { HtmlOut::OleGraphic, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // IE 4
454 { HtmlOut::OleGraphic, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // SW
455 { HtmlOut::OleGraphic, HtmlPosition::Inside, HtmlContainerFlags::NONE } // Netscape 4
458 // marquee (can always exported as marquee, because
459 // the content shows up at the right spot
460 { HtmlOut::Marquee, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // IE 4
461 { HtmlOut::Marquee, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // SW
462 { HtmlOut::Marquee, HtmlPosition::Inside, HtmlContainerFlags::NONE } // Netscape 4
465 // controls
466 { HtmlOut::Control, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // IE 4
467 { HtmlOut::Control, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // SW
468 { HtmlOut::Control, HtmlPosition::Inside, HtmlContainerFlags::NONE } // Netscape 4
471 // other character objects
472 { HtmlOut::GraphicFrame, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // IE 4
473 { HtmlOut::GraphicFrame, HtmlPosition::Inside, HtmlContainerFlags::NONE }, // SW
474 { HtmlOut::GraphicFrame, HtmlPosition::Inside, HtmlContainerFlags::NONE } // Netscape 4
478 const AllHtmlFlags & getHTMLOutFrameAsCharTable(SwHTMLFrameType eFrameType, sal_uInt16 nExportMode)
480 static_assert(std::size(aHTMLOutFrameAsCharTable) == MAX_FRMTYPES);
481 assert(eFrameType < HTML_FRMTYPE_END);
482 assert(nExportMode <= HTML_CFG_MAX);
484 return aHTMLOutFrameAsCharTable[eFrameType][nExportMode];
487 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */