/* -*- 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 #include #include #include "swdllapi.h" #include #include #include class SfxStringItem; class SwFormatChg; class SwUpdateAttr; class SwAttrSetChg; class SwFormatMeta; class SwFormatContentControl; class SvXMLAttrContainerItem; class SwMsgPoolItem; class SwPtrMsgPoolItem; class SfxBoolItem; class SvxColorItem; class SvxLeftMarginItem; class SvxTextLeftMarginItem; class SvxFirstLineIndentItem; class SvxRightMarginItem; class SvxGutterLeftMarginItem; class SvxGutterRightMarginItem; 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 SwFormatFlySplit; 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 SwTableFormulaUpdate; class SwAutoFormatGetDocNode; class SwVirtPageNumInfo; class SwFindNearestNode; class SwFltAnchor; class SwFltTOX; class SwFltRedline; class SwFltRDFMark; class SwCharFormat; class SwConditionTextFormatColl; class SwDrawFrameFormat; class SwFlyFrameFormat; class SwFormatField; class SwFormatFootnote; class SwFormatLineBreak; 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' inline constexpr OUStringLiteral CH_TXT_ATR_SUBST_FIELDSTART = u"["; inline constexpr OUStringLiteral CH_TXT_ATR_SUBST_FIELDEND = u"]"; // a non-visible dummy character to track deleted tables, // table rows, and images anchored to characters #define CH_TXT_TRACKED_DUMMY_CHAR u'\x200D' /* * 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 RES_CHRATR_CASEMAP(RES_CHRATR_BEGIN); // 1 constexpr TypedWhichId RES_CHRATR_CHARSETCOLOR(2); constexpr TypedWhichId RES_CHRATR_COLOR(3); constexpr TypedWhichId RES_CHRATR_CONTOUR(4); constexpr TypedWhichId RES_CHRATR_CROSSEDOUT(5); constexpr TypedWhichId RES_CHRATR_ESCAPEMENT(6); constexpr TypedWhichId RES_CHRATR_FONT(7); constexpr TypedWhichId RES_CHRATR_FONTSIZE(8); constexpr TypedWhichId RES_CHRATR_KERNING(9); constexpr TypedWhichId RES_CHRATR_LANGUAGE(10); constexpr TypedWhichId RES_CHRATR_POSTURE(11); constexpr TypedWhichId RES_CHRATR_UNUSED1(12); constexpr TypedWhichId RES_CHRATR_SHADOWED(13); constexpr TypedWhichId RES_CHRATR_UNDERLINE(14); constexpr TypedWhichId RES_CHRATR_WEIGHT(15); constexpr TypedWhichId RES_CHRATR_WORDLINEMODE(16); constexpr TypedWhichId RES_CHRATR_AUTOKERN(17); constexpr TypedWhichId RES_CHRATR_BLINK(18); constexpr TypedWhichId RES_CHRATR_NOHYPHEN(19); constexpr TypedWhichId RES_CHRATR_UNUSED2(20); constexpr TypedWhichId RES_CHRATR_BACKGROUND(21); constexpr TypedWhichId RES_CHRATR_CJK_FONT(22); constexpr TypedWhichId RES_CHRATR_CJK_FONTSIZE(23); constexpr TypedWhichId RES_CHRATR_CJK_LANGUAGE(24); constexpr TypedWhichId RES_CHRATR_CJK_POSTURE(25); constexpr TypedWhichId RES_CHRATR_CJK_WEIGHT(26); constexpr TypedWhichId RES_CHRATR_CTL_FONT(27); constexpr TypedWhichId RES_CHRATR_CTL_FONTSIZE(28); constexpr TypedWhichId RES_CHRATR_CTL_LANGUAGE(29); constexpr TypedWhichId RES_CHRATR_CTL_POSTURE(30); constexpr TypedWhichId RES_CHRATR_CTL_WEIGHT(31); constexpr TypedWhichId RES_CHRATR_ROTATE(32); constexpr TypedWhichId RES_CHRATR_EMPHASIS_MARK(33); constexpr TypedWhichId RES_CHRATR_TWO_LINES(34); constexpr TypedWhichId RES_CHRATR_SCALEW(35); constexpr TypedWhichId RES_CHRATR_RELIEF(36); constexpr TypedWhichId RES_CHRATR_HIDDEN(37); constexpr TypedWhichId RES_CHRATR_OVERLINE(38); constexpr TypedWhichId RES_CHRATR_RSID(39); constexpr TypedWhichId RES_CHRATR_BOX(40); constexpr TypedWhichId RES_CHRATR_SHADOW(41); constexpr TypedWhichId RES_CHRATR_HIGHLIGHT(42); constexpr TypedWhichId RES_CHRATR_GRABBAG(43); constexpr TypedWhichId RES_CHRATR_BIDIRTL(44); constexpr TypedWhichId 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 RES_TXTATR_REFMARK(RES_TXTATR_WITHEND_BEGIN); // 46 constexpr TypedWhichId RES_TXTATR_TOXMARK(47); constexpr TypedWhichId RES_TXTATR_META(48); constexpr TypedWhichId RES_TXTATR_METAFIELD(49); constexpr TypedWhichId RES_TXTATR_AUTOFMT(50); constexpr TypedWhichId RES_TXTATR_INETFMT(51); constexpr TypedWhichId RES_TXTATR_CHARFMT(52); constexpr TypedWhichId RES_TXTATR_CJK_RUBY(53); constexpr TypedWhichId RES_TXTATR_UNKNOWN_CONTAINER(54); constexpr TypedWhichId RES_TXTATR_INPUTFIELD(55); constexpr TypedWhichId RES_TXTATR_CONTENTCONTROL(56); constexpr sal_uInt16 RES_TXTATR_WITHEND_END(57); // all TextAttributes without an end constexpr sal_uInt16 RES_TXTATR_NOEND_BEGIN(RES_TXTATR_WITHEND_END); constexpr TypedWhichId RES_TXTATR_FIELD(RES_TXTATR_NOEND_BEGIN); // 57 constexpr TypedWhichId RES_TXTATR_FLYCNT(58); constexpr TypedWhichId RES_TXTATR_FTN(59); constexpr TypedWhichId RES_TXTATR_ANNOTATION(60); constexpr TypedWhichId RES_TXTATR_LINEBREAK(61); constexpr TypedWhichId RES_TXTATR_DUMMY1(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 RES_PARATR_LINESPACING(RES_PARATR_BEGIN); // 63 constexpr TypedWhichId RES_PARATR_ADJUST(64); constexpr TypedWhichId RES_PARATR_SPLIT(65); constexpr TypedWhichId RES_PARATR_ORPHANS(66); constexpr TypedWhichId RES_PARATR_WIDOWS(67); constexpr TypedWhichId RES_PARATR_TABSTOP(68); constexpr TypedWhichId RES_PARATR_HYPHENZONE(69); constexpr TypedWhichId RES_PARATR_DROP(70); constexpr TypedWhichId RES_PARATR_REGISTER(71); constexpr TypedWhichId RES_PARATR_NUMRULE(72); constexpr TypedWhichId RES_PARATR_SCRIPTSPACE(73); constexpr TypedWhichId RES_PARATR_HANGINGPUNCTUATION(74); constexpr TypedWhichId RES_PARATR_FORBIDDEN_RULES(75); constexpr TypedWhichId RES_PARATR_VERTALIGN(76); constexpr TypedWhichId RES_PARATR_SNAPTOGRID(77); constexpr TypedWhichId RES_PARATR_CONNECT_BORDER(78); constexpr TypedWhichId RES_PARATR_OUTLINELEVEL(79); constexpr TypedWhichId RES_PARATR_RSID(80); constexpr TypedWhichId 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 RES_PARATR_LIST_ID(RES_PARATR_LIST_BEGIN); // 82 constexpr TypedWhichId RES_PARATR_LIST_LEVEL(83); constexpr TypedWhichId RES_PARATR_LIST_ISRESTART(84); constexpr TypedWhichId RES_PARATR_LIST_RESTARTVALUE(85); constexpr TypedWhichId RES_PARATR_LIST_ISCOUNTED(86); constexpr TypedWhichId RES_PARATR_LIST_AUTOFMT(87); //TypedWhichId(87) constexpr sal_uInt16 RES_PARATR_LIST_END(88); constexpr sal_uInt16 RES_FRMATR_BEGIN(RES_PARATR_LIST_END); constexpr TypedWhichId RES_FILL_ORDER(RES_FRMATR_BEGIN); constexpr TypedWhichId RES_FRM_SIZE(89); constexpr TypedWhichId RES_PAPER_BIN(90); constexpr TypedWhichId RES_MARGIN_FIRSTLINE(91); constexpr TypedWhichId RES_MARGIN_TEXTLEFT(92); constexpr TypedWhichId RES_MARGIN_RIGHT(93); constexpr TypedWhichId RES_MARGIN_LEFT(94); constexpr TypedWhichId RES_MARGIN_GUTTER(95); constexpr TypedWhichId RES_MARGIN_GUTTER_RIGHT(96); constexpr TypedWhichId RES_LR_SPACE(97); constexpr TypedWhichId RES_UL_SPACE(98); constexpr TypedWhichId RES_PAGEDESC(99); constexpr TypedWhichId RES_BREAK(100); constexpr TypedWhichId RES_CNTNT(101); constexpr TypedWhichId RES_HEADER(102); constexpr TypedWhichId RES_FOOTER(103); constexpr TypedWhichId RES_PRINT(104); constexpr TypedWhichId RES_OPAQUE(105); constexpr TypedWhichId RES_PROTECT(106); constexpr TypedWhichId RES_SURROUND(107); constexpr TypedWhichId RES_VERT_ORIENT(108); constexpr TypedWhichId RES_HORI_ORIENT(109); constexpr TypedWhichId RES_ANCHOR(110); constexpr TypedWhichId RES_BACKGROUND(111); constexpr TypedWhichId RES_BOX(112); constexpr TypedWhichId RES_SHADOW(113); constexpr TypedWhichId RES_FRMMACRO(114); constexpr TypedWhichId RES_COL(115); constexpr TypedWhichId RES_KEEP(116); constexpr TypedWhichId RES_URL(117); constexpr TypedWhichId RES_EDIT_IN_READONLY(118); constexpr TypedWhichId RES_LAYOUT_SPLIT(119); constexpr TypedWhichId RES_CHAIN(120); constexpr TypedWhichId RES_TEXTGRID(121); constexpr TypedWhichId RES_LINENUMBER(122); constexpr TypedWhichId RES_FTN_AT_TXTEND(123); constexpr TypedWhichId RES_END_AT_TXTEND(124); constexpr TypedWhichId RES_COLUMNBALANCE(125); constexpr TypedWhichId RES_FRAMEDIR(126); constexpr TypedWhichId RES_HEADER_FOOTER_EAT_SPACING(127); constexpr TypedWhichId RES_ROW_SPLIT(128); constexpr TypedWhichId RES_FLY_SPLIT(129); constexpr TypedWhichId RES_FOLLOW_TEXT_FLOW(130); constexpr TypedWhichId RES_COLLAPSING_BORDERS(131); constexpr TypedWhichId RES_WRAP_INFLUENCE_ON_OBJPOS(132); constexpr TypedWhichId RES_AUTO_STYLE(133); constexpr TypedWhichId RES_FRMATR_STYLE_NAME(134); constexpr TypedWhichId RES_FRMATR_CONDITIONAL_STYLE_NAME(135); constexpr TypedWhichId RES_FRMATR_GRABBAG(136); constexpr TypedWhichId RES_TEXT_VERT_ADJUST(137); constexpr TypedWhichId RES_BACKGROUND_FULL_SIZE(138); constexpr TypedWhichId RES_RTL_GUTTER(139); constexpr TypedWhichId RES_DECORATIVE(140); constexpr sal_uInt16 RES_FRMATR_END(141); constexpr sal_uInt16 RES_GRFATR_BEGIN(RES_FRMATR_END); constexpr TypedWhichId RES_GRFATR_MIRRORGRF(RES_GRFATR_BEGIN); constexpr TypedWhichId RES_GRFATR_CROPGRF(142); constexpr TypedWhichId RES_GRFATR_ROTATION(143); constexpr TypedWhichId RES_GRFATR_LUMINANCE(144); constexpr TypedWhichId RES_GRFATR_CONTRAST(145); constexpr TypedWhichId RES_GRFATR_CHANNELR(146); constexpr TypedWhichId RES_GRFATR_CHANNELG(147); constexpr TypedWhichId RES_GRFATR_CHANNELB(148); constexpr TypedWhichId RES_GRFATR_GAMMA(149); constexpr TypedWhichId RES_GRFATR_INVERT(150); constexpr TypedWhichId RES_GRFATR_TRANSPARENCY(151); constexpr TypedWhichId RES_GRFATR_DRAWMODE(152); constexpr TypedWhichId RES_GRFATR_DUMMY3(153); constexpr TypedWhichId RES_GRFATR_DUMMY4(154); constexpr TypedWhichId RES_GRFATR_DUMMY5(155); constexpr sal_uInt16 RES_GRFATR_END(156); constexpr sal_uInt16 RES_BOXATR_BEGIN(RES_GRFATR_END); constexpr TypedWhichId RES_BOXATR_FORMAT(RES_BOXATR_BEGIN); constexpr TypedWhichId RES_BOXATR_FORMULA(157); constexpr TypedWhichId RES_BOXATR_VALUE(158); constexpr sal_uInt16 RES_BOXATR_END(159); constexpr sal_uInt16 RES_UNKNOWNATR_BEGIN(RES_BOXATR_END); constexpr TypedWhichId RES_UNKNOWNATR_CONTAINER(RES_UNKNOWNATR_BEGIN); constexpr sal_uInt16 RES_UNKNOWNATR_END(160); constexpr sal_uInt16 POOLATTR_END(RES_UNKNOWNATR_END); // Format IDs constexpr sal_uInt16 RES_FMT_BEGIN(RES_UNKNOWNATR_END); constexpr TypedWhichId RES_CHRFMT(RES_FMT_BEGIN); constexpr TypedWhichId RES_FRMFMT(161); constexpr TypedWhichId RES_FLYFRMFMT(162); constexpr TypedWhichId RES_TXTFMTCOLL(163); constexpr TypedWhichId RES_GRFFMTCOLL(164); constexpr TypedWhichId RES_DRAWFRMFMT(165); constexpr TypedWhichId RES_CONDTXTFMTCOLL(166); constexpr sal_uInt16 RES_FMT_END(167); // ID's for Messages in the Formats constexpr sal_uInt16 RES_FORMAT_MSG_BEGIN(RES_FMT_END); constexpr TypedWhichId RES_OBJECTDYING(RES_FORMAT_MSG_BEGIN); // 167 constexpr TypedWhichId RES_FMT_CHG(168); constexpr TypedWhichId RES_ATTRSET_CHG(169); constexpr TypedWhichId RES_UPDATE_ATTR(170); constexpr TypedWhichId RES_AUTOFMT_DOCNODE(176); constexpr TypedWhichId RES_HIDDENPARA_PRINT(178); constexpr TypedWhichId RES_VIRTPAGENUM_INFO(180); constexpr TypedWhichId RES_REMOVE_UNO_OBJECT(181); // empty constexpr TypedWhichId RES_FINDNEARESTNODE(184); constexpr sal_uInt16 RES_FORMAT_MSG_END(190); // 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_FORMAT_MSG_END); constexpr TypedWhichId RES_FLTR_BOOKMARK(RES_FLTRATTR_BEGIN); constexpr TypedWhichId RES_FLTR_ANCHOR(191); constexpr TypedWhichId RES_FLTR_NUMRULE(192); constexpr TypedWhichId RES_FLTR_TOX(193); constexpr TypedWhichId RES_FLTR_REDLINE(194); constexpr TypedWhichId RES_FLTR_ANNOTATIONMARK(195); constexpr TypedWhichId RES_FLTR_RDFMARK(196); constexpr sal_uInt16 RES_FLTRATTR_END(197); constexpr sal_uInt16 RES_TBX_DUMMY(RES_FLTRATTR_END + 1); constexpr TypedWhichId 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); } inline bool isFormatMessage(const sal_uInt16 nWhich) { return (RES_FORMAT_MSG_BEGIN <= nWhich) && (RES_FORMAT_MSG_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 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 inline const T* GetDfltAttr(TypedWhichId nWhich) { return static_cast(GetDfltAttr(sal_uInt16(nWhich))); } SW_DLLPUBLIC sal_uInt16 GetWhichOfScript(sal_uInt16 nWhich, sal_uInt16 nScript); template inline TypedWhichId GetWhichOfScript(TypedWhichId nWhich, sal_uInt16 nScript) { return TypedWhichId(GetWhichOfScript(sal_uInt16(nWhich), 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 WhichRangesContainer const aBreakSetRange; // AttrSet-Range for TextFormatColl extern WhichRangesContainer const aTextFormatCollSetRange; // AttrSet-Range for GrfFormatColl extern WhichRangesContainer const aGrfFormatCollSetRange; // AttrSet-Range for TextNode SW_DLLPUBLIC extern WhichRangesContainer const aTextNodeSetRange; // AttrSet-Range for NoTextNode extern WhichRangesContainer const aNoTextNodeSetRange; // AttrSet-Range for SwTable extern WhichRangesContainer const aTableSetRange; // AttrSet-Range for SwTableLine extern WhichRangesContainer const aTableLineSetRange; // AttrSet-Range for SwTableBox extern WhichRangesContainer const aTableBoxSetRange; // AttrSet-Range for SwFrameFormat SW_DLLPUBLIC extern WhichRangesContainer const aFrameFormatSetRange; // AttrSet-Range for SwCharFormat extern WhichRangesContainer const aCharFormatSetRange; // AttrSet-Range for the autostyles extern WhichRangesContainer const aCharAutoFormatSetRange; // AttrSet-Range for SwPageDescFormat extern WhichRangesContainer const aPgFrameFormatSetRange; // check if ID is InRange of AttrSet-Ids bool IsInRange(const WhichRangesContainer& pRange, const sal_uInt16 nId); #endif /* vim:set shiftwidth=4 softtabstop=4 expandtab: */