22#include <com/sun/star/lang/Locale.hpp>
23#include <com/sun/star/lang/XMultiServiceFactory.hpp>
24#include <com/sun/star/beans/PropertyValue.hpp>
25#include <com/sun/star/configuration/theDefaultProvider.hpp>
26#include <com/sun/star/container/XNameAccess.hpp>
27#include <com/sun/star/util/XChangesBatch.hpp>
64 if (nNew != rLanguage)
89 : bROActiveDics(false)
90 , bROActiveConvDics(false)
93 , nHyphMinWordLength(0)
94 , bROHyphMinLeading(false)
95 , bROHyphMinTrailing(false)
96 , bROHyphMinWordLength(false)
100 , bRODefaultLanguage(false)
101 , bRODefaultLanguage_CJK(false)
102 , bRODefaultLanguage_CTL(false)
103 , bIsSpellSpecial(true)
104 , bIsSpellAuto(false)
105 , bIsSpellReverse(false)
106 , bROIsSpellSpecial(false)
107 , bROIsSpellAuto(false)
108 , bROIsSpellReverse(false)
109 , bIsHyphSpecial(true)
111 , bROIsHyphSpecial(false)
112 , bROIsHyphAuto(false)
113 , bIsUseDictionaryList(true)
114 , bIsIgnoreControlCharacters(true)
115 , bROIsUseDictionaryList(false)
116 , bROIsIgnoreControlCharacters(false)
117 , bIsSpellWithDigits(false)
118 , bIsSpellUpperCase(false)
119 , bIsSpellCapitalization(true)
120 , bIsSpellClosedCompound(true)
121 , bIsSpellHyphenatedCompound(true)
122 , bROIsSpellWithDigits(false)
123 , bROIsSpellUpperCase(false)
124 , bROIsSpellCapitalization(false)
125 , bROIsSpellClosedCompound(false)
126 , bROIsSpellHyphenatedCompound(false)
127 , bIsIgnorePostPositionalWord(true)
128 , bIsAutoCloseDialog(false)
129 , bIsShowEntriesRecentlyUsedFirst(false)
130 , bIsAutoReplaceUniqueEntries(false)
131 , bIsDirectionToSimplified(true)
132 , bIsUseCharacterVariants(false)
133 , bIsTranslateCommonTerms(false)
134 , bIsReverseMapping(false)
135 , bROIsIgnorePostPositionalWord(false)
136 , bROIsAutoCloseDialog(false)
137 , bROIsShowEntriesRecentlyUsedFirst(false)
138 , bROIsAutoReplaceUniqueEntries(false)
139 , bROIsDirectionToSimplified(false)
140 , bROIsUseCharacterVariants(false)
141 , bROIsTranslateCommonTerms(false)
142 , bROIsReverseMapping(false)
143 , nDataFilesChangedCheckValue(0)
144 , bRODataFilesChangedCheckValue(false)
145 , bIsGrammarAuto(false)
146 , bIsGrammarInteractive(false)
147 , bROIsGrammarAuto(false)
148 , bROIsGrammarInteractive(false)
156 static bool GetHdlByName( sal_Int32 &rnHdl, std::u16string_view rPropertyName,
bool bFullPropName =
false );
158 void LoadOptions(
const uno::Sequence< OUString > &rProperyNames );
159 bool SaveOptions(
const uno::Sequence< OUString > &rProperyNames );
169 virtual void Notify(
const css::uno::Sequence< OUString > &rPropertyNames )
override;
180 GetProperty( std::u16string_view rPropertyName )
const;
185 const css::uno::Any &rValue );
187 const css::uno::Any &rValue );
191 bool IsReadOnly( std::u16string_view rPropertyName )
const;
192 bool IsReadOnly( sal_Int32 nPropertyHandle )
const;
196 utl::ConfigItem(
"Office.Linguistic" )
209 std::unique_lock aGuard(theSvtLinguConfigItemMutex());
224 const char *pFullPropName;
278 uno::Sequence< OUString > aNames;
280 OUString *pNames = aNames.getArray();
284 const char *pFullPropName = nameToHdl.pFullPropName;
286 pNames[ nIdx++ ] = OUString::createFromAscii( pFullPropName );
288 aNames.realloc( nIdx );
295 std::u16string_view rPropertyName,
302 while (pEntry && pEntry->pFullPropName !=
nullptr)
306 rnHdl = pEntry->nHdl;
311 return pEntry && pEntry->pFullPropName !=
nullptr;
315 while (pEntry && pEntry->pFullPropName !=
nullptr)
317 if (rPropertyName == pEntry->aPropName )
319 rnHdl = pEntry->nHdl;
324 return pEntry && pEntry->pFullPropName !=
nullptr;
336 std::unique_lock aGuard(theSvtLinguConfigItemMutex());
340 const sal_Int16 *pnVal =
nullptr;
342 const bool *pbVal =
nullptr;
343 const sal_Int32 *pnInt32Val =
nullptr;
346 switch (nPropertyHandle)
403 SAL_WARN(
"unotools.config",
"unexpected property handle" );
411 aRes <<= static_cast<sal_Int16>(
static_cast<sal_uInt16
>(*plVal));
413 aRes <<= *pnInt32Val;
429 std::unique_lock aGuard(theSvtLinguConfigItemMutex());
437 sal_Int16 *pnVal =
nullptr;
439 bool *pbVal =
nullptr;
440 sal_Int32 *pnInt32Val =
nullptr;
443 switch (nPropertyHandle)
505 SAL_WARN(
"unotools.config",
"unexpected property handle" );
523 sal_Int16 nNew = sal_Int16();
536 sal_Int16 nNew = sal_Int16();
539 if (nNew !=
static_cast<sal_uInt16
>(*plVal))
549 sal_Int32 nNew = sal_Int32();
552 if (nNew != *pnInt32Val)
570 std::unique_lock aGuard(theSvtLinguConfigItemMutex());
578 const OUString *pProperyNames = rProperyNames.getConstArray();
579 sal_Int32 nProps = rProperyNames.getLength();
581 const uno::Sequence< uno::Any > aValues =
GetProperties( rProperyNames );
584 if (nProps && aValues.getLength() == nProps && aROStates.getLength() == nProps)
588 const uno::Any *pValue = aValues.getConstArray();
589 const sal_Bool *pROStates = aROStates.getConstArray();
590 for (sal_Int32
i = 0;
i < nProps; ++
i)
593 sal_Int32 nPropertyHandle(0);
595 switch ( nPropertyHandle )
684 SAL_WARN(
"unotools.config",
"unexpected case" );
698 std::unique_lock aGuard(theSvtLinguConfigItemMutex());
702 sal_Int32 nProps = rProperyNames.getLength();
703 uno::Sequence< uno::Any > aValues( nProps );
704 uno::Any *pValue = aValues.getArray();
706 if (nProps && aValues.getLength() == nProps)
771 std::unique_lock aGuard(theSvtLinguConfigItemMutex());
776 switch(nPropertyHandle)
811 SAL_WARN(
"unotools.config",
"unexpected property handle" );
824 std::unique_lock aGuard(theSvtLinguConfigItemMutex());
833 std::unique_lock aGuard(theSvtLinguConfigItemMutex());
845 std::unique_lock aGuard(theSvtLinguConfigItemMutex());
866 const OUString &rNode,
const uno::Sequence< beans::PropertyValue >& rValues )
902 const OUString &rNodeName,
903 uno::Sequence< OUString > &rElementNames )
const
905 bool bSuccess =
false;
908 uno::Reference< container::XNameAccess > xNA(
GetMainUpdateAccess(), uno::UNO_QUERY_THROW );
909 xNA.set( xNA->getByName(
"ServiceManager"), uno::UNO_QUERY_THROW );
910 xNA.set( xNA->getByName( rNodeName ), uno::UNO_QUERY_THROW );
911 rElementNames = xNA->getElementNames();
914 catch (uno::Exception &)
921 const OUString &rSetName,
922 const OUString &rSetEntry,
923 uno::Sequence< OUString > &rFormatList )
const
925 if (rSetName.isEmpty() || rSetEntry.isEmpty())
927 bool bSuccess =
false;
930 uno::Reference< container::XNameAccess > xNA(
GetMainUpdateAccess(), uno::UNO_QUERY_THROW );
931 xNA.set( xNA->getByName(
"ServiceManager"), uno::UNO_QUERY_THROW );
932 xNA.set( xNA->getByName( rSetName ), uno::UNO_QUERY_THROW );
933 xNA.set( xNA->getByName( rSetEntry ), uno::UNO_QUERY_THROW );
934 if (xNA->getByName(
"SupportedDictionaryFormats" ) >>= rFormatList)
936 DBG_ASSERT( rFormatList.hasElements(),
"supported dictionary format list is empty" );
938 catch (uno::Exception &)
946 const OUString &rOrigin )
959 "unotools.config",
"not a file URL, <" <<
aURL <<
">" );
965 const OUString &rNodeName,
968 if (rNodeName.isEmpty())
970 bool bSuccess =
false;
973 uno::Reference< container::XNameAccess > xNA(
GetMainUpdateAccess(), uno::UNO_QUERY_THROW );
974 xNA.set( xNA->getByName(
"ServiceManager"), uno::UNO_QUERY_THROW );
976 xNA.set( xNA->getByName( rNodeName ), uno::UNO_QUERY_THROW );
979 uno::Sequence< OUString > aLocations;
980 OUString aFormatName;
981 uno::Sequence< OUString > aLocaleNames;
982 bSuccess = (xNA->getByName(
"Locations" ) >>= aLocations) &&
983 (xNA->getByName(
"Format" ) >>= aFormatName) &&
984 (xNA->getByName(
"Locales" ) >>= aLocaleNames);
985 DBG_ASSERT( aLocations.hasElements(),
"Dictionary locations not set" );
986 DBG_ASSERT( !aFormatName.isEmpty(),
"Dictionary format name not set" );
987 DBG_ASSERT( aLocaleNames.hasElements(),
"No locales set for the dictionary" );
993 for (OUString& rLocation : asNonConstRange(aLocations))
1008 catch (uno::Exception &)
1016 uno::Sequence< OUString > aResult;
1019 uno::Reference< container::XNameAccess > xNA(
GetMainUpdateAccess(), uno::UNO_QUERY_THROW );
1020 xNA.set( xNA->getByName(
"ServiceManager"), uno::UNO_QUERY_THROW );
1021 xNA->getByName(
"DisabledDictionaries" ) >>= aResult;
1023 catch (uno::Exception &)
1030 std::u16string_view rFormatName )
const
1032 std::vector< SvtLinguConfigDictionaryEntry > aRes;
1033 if (rFormatName.empty())
1038 uno::Sequence< OUString > aElementNames;
1044 for (
const OUString& rElementName : std::as_const(aElementNames))
1051 bool bDicIsActive = std::none_of(aDisabledDics.begin(), aDisabledDics.end(),
1052 [&rElementName](
const OUString& rDic) { return rDic == rElementName; });
1057 "FormatName not set" );
1059 "Locations not set" );
1061 "Locales not set" );
1062 aRes.push_back( aDicEntry );
1067 catch (uno::Exception &)
1082 uno::Reference< lang::XMultiServiceFactory > xConfigurationProvider =
1086 beans::PropertyValue aValue;
1087 aValue.Name =
"nodepath";
1088 aValue.Value <<= OUString(
"org.openoffice.Office.Linguistic");
1089 uno::Sequence< uno::Any > aProps{
uno::Any(aValue) };
1091 xConfigurationProvider->createInstanceWithArguments(
1092 "com.sun.star.configuration.ConfigurationUpdateAccess", aProps),
1093 uno::UNO_QUERY_THROW );
1095 catch (uno::Exception &)
1104 const OUString &rServiceImplName,
1105 const OUString &rImageName )
const
1110 uno::Reference< container::XNameAccess > xImagesNA(
GetMainUpdateAccess(), uno::UNO_QUERY_THROW );
1111 xImagesNA.set( xImagesNA->getByName(
"Images"), uno::UNO_QUERY_THROW );
1113 uno::Reference< container::XNameAccess > xNA( xImagesNA->getByName(
"ServiceNameEntries"), uno::UNO_QUERY_THROW );
1114 xNA.set( xNA->getByName( rServiceImplName ), uno::UNO_QUERY_THROW );
1115 uno::Any aAny(xNA->getByName(
"VendorImagesNode"));
1116 OUString aVendorImagesNode;
1117 if (aAny >>= aVendorImagesNode)
1120 xNA.set( xNA->getByName(
"VendorImages"), uno::UNO_QUERY_THROW );
1121 xNA.set( xNA->getByName( aVendorImagesNode ), uno::UNO_QUERY_THROW );
1122 aAny = xNA->getByName( rImageName );
1131 catch (uno::Exception &)
1139 const OUString &rServiceImplName
1143 if (!rServiceImplName.isEmpty())
1151 const OUString &rServiceImplName
1155 if (!rServiceImplName.isEmpty())
1163 const OUString &rServiceImplName
1167 if (!rServiceImplName.isEmpty())
1181 uno::Reference< container::XNameAccess > xNA(
GetMainUpdateAccess(), uno::UNO_QUERY_THROW );
1182 xNA.set( xNA->getByName(
"ServiceManager"), uno::UNO_QUERY_THROW );
1183 xNA.set( xNA->getByName(
"GrammarCheckerList"), uno::UNO_QUERY_THROW );
1185 uno::Sequence< OUString > aElementNames( xNA->getElementNames() );
1186 bRes = aElementNames.hasElements();
1188 catch (
const uno::Exception&)
static void holdConfigItem(EItem eItem)
static css::lang::Locale convertToLocale(LanguageType nLangID, bool bResolveSystem=true)
static OUString convertToBcp47(LanguageType nLangID)
static LanguageType convertToLanguageType(const css::lang::Locale &rLocale, bool bResolveSystem=true)
static LanguageType convertToLanguageTypeWithFallback(const OUString &rBcp47)
static bool isTraditionalChinese(LanguageType nLang)
void LoadOptions(const uno::Sequence< OUString > &rProperyNames)
static uno::Sequence< OUString > GetPropertyNames()
virtual void ImplCommit() override
writes the changed values into the sub tree.
bool IsReadOnly(std::u16string_view rPropertyName) const
bool SaveOptions(const uno::Sequence< OUString > &rProperyNames)
bool SetProperty(sal_Int32 nPropertyHandle, const css::uno::Any &rValue)
bool SetProperty(std::u16string_view rPropertyName, const css::uno::Any &rValue)
SvtLinguConfigItem(const SvtLinguConfigItem &)=delete
SvtLinguConfigItem & operator=(const SvtLinguConfigItem &)=delete
static bool GetHdlByName(sal_Int32 &rnHdl, std::u16string_view rPropertyName, bool bFullPropName=false)
void GetOptions(SvtLinguOptions &) const
css::uno::Any GetProperty(std::u16string_view rPropertyName) const
virtual void Notify(const css::uno::Sequence< OUString > &rPropertyNames) override
is called from the ConfigManager before application ends of from the PropertyChangeListener if the su...
css::uno::Sequence< OUString > GetNodeNames(const OUString &rNode) const
css::uno::Sequence< OUString > GetDisabledDictionaries() const
void GetOptions(SvtLinguOptions &rOptions) const
OUString GetVendorImageUrl_Impl(const OUString &rServiceImplName, const OUString &rImageName) const
bool GetDictionaryEntry(const OUString &rNodeName, SvtLinguConfigDictionaryEntry &rDicEntry) const
std::vector< SvtLinguConfigDictionaryEntry > GetActiveDictionariesByFormat(std::u16string_view rFormatName) const
bool HasGrammarChecker() const
css::uno::Any GetProperty(std::u16string_view rPropertyName) const
bool IsReadOnly(std::u16string_view rPropertyName) const
css::uno::Sequence< css::uno::Any > GetProperties(const css::uno::Sequence< OUString > &rNames) const
static UNOTOOLS_DLLPRIVATE SvtLinguConfigItem & GetConfigItem()
bool ReplaceSetProperties(const OUString &rNode, const css::uno::Sequence< css::beans::PropertyValue > &rValues)
css::uno::Reference< css::util::XChangesBatch > const & GetMainUpdateAccess() const
bool GetElementNamesFor(const OUString &rNodeName, css::uno::Sequence< OUString > &rElementNames) const
the following functions work on the 'ServiceManager' sub node of the linguistic configuration only
bool GetSupportedDictionaryFormatsFor(const OUString &rSetName, const OUString &rSetEntry, css::uno::Sequence< OUString > &rFormatList) const
OUString GetSpellAndGrammarContextSuggestionImage(const OUString &rServiceImplName) const
OUString GetSynonymsContextImage(const OUString &rServiceImplName) const
css::uno::Reference< css::util::XChangesBatch > m_xMainUpdateAccess
bool SetProperty(std::u16string_view rPropertyName, const css::uno::Any &rValue)
OUString GetSpellAndGrammarContextDictionaryImage(const OUString &rServiceImplName) const
virtual ~SvtLinguConfig() override
css::uno::Sequence< css::uno::Any > GetProperties(const css::uno::Sequence< OUString > &rNames)
css::uno::Sequence< OUString > GetNodeNames(const OUString &rNode)
bool EnableNotification(const css::uno::Sequence< OUString > &rNames, bool bEnableInternalNotification=false)
enables notifications about changes on selected sub nodes/values
bool PutProperties(const css::uno::Sequence< OUString > &rNames, const css::uno::Sequence< css::uno::Any > &rValues)
bool ReplaceSetProperties(const OUString &rNode, const css::uno::Sequence< css::beans::PropertyValue > &rValues)
css::uno::Sequence< sal_Bool > GetReadOnlyStates(const css::uno::Sequence< OUString > &rNames)
void NotifyListeners(ConfigurationHints nHint)
#define DBG_ASSERT(sCon, aError)
#define DBG_UNHANDLED_EXCEPTION(...)
static bool lcl_GetFileUrlFromOrigin(OUString &rFileUrl, const OUString &rOrigin)
static bool lcl_SetLocale(LanguageType &rLanguage, const uno::Any &rVal)
constexpr OUStringLiteral FILE_PROTOCOL
static LanguageType lcl_CfgAnyToLanguage(const uno::Any &rVal)
constexpr OUStringLiteral aG_Dictionaries
static SvtLinguConfigItem * pCfgItem
NamesToHdl const aNamesToHdl[]
static sal_Int32 nCfgItemRefCount
static OUString lcl_LanguageToCfgLocaleStr(LanguageType nLanguage)
#define UPH_IS_AUTO_CLOSE_DIALOG
constexpr OUStringLiteral UPN_IS_GRAMMAR_AUTO
#define UPH_DATA_FILES_CHANGED_CHECK_VALUE
constexpr OUStringLiteral UPN_IS_DIRECTION_TO_SIMPLIFIED
#define UPH_ACTIVE_DICTIONARIES
constexpr OUStringLiteral UPN_DATA_FILES_CHANGED_CHECK_VALUE
constexpr OUStringLiteral UPN_IS_TRANSLATE_COMMON_TERMS
constexpr OUStringLiteral UPN_IS_USE_CHARACTER_VARIANTS
#define UPH_HYPH_MIN_WORD_LENGTH
#define UPH_IS_SPELL_WITH_DIGITS
constexpr OUStringLiteral UPN_IS_SPELL_AUTO
#define UPH_IS_SPELL_SPECIAL
#define UPH_IS_SPELL_CLOSED_COMPOUND
constexpr OUStringLiteral UPN_IS_HYPH_AUTO
#define UPH_IS_GRAMMAR_AUTO
#define UPH_DEFAULT_LOCALE_CTL
#define UPH_IS_HYPH_SPECIAL
#define UPH_IS_DIRECTION_TO_SIMPLIFIED
#define UPH_HYPH_MIN_LEADING
constexpr OUStringLiteral UPN_IS_SPELL_UPPER_CASE
#define UPH_IS_SPELL_HYPHENATED_COMPOUND
constexpr OUStringLiteral UPN_IS_WRAP_REVERSE
#define UPH_ACTIVE_CONVERSION_DICTIONARIES
constexpr OUStringLiteral UPN_IS_REVERSE_MAPPING
constexpr OUStringLiteral UPN_IS_SPELL_CLOSED_COMPOUND
#define UPH_IS_GRAMMAR_INTERACTIVE
constexpr OUStringLiteral UPN_IS_IGNORE_POST_POSITIONAL_WORD
constexpr OUStringLiteral UPN_ACTIVE_CONVERSION_DICTIONARIES
constexpr OUStringLiteral UPN_IS_USE_DICTIONARY_LIST
constexpr OUStringLiteral UPN_HYPH_MIN_WORD_LENGTH
#define UPH_DEFAULT_LANGUAGE
constexpr OUStringLiteral UPN_IS_GRAMMAR_INTERACTIVE
constexpr OUStringLiteral UPN_HYPH_MIN_LEADING
constexpr OUStringLiteral UPN_IS_SHOW_ENTRIES_RECENTLY_USED_FIRST
constexpr OUStringLiteral UPN_IS_SPELL_WITH_DIGITS
constexpr OUStringLiteral UPN_IS_SPELL_HYPHENATED_COMPOUND
#define UPH_IS_SPELL_UPPER_CASE
constexpr OUStringLiteral UPN_IS_IGNORE_CONTROL_CHARACTERS
#define UPH_IS_SHOW_ENTRIES_RECENTLY_USED_FIRST
#define UPH_HYPH_MIN_TRAILING
constexpr OUStringLiteral UPN_DEFAULT_LANGUAGE
constexpr OUStringLiteral UPN_ACTIVE_DICTIONARIES
constexpr OUStringLiteral UPN_IS_HYPH_SPECIAL
constexpr OUStringLiteral UPN_DEFAULT_LOCALE
#define UPH_IS_REVERSE_MAPPING
#define UPH_IS_USE_CHARACTER_VARIANTS
constexpr OUStringLiteral UPN_IS_AUTO_CLOSE_DIALOG
constexpr OUStringLiteral UPN_DEFAULT_LOCALE_CTL
constexpr OUStringLiteral UPN_HYPH_MIN_TRAILING
#define UPH_DEFAULT_LOCALE
#define UPH_IS_IGNORE_POST_POSITIONAL_WORD
#define UPH_IS_WRAP_REVERSE
#define UPH_IS_AUTO_REPLACE_UNIQUE_ENTRIES
constexpr OUStringLiteral UPN_DEFAULT_LOCALE_CJK
#define UPH_IS_USE_DICTIONARY_LIST
#define UPH_IS_SPELL_CAPITALIZATION
#define UPH_DEFAULT_LOCALE_CJK
#define UPH_IS_SPELL_AUTO
constexpr OUStringLiteral UPN_IS_SPELL_CAPITALIZATION
constexpr OUStringLiteral UPN_IS_AUTO_REPLACE_UNIQUE_ENTRIES
#define UPH_IS_TRANSLATE_COMMON_TERMS
constexpr OUStringLiteral UPN_IS_SPELL_SPECIAL
#define UPH_IS_IGNORE_CONTROL_CHARACTERS
#define SAL_WARN(area, stream)
OUString get(TranslateId sContextAndId, const std::locale &loc)
COMPHELPER_DLLPUBLIC OUString getExpandedUri(css::uno::Reference< css::uno::XComponentContext > const &context, OUString const &uri)
Reference< XComponentContext > getProcessComponentContext()
bool equalsAscii(std::u16string_view s1, std::string_view s2)
css::uno::Sequence< OUString > aLocaleNames
css::uno::Sequence< OUString > aLocations
LanguageType nDefaultLanguage
bool bROIsAutoCloseDialog
LanguageType nDefaultLanguage_CTL
bool bIsUseCharacterVariants
LanguageType nDefaultLanguage_CJK
bool bROIsDirectionToSimplified
bool bROIsUseCharacterVariants
bool bROIsTranslateCommonTerms
bool bIsSpellCapitalization
sal_Int16 nHyphMinTrailing
bool bROHyphMinWordLength
bool bROIsIgnoreControlCharacters
bool bROIsSpellClosedCompound
bool bROIsAutoReplaceUniqueEntries
css::uno::Sequence< OUString > aActiveDics
bool bROIsSpellHyphenatedCompound
bool bIsTranslateCommonTerms
sal_Int16 nHyphMinLeading
bool bIsSpellClosedCompound
bool bROIsUseDictionaryList
bool bIsAutoReplaceUniqueEntries
sal_Int32 nDataFilesChangedCheckValue
bool bIsGrammarInteractive
bool bIsShowEntriesRecentlyUsedFirst
bool bIsDirectionToSimplified
bool bRODataFilesChangedCheckValue
bool bIsIgnoreControlCharacters
bool bRODefaultLanguage_CJK
bool bIsSpellHyphenatedCompound
bool bROIsIgnorePostPositionalWord
bool bROIsSpellWithDigits
bool bIsIgnorePostPositionalWord
bool bRODefaultLanguage_CTL
bool bROIsSpellCapitalization
sal_Int16 nHyphMinWordLength
bool bROIsGrammarInteractive
css::uno::Sequence< OUString > aActiveConvDics
bool bIsUseDictionaryList
bool bROIsShowEntriesRecentlyUsedFirst