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