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