xref: /aoo4110/main/sw/source/filter/html/htmlfly.hxx (revision b1cdbd2c)
1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 
24 #ifndef _HTMLFLY_HXX
25 #define _HTMLFLY_HXX
26 
27 #include <tools/solar.h>
28 #include <tools/string.hxx>
29 
30 #ifndef _SVARRAY_H
31 #include <svl/svarray.hxx>
32 #endif
33 
34 class SdrObject;
35 class SwFrmFmt;
36 class SwNodeIndex;
37 class SwPosFlyFrm;
38 
39 // ACHTUNG: Die Werte dieses Enumgs gehen direkt in die
40 // Augabe Tabelle!!!
41 enum SwHTMLFrmType
42 {
43 	HTML_FRMTYPE_TABLE,
44 	HTML_FRMTYPE_TABLE_CAP,
45 	HTML_FRMTYPE_MULTICOL,
46 	HTML_FRMTYPE_EMPTY,
47 	HTML_FRMTYPE_TEXT,
48 	HTML_FRMTYPE_GRF,
49 	HTML_FRMTYPE_PLUGIN,
50 	HTML_FRMTYPE_APPLET,
51 	HTML_FRMTYPE_IFRAME,
52 	HTML_FRMTYPE_OLE,
53 	HTML_FRMTYPE_MARQUEE,
54 	HTML_FRMTYPE_CONTROL,
55 	HTML_FRMTYPE_DRAW,
56 	HTML_FRMTYPE_END
57 };
58 
59 #define HTML_OUT_TBLNODE 	0x00
60 #define HTML_OUT_GRFNODE	0x01
61 #define HTML_OUT_OLENODE	0x02
62 #define HTML_OUT_DIV		0x03
63 #define HTML_OUT_MULTICOL	0x04
64 #define HTML_OUT_SPACER		0x05
65 #define HTML_OUT_CONTROL	0x06
66 #define HTML_OUT_AMARQUEE	0x07
67 #define HTML_OUT_MARQUEE	0x08
68 #define HTML_OUT_GRFFRM		0x09
69 #define HTML_OUT_OLEGRF		0x0a
70 #define HTML_OUT_SPAN		0x0b
71 #define HTML_OUT_MASK		0x0f
72 
73 #define HTML_POS_PREFIX		0x00
74 #define HTML_POS_BEFORE		0x10
75 #define HTML_POS_INSIDE		0x20
76 #define HTML_POS_ANY		0x30
77 #define HTML_POS_MASK		0x30
78 
79 #define HTML_CNTNR_NONE		0x00
80 #define HTML_CNTNR_SPAN		0x40
81 #define HTML_CNTNR_DIV		0x80
82 #define HTML_CNTNR_MASK		0xc0
83 
84 
85 const sal_uInt16 MAX_FRMTYPES = HTML_FRMTYPE_END;
86 const sal_uInt16 MAX_BROWSERS = 4;
87 
88 extern sal_uInt8 aHTMLOutFrmPageFlyTable[MAX_FRMTYPES][MAX_BROWSERS];
89 extern sal_uInt8 aHTMLOutFrmParaFrameTable[MAX_FRMTYPES][MAX_BROWSERS];
90 extern sal_uInt8 aHTMLOutFrmParaPrtAreaTable[MAX_FRMTYPES][MAX_BROWSERS];
91 extern sal_uInt8 aHTMLOutFrmParaOtherTable[MAX_FRMTYPES][MAX_BROWSERS];
92 extern sal_uInt8 aHTMLOutFrmAsCharTable[MAX_FRMTYPES][MAX_BROWSERS];
93 
94 class SwHTMLPosFlyFrm
95 {
96 	const SwFrmFmt 		*pFrmFmt;		// der Rahmen
97 	const SdrObject		*pSdrObject;	// ggf. Sdr-Objekt
98 	SwNodeIndex 		*pNdIdx;		// Node-Index
99 	sal_uInt32 				nOrdNum;		// Aus SwPosFlyFrm
100 	xub_StrLen			nCntntIdx;		// seine Position im Content
101 	sal_uInt8				nOutputMode;	// Ausgabe-Infos
102 
103 public:
104 
105 	SwHTMLPosFlyFrm( const SwPosFlyFrm& rPosFly,
106 					 const SdrObject *pSdrObj, sal_uInt8 nOutMode );
107 
operator ==(const SwHTMLPosFlyFrm &) const108 	sal_Bool operator==( const SwHTMLPosFlyFrm& ) const { return sal_False; }
109 	sal_Bool operator<( const SwHTMLPosFlyFrm& ) const;
110 
GetFmt() const111 	const SwFrmFmt& GetFmt() const { return *pFrmFmt; }
GetSdrObject() const112 	const SdrObject *GetSdrObject() const { return pSdrObject; }
113 
GetNdIndex() const114 	const SwNodeIndex& GetNdIndex() const { return *pNdIdx; }
115 
GetCntntIndex() const116 	xub_StrLen GetCntntIndex() const 	{ return nCntntIdx; }
117 
GetOutMode() const118 	sal_uInt8 GetOutMode() const { return nOutputMode; }
119 
GetOutFn(sal_uInt8 nMode)120 	static sal_uInt8 GetOutFn( sal_uInt8 nMode ) { return nMode & HTML_OUT_MASK; }
GetOutPos(sal_uInt8 nMode)121 	static sal_uInt8 GetOutPos( sal_uInt8 nMode ) { return nMode & HTML_POS_MASK; }
GetOutCntnr(sal_uInt8 nMode)122 	static sal_uInt8 GetOutCntnr( sal_uInt8 nMode ) { return nMode & HTML_CNTNR_MASK; }
123 
GetOutFn() const124 	sal_uInt8 GetOutFn() const { return nOutputMode & HTML_OUT_MASK; }
GetOutPos() const125 	sal_uInt8 GetOutPos() const { return nOutputMode & HTML_POS_MASK; }
GetOutCntnr() const126 	sal_uInt8 GetOutCntnr() const { return nOutputMode & HTML_CNTNR_MASK; }
127 };
128 
129 typedef SwHTMLPosFlyFrm *SwHTMLPosFlyFrmPtr;
130 SV_DECL_PTRARR_SORT( SwHTMLPosFlyFrms, SwHTMLPosFlyFrmPtr, 10, 10 )
131 
132 
133 #endif
134