diff options
Diffstat (limited to 'sw/inc/hintids.hxx')
-rw-r--r-- | sw/inc/hintids.hxx | 582 |
1 files changed, 582 insertions, 0 deletions
diff --git a/sw/inc/hintids.hxx b/sw/inc/hintids.hxx new file mode 100644 index 000000000..f8b05e9a0 --- /dev/null +++ b/sw/inc/hintids.hxx @@ -0,0 +1,582 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef INCLUDED_SW_INC_HINTIDS_HXX +#define INCLUDED_SW_INC_HINTIDS_HXX + +#include <sal/types.h> +#include <svx/xdef.hxx> +#include "swdllapi.h" +#include <svl/typedwhich.hxx> +#include <vector> + +class SfxStringItem; +class SwFormatChg; +class SwUpdateAttr; +class SwAttrSetChg; +class SwDocPosUpdate; +class SwFormatMeta; +class SvXMLAttrContainerItem; +class SwMsgPoolItem; +class SwPtrMsgPoolItem; +class SfxBoolItem; +class SvxColorItem; +class SvxLRSpaceItem; +class SdrTextVertAdjustItem; +class SfxGrabBagItem; +class SfxInt16Item; +class SfxUInt16Item; +class SvxAdjustItem; +class SvxAutoKernItem; +class SvxBlinkItem; +class SvxBoxItem; +class SvxBrushItem; +class SvxCaseMapItem; +class SvxCharHiddenItem; +class SvxCharReliefItem; +class SvxCharRotateItem; +class SvxCharScaleWidthItem; +class SvxContourItem; +class SvxCrossedOutItem; +class SvxEmphasisMarkItem; +class SvxEscapementItem; +class SvxFontHeightItem; +class SvxFontItem; +class SvxForbiddenRuleItem; +class SvxFormatBreakItem; +class SvxFormatKeepItem; +class SvxFormatSplitItem; +class SvxFrameDirectionItem; +class SvxHangingPunctuationItem; +class SvxHyphenZoneItem; +class SvxKerningItem; +class SvxLanguageItem; +class SvxLineSpacingItem; +class SvxNoHyphenItem; +class SvxOpaqueItem; +class SvxOrphansItem; +class SvxOverlineItem; +class SvxPaperBinItem; +class SvxParaGridItem; +class SvxParaVertAlignItem; +class SvxPostureItem; +class SvxPrintItem; +class SvxProtectItem; +class SvxRsidItem; +class SvxScriptSpaceItem; +class SvxShadowedItem; +class SvxShadowItem; +class SvxTabStopItem; +class SvxTwoLinesItem; +class SvxULSpaceItem; +class SvxUnderlineItem; +class SvxWeightItem; +class SvxWidowsItem; +class SvxWordLineModeItem; +class SwChannelBGrf; +class SwChannelGGrf; +class SwChannelRGrf; +class SwContrastGrf; +class SwCropGrf; +class SwDrawModeGrf; +class SwFormatAnchor; +class SwFormatAutoFormat; +class SwFormatChain; +class SwFormatCharFormat; +class SwFormatCol; +class SwFormatDrop; +class SwFormatEditInReadonly; +class SwFormatEndAtTextEnd; +class SwFormatFlyCnt; +class SwFormatFollowTextFlow; +class SwFormatFootnoteAtTextEnd; +class SwFormatFrameSize; +class SwFormatHoriOrient; +class SwFormatINetFormat; +class SwFormatLayoutSplit; +class SwFormatLineNumber; +class SwFormatNoBalancedColumns; +class SwFormatPageDesc; +class SwFormatRowSplit; +class SwFormatSurround; +class SwFormatURL; +class SwFormatVertOrient; +class SwFormatWrapInfluenceOnObjPos; +class SwGammaGrf; +class SwHeaderAndFooterEatSpacingItem; +class SwInvertGrf; +class SwLuminanceGrf; +class SwMirrorGrf; +class SwNumRuleItem; +class SwParaConnectBorderItem; +class SwRegisterItem; +class SwRotationGrf; +class SwTableBoxNumFormat; +class SwTextGridItem; +class SwTransparencyGrf; +class SwFormatRuby; +class SwInsText; +class SwDelChr; +class SwDelText; +class SwRefMarkFieldUpdate; +class SwTableFormulaUpdate; +class SwAutoFormatGetDocNode; +class SwCondCollCondChg; +class SwVirtPageNumInfo; +class SwFindNearestNode; +class SwStringMsgPoolItem; +class SwFltAnchor; +class SwFltTOX; +class SwFltRedline; +class SwFltRDFMark; +class SwCharFormat; +class SwConditionTextFormatColl; +class SwDrawFrameFormat; +class SwFlyFrameFormat; +class SwFormatField; +class SwFormatFootnote; +class SwFormatRefMark; +class SwGrfFormatColl; +class SwTextFormatColl; +class SwTOXMark; +class CntUInt16Item; +class SwFormatFillOrder; +class SwFormatHeader; +class SwFormatFooter; +class SwFormatContent; +class SvxMacroItem; +class SwTableBoxFormula; +class SwTableBoxValue; +class SwFrameFormat; +class SfxVoidItem; + +// For SwTextHints without end index the following char is added: + +#define CH_TXTATR_BREAKWORD u'\x0001' +#define CH_TXTATR_INWORD u'\xFFF9' +#define CH_TXTATR_TAB u'\t' +#define CH_TXTATR_NEWLINE u'\n' +#define CH_TXT_ATR_INPUTFIELDSTART u'\x0004' +#define CH_TXT_ATR_INPUTFIELDEND u'\x0005' + +#define CH_TXT_ATR_FORMELEMENT u'\x0006' + +#define CH_TXT_ATR_FIELDSTART u'\x0007' +#define CH_TXT_ATR_FIELDSEP u'\x0003' +#define CH_TXT_ATR_FIELDEND u'\x0008' +#define CH_TXT_ATR_SUBST_FIELDSTART ("[") +#define CH_TXT_ATR_SUBST_FIELDEND ("]") + +/* + * Enums for the hints + */ + +constexpr sal_uInt16 HINT_BEGIN = 1; + +constexpr sal_uInt16 POOLATTR_BEGIN(HINT_BEGIN); + +// Ranges for the IDs of the format-attributes. +// Which-values for character-format attributes. +constexpr sal_uInt16 RES_CHRATR_BEGIN(HINT_BEGIN); +constexpr TypedWhichId<SvxCaseMapItem> RES_CHRATR_CASEMAP (RES_CHRATR_BEGIN); // 1 +constexpr TypedWhichId<SvxColorItem> RES_CHRATR_CHARSETCOLOR (2); +constexpr TypedWhichId<SvxColorItem> RES_CHRATR_COLOR (3); +constexpr TypedWhichId<SvxContourItem> RES_CHRATR_CONTOUR (4); +constexpr TypedWhichId<SvxCrossedOutItem> RES_CHRATR_CROSSEDOUT (5); +constexpr TypedWhichId<SvxEscapementItem> RES_CHRATR_ESCAPEMENT (6); +constexpr TypedWhichId<SvxFontItem> RES_CHRATR_FONT (7); +constexpr TypedWhichId<SvxFontHeightItem> RES_CHRATR_FONTSIZE (8); +constexpr TypedWhichId<SvxKerningItem> RES_CHRATR_KERNING (9); +constexpr TypedWhichId<SvxLanguageItem> RES_CHRATR_LANGUAGE (10); +constexpr TypedWhichId<SvxPostureItem> RES_CHRATR_POSTURE (11); +constexpr TypedWhichId<SfxVoidItem> RES_CHRATR_UNUSED1 (12); +constexpr TypedWhichId<SvxShadowedItem> RES_CHRATR_SHADOWED (13); +constexpr TypedWhichId<SvxUnderlineItem> RES_CHRATR_UNDERLINE (14); +constexpr TypedWhichId<SvxWeightItem> RES_CHRATR_WEIGHT (15); +constexpr TypedWhichId<SvxWordLineModeItem> RES_CHRATR_WORDLINEMODE (16); +constexpr TypedWhichId<SvxAutoKernItem> RES_CHRATR_AUTOKERN (17); +constexpr TypedWhichId<SvxBlinkItem> RES_CHRATR_BLINK (18); +constexpr TypedWhichId<SvxNoHyphenItem> RES_CHRATR_NOHYPHEN (19); +constexpr TypedWhichId<SfxVoidItem> RES_CHRATR_UNUSED2 (20); +constexpr TypedWhichId<SvxBrushItem> RES_CHRATR_BACKGROUND (21); +constexpr TypedWhichId<SvxFontItem> RES_CHRATR_CJK_FONT (22); +constexpr TypedWhichId<SvxFontHeightItem> RES_CHRATR_CJK_FONTSIZE (23); +constexpr TypedWhichId<SvxLanguageItem> RES_CHRATR_CJK_LANGUAGE (24); +constexpr TypedWhichId<SvxPostureItem> RES_CHRATR_CJK_POSTURE (25); +constexpr TypedWhichId<SvxWeightItem> RES_CHRATR_CJK_WEIGHT (26); +constexpr TypedWhichId<SvxFontItem> RES_CHRATR_CTL_FONT (27); +constexpr TypedWhichId<SvxFontHeightItem> RES_CHRATR_CTL_FONTSIZE (28); +constexpr TypedWhichId<SvxLanguageItem> RES_CHRATR_CTL_LANGUAGE (29); +constexpr TypedWhichId<SvxPostureItem> RES_CHRATR_CTL_POSTURE (30); +constexpr TypedWhichId<SvxWeightItem> RES_CHRATR_CTL_WEIGHT (31); +constexpr TypedWhichId<SvxCharRotateItem> RES_CHRATR_ROTATE (32); +constexpr TypedWhichId<SvxEmphasisMarkItem> RES_CHRATR_EMPHASIS_MARK (33); +constexpr TypedWhichId<SvxTwoLinesItem> RES_CHRATR_TWO_LINES (34); +constexpr TypedWhichId<SvxCharScaleWidthItem> RES_CHRATR_SCALEW (35); +constexpr TypedWhichId<SvxCharReliefItem> RES_CHRATR_RELIEF (36); +constexpr TypedWhichId<SvxCharHiddenItem> RES_CHRATR_HIDDEN (37); +constexpr TypedWhichId<SvxOverlineItem> RES_CHRATR_OVERLINE (38); +constexpr TypedWhichId<SvxRsidItem> RES_CHRATR_RSID (39); +constexpr TypedWhichId<SvxBoxItem> RES_CHRATR_BOX (40); +constexpr TypedWhichId<SvxShadowItem> RES_CHRATR_SHADOW (41); +constexpr TypedWhichId<SvxBrushItem> RES_CHRATR_HIGHLIGHT (42); +constexpr TypedWhichId<SfxGrabBagItem> RES_CHRATR_GRABBAG (43); +constexpr TypedWhichId<SfxInt16Item> RES_CHRATR_BIDIRTL (44); +constexpr TypedWhichId<SfxInt16Item> RES_CHRATR_IDCTHINT (45); +constexpr sal_uInt16 RES_CHRATR_END(46); + +// this Attribute used only in a TextNodes SwpAttr-Array +constexpr sal_uInt16 RES_TXTATR_BEGIN(RES_CHRATR_END); + +/** text attributes with start and end. + #i105453#: + Hints (SwTextAttr) with the same start and end position are sorted by + WhichId, i.e., the TXTATR constants defined here. + The text formatting (SwAttrIter) poses some requirements on TXTATR order: + - AUTOFMT must precede CHARFMT, so that auto style can overwrite char style. + - INETFMT must precede CHARFMT, so that link style can overwrite char style. + (this is actually surprising: CHARFMT hints are not split at INETFMT + hints on insertion, but on exporting to ODF. if CHARFMT would precede + INETFMT, then exporting and importing will effectively change precedence) + + Nesting hints (SwTextAttrNesting) also have requirements on TXTATR order, + to ensure proper nesting (because CJK_RUBY and INETFMT have no CH_TXTATR): + - INETFMT should precede CJK_RUBY (for UNO API it does not matter...) + - META and METAFIELD must precede CJK_RUBY and INETFMT + */ +constexpr sal_uInt16 RES_TXTATR_WITHEND_BEGIN(RES_TXTATR_BEGIN); +constexpr TypedWhichId<SwFormatRefMark> RES_TXTATR_REFMARK (RES_TXTATR_WITHEND_BEGIN); // 46 +constexpr TypedWhichId<SwTOXMark> RES_TXTATR_TOXMARK (47); +constexpr TypedWhichId<SwFormatMeta> RES_TXTATR_META (48); +constexpr TypedWhichId<SwFormatMeta> RES_TXTATR_METAFIELD (49); +constexpr TypedWhichId<SwFormatAutoFormat> RES_TXTATR_AUTOFMT (50); +constexpr TypedWhichId<SwFormatINetFormat> RES_TXTATR_INETFMT (51); +constexpr TypedWhichId<SwFormatCharFormat> RES_TXTATR_CHARFMT (52); +constexpr TypedWhichId<SwFormatRuby> RES_TXTATR_CJK_RUBY (53); +constexpr TypedWhichId<SvXMLAttrContainerItem> RES_TXTATR_UNKNOWN_CONTAINER (54); +constexpr TypedWhichId<SwFormatField> RES_TXTATR_INPUTFIELD (55); +constexpr sal_uInt16 RES_TXTATR_WITHEND_END(56); + +// all TextAttributes without an end +constexpr sal_uInt16 RES_TXTATR_NOEND_BEGIN(RES_TXTATR_WITHEND_END); +constexpr TypedWhichId<SwFormatField> RES_TXTATR_FIELD (RES_TXTATR_NOEND_BEGIN); // 56 +constexpr TypedWhichId<SwFormatFlyCnt> RES_TXTATR_FLYCNT (57); +constexpr TypedWhichId<SwFormatFootnote> RES_TXTATR_FTN (58); +constexpr TypedWhichId<SwFormatField> RES_TXTATR_ANNOTATION (59); +constexpr TypedWhichId<SfxBoolItem> RES_TXTATR_DUMMY3 (60); +constexpr TypedWhichId<SfxBoolItem> RES_TXTATR_DUMMY1 (61); +constexpr TypedWhichId<SfxBoolItem> RES_TXTATR_DUMMY2 (62); +constexpr sal_uInt16 RES_TXTATR_NOEND_END(63); +constexpr sal_uInt16 RES_TXTATR_END(RES_TXTATR_NOEND_END); + +constexpr sal_uInt16 RES_PARATR_BEGIN(RES_TXTATR_END); +constexpr TypedWhichId<SvxLineSpacingItem> RES_PARATR_LINESPACING (RES_PARATR_BEGIN); // 63 +constexpr TypedWhichId<SvxAdjustItem> RES_PARATR_ADJUST (64); +constexpr TypedWhichId<SvxFormatSplitItem> RES_PARATR_SPLIT (65); +constexpr TypedWhichId<SvxOrphansItem> RES_PARATR_ORPHANS (66); +constexpr TypedWhichId<SvxWidowsItem> RES_PARATR_WIDOWS (67); +constexpr TypedWhichId<SvxTabStopItem> RES_PARATR_TABSTOP (68); +constexpr TypedWhichId<SvxHyphenZoneItem> RES_PARATR_HYPHENZONE (69); +constexpr TypedWhichId<SwFormatDrop> RES_PARATR_DROP (70); +constexpr TypedWhichId<SwRegisterItem> RES_PARATR_REGISTER (71); +constexpr TypedWhichId<SwNumRuleItem> RES_PARATR_NUMRULE (72); +constexpr TypedWhichId<SvxScriptSpaceItem> RES_PARATR_SCRIPTSPACE (73); +constexpr TypedWhichId<SvxHangingPunctuationItem> RES_PARATR_HANGINGPUNCTUATION (74); +constexpr TypedWhichId<SvxForbiddenRuleItem> RES_PARATR_FORBIDDEN_RULES (75); +constexpr TypedWhichId<SvxParaVertAlignItem> RES_PARATR_VERTALIGN (76); +constexpr TypedWhichId<SvxParaGridItem> RES_PARATR_SNAPTOGRID (77); +constexpr TypedWhichId<SwParaConnectBorderItem> RES_PARATR_CONNECT_BORDER (78); +constexpr TypedWhichId<SfxUInt16Item> RES_PARATR_OUTLINELEVEL (79); +constexpr TypedWhichId<SvxRsidItem> RES_PARATR_RSID (80); +constexpr TypedWhichId<SfxGrabBagItem> RES_PARATR_GRABBAG (81); +constexpr sal_uInt16 RES_PARATR_END(82); + +// list attributes for paragraphs. +// intentionally these list attributes are not contained in paragraph styles +constexpr sal_uInt16 RES_PARATR_LIST_BEGIN(RES_PARATR_END); +constexpr TypedWhichId<SfxStringItem> RES_PARATR_LIST_ID (RES_PARATR_LIST_BEGIN); // 82 +constexpr TypedWhichId<SfxInt16Item> RES_PARATR_LIST_LEVEL (83); +constexpr TypedWhichId<SfxBoolItem> RES_PARATR_LIST_ISRESTART (84); +constexpr TypedWhichId<SfxInt16Item> RES_PARATR_LIST_RESTARTVALUE (85); +constexpr TypedWhichId<SfxBoolItem> RES_PARATR_LIST_ISCOUNTED (86); +constexpr TypedWhichId<SwFormatAutoFormat> RES_PARATR_LIST_AUTOFMT (87);//TypedWhichId<SfxSetItem>(87) +constexpr sal_uInt16 RES_PARATR_LIST_END(88); + +constexpr sal_uInt16 RES_FRMATR_BEGIN(RES_PARATR_LIST_END); +constexpr TypedWhichId<SwFormatFillOrder> RES_FILL_ORDER (RES_FRMATR_BEGIN); +constexpr TypedWhichId<SwFormatFrameSize> RES_FRM_SIZE (89); +constexpr TypedWhichId<SvxPaperBinItem> RES_PAPER_BIN (90); +constexpr TypedWhichId<SvxLRSpaceItem> RES_LR_SPACE (91); +constexpr TypedWhichId<SvxULSpaceItem> RES_UL_SPACE (92); +constexpr TypedWhichId<SwFormatPageDesc> RES_PAGEDESC (93); +constexpr TypedWhichId<SvxFormatBreakItem> RES_BREAK (94); +constexpr TypedWhichId<SwFormatContent> RES_CNTNT (95); +constexpr TypedWhichId<SwFormatHeader> RES_HEADER (96); +constexpr TypedWhichId<SwFormatFooter> RES_FOOTER (97); +constexpr TypedWhichId<SvxPrintItem> RES_PRINT (98); +constexpr TypedWhichId<SvxOpaqueItem> RES_OPAQUE (99); +constexpr TypedWhichId<SvxProtectItem> RES_PROTECT (100); +constexpr TypedWhichId<SwFormatSurround> RES_SURROUND (101); +constexpr TypedWhichId<SwFormatVertOrient> RES_VERT_ORIENT (102); +constexpr TypedWhichId<SwFormatHoriOrient> RES_HORI_ORIENT (103); +constexpr TypedWhichId<SwFormatAnchor> RES_ANCHOR (104); +constexpr TypedWhichId<SvxBrushItem> RES_BACKGROUND (105); +constexpr TypedWhichId<SvxBoxItem> RES_BOX (106); +constexpr TypedWhichId<SvxShadowItem> RES_SHADOW (107); +constexpr TypedWhichId<SvxMacroItem> RES_FRMMACRO (108); +constexpr TypedWhichId<SwFormatCol> RES_COL (109); +constexpr TypedWhichId<SvxFormatKeepItem> RES_KEEP (110); +constexpr TypedWhichId<SwFormatURL> RES_URL (111); +constexpr TypedWhichId<SwFormatEditInReadonly> RES_EDIT_IN_READONLY (112); +constexpr TypedWhichId<SwFormatLayoutSplit> RES_LAYOUT_SPLIT (113); +constexpr TypedWhichId<SwFormatChain> RES_CHAIN (114); +constexpr TypedWhichId<SwTextGridItem> RES_TEXTGRID (115); +constexpr TypedWhichId<SwFormatLineNumber> RES_LINENUMBER (116); +constexpr TypedWhichId<SwFormatFootnoteAtTextEnd> RES_FTN_AT_TXTEND (117); +constexpr TypedWhichId<SwFormatEndAtTextEnd> RES_END_AT_TXTEND (118); +constexpr TypedWhichId<SwFormatNoBalancedColumns> RES_COLUMNBALANCE (119); +constexpr TypedWhichId<SvxFrameDirectionItem> RES_FRAMEDIR (120); +constexpr TypedWhichId<SwHeaderAndFooterEatSpacingItem> RES_HEADER_FOOTER_EAT_SPACING (121); +constexpr TypedWhichId<SwFormatRowSplit> RES_ROW_SPLIT (122); +constexpr TypedWhichId<SwFormatFollowTextFlow> RES_FOLLOW_TEXT_FLOW (123); +constexpr TypedWhichId<SfxBoolItem> RES_COLLAPSING_BORDERS (124); +constexpr TypedWhichId<SwFormatWrapInfluenceOnObjPos> RES_WRAP_INFLUENCE_ON_OBJPOS (125); +constexpr TypedWhichId<SwFormatAutoFormat> RES_AUTO_STYLE (126); +constexpr TypedWhichId<SfxStringItem> RES_FRMATR_STYLE_NAME (127); +constexpr TypedWhichId<SfxStringItem> RES_FRMATR_CONDITIONAL_STYLE_NAME (128); +constexpr TypedWhichId<SfxGrabBagItem> RES_FRMATR_GRABBAG (129); +constexpr TypedWhichId<SdrTextVertAdjustItem> RES_TEXT_VERT_ADJUST (130); +constexpr sal_uInt16 RES_FRMATR_END(131); + +constexpr sal_uInt16 RES_GRFATR_BEGIN(RES_FRMATR_END); +constexpr TypedWhichId<SwMirrorGrf> RES_GRFATR_MIRRORGRF (RES_GRFATR_BEGIN); // 131 +constexpr TypedWhichId<SwCropGrf> RES_GRFATR_CROPGRF (132); + +constexpr TypedWhichId<SwRotationGrf> RES_GRFATR_ROTATION (133); +constexpr TypedWhichId<SwLuminanceGrf> RES_GRFATR_LUMINANCE (134); +constexpr TypedWhichId<SwContrastGrf> RES_GRFATR_CONTRAST (135); +constexpr TypedWhichId<SwChannelRGrf> RES_GRFATR_CHANNELR (136); +constexpr TypedWhichId<SwChannelGGrf> RES_GRFATR_CHANNELG (137); +constexpr TypedWhichId<SwChannelBGrf> RES_GRFATR_CHANNELB (138); +constexpr TypedWhichId<SwGammaGrf> RES_GRFATR_GAMMA (139); +constexpr TypedWhichId<SwInvertGrf> RES_GRFATR_INVERT (140); +constexpr TypedWhichId<SwTransparencyGrf> RES_GRFATR_TRANSPARENCY (141); +constexpr TypedWhichId<SwDrawModeGrf> RES_GRFATR_DRAWMODE (142); + +constexpr TypedWhichId<SfxBoolItem> RES_GRFATR_DUMMY1 (143); +constexpr TypedWhichId<SfxBoolItem> RES_GRFATR_DUMMY2 (144); +constexpr TypedWhichId<SfxBoolItem> RES_GRFATR_DUMMY3 (145); +constexpr TypedWhichId<SfxBoolItem> RES_GRFATR_DUMMY4 (146); +constexpr TypedWhichId<SfxBoolItem> RES_GRFATR_DUMMY5 (147); +constexpr sal_uInt16 RES_GRFATR_END(148); + +constexpr sal_uInt16 RES_BOXATR_BEGIN(RES_GRFATR_END); +constexpr TypedWhichId<SwTableBoxNumFormat> RES_BOXATR_FORMAT (RES_BOXATR_BEGIN); // 148 +constexpr TypedWhichId<SwTableBoxFormula> RES_BOXATR_FORMULA (149); +constexpr TypedWhichId<SwTableBoxValue> RES_BOXATR_VALUE (150); +constexpr sal_uInt16 RES_BOXATR_END(151); + +constexpr sal_uInt16 RES_UNKNOWNATR_BEGIN(RES_BOXATR_END); +constexpr TypedWhichId<SvXMLAttrContainerItem> RES_UNKNOWNATR_CONTAINER (RES_UNKNOWNATR_BEGIN);// 151 +constexpr sal_uInt16 RES_UNKNOWNATR_END(152); + +constexpr sal_uInt16 POOLATTR_END(RES_UNKNOWNATR_END); + +// Format IDs +constexpr sal_uInt16 RES_FMT_BEGIN(RES_UNKNOWNATR_END); +constexpr TypedWhichId<SwCharFormat> RES_CHRFMT (RES_FMT_BEGIN); // 152 +constexpr TypedWhichId<SwFrameFormat> RES_FRMFMT (153); +constexpr TypedWhichId<SwFlyFrameFormat> RES_FLYFRMFMT (154); +constexpr TypedWhichId<SwTextFormatColl> RES_TXTFMTCOLL (155); +constexpr TypedWhichId<SwGrfFormatColl> RES_GRFFMTCOLL (156); +constexpr TypedWhichId<SwDrawFrameFormat> RES_DRAWFRMFMT (157); +constexpr TypedWhichId<SwConditionTextFormatColl> RES_CONDTXTFMTCOLL (158); +constexpr sal_uInt16 RES_FMT_END(159); + +// ID's for Messages in the Formats +constexpr sal_uInt16 RES_MSG_BEGIN(RES_FMT_END); +constexpr TypedWhichId<SwPtrMsgPoolItem> RES_OBJECTDYING (RES_MSG_BEGIN); // 159 +constexpr TypedWhichId<SwFormatChg> RES_FMT_CHG (160); +constexpr TypedWhichId<SwAttrSetChg> RES_ATTRSET_CHG (161); +constexpr TypedWhichId<SwInsText> RES_INS_TXT (162); +constexpr TypedWhichId<SwDelChr> RES_DEL_CHR (163); +constexpr TypedWhichId<SwDelText> RES_DEL_TXT (164); +constexpr TypedWhichId<SwUpdateAttr> RES_UPDATE_ATTR (165); +constexpr TypedWhichId<SwRefMarkFieldUpdate> RES_REFMARKFLD_UPDATE (166); +constexpr TypedWhichId<SwDocPosUpdate> RES_DOCPOS_UPDATE (167); +constexpr TypedWhichId<SwTableFormulaUpdate> RES_TABLEFML_UPDATE (168); +constexpr TypedWhichId<SwMsgPoolItem> RES_UPDATEDDETBL (169); +constexpr TypedWhichId<SwMsgPoolItem> RES_TBLHEADLINECHG (170); +constexpr TypedWhichId<SwAutoFormatGetDocNode> RES_AUTOFMT_DOCNODE (171); +constexpr TypedWhichId<SwMsgPoolItem> RES_SECTION_HIDDEN (172); +constexpr TypedWhichId<SwMsgPoolItem> RES_SECTION_NOT_HIDDEN (173); +constexpr TypedWhichId<SwMsgPoolItem> RES_GRAPHIC_ARRIVED (174); +constexpr TypedWhichId<SwMsgPoolItem> RES_GRAPHIC_PIECE_ARRIVED (175); +constexpr TypedWhichId<SwMsgPoolItem> RES_HIDDENPARA_PRINT (176); +constexpr TypedWhichId<SwCondCollCondChg> RES_CONDCOLL_CONDCHG (177); +constexpr TypedWhichId<SwVirtPageNumInfo> RES_VIRTPAGENUM_INFO (178); +constexpr TypedWhichId<SwPtrMsgPoolItem> RES_REMOVE_UNO_OBJECT (179); +constexpr TypedWhichId<SwMsgPoolItem> RES_GRF_REREAD_AND_INCACHE (180); +// empty +constexpr TypedWhichId<SwFindNearestNode> RES_FINDNEARESTNODE (182); +constexpr TypedWhichId<SwPtrMsgPoolItem> RES_CONTENT_VISIBLE (183); +constexpr TypedWhichId<SwMsgPoolItem> RES_GRAPHIC_SWAPIN (184); +constexpr TypedWhichId<SwStringMsgPoolItem> RES_NAME_CHANGED (185); +constexpr TypedWhichId<SwStringMsgPoolItem> RES_TITLE_CHANGED (186); +constexpr TypedWhichId<SwStringMsgPoolItem> RES_DESCRIPTION_CHANGED (187); +constexpr TypedWhichId<SwMsgPoolItem> RES_LINKED_GRAPHIC_STREAM_ARRIVED (187); +constexpr sal_uInt16 RES_MSG_END(188); + +// An ID for the RTF-reader. The stylesheets are treated like attributes, +// i.e. there is a StyleSheet-attribute. To avoid collision with other +// Which()-values, the value is listed here. (The help system too defines +// new attributes!) +constexpr sal_uInt16 RES_FLTRATTR_BEGIN(RES_MSG_END); +constexpr TypedWhichId<SfxStringItem> RES_FLTR_BOOKMARK (RES_FLTRATTR_BEGIN); +constexpr TypedWhichId<SwFltAnchor> RES_FLTR_ANCHOR (189); +constexpr TypedWhichId<SfxStringItem> RES_FLTR_NUMRULE (190); +constexpr TypedWhichId<SwFltTOX> RES_FLTR_TOX (191); +constexpr TypedWhichId<SwFltRedline> RES_FLTR_REDLINE (192); +constexpr TypedWhichId<CntUInt16Item> RES_FLTR_ANNOTATIONMARK (193); +constexpr TypedWhichId<SwFltRDFMark> RES_FLTR_RDFMARK (194); +constexpr sal_uInt16 RES_FLTRATTR_END(195); + +constexpr sal_uInt16 RES_TBX_DUMMY(RES_FLTRATTR_END + 1); + +constexpr sal_uInt16 HINT_END(RES_TBX_DUMMY); + +// Error recognition!! +constexpr sal_uInt16 INVALID_HINT(HINT_END); +constexpr sal_uInt16 RES_WHICHHINT_END(HINT_END); + +inline bool isATR(const sal_uInt16 nWhich) +{ + return (RES_CHRATR_BEGIN <= nWhich) && (RES_UNKNOWNATR_END > nWhich); +} +inline bool isCHRATR(const sal_uInt16 nWhich) +{ + return (RES_CHRATR_BEGIN <= nWhich) && (RES_CHRATR_END > nWhich); +} +inline bool isTXTATR_WITHEND(const sal_uInt16 nWhich) +{ + return (RES_TXTATR_WITHEND_BEGIN <= nWhich) + && (RES_TXTATR_WITHEND_END > nWhich); +} +inline bool isTXTATR_NOEND(const sal_uInt16 nWhich) +{ + return (RES_TXTATR_NOEND_BEGIN <= nWhich) + && (RES_TXTATR_NOEND_END > nWhich); +} +inline bool isTXTATR(const sal_uInt16 nWhich) +{ + return (RES_TXTATR_BEGIN <= nWhich) && (RES_TXTATR_END > nWhich); +} +inline bool isPARATR(const sal_uInt16 nWhich) +{ + return (RES_PARATR_BEGIN <= nWhich) && (RES_PARATR_END > nWhich); +} +inline bool isPARATR_LIST(const sal_uInt16 nWhich) +{ + return (RES_PARATR_LIST_BEGIN <= nWhich) && (RES_PARATR_LIST_END > nWhich); +} +inline bool isFRMATR(const sal_uInt16 nWhich) +{ + return (RES_FRMATR_BEGIN <= nWhich) && (RES_FRMATR_END > nWhich); +} +inline bool isDrawingLayerAttribute(const sal_uInt16 nWhich) +{ + return (XATTR_START <= nWhich) && (XATTR_END > nWhich); +} +inline bool isGRFATR(const sal_uInt16 nWhich) +{ + return (RES_GRFATR_BEGIN <= nWhich) && (RES_GRFATR_END > nWhich); +} +inline bool isBOXATR(const sal_uInt16 nWhich) +{ + return (RES_BOXATR_BEGIN <= nWhich) && (RES_BOXATR_END > nWhich); +} +inline bool isUNKNOWNATR(const sal_uInt16 nWhich) +{ + return (RES_UNKNOWNATR_BEGIN <= nWhich) && (RES_UNKNOWNATR_END > nWhich); +} + +// Take the respective default attribute from the statistical default +// attributes table over the Which-value. +// If none exists, return a 0 pointer!!! +// This function is implemented in Init.cxx. It is declared here as external +// in order to allow the formats to access it. +// Inline in PRODUCT. +class SfxPoolItem; +struct SfxItemInfo; +typedef std::vector<SfxPoolItem*> SwDfltAttrTab; + +extern SwDfltAttrTab aAttrTab; +extern SfxItemInfo aSlotTab[]; + +/** Get the default attribute from corresponding default attribute table. + + @param[in] nWhich Position in table + @return Attribute if found, null pointer otherwise +*/ +SW_DLLPUBLIC const SfxPoolItem* GetDfltAttr( sal_uInt16 nWhich ); + +template<class T> inline const T* GetDfltAttr( TypedWhichId<T> nWhich ) +{ return static_cast<const T*>(GetDfltAttr(sal_uInt16(nWhich))); } + +SW_DLLPUBLIC sal_uInt16 GetWhichOfScript( sal_uInt16 nWhich, sal_uInt16 nScript ); + +// return for the given TextAttribute without an end the correct character. +// This function returns +// CH_TXTATR_BREAKWORD for Textattribute which breaks a word (default) +// CH_TXTATR_INWORD for Textattribute which doesn't breaks a word +class SwTextAttr; +sal_Unicode GetCharOfTextAttr( const SwTextAttr& rAttr ); + +// all Sets defined in init.cxx + +// AttrSet-Range for the 3 Break-Attribute +extern sal_uInt16 const aBreakSetRange[]; +// AttrSet-Range for TextFormatColl +extern sal_uInt16 const aTextFormatCollSetRange[]; +// AttrSet-Range for GrfFormatColl +extern sal_uInt16 const aGrfFormatCollSetRange[]; +// AttrSet-Range for TextNode +SW_DLLPUBLIC extern sal_uInt16 const aTextNodeSetRange[]; +// AttrSet-Range for NoTextNode +extern sal_uInt16 const aNoTextNodeSetRange[]; +// AttrSet-Range for SwTable +extern sal_uInt16 const aTableSetRange[]; +// AttrSet-Range for SwTableLine +extern sal_uInt16 const aTableLineSetRange[]; +// AttrSet-Range for SwTableBox +extern sal_uInt16 const aTableBoxSetRange[]; +// AttrSet-Range for SwFrameFormat +SW_DLLPUBLIC extern sal_uInt16 const aFrameFormatSetRange[]; +// AttrSet-Range for SwCharFormat +extern sal_uInt16 const aCharFormatSetRange[]; +// AttrSet-Range for the autostyles +extern sal_uInt16 const aCharAutoFormatSetRange[]; +// AttrSet-Range for SwPageDescFormat +extern sal_uInt16 const aPgFrameFormatSetRange[]; + +// check if ID is InRange of AttrSet-Ids +bool IsInRange( const sal_uInt16* pRange, const sal_uInt16 nId ); + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |