xref: /aoo41x/main/sw/inc/poolfmt.hxx (revision cdf0e10c)
1 /*************************************************************************
2  *
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * Copyright 2000, 2010 Oracle and/or its affiliates.
6  *
7  * OpenOffice.org - a multi-platform office productivity suite
8  *
9  * This file is part of OpenOffice.org.
10  *
11  * OpenOffice.org is free software: you can redistribute it and/or modify
12  * it under the terms of the GNU Lesser General Public License version 3
13  * only, as published by the Free Software Foundation.
14  *
15  * OpenOffice.org is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU Lesser General Public License version 3 for more details
19  * (a copy is included in the LICENSE file that accompanied this code).
20  *
21  * You should have received a copy of the GNU Lesser General Public License
22  * version 3 along with OpenOffice.org.  If not, see
23  * <http://www.openoffice.org/license.html>
24  * for a copy of the LGPLv3 License.
25  *
26  ************************************************************************/
27 #ifndef _POOLFMT_HXX
28 #define _POOLFMT_HXX
29 
30 #include <limits.h>
31 #include <tools/solar.h>
32 #include <editeng/frmdir.hxx>
33 
34 // POOLCOLL-IDs:
35 // +----+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
36 // !User!    Bereich    ! 0 !               Offset                  !
37 // +----+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
38 //
39 //	Bereich:						1 - Text
40 //									2 - Listen
41 //									3 - Sonderbereiche
42 //									4 - Verzeichnisse
43 //									5 - Kapitel / Dokument
44 //									6 - HTML-Vorlagen
45 
46 // Andere IDs:
47 // +----+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
48 // !User!    Bereich    ! 1 !           Offset                      !
49 // +----+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
50 // Bereich:							0 - Zeichenvorlagen
51 //									1 - Frame-Vorlagen
52 //									2 - Seitenvorlagen
53 //									3 - Absatzformate (?)
54 //									4 - Grafikformate (?)
55 
56 // F�r alle IDs gilt:
57 // Herkunft:                 		0 -Pool
58 //									1 -Benutzer
59 // Offset:							innerhalb der Gruppe
60 
61 
62 // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
63 //
64 // ACHTUNG:	neue ID's koennen nur noch am Ende der jeweiligen Gruppe
65 //			zugefuegt werden. Diese Id's werden vom Reader/Writer ge-
66 //			lesen und geschrieben. Diese kennen nur den Offset zum Start
67 //
68 // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
69 
70 // Maske fuer Erkennung von COLLPOOL-Ids:
71 
72 const sal_uInt16 POOLGRP_NOCOLLID		=  (1 << 10);
73 
74 // POLLCOLL-Gruppen:
75 
76 const sal_uInt16 USER_FMT 				=  (1 << 15);
77 const sal_uInt16 POOL_FMT 				=  (0 << 15);
78 
79 const sal_uInt16 COLL_TEXT_BITS			=  (1 << 11);
80 const sal_uInt16 COLL_LISTS_BITS		=  (2 << 11);
81 const sal_uInt16 COLL_EXTRA_BITS		=  (3 << 11);
82 const sal_uInt16 COLL_REGISTER_BITS		=  (4 << 11);
83 const sal_uInt16 COLL_DOC_BITS 			=  (5 << 11);
84 const sal_uInt16 COLL_HTML_BITS 		=  (6 << 11);
85 const sal_uInt16 COLL_GET_RANGE_BITS    = (15 << 11);
86 
87 // Sonstige Gruppen:
88 
89 const sal_uInt16 POOLGRP_CHARFMT        = (0 << 11) + POOLGRP_NOCOLLID;
90 const sal_uInt16 POOLGRP_FRAMEFMT		= (1 << 11) + POOLGRP_NOCOLLID;
91 const sal_uInt16 POOLGRP_PAGEDESC		= (2 << 11) + POOLGRP_NOCOLLID;
92 const sal_uInt16 POOLGRP_NUMRULE		= (3 << 11) + POOLGRP_NOCOLLID;
93 //const sal_uInt16 POOLGRP_GRFFMT			= (4 << 11) + POOLGRP_NOCOLLID; // ?
94 
95 // fuer Erkennung ob Benutzer-Vorlage oder nicht:
96 const sal_uInt16 POOL_IDUSER_FMT =
97 		USHRT_MAX & ~(COLL_GET_RANGE_BITS + POOLGRP_NOCOLLID);
98 
99 inline sal_Bool IsPoolUserFmt( sal_uInt16 nId )
100 {
101 	return POOL_IDUSER_FMT ==
102 				(nId & ~(COLL_GET_RANGE_BITS + POOLGRP_NOCOLLID))
103 		? sal_True : sal_False;
104 }
105 
106 
107 // ID-s fuer die Bereiche
108 enum RES_POOLFMT
109 {
110 RES_POOLFMT_BEGIN = 1,	// HIER GEHT'S LOS !!!
111 RES_POOL_CHRFMT = RES_POOLFMT_BEGIN,
112 RES_POOL_FRMFMT,
113 RES_POOL_TXTCOLL,
114 RES_POOL_PAGEFMT,
115 
116 RES_POOL_PARFMT,	// ???
117 RES_POOL_GRFFMT, 	// ???
118 RES_POOLFMT_END
119 };
120 
121 // Bereiche fuer die Id's der einzelnen Formate
122 
123 // die Id's fuer die Zeichen-Vorlagen
124 enum RES_POOL_CHRFMT_TYPE
125 {
126 RES_POOLCHR_BEGIN = POOLGRP_CHARFMT,
127 RES_POOLCHR_NORMAL_BEGIN = POOLGRP_CHARFMT,
128 
129 RES_POOLCHR_FOOTNOTE = RES_POOLCHR_NORMAL_BEGIN,	// Fussnote
130 RES_POOLCHR_PAGENO,									// Seiten/Feld
131 RES_POOLCHR_LABEL,									// Beschriftung
132 RES_POOLCHR_DROPCAPS,								// Initialienzeichen
133 RES_POOLCHR_NUM_LEVEL,								// Nummerierungszeichen
134 RES_POOLCHR_BUL_LEVEL,								// Aufzaehlungszeichen
135 
136 RES_POOLCHR_INET_NORMAL,							// Internet normal
137 RES_POOLCHR_INET_VISIT,								// Internet besucht
138 RES_POOLCHR_JUMPEDIT,								// Platzhalter
139 RES_POOLCHR_TOXJUMP,								// Sprung aus Verzeichnis
140 RES_POOLCHR_ENDNOTE,                                // Endnote
141 RES_POOLCHR_LINENUM,								// Zeilennummerierung
142 RES_POOLCHR_IDX_MAIN_ENTRY,							// main entry in indexes
143 RES_POOLCHR_FOOTNOTE_ANCHOR,						// Fussnotenanker
144 RES_POOLCHR_ENDNOTE_ANCHOR,                         // Endnotenanker
145 RES_POOLCHR_RUBYTEXT,                         		// Rubytext
146 RES_POOLCHR_VERT_NUM,                               // Vertical numbering symbols
147 
148 RES_POOLCHR_NORMAL_END,
149 
150 RES_POOLCHR_HTML_BEGIN = RES_POOLCHR_BEGIN + 50,	// HTML-Vorlagen
151 RES_POOLCHR_HTML_EMPHASIS= RES_POOLCHR_HTML_BEGIN,
152 RES_POOLCHR_HTML_CITIATION,
153 RES_POOLCHR_HTML_STRONG,
154 RES_POOLCHR_HTML_CODE,
155 RES_POOLCHR_HTML_SAMPLE,
156 RES_POOLCHR_HTML_KEYBOARD,
157 RES_POOLCHR_HTML_VARIABLE,
158 RES_POOLCHR_HTML_DEFINSTANCE,
159 RES_POOLCHR_HTML_TELETYPE,
160 RES_POOLCHR_HTML_END,
161 
162 RES_POOLCHR_END = RES_POOLCHR_HTML_END
163 };
164 
165 
166 // die Id's fuer die Rahmen-Vorlagen
167 enum RES_POOL_FRMFMT_TYPE
168 {
169 RES_POOLFRM_BEGIN = POOLGRP_FRAMEFMT,
170 
171 RES_POOLFRM_FRAME = RES_POOLFRM_BEGIN,				// Rahmen
172 RES_POOLFRM_GRAPHIC,								// Graphic
173 RES_POOLFRM_OLE,									// OLE
174 RES_POOLFRM_FORMEL,									// Formeln
175 RES_POOLFRM_MARGINAL,								// Marginalen
176 RES_POOLFRM_WATERSIGN,								// Wasserzeichen
177 RES_POOLFRM_LABEL,									// Etikette
178 
179 RES_POOLFRM_END
180 };
181 
182 // die Id's fuer die Seiten-Vorlagen
183 enum RES_POOL_PAGEFMT_TYPE
184 {
185 RES_POOLPAGE_BEGIN = POOLGRP_PAGEDESC,
186 
187 RES_POOLPAGE_STANDARD = RES_POOLPAGE_BEGIN,			// Standard-Seite
188 RES_POOLPAGE_FIRST,									// Erste Seite
189 RES_POOLPAGE_LEFT,									// Linke Seite
190 RES_POOLPAGE_RIGHT,									// Rechte Seite
191 RES_POOLPAGE_JAKET,									// Umschlag
192 RES_POOLPAGE_REGISTER,								// Verzeichnis
193 RES_POOLPAGE_HTML,									// HTML
194 RES_POOLPAGE_FOOTNOTE,								// Fussnote bei Dokumentende
195 RES_POOLPAGE_ENDNOTE,								// Endnotensseite
196 RES_POOLPAGE_LANDSCAPE,                             // Landscape Page Style
197 
198 RES_POOLPAGE_END
199 };
200 
201 // die Id's fuer die NumRule-Vorlagen
202 enum RES_POOL_NUMRULE_TYPE
203 {
204 RES_POOLNUMRULE_BEGIN = POOLGRP_NUMRULE,
205 RES_POOLNUMRULE_NUM1 = RES_POOLNUMRULE_BEGIN,		// NumRule Numerierung 1
206 RES_POOLNUMRULE_NUM2,								// NumRule Numerierung 2
207 RES_POOLNUMRULE_NUM3,								// NumRule Numerierung 3
208 RES_POOLNUMRULE_NUM4,								// NumRule Numerierung 4
209 RES_POOLNUMRULE_NUM5,								// NumRule Numerierung 5
210 RES_POOLNUMRULE_BUL1,								// NumRule Bullets 1
211 RES_POOLNUMRULE_BUL2,								// NumRule Bullets 2
212 RES_POOLNUMRULE_BUL3,								// NumRule Bullets 3
213 RES_POOLNUMRULE_BUL4,								// NumRule Bullets 4
214 RES_POOLNUMRULE_BUL5,								// NumRule Bullets 5
215 RES_POOLNUMRULE_END
216 };
217 
218 // die Id's fuer die Absatz-Vorlagen
219 enum RES_POOL_COLLFMT_TYPE
220 {
221 // Gruppe Text
222 RES_POOLCOLL_TEXT_BEGIN = COLL_TEXT_BITS,
223 
224 RES_POOLCOLL_STANDARD = RES_POOLCOLL_TEXT_BEGIN, 		// Standard
225 RES_POOLCOLL_TEXT,										// Textkoerper
226 RES_POOLCOLL_TEXT_IDENT,								// Textkoerper Einzug
227 RES_POOLCOLL_TEXT_NEGIDENT,								// Textkoerper neg. Einzug
228 RES_POOLCOLL_TEXT_MOVE,									// Textkoerper Einrueckung
229 RES_POOLCOLL_GREETING,									// Grussformel
230 RES_POOLCOLL_SIGNATURE,									// Unterschrift
231 RES_POOLCOLL_CONFRONTATION,								// Gegenueberstellung
232 RES_POOLCOLL_MARGINAL,									// Marginalie
233 
234 	// Untergruppierung Ueberschriften
235 RES_POOLCOLL_HEADLINE_BASE,								// Basis-Ueberschrift
236 RES_POOLCOLL_HEADLINE1, 								// Ueberschrift 1
237 RES_POOLCOLL_HEADLINE2,									// Ueberschrift 2
238 RES_POOLCOLL_HEADLINE3,									// Ueberschrift 3
239 RES_POOLCOLL_HEADLINE4,									// Ueberschrift 4
240 RES_POOLCOLL_HEADLINE5,									// Ueberschrift 5
241 RES_POOLCOLL_HEADLINE6, 								// Ueberschrift 6
242 RES_POOLCOLL_HEADLINE7,									// Ueberschrift 7
243 RES_POOLCOLL_HEADLINE8,									// Ueberschrift 8
244 RES_POOLCOLL_HEADLINE9,									// Ueberschrift 9
245 RES_POOLCOLL_HEADLINE10,								// Ueberschrift 10
246 
247 RES_POOLCOLL_TEXT_END,
248 
249 
250 // Gruppe Listen
251 RES_POOLCOLL_LISTS_BEGIN = COLL_LISTS_BITS,
252 
253 RES_POOLCOLL_NUMBUL_BASE = RES_POOLCOLL_LISTS_BEGIN, 	// Basis-Liste
254 
255 	// Untergruppe Nummerierung
256 RES_POOLCOLL_NUM_LEVEL1S,							 	// Start Level1
257 RES_POOLCOLL_NUM_LEVEL1,								// 1. Level
258 RES_POOLCOLL_NUM_LEVEL1E,								// Ende Level1
259 RES_POOLCOLL_NUM_NONUM1,								// keine Nummerierung
260 RES_POOLCOLL_NUM_LEVEL2S,								// Start 2. Level
261 RES_POOLCOLL_NUM_LEVEL2,								// 2. Level
262 RES_POOLCOLL_NUM_LEVEL2E,								// Ende 2. Level
263 RES_POOLCOLL_NUM_NONUM2, 								// keine Nummerierung
264 RES_POOLCOLL_NUM_LEVEL3S,								// Start 3. Level
265 RES_POOLCOLL_NUM_LEVEL3,								// 3. Level
266 RES_POOLCOLL_NUM_LEVEL3E,								// Ende 3. Level
267 RES_POOLCOLL_NUM_NONUM3, 								// keine Nummerierung
268 RES_POOLCOLL_NUM_LEVEL4S,								// Start 4. Level
269 RES_POOLCOLL_NUM_LEVEL4,								// 4. Level
270 RES_POOLCOLL_NUM_LEVEL4E,								// Ende 4. Level
271 RES_POOLCOLL_NUM_NONUM4, 								// keine Nummerierung
272 RES_POOLCOLL_NUM_LEVEL5S,								// Start 5. Level
273 RES_POOLCOLL_NUM_LEVEL5,								// 5. Level
274 RES_POOLCOLL_NUM_LEVEL5E,								// Ende 5. Level
275 RES_POOLCOLL_NUM_NONUM5, 								// keine Nummerierung
276 
277 	// Untergruppe Aufzaehlung
278 RES_POOLCOLL_BUL_LEVEL1S,							 	// Start Level1
279 RES_POOLCOLL_BUL_LEVEL1,								// 1. Level
280 RES_POOLCOLL_BUL_LEVEL1E,								// Ende Level1
281 RES_POOLCOLL_BUL_NONUM1,								// keine Nummerierung
282 RES_POOLCOLL_BUL_LEVEL2S,								// Start 2. Level
283 RES_POOLCOLL_BUL_LEVEL2,								// 2. Level
284 RES_POOLCOLL_BUL_LEVEL2E,								// Ende 2. Level
285 RES_POOLCOLL_BUL_NONUM2, 								// keine Nummerierung
286 RES_POOLCOLL_BUL_LEVEL3S,								// Start 3. Level
287 RES_POOLCOLL_BUL_LEVEL3,								// 3. Level
288 RES_POOLCOLL_BUL_LEVEL3E,								// Ende 3. Level
289 RES_POOLCOLL_BUL_NONUM3, 								// keine Nummerierung
290 RES_POOLCOLL_BUL_LEVEL4S,								// Start 4. Level
291 RES_POOLCOLL_BUL_LEVEL4,								// 4. Level
292 RES_POOLCOLL_BUL_LEVEL4E,								// Ende 4. Level
293 RES_POOLCOLL_BUL_NONUM4, 								// keine Nummerierung
294 RES_POOLCOLL_BUL_LEVEL5S,								// Start 5. Level
295 RES_POOLCOLL_BUL_LEVEL5,								// 5. Level
296 RES_POOLCOLL_BUL_LEVEL5E,								// Ende 5. Level
297 RES_POOLCOLL_BUL_NONUM5, 								// keine Nummerierung
298 
299 RES_POOLCOLL_LISTS_END,
300 
301 
302 // Sonderbereiche
303 RES_POOLCOLL_EXTRA_BEGIN = COLL_EXTRA_BITS,
304 
305 	// Untergruppe Header
306 RES_POOLCOLL_HEADER = RES_POOLCOLL_EXTRA_BEGIN,	   		// Header Left&Right
307 RES_POOLCOLL_HEADERL,									// Header Left
308 RES_POOLCOLL_HEADERR,									// Header Right
309 
310 	// Untergruppe Footer
311 RES_POOLCOLL_FOOTER,									// Footer Left&Right
312 RES_POOLCOLL_FOOTERL,									// Footer Left
313 RES_POOLCOLL_FOOTERR,									// Footer Right
314 
315 	// Untergruppe Tabelle
316 RES_POOLCOLL_TABLE,										// Tabelle "Inhalt"
317 RES_POOLCOLL_TABLE_HDLN,								// Tabellen-Headline
318 
319 
320 	// Untergruppe Beschriftung
321 RES_POOLCOLL_LABEL,										// Beschriftung-Basis
322 RES_POOLCOLL_LABEL_ABB,	 								// Beschriftung-Abbildung
323 RES_POOLCOLL_LABEL_TABLE,								// Beschriftung-Tabelle
324 RES_POOLCOLL_LABEL_FRAME,								// Beschriftung-Rahmen
325 
326 	// sonstiges
327 RES_POOLCOLL_FRAME,										// Rahmen
328 RES_POOLCOLL_FOOTNOTE,									// Fussnoten
329 RES_POOLCOLL_JAKETADRESS,								// UmschlagAdresse
330 RES_POOLCOLL_SENDADRESS,								// AbsenderAdresse
331 RES_POOLCOLL_ENDNOTE,									// Endnoten
332 
333 RES_POOLCOLL_LABEL_DRAWING,								// Beschriftung-Zeichen-Objekte
334 RES_POOLCOLL_EXTRA_END,
335 
336 
337 // Gruppe Verzeichnisse
338 RES_POOLCOLL_REGISTER_BEGIN = COLL_REGISTER_BITS,
339 
340 RES_POOLCOLL_REGISTER_BASE = RES_POOLCOLL_REGISTER_BEGIN,	// Basis-Verzeichnis
341 
342 	// Untergruppe Index-Verzeichnisse
343 RES_POOLCOLL_TOX_IDXH,									// Header
344 RES_POOLCOLL_TOX_IDX1,									// 1. Ebene
345 RES_POOLCOLL_TOX_IDX2,									// 2. Ebene
346 RES_POOLCOLL_TOX_IDX3,									// 3. Ebene
347 RES_POOLCOLL_TOX_IDXBREAK, 								// Trenner
348 
349 	// Untergruppe Inhalts-Verzeichnisse
350 RES_POOLCOLL_TOX_CNTNTH,								// Header
351 RES_POOLCOLL_TOX_CNTNT1,								// 1. Ebene
352 RES_POOLCOLL_TOX_CNTNT2,								// 2. Ebene
353 RES_POOLCOLL_TOX_CNTNT3,								// 3. Ebene
354 RES_POOLCOLL_TOX_CNTNT4,								// 4. Ebene
355 RES_POOLCOLL_TOX_CNTNT5,								// 5. Ebene
356 
357 	// Untergruppe Benutzer-Verzeichnisse:
358 RES_POOLCOLL_TOX_USERH,									// Header
359 RES_POOLCOLL_TOX_USER1,									// 1. Ebene
360 RES_POOLCOLL_TOX_USER2,									// 2. Ebene
361 RES_POOLCOLL_TOX_USER3,									// 3. Ebene
362 RES_POOLCOLL_TOX_USER4,									// 4. Ebene
363 RES_POOLCOLL_TOX_USER5,									// 5. Ebene
364 
365 
366 RES_POOLCOLL_TOX_CNTNT6,								// Inhalt 6. Ebene
367 RES_POOLCOLL_TOX_CNTNT7,								// Inhalt 7. Ebene
368 RES_POOLCOLL_TOX_CNTNT8,								// Inhalt 8. Ebene
369 RES_POOLCOLL_TOX_CNTNT9,								// Inhalt 9. Ebene
370 RES_POOLCOLL_TOX_CNTNT10,								// Inhalt 10. Ebene
371 
372 // illustrations index
373 RES_POOLCOLL_TOX_ILLUSH,									// illustrations header
374 RES_POOLCOLL_TOX_ILLUS1,                                 // illustrations all levels
375 
376 //	object index
377 RES_POOLCOLL_TOX_OBJECTH,								// objects header
378 RES_POOLCOLL_TOX_OBJECT1,                                // objects all levels
379 
380 //	tables index
381 RES_POOLCOLL_TOX_TABLESH,								// tables header
382 RES_POOLCOLL_TOX_TABLES1,                                // tables all levels
383 
384 //	index of authorities
385 RES_POOLCOLL_TOX_AUTHORITIESH,							// authorities header
386 RES_POOLCOLL_TOX_AUTHORITIES1,                           // authorities all levels
387 
388 // user index 6..10
389 RES_POOLCOLL_TOX_USER6,									// level 6
390 RES_POOLCOLL_TOX_USER7,									// level 7
391 RES_POOLCOLL_TOX_USER8,									// level 8
392 RES_POOLCOLL_TOX_USER9,									// level 9
393 RES_POOLCOLL_TOX_USER10,								// level 10
394 
395 RES_POOLCOLL_REGISTER_END,
396 
397 
398 // Gruppe Kapitel/Dokument
399 RES_POOLCOLL_DOC_BEGIN = COLL_DOC_BITS,
400 
401 RES_POOLCOLL_DOC_TITEL = RES_POOLCOLL_DOC_BEGIN,   		// Doc. Titel
402 RES_POOLCOLL_DOC_SUBTITEL,						   		// Doc. UnterTitel
403 
404 RES_POOLCOLL_DOC_END,
405 
406 // Gruppe HTML-Vorlagen
407 RES_POOLCOLL_HTML_BEGIN = COLL_HTML_BITS,
408 
409 RES_POOLCOLL_HTML_BLOCKQUOTE = RES_POOLCOLL_HTML_BEGIN,
410 RES_POOLCOLL_HTML_PRE,
411 RES_POOLCOLL_HTML_HR,
412 RES_POOLCOLL_HTML_DD,
413 RES_POOLCOLL_HTML_DT,
414 
415 RES_POOLCOLL_HTML_END
416 
417 // Ende der Textformat-Vorlagen Sammlung
418 };
419 
420 
421 
422 // erfrage den definierten Parent zu einer POOL-Id
423 //	returnt: 	0			-> Standard
424 //				USHRT_MAX	-> kein Parent
425 //				sonst 		-> den Parent
426 sal_uInt16 GetPoolParent( sal_uInt16 nId );
427 
428 SvxFrameDirection GetDefaultFrameDirection(sal_uLong nLanguage);
429 
430 inline sal_Bool IsConditionalByPoolId(sal_uInt16 nId)
431 	{
432 		return RES_POOLCOLL_TEXT == nId;
433 	}
434 // die Id's fuer die Grafik-Formate
435 /*enum RES_POOL_GRFFMT_TYPE
436 {
437 RES_POOLGRF_BEGIN = RES_POOLPAR_END,
438 RES_POOLGRF_1 = RES_POOLGRF_BEGIN,
439 RES_POOLGRF_END
440 };
441 */
442 
443 #endif
444