Branch data Line data Source code
1 : : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : : /*************************************************************************
3 : : *
4 : : * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 : : *
6 : : * Copyright 2000, 2010 Oracle and/or its affiliates.
7 : : *
8 : : * OpenOffice.org - a multi-platform office productivity suite
9 : : *
10 : : * This file is part of OpenOffice.org.
11 : : *
12 : : * OpenOffice.org is free software: you can redistribute it and/or modify
13 : : * it under the terms of the GNU Lesser General Public License version 3
14 : : * only, as published by the Free Software Foundation.
15 : : *
16 : : * OpenOffice.org is distributed in the hope that it will be useful,
17 : : * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 : : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 : : * GNU Lesser General Public License version 3 for more details
20 : : * (a copy is included in the LICENSE file that accompanied this code).
21 : : *
22 : : * You should have received a copy of the GNU Lesser General Public License
23 : : * version 3 along with OpenOffice.org. If not, see
24 : : * <http://www.openoffice.org/license.html>
25 : : * for a copy of the LGPLv3 License.
26 : : *
27 : : ************************************************************************/
28 : :
29 : : #ifndef _HTMLFLY_HXX
30 : : #define _HTMLFLY_HXX
31 : :
32 : : #include <tools/solar.h>
33 : : #include <o3tl/sorted_vector.hxx>
34 : :
35 : : class SdrObject;
36 : : class SwFrmFmt;
37 : : class SwNodeIndex;
38 : : class SwPosFlyFrm;
39 : :
40 : : // ACHTUNG: Die Werte dieses Enumgs gehen direkt in die
41 : : // Augabe Tabelle!!!
42 : : enum SwHTMLFrmType
43 : : {
44 : : HTML_FRMTYPE_TABLE,
45 : : HTML_FRMTYPE_TABLE_CAP,
46 : : HTML_FRMTYPE_MULTICOL,
47 : : HTML_FRMTYPE_EMPTY,
48 : : HTML_FRMTYPE_TEXT,
49 : : HTML_FRMTYPE_GRF,
50 : : HTML_FRMTYPE_PLUGIN,
51 : : HTML_FRMTYPE_APPLET,
52 : : HTML_FRMTYPE_IFRAME,
53 : : HTML_FRMTYPE_OLE,
54 : : HTML_FRMTYPE_MARQUEE,
55 : : HTML_FRMTYPE_CONTROL,
56 : : HTML_FRMTYPE_DRAW,
57 : : HTML_FRMTYPE_END
58 : : };
59 : :
60 : : #define HTML_OUT_TBLNODE 0x00
61 : : #define HTML_OUT_GRFNODE 0x01
62 : : #define HTML_OUT_OLENODE 0x02
63 : : #define HTML_OUT_DIV 0x03
64 : : #define HTML_OUT_MULTICOL 0x04
65 : : #define HTML_OUT_SPACER 0x05
66 : : #define HTML_OUT_CONTROL 0x06
67 : : #define HTML_OUT_AMARQUEE 0x07
68 : : #define HTML_OUT_MARQUEE 0x08
69 : : #define HTML_OUT_GRFFRM 0x09
70 : : #define HTML_OUT_OLEGRF 0x0a
71 : : #define HTML_OUT_SPAN 0x0b
72 : : #define HTML_OUT_MASK 0x0f
73 : :
74 : : #define HTML_POS_PREFIX 0x00
75 : : #define HTML_POS_BEFORE 0x10
76 : : #define HTML_POS_INSIDE 0x20
77 : : #define HTML_POS_ANY 0x30
78 : : #define HTML_POS_MASK 0x30
79 : :
80 : : #define HTML_CNTNR_NONE 0x00
81 : : #define HTML_CNTNR_SPAN 0x40
82 : : #define HTML_CNTNR_DIV 0x80
83 : : #define HTML_CNTNR_MASK 0xc0
84 : :
85 : :
86 : : const sal_uInt16 MAX_FRMTYPES = HTML_FRMTYPE_END;
87 : : const sal_uInt16 MAX_BROWSERS = 4;
88 : :
89 : : extern sal_uInt8 aHTMLOutFrmPageFlyTable[MAX_FRMTYPES][MAX_BROWSERS];
90 : : extern sal_uInt8 aHTMLOutFrmParaFrameTable[MAX_FRMTYPES][MAX_BROWSERS];
91 : : extern sal_uInt8 aHTMLOutFrmParaPrtAreaTable[MAX_FRMTYPES][MAX_BROWSERS];
92 : : extern sal_uInt8 aHTMLOutFrmParaOtherTable[MAX_FRMTYPES][MAX_BROWSERS];
93 : : extern sal_uInt8 aHTMLOutFrmAsCharTable[MAX_FRMTYPES][MAX_BROWSERS];
94 : :
95 : : class SwHTMLPosFlyFrm
96 : : {
97 : : const SwFrmFmt *pFrmFmt; // der Rahmen
98 : : const SdrObject *pSdrObject; // ggf. Sdr-Objekt
99 : : SwNodeIndex *pNdIdx; // Node-Index
100 : : sal_uInt32 nOrdNum; // Aus SwPosFlyFrm
101 : : xub_StrLen nCntntIdx; // seine Position im Content
102 : : sal_uInt8 nOutputMode; // Ausgabe-Infos
103 : :
104 : : public:
105 : :
106 : : SwHTMLPosFlyFrm( const SwPosFlyFrm& rPosFly,
107 : : const SdrObject *pSdrObj, sal_uInt8 nOutMode );
108 : :
109 : : bool operator==( const SwHTMLPosFlyFrm& ) const { return false; }
110 : : bool operator<( const SwHTMLPosFlyFrm& ) const;
111 : :
112 : 0 : const SwFrmFmt& GetFmt() const { return *pFrmFmt; }
113 : 0 : const SdrObject *GetSdrObject() const { return pSdrObject; }
114 : :
115 : 0 : const SwNodeIndex& GetNdIndex() const { return *pNdIdx; }
116 : :
117 : 0 : xub_StrLen GetCntntIndex() const { return nCntntIdx; }
118 : :
119 : 0 : sal_uInt8 GetOutMode() const { return nOutputMode; }
120 : :
121 : 0 : static sal_uInt8 GetOutFn( sal_uInt8 nMode ) { return nMode & HTML_OUT_MASK; }
122 : : static sal_uInt8 GetOutPos( sal_uInt8 nMode ) { return nMode & HTML_POS_MASK; }
123 : 0 : static sal_uInt8 GetOutCntnr( sal_uInt8 nMode ) { return nMode & HTML_CNTNR_MASK; }
124 : :
125 : 0 : sal_uInt8 GetOutFn() const { return nOutputMode & HTML_OUT_MASK; }
126 : 0 : sal_uInt8 GetOutPos() const { return nOutputMode & HTML_POS_MASK; }
127 : : sal_uInt8 GetOutCntnr() const { return nOutputMode & HTML_CNTNR_MASK; }
128 : : };
129 : :
130 : 0 : class SwHTMLPosFlyFrms
131 : : : public o3tl::sorted_vector<SwHTMLPosFlyFrm*,
132 : : o3tl::less_ptr_to<SwHTMLPosFlyFrm>,
133 : : o3tl::find_partialorder_ptrequals>
134 : : {};
135 : :
136 : : #endif
137 : :
138 : : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|