29#include <rtl/tencinfo.h>
33#include <unicode/ubidi.h>
35#include <com/sun/star/i18n/ScriptType.hpp>
36#include <com/sun/star/i18n/XBreakIterator.hpp>
150 RES_NONE, RES_NONE, RES_NONE, RES_NONE, RES_NONE, RES_NONE,
151 RES_NONE, RES_NONE, RES_NONE, RES_NONE, RES_NONE, RES_NONE,
165 pRet = mrDoc.getIDocumentStylePoolAccess().GetTextCollFromPool(
static_cast< sal_uInt16
>(
aArr[eSti]),
false);
176 return mrDoc.MakeTextFormatColl(rName,
177 mrDoc.GetDfltTextFormatColl());
226 pRet = mrDoc.getIDocumentStylePoolAccess().GetCharFormatFromPool(
static_cast< sal_uInt16
>(eLookup) );
237 return mrDoc.MakeCharFormat(rName, mrDoc.GetDfltCharFormat());
246 std::map<OUString, sal_Int32>& rCollisions);
251 std::map<OUString, sal_Int32>& rCollisions);
257 std::map<OUString, sal_Int32>& rCollisions)
259 C *pRet = maHelper.GetBuiltInStyle(eSti);
262 if (pRet && (maUsedStyles.end() != maUsedStyles.find(pRet)))
267 pRet = maHelper.GetStyle(rName);
269 if (pRet && (maUsedStyles.end() != maUsedStyles.find(pRet)))
273 bool bStyExist = pRet !=
nullptr;
277 OUString
aName(rName);
278 sal_Int32 nIdx = rName.indexOf(
',');
281 aName = rName.copy( 0, nIdx );
282 pRet = MakeNonCollidingStyle(
aName, rCollisions);
286 maUsedStyles.insert(pRet);
293 std::map<OUString, sal_Int32>& rCollisions)
295 OUString
aName(rName);
298 if (
nullptr != (pColl = maHelper.GetStyle(
aName)))
303 if (!
aName.startsWith(
"WW-"))
306 OUString aBaseName =
aName;
311 auto aFind = rCollisions.find(aBaseName);
312 if (aFind != rCollisions.end())
316 nullptr != (pColl = maHelper.GetStyle(
aName)) &&
320 aName = aBaseName + OUString::number(nI++);
323 rCollisions.insert_or_assign(aBaseName, nI);
326 return pColl ? nullptr : maHelper.MakeStyle(
aName);
332 return "Arial Unicode MS";
333 return GetSubsFontName(rFont, SubsFontFlags::ONLYONE | SubsFontFlags::MS);
344 explicit IfBeforeStart(sal_Int32 nStart) :
mnStart(nStart) {}
378 bool bPlausableSingleWordSection =
true;
389 if (rFirstColumns.size() != rFollowColumns.size())
392 bPlausableSingleWordSection =
false;
394 else if (aOneLR != aTwoLR)
395 bPlausableSingleWordSection =
false;
396 else if (rFirstFrameSize != rFollowFrameSize)
397 bPlausableSingleWordSection =
false;
404 bPlausableSingleWordSection =
false;
406 return bPlausableSingleWordSection;
413 m_DyaHdrTop = pBox->CalcLineSpace( SvxBoxItemLine::TOP,
true );
414 m_DyaHdrBottom = pBox->CalcLineSpace( SvxBoxItemLine::BOTTOM,
true );
478 const OUString& rName,
ww::sti eSti,
479 std::map<OUString, sal_Int32>& rCollisions)
481 return mpImpl->GetStyle(rName, eSti, rCollisions);
494 const OUString& rName,
ww::sti eSti,
495 std::map<OUString, sal_Int32>& rCollisions)
497 return mpImpl->GetStyle(rName, eSti, rCollisions);
534 const OUString &rText = rTextNd.
GetText();
536 bool bParaIsRTL =
false;
537 if (SvxFrameDirection::Horizontal_RL_TB ==
545 sal_uInt16 nScript = i18n::ScriptType::LATIN;
547 if (!rText.isEmpty())
551 rtl_TextEncoding eChrSet = rTextNd.
GetAttr(nFontWhichId).GetCharSet();
558 aRunChanges.emplace_back(0, nScript, eChrSet,
563 typedef std::pair<int32_t, bool> DirEntry;
564 typedef std::pair<sal_Int32, sal_uInt16> ScriptEntry;
565 std::vector<DirEntry> aDirChanges;
566 std::vector<ScriptEntry> aScripts;
568 UBiDiDirection eDefaultDir = bParaIsRTL ? UBIDI_RTL : UBIDI_LTR;
569 UErrorCode nError = U_ZERO_ERROR;
570 UBiDi* pBidi = ubidi_openSized(rText.getLength(), 0, &nError);
571 ubidi_setPara(pBidi,
reinterpret_cast<const UChar *
>(rText.getStr()), rText.getLength(),
572 static_cast< UBiDiLevel
>(eDefaultDir),
nullptr, &nError);
574 sal_Int32
nCount = ubidi_countRuns(pBidi, &nError);
575 aDirChanges.reserve(
nCount);
581 for (sal_Int32 nIdx = 0; nIdx <
nCount; ++nIdx)
583 ubidi_getLogicalRun(pBidi, nStart, &nEnd, &nCurrDir);
594 aDirChanges.emplace_back(nEnd, nCurrDir & 0x1);
601 sal_Int32 nLen = rText.getLength();
610 aScripts.emplace_back(
nPos, nScript);
614 auto aBiDiEnd = aDirChanges.cend();
615 auto aScriptEnd = aScripts.cend();
617 auto aBiDiIter = aDirChanges.cbegin();
618 auto aScriptIter = aScripts.cbegin();
620 bool bCharIsRTL = bParaIsRTL;
623 aBiDiIter != aBiDiEnd ||
624 aScriptIter != aScriptEnd
627 sal_Int32 nMinPos = rText.getLength();
629 if (aBiDiIter != aBiDiEnd)
631 if (aBiDiIter->first < nMinPos)
632 nMinPos = aBiDiIter->first;
633 bCharIsRTL = aBiDiIter->second;
636 if (aScriptIter != aScriptEnd)
638 if (aScriptIter->first < nMinPos)
639 nMinPos = aScriptIter->first;
640 nScript = aScriptIter->second;
643 aRunChanges.emplace_back(nMinPos, nScript, eChrSet, bCharIsRTL);
645 if (aBiDiIter != aBiDiEnd)
647 if (aBiDiIter->first == nMinPos)
651 if (aScriptIter != aScriptEnd)
653 if (aScriptIter->first == nMinPos)
658 aRunChanges.erase(std::remove_if(aRunChanges.begin(),
659 aRunChanges.end(), myImplHelpers::IfBeforeStart(0)), aRunChanges.end());
670 rtl_getBestWindowsCharsetFromTextEncoding(eTextEncoding);
671 switch (eTextEncoding)
673 case RTL_TEXTENCODING_DONTKNOW:
674 case RTL_TEXTENCODING_UCS2:
675 case RTL_TEXTENCODING_UTF7:
676 case RTL_TEXTENCODING_UTF8:
677 case RTL_TEXTENCODING_JAVA_UTF8:
687 CanEncode(OUString
const& rString, rtl_TextEncoding
const eEncoding)
690 return rString.convertToString(&tmp, eEncoding,
691 RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR |
692 RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR);
696 OUString
const& rFontName, OUString
const& rAltName,
697 rtl_TextEncoding eTextEncoding)
700 rtl_getBestWindowsCharsetFromTextEncoding(eTextEncoding);
701 rtl_TextEncoding enc2 = rtl_getTextEncodingFromWindowsCharset(nRet);
702 if (!rtl_isOctetTextEncoding(enc2) ||
705 static struct { rtl_TextEncoding enc;
sal_uInt8 charset; }
706 const s_fallbacks [] = {
707 { RTL_TEXTENCODING_MS_932, 0x80 },
708 { RTL_TEXTENCODING_MS_936, 0x86 },
709 { RTL_TEXTENCODING_MS_950, 0x88 },
710 { RTL_TEXTENCODING_MS_949, 0x81 },
712 for (
const auto &
i : s_fallbacks)
722 SAL_INFO(
"sw.rtf",
"no fallback charset found for font: "
723 << rFontName <<
" " << rAltName);
750 nDT += ( rDT.
GetYear() - 1900 ) & 0x1ff;
754 nDT += rDT.
GetDay() & 0x1f;
758 nDT += rDT.
GetMin() & 0x3f;
768 const sal_Int32 nLen = aParams.size();
769 if (nFromPos < 0 || nLen <= nFromPos)
771 for (sal_Int32 nI = nFromPos; nI < nLen; ++nI)
782 if (aParams[nI] ==
'\"' && aParams[nI-1] !=
'\\')
799 static bool replaceUnquoted( OUString& rParams, std::u16string_view aFind, std::u16string_view aReplace )
801 bool bReplaced =
false;
806 sal_Int32 nLen = rParams.getLength();
807 for (sal_Int32 nI = 0; nI < nLen; ++nI)
810 if (rParams[nI] ==
'\\')
812 else if (rParams[nI] ==
'\"')
818 if (rParams[nI] ==
'\"' && rParams[nI-1] !=
'\\')
825 if (c == cFirst && rParams.match( aFind, nI))
827 const sal_Int32 nFindLen = aFind.size();
828 const sal_Int32 nDiff = aReplace.size() - nFindLen;
829 rParams = rParams.replaceAt( nI, nFindLen, aReplace);
830 nI += nFindLen + nDiff - 1;
844 sal_Int32 nCheckPos = 0;
854 bool bForceJapanese = (-1 !=
findUnquoted( rParams,
'g', 0));
864 sal_Int32 nLastPos = 0;
870 }
while ( -1 != nLastPos );
879 sal_Int32 nLastPos = 0;
884 bForceNatNum |= bIsCharA;
886 rParams = rParams.replaceAt(
nPos, 1,
u"D" );
888 }
while ( -1 != nLastPos );
891 sal_Int32 nLen = rParams.getLength();
892 for (sal_Int32 nI = 0; nI < nLen; ++nI)
894 if (rParams[nI] ==
'\\')
896 else if (rParams[nI] ==
'\"')
902 if (rParams[nI] ==
'\"' && rParams[nI-1] !=
'\\')
914 if ( ( nChar ==
'a' || nChar ==
'A' ) &&
IsNotAM(rParams, nI) )
915 rParams = rParams.replaceAt(nI, 1,
u"Y");
923 rParams = rParams.replaceAt(nI, 1,
u"\\/");
933 if ( !bForceJapanese && !bForceNatNum )
938 if (nChar ==
'y' || nChar ==
'Y')
939 rParams = rParams.replaceAt(nI, 1,
u"V");
940 else if (nChar ==
'm' || nChar ==
'M')
941 rParams = rParams.replaceAt(nI, 1,
u"K");
942 else if (nChar ==
'd' || nChar ==
'D')
943 rParams = rParams.replaceAt(nI, 1,
u"P");
944 else if (nChar ==
'h' || nChar ==
'H')
945 rParams = rParams.replaceAt(nI, 1,
u"T");
947 else if ( rLang.
anyOf(
955 if (nChar ==
'h' || nChar ==
'H')
956 rParams = rParams.replaceAt(nI, 1,
u"T");
958 else if ( rLang.
anyOf(
982 if (nChar ==
'a' || nChar ==
'A')
983 rParams = rParams.replaceAt(nI, 1,
u"O");
984 else if (nChar ==
'y' || nChar ==
'Y')
985 rParams = rParams.replaceAt(nI, 1,
u"A");
987 else if ( rLang.
anyOf(
991 if (nChar ==
'y' || nChar ==
'Y')
992 rParams = rParams.replaceAt(nI, 1,
u"J");
993 else if (nChar ==
'u' || nChar ==
'U')
994 rParams = rParams.replaceAt(nI, 1,
u"H");
996 else if ( rLang.
anyOf(
1000 if (nChar ==
'a' || nChar ==
'A')
1001 rParams = rParams.replaceAt(nI, 1,
u"O");
1002 else if (nChar ==
'g' || nChar ==
'G')
1003 rParams = rParams.replaceAt(nI, 1,
u"X");
1004 else if (nChar ==
'y' || nChar ==
'Y')
1005 rParams = rParams.replaceAt(nI, 1,
u"A");
1006 else if (nChar ==
'd' || nChar ==
'D')
1007 rParams = rParams.replaceAt(nI, 1,
u"G");
1009 else if ( rLang.
anyOf(
1016 if (nChar ==
'y' || nChar ==
'Y')
1017 rParams = rParams.replaceAt(nI, 1,
u"J");
1018 else if (nChar ==
'd' || nChar ==
'D')
1019 rParams = rParams.replaceAt(nI, 1,
u"T");
1021 else if ( rLang.
anyOf(
1029 if (nChar ==
'y' || nChar ==
'Y' || nChar ==
'a')
1030 rParams = rParams.replaceAt(nI, 1,
u"A");
1031 else if (nChar ==
'd' || nChar ==
'D' || nChar ==
'j')
1032 rParams = rParams.replaceAt(nI, 1,
u"J");
1039 bForceJapanese =
true;
1045 rParams =
"[NatNum1][$-411]" + rParams;
1048 rParams =
"[~hijri]" + rParams;
1050 pFormatter->
PutEntry(rParams, nCheckPos,
nType, nKey, rLang);
1055 bool IsPreviousAM(std::u16string_view rParams, sal_Int32 nPos)
1059 bool IsNextPM(std::u16string_view rParams, sal_Int32 nPos)
1063 bool IsNotAM(std::u16string_view rParams, sal_Int32 nPos)
1072 const sal_Int32 nLen = rFormat.getLength();
1073 for (sal_Int32 nI = 0; nI < nLen; ++nI)
1075 if (!nI || rFormat[nI-1]!=
'\\')
1077 if (rFormat[nI]==
'\"')
1078 rFormat = rFormat.replaceAt(nI, 1,
u"\'");
1079 else if (rFormat[nI]==
'\'')
1080 rFormat = rFormat.replaceAt(nI, 1,
u"\"");
sal_Int32 GetDate() const
sal_Int16 GetYear() const
sal_uInt16 GetDay() const
DayOfWeek GetDayOfWeek() const
sal_uInt16 GetMonth() const
const SfxPoolItem * GetItem(sal_uInt16 nWhich, bool bSearchInParent=true) const
const SfxPoolItem & Get(sal_uInt16 nWhich, bool bSrchInParent=true) const
const editeng::SvxBorderLine * GetRight() const
const editeng::SvxBorderLine * GetLeft() const
sal_Int16 GetDistance(SvxBoxItemLine nLine, bool bAllowNegative=false) const
void SetRight(const tools::Long nR, const sal_uInt16 nProp=100)
tools::Long GetRight() const
tools::Long GetLeft() const
void SetLeft(const tools::Long nL, const sal_uInt16 nProp=100)
tools::Long GetHeight() const
sal_uInt16 GetUpper() const
sal_uInt16 GetLower() const
css::uno::Reference< css::i18n::XBreakIterator > const & GetBreakIter() const
SvxFrameDirection GetTextDirection(const SwPosition &rPos, const Point *pPt=nullptr) const
Of course Writer needs its own rectangles.
void Height(tools::Long nNew)
Represents the style of a paragraph.
SwTextNode is a paragraph in the document model.
const SfxPoolItem & GetAttr(sal_uInt16 nWhich, bool bInParent=true) const
End: Data collected during idle time.
const OUString & GetText() const
std::pair< C *, bool > StyleResult
C * MakeNonCollidingStyle(const OUString &rName, std::map< OUString, sal_Int32 > &rCollisions)
StyleMapperImpl(SwDoc &rDoc)
o3tl::sorted_vector< const C * > maUsedStyles
StyleResult GetStyle(const OUString &rName, ww::sti eSti, std::map< OUString, sal_Int32 > &rCollisions)
StyleResult GetStyle(const OUString &rName, ww::sti eSti, std::map< OUString, sal_Int32 > &rCollisions)
Get the writer style which the word style should map to.
std::pair< SwCharFormat *, bool > StyleResult
StyleResult StyleResult is a std::pair of a pointer to a style and a flag which is true if the style ...
std::unique_ptr<::myImplHelpers::StyleMapperImpl< SwCharFormat > > mpImpl
CharStyleMapper(SwDoc &rDoc)
FontMapExport(std::u16string_view rFontDescription)
Make export a word section top/bottom values easy.
bool StrictEqualTopBottom(const HdFtDistanceGlue &rOther) const
Is the top of the page the same in both objects when there are headers\footers present or non-present...
sal_uInt16 m_DyaHdrBottom
HdFtDistanceGlue(const SfxItemSet &rPage)
bool operator()(sal_uInt16 nA, sal_uInt16 nB) const
std::pair< SwTextFormatColl *, bool > StyleResult
StyleResult StyleResult is a std::pair of a pointer to a style and a flag which is true if the style ...
std::unique_ptr<::myImplHelpers::StyleMapperImpl< SwTextFormatColl > > mpImpl
ParaStyleMapper(SwDoc &rDoc)
StyleResult GetStyle(const OUString &rName, ww::sti eSti, std::map< OUString, sal_Int32 > &rCollisions)
Get the writer style which the word style should map to.
std::vector< SwColumn > SwColumns
@ Variable
Frame is variable in Var-direction.
UNOTOOLS_DLLPUBLIC bool IsOpenSymbol(std::u16string_view rFontName)
UNOTOOLS_DLLPUBLIC std::u16string_view GetNextFontToken(std::u16string_view rTokenStr, sal_Int32 &rIndex)
UNOTOOLS_DLLPUBLIC OUString GetSubsFontName(std::u16string_view rName, SubsFontFlags nFlags)
constexpr TypedWhichId< SwFormatHeader > RES_HEADER(102)
constexpr TypedWhichId< SwFormatINetFormat > RES_TXTATR_INETFMT(51)
constexpr TypedWhichId< SwHeaderAndFooterEatSpacingItem > RES_HEADER_FOOTER_EAT_SPACING(127)
constexpr TypedWhichId< SwFormatFooter > RES_FOOTER(103)
constexpr TypedWhichId< SwFormatCharFormat > RES_TXTATR_CHARFMT(52)
constexpr TypedWhichId< SvxBoxItem > RES_BOX(112)
constexpr TypedWhichId< SvxFontItem > RES_CHRATR_FONT(7)
constexpr TypedWhichId< SvxULSpaceItem > RES_UL_SPACE(98)
sal_uInt16 GetWhichOfScript(sal_uInt16 nWhich, sal_uInt16 nScript)
#define LANGUAGE_GERMAN_AUSTRIAN
#define LANGUAGE_SPANISH_PARAGUAY
#define LANGUAGE_GERMAN_SWISS
#define LANGUAGE_SPANISH_BOLIVIA
#define LANGUAGE_SPANISH_ECUADOR
#define LANGUAGE_FRENCH_LUXEMBOURG
#define LANGUAGE_PORTUGUESE
#define LANGUAGE_SWEDISH_FINLAND
#define LANGUAGE_GERMAN_LUXEMBOURG
#define LANGUAGE_ITALIAN_SWISS
#define LANGUAGE_SPANISH_VENEZUELA
#define LANGUAGE_FRENCH_SWISS
#define LANGUAGE_SPANISH_COLOMBIA
#define LANGUAGE_SPANISH_PANAMA
#define LANGUAGE_SPANISH_NICARAGUA
#define LANGUAGE_SPANISH_GUATEMALA
#define LANGUAGE_SPANISH_COSTARICA
#define LANGUAGE_JAPANESE
#define LANGUAGE_SPANISH_PERU
#define LANGUAGE_FRENCH_MONACO
#define LANGUAGE_SPANISH_CHILE
#define LANGUAGE_SPANISH_MODERN
#define LANGUAGE_SPANISH_EL_SALVADOR
#define LANGUAGE_FRENCH_CANADIAN
#define LANGUAGE_SPANISH_DATED
#define LANGUAGE_SPANISH_PUERTO_RICO
#define LANGUAGE_FRENCH_BELGIAN
#define LANGUAGE_SPANISH_DOMINICAN_REPUBLIC
#define LANGUAGE_NORWEGIAN
#define LANGUAGE_NORWEGIAN_NYNORSK
#define LANGUAGE_NORWEGIAN_BOKMAL
#define LANGUAGE_SPANISH_HONDURAS
#define LANGUAGE_GERMAN_LIECHTENSTEIN
#define LANGUAGE_SPANISH_ARGENTINA
#define LANGUAGE_SPANISH_MEXICAN
#define LANGUAGE_PORTUGUESE_BRAZILIAN
#define LANGUAGE_DUTCH_BELGIAN
#define LANGUAGE_SPANISH_URUGUAY
#define SAL_INFO(area, stream)
#define SAL_N_ELEMENTS(arr)
static OUString FindBestMSSubstituteFont(std::u16string_view rFont)
static SwTwips CalcFtDist(const SwFrameFormat &rFormat)
static SwTwips CalcHdDist(const SwFrameFormat &rFormat)
static SwTwips CalcHdFtDist(const SwFrameFormat &rFormat, sal_uInt16 nSpacing)
constexpr std::enable_if_t< std::is_signed_v< T >, std::make_unsigned_t< T > > make_unsigned(T value)
bool matchIgnoreAsciiCase(std::u16string_view s1, std::u16string_view s2, sal_Int32 fromIndex=0)
sal_uLong MSDateTimeFormatToSwFormat(OUString &rParams, SvNumberFormatter *pFormatter, LanguageType &rLang, bool bHijri, LanguageType nDocLang)
Convert from Word Date/Time field str to Writer's Date Time str.
sal_uInt8 rtl_TextEncodingToWinCharsetRTF(OUString const &rFontName, OUString const &rAltName, rtl_TextEncoding eTextEncoding)
MSOffice appears to set the charset of unicode fonts to MS 932.
sal_uInt8 rtl_TextEncodingToWinCharset(rtl_TextEncoding eTextEncoding)
MSOffice appears to set the charset of unicode fonts to MS 932.
sal_uInt32 DateTime2DTTM(const DateTime &rDT)
Convert from DTTM to Writer's DateTime.
static bool replaceUnquoted(OUString &rParams, std::u16string_view aFind, std::u16string_view aReplace)
Find all rFind in rParams if not embedded in " double quotes and replace with rReplace.
static bool CanEncode(OUString const &rString, rtl_TextEncoding const eEncoding)
void SwapQuotesInField(OUString &rFormat)
Another function used by MSDateTimeFormatToSwFormat.
bool IsNotAM(std::u16string_view rParams, sal_Int32 nPos)
Used by MSDateTimeFormatToSwFormat to identify AM time fields.
bool IsPreviousAM(std::u16string_view rParams, sal_Int32 nPos)
bool IsNextPM(std::u16string_view rParams, sal_Int32 nPos)
static sal_Int32 findUnquoted(std::u16string_view aParams, sal_Unicode cFind, sal_Int32 nFromPos)
Find cFind in rParams if not embedded in " double quotes.
SwCharFormat * GetCharStyle(SwDoc &rDoc, const OUString &rName)
Get a Character Style which fits a given name.
CharRuns GetPseudoCharRuns(const SwTextNode &rTextNd)
Collect the ranges of Text which share.
std::vector< CharRunEntry > CharRuns
SwTextFormatColl * GetParaStyle(SwDoc &rDoc, const OUString &rName)
Get a Paragraph Style which fits a given name.
bool IsPlausableSingleWordSection(const SwFrameFormat &rTitleFormat, const SwFrameFormat &rFollowFormat)
See if two page formats can be expressed as a single word section.
Dialog to specify the properties of date form field.
@ RES_POOLCOLL_HEADLINE5
Heading 5.
@ RES_POOLCOLL_TEXT
Text body.
@ RES_POOLCOLL_STANDARD
Standard.
@ RES_POOLCOLL_HEADLINE6
Heading 6.
@ RES_POOLCOLL_TOX_CNTNT4
Content 4th level.
@ RES_POOLCOLL_SIGNATURE
Signature.
@ RES_POOLCOLL_TOX_IDX3
3rd level.
@ RES_POOLCOLL_TOX_IDXH
Subgroup index tables.
@ RES_POOLCOLL_HEADLINE8
Heading 8.
@ RES_POOLCOLL_ENVELOPE_ADDRESS
Addressee.
@ RES_POOLCOLL_TOX_IDX2
2nd level.
@ RES_POOLCOLL_HEADER
Header Left&Right.
@ RES_POOLCOLL_TOX_CNTNT6
Content 6th level.
@ RES_POOLCOLL_TOX_CNTNT3
Content 3rd level.
@ RES_POOLCOLL_TOX_CNTNT5
Content 5th level.
@ RES_POOLCOLL_HEADLINE9
Heading 9.
@ RES_POOLCOLL_TOX_CNTNT2
Content 2nd level.
@ RES_POOLCOLL_TOX_IDX1
1st level.
@ RES_POOLCOLL_TOX_CNTNT1
Content 1st level.
@ RES_POOLCOLL_TEXT_MOVE
Text body indent.
@ RES_POOLCOLL_HEADLINE_BASE
Subgroup headings.
@ RES_POOLCOLL_SEND_ADDRESS
Sender.
@ RES_POOLCOLL_LISTS_BEGIN
Group lists.
@ RES_POOLCOLL_HEADLINE2
Heading 2.
@ RES_POOLCOLL_TOX_CNTNT7
Content 7th level.
@ RES_POOLCOLL_TOX_CNTNT8
Content 8th level.
@ RES_POOLCOLL_DOC_SUBTITLE
Doc. subtitle.
@ RES_POOLCOLL_TOX_CNTNT9
Content 9th level.
@ RES_POOLCOLL_HEADLINE4
Heading 4.
@ RES_POOLCOLL_FOOTNOTE
Footnotes.
@ RES_POOLCOLL_HEADLINE7
Heading 7.
@ RES_POOLCOLL_HEADLINE1
Heading 1.
@ RES_POOLCOLL_FOOTER
Subgroup footer.
@ RES_POOLCOLL_HEADLINE3
Heading 3.
@ RES_POOLCOLL_ENDNOTE
Endnotes.
RES_POOL_CHRFMT_TYPE
Ranges for the IDs of the formats.
@ RES_POOLCHR_INET_VISIT
Internet visited.
@ RES_POOLCHR_FOOTNOTE
Footnote.
@ RES_POOLCHR_HTML_EMPHASIS
@ RES_POOLCHR_ENDNOTE
Endnote.
@ RES_POOLCHR_PAGENO
Pages/field.
@ RES_POOLCHR_INET_NORMAL
Internet normal.
@ RES_POOLCHR_HTML_STRONG
@ RES_POOLCHR_LINENUM
Line numbering.
Marks a position in the document model.
bool anyOf(strong_int v) const
TOOLS_DLLPUBLIC rtl_TextEncoding GetExtendedTextEncoding(rtl_TextEncoding eEncoding)
static SvxLRSpaceItem lcl_getWordLRSpace(const SwFrameFormat &rFormat)
Count what Word calls left/right margin from a format's LRSpace + Box.