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