22 #include <strings.hrc>
28 #ifdef _NEED_TO_DEBUG_MAPPING
36 lcl_GetSpecialExtraName(
const OUString& rExtraName,
const bool bIsUIName )
38 const std::vector<OUString>& rExtraArr = bIsUIName
41 static const sal_uInt16 nIds[] =
50 const sal_uInt16 * pIds;
51 for ( pIds = nIds; *pIds; ++pIds)
53 if (rExtraName == rExtraArr[ *pIds ])
63 bool lcl_SuffixIsUser(
const OUString & rString)
66 sal_Int32 nLen = rString.getLength();
69 pChar[nLen-7] ==
' ' &&
70 pChar[nLen-6] ==
'(' &&
71 pChar[nLen-5] ==
'u' &&
72 pChar[nLen-4] ==
's' &&
73 pChar[nLen-3] ==
'e' &&
74 pChar[nLen-2] ==
'r' &&
75 pChar[nLen-1] ==
')' )
80 void lcl_CheckSuffixAndDelete(OUString & rString)
82 if (lcl_SuffixIsUser(rString))
84 rString = rString.copy(0, rString.getLength() - 7);
89 template <
typename... Rest>
90 NameToIdHash HashFromRange(sal_uInt16 nAcc, sal_uInt16 nBegin, sal_uInt16 nEnd,
91 const std::vector<OUString>& (*pFunc)(), Rest... rest)
93 NameToIdHash hash(HashFromRange(nAcc + nEnd - nBegin, rest...));
95 const std::vector<OUString>& rStrings = pFunc();
96 for (nIndex = 0, nId = nBegin; nId < nEnd; nId++, nIndex++)
97 hash[rStrings[nIndex]] = nId;
101 template <auto initFunc>
struct TablePair
113 static std::map<LanguageTag, NameToIdHash> s_aUIMap;
115 auto it = s_aUIMap.find(rCurrentLanguage);
116 if (it == s_aUIMap.end())
117 it = s_aUIMap.emplace(rCurrentLanguage, initFunc(
false)).first;
125 return HashFromRange(0,
137 return HashFromRange(0,
145 return HashFromRange(0,
152 return HashFromRange(0,
159 return HashFromRange(0,
166 return HashFromRange(0,
173 return HashFromRange(0,
180 #ifdef _NEED_TO_DEBUG_MAPPING
181 void SwStyleNameMapper::testNameTable(
SwGetPoolIdFromName const nFamily, sal_uInt16
const nStartIndex, sal_uInt16
const nEndIndex )
186 for ( nIndex = 0, nId = nStartIndex ; nId < nEndIndex ; nId++,nIndex++ )
188 OUString aString, bString;
193 bString =
GetUIName ( aString, nFamily );
203 #ifdef _NEED_TO_DEBUG_MAPPING
204 static bool bTested =
false;
226 return TablePair<GetParaMap>::getMap(bProgName);
228 return TablePair<GetCharMap>::getMap(bProgName);
230 return TablePair<GetFrameMap>::getMap(bProgName);
232 return TablePair<GetPageMap>::getMap(bProgName);
234 return TablePair<GetNumRuleMap>::getMap(bProgName);
236 return TablePair<GetTableStyleMap>::getMap(bProgName);
238 return TablePair<GetCellStyleMap>::getMap(bProgName);
250 return nId != USHRT_MAX ?
GetUIName( nId, rName ) : rName;
258 return nId != USHRT_MAX ?
GetProgName( nId, rName ) : rName;
263 const OUString& rName, OUString& rFillName,
267 if ( nId == USHRT_MAX )
273 if (nId == USHRT_MAX )
277 if (lcl_SuffixIsUser(rFillName))
278 rFillName +=
" (user)";
283 rFillName +=
" (user)";
293 rFillName =
"Standard";
298 const OUString& rName, OUString& rFillName,
301 OUString
aName = rName;
303 aName =
SwResId(STR_POOLCHR_STANDARD);
306 if ( nId == USHRT_MAX )
310 lcl_CheckSuffixAndDelete ( rFillName );
320 sal_uInt16
const nId,
const OUString& rFillName,
bool const bProgName)
323 const std::vector<OUString>* pStrArr =
nullptr;
410 return pStrArr ? pStrArr->operator[](nId - nStt) : rFillName;
414 sal_uInt16
const nId, OUString& rFillName,
bool bProgName)
427 sal_uInt16
const nId,
const OUString& rName)
450 NameToIdHash::const_iterator aIter = rHashMap.find(rName);
451 return aIter != rHashMap.end() ? (*aIter).second : USHRT_MAX;
459 NameToIdHash::const_iterator aIter = rHashMap.find(rName);
460 return aIter != rHashMap.end() ? (*aIter).second : USHRT_MAX;
468 static const std::vector<OUString> s_aCellStyleUINameArray;
469 return s_aCellStyleUINameArray;
474 static const std::vector<OUString> s_aTextProgNameArray = {
496 return s_aTextProgNameArray;
501 static const std::vector<OUString> s_aListsProgNameArray = {
544 return s_aListsProgNameArray;
549 static const std::vector<OUString> s_aExtraProgNameArray = {
571 return s_aExtraProgNameArray;
576 static const std::vector<OUString> s_aRegisterProgNameArray = {
589 "User Index Heading",
600 "Figure Index Heading",
602 "Object index heading",
604 "Table index heading",
606 "Bibliography Heading",
614 return s_aRegisterProgNameArray;
619 static const std::vector<OUString> s_aDocProgNameArray = {
624 return s_aDocProgNameArray;
629 static const std::vector<OUString> s_aHTMLProgNameArray = {
636 return s_aHTMLProgNameArray;
641 static const std::vector<OUString> s_aFrameFormatProgNameArray = {
650 return s_aFrameFormatProgNameArray;
655 static const std::vector<OUString> s_aChrFormatProgNameArray = {
658 "Caption characters",
663 "Visited Internet Link",
672 "Vertical Numbering Symbols",
674 return s_aChrFormatProgNameArray;
679 static const std::vector<OUString> s_aHTMLChrFormatProgNameArray = {
690 return s_aHTMLChrFormatProgNameArray;
695 static const std::vector<OUString> s_aPageDescProgNameArray = {
707 return s_aPageDescProgNameArray;
712 static const std::vector<OUString> s_aNumRuleProgNameArray = {
725 return s_aNumRuleProgNameArray;
733 static const std::vector<OUString> s_aTableStyleProgNameArray = {
744 "Currency Turquoise",
758 "Simple Grid Columns",
760 "Simple List Shaded",
762 return s_aTableStyleProgNameArray;
768 static const std::vector<OUString> s_aCellStyleProgNameArray;
769 return s_aCellStyleProgNameArray;
775 return lcl_GetSpecialExtraName( rExtraUIName,
true );
781 return lcl_GetSpecialExtraName( rExtraProgName,
false );
const sal_uInt16 COLL_LISTS_BITS
const sal_uInt16 COLL_DOC_BITS
static const std::vector< OUString > & GetDocProgNameArray()
static const std::vector< OUString > & GetListsUINameArray()
static const std::vector< OUString > & GetTableStyleUINameArray()
Group chapter / document.
static const std::vector< OUString > & GetFrameFormatUINameArray()
const LanguageTag & GetUILanguageTag() const
const sal_uInt16 COLL_GET_RANGE_BITS
static void FillUIName(const OUString &rName, OUString &rFillName, SwGetPoolIdFromName)
static const std::vector< OUString > & GetExtraProgNameArray()
static const std::vector< OUString > & GetTextProgNameArray()
static const NameToIdHash & getHashTable(SwGetPoolIdFromName, bool bProgName)
static const std::vector< OUString > & GetHTMLUINameArray()
End of text styles collection.
const sal_uInt16 COLL_HTML_BITS
static const std::vector< OUString > & GetChrFormatProgNameArray()
static const std::vector< OUString > & GetPageDescUINameArray()
OUString SwResId(TranslateId aId)
static const std::vector< OUString > & GetDocUINameArray()
static const std::vector< OUString > & GetListsProgNameArray()
static const std::vector< OUString > & GetRegisterProgNameArray()
static SW_DLLPUBLIC sal_uInt16 GetPoolIdFromUIName(const OUString &rName, SwGetPoolIdFromName)
const sal_uInt16 COLL_REGISTER_BITS
const sal_uInt16 POOLGRP_NOCOLLID
POOLCOLL-IDs: +-—+—+—+—+—+—+—+—+—+—+—+—+—+—+—+—+ !User! Range ! 0 ! Offset ! +-—+—+...
static const std::vector< OUString > & GetHTMLChrFormatProgNameArray()
static const OUString & getNameFromId(sal_uInt16 nId, const OUString &rName, bool bProgName)
static SW_DLLPUBLIC const OUString & GetSpecialExtraProgName(const OUString &rExtraUIName)
static const std::vector< OUString > & GetHTMLProgNameArray()
const sal_uInt16 POOLGRP_PAGEDESC
std::unordered_map< OUString, sal_uInt16 > NameToIdHash
This class holds all data about the names of styles used in the user interface (UI names...
static void fillNameFromId(sal_uInt16 nId, OUString &rName, bool bProgName)
static const std::vector< OUString > & GetCellStyleProgNameArray()
returns an empty array because Cell Names aren't translated
const sal_uInt16 POOLGRP_FRAMEFMT
static const std::vector< OUString > & GetNumRuleUINameArray()
const sal_uInt16 USER_FMT
POLLCOLL-groups:
static const std::vector< OUString > & GetHTMLChrFormatUINameArray()
static const std::vector< OUString > & GetChrFormatUINameArray()
static const std::vector< OUString > & GetExtraUINameArray()
const sal_uInt16 POOLGRP_NUMRULE
static void FillProgName(const OUString &rName, OUString &rFillName, SwGetPoolIdFromName)
static const std::vector< OUString > & GetRegisterUINameArray()
static const OUString & GetUIName(const OUString &rName, SwGetPoolIdFromName)
static const std::vector< OUString > & GetCellStyleUINameArray()
returns an empty array because Cell Names aren't translated
const sal_uInt16 POOLGRP_TABSTYLE
static const std::vector< OUString > & GetNumRuleProgNameArray()
static const std::vector< OUString > & GetTableStyleProgNameArray()
static const std::vector< OUString > & GetPageDescProgNameArray()
const sal_uInt16 COLL_TEXT_BITS
const sal_uInt16 POOLGRP_CHARFMT
Other groups:
static const std::vector< OUString > & GetTextUINameArray()
static const std::vector< OUString > & GetFrameFormatProgNameArray()
static sal_uInt16 GetPoolIdFromProgName(const OUString &rName, SwGetPoolIdFromName)
const sal_uInt16 COLL_EXTRA_BITS
static const OUString & GetSpecialExtraUIName(const OUString &rExtraProgName)
static const OUString & GetProgName(const OUString &rName, SwGetPoolIdFromName)