summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--linguistic/inc/lngprops.hxx8
-rw-r--r--linguistic/source/lngopt.cxx131
-rw-r--r--linguistic/source/lngopt.hxx10
3 files changed, 124 insertions, 25 deletions
diff --git a/linguistic/inc/lngprops.hxx b/linguistic/inc/lngprops.hxx
index c787a5451a82..39810c28921b 100644
--- a/linguistic/inc/lngprops.hxx
+++ b/linguistic/inc/lngprops.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: lngprops.hxx,v $
*
- * $Revision: 1.1.1.1 $
+ * $Revision: 1.2 $
*
- * last change: $Author: hr $ $Date: 2000-11-17 12:37:29 $
+ * last change: $Author: tl $ $Date: 2000-11-22 15:54:32 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -88,6 +88,8 @@
// and more likely used in other modules only)
#define UPN_DEFAULT_LANGUAGE "DefaultLanguage"
#define UPN_DEFAULT_LOCALE "DefaultLocale"
+#define UPN_DEFAULT_LOCALE_CJK "DefaultLocale_CJK"
+#define UPN_DEFAULT_LOCALE_CTL "DefaultLocale_CTL"
#define UPN_IS_HYPH_AUTO "IsHyphAuto"
#define UPN_IS_HYPH_SPECIAL "IsHyphSpecial"
#define UPN_IS_SPELL_AUTO "IsSpellAuto"
@@ -121,6 +123,8 @@
#define WID_IS_STANDARD_THESAURUS 19
#define WID_OTHER_LINGU_INDEX 20
#define WID_DEFAULT_LANGUAGE 21
+#define WID_DEFAULT_LOCALE_CJK 22
+#define WID_DEFAULT_LOCALE_CTL 23
// UNO property handles
diff --git a/linguistic/source/lngopt.cxx b/linguistic/source/lngopt.cxx
index 854123275b1e..269be3047924 100644
--- a/linguistic/source/lngopt.cxx
+++ b/linguistic/source/lngopt.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: lngopt.cxx,v $
*
- * $Revision: 1.1.1.1 $
+ * $Revision: 1.2 $
*
- * last change: $Author: hr $ $Date: 2000-11-17 12:37:38 $
+ * last change: $Author: tl $ $Date: 2000-11-22 15:56:01 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -152,6 +152,15 @@ static const OUString LanguageToCfgLocaleStr( INT16 nLanguage )
return aRes;
}
+
+static INT16 CfgAnyToLanguage( const Any &rVal )
+{
+ OUString aTmp;
+ rVal >>= aTmp;
+ return CfgLocaleStrToLanguage( aTmp );
+}
+
+
///////////////////////////////////////////////////////////////////////////
@@ -181,6 +190,9 @@ static void GetSeqLangSvcList( const Any &rVal )
for (INT32 j = 0; j < nSvcs; ++j)
{
OUString aImplName( pSvcName[i] );
+
+ // TL TODO: services needs to be set when new
+ // configuration dialogue is available
}
}
}
@@ -192,6 +204,29 @@ static void GetSeqLangSvcList( const Any &rVal )
static void GetSeqLangSvc( const Any &rVal )
{
+ Reference< XNameAccess > xNameAcc;
+ rVal >>= xNameAcc;
+ if (xNameAcc.is())
+ {
+ const Sequence< OUString > aNames( xNameAcc->getElementNames() );
+ INT32 nLen = aNames.getLength();
+ if (nLen)
+ {
+ const OUString *pName = aNames.getConstArray();
+ for (INT32 i = 0; i < nLen; ++i)
+ {
+ Any aTmp( xNameAcc->getByName( pName[i] ) );
+ if (aTmp.hasValue())
+ {
+ OUString aImplName;
+ aTmp >>= aImplName;
+
+ // TL TODO: service needs to be set when new
+ // configuration dialogue is available
+ }
+ }
+ }
+ }
}
@@ -206,6 +241,9 @@ LinguOptions::LinguOptionsData::LinguOptionsData() :
if( nDefaultLanguage == LANGUAGE_SYSTEM )
nDefaultLanguage = System::GetLanguage();
+ nDefaultLanguage_CJK = LANGUAGE_NONE;
+ nDefaultLanguage_CTL = LANGUAGE_NONE;
+
// general options
bIsGermanPreReform = FALSE;
bIsUseDictionaryList =
@@ -266,7 +304,9 @@ Sequence< OUString > LinguOptions::LinguOptionsData::GetPropertyNames()
"ExternalLinguistic/IsUseStandardThesaurus", // 21
"ServiceManager/SpellCheckerList", // 22
"ServiceManager/ThesaurusList", // 23
- "ServiceManager/HyphenatorList" // 24
+ "ServiceManager/HyphenatorList", // 24
+ "General/DefaultLocale_CJK", // 25
+ "General/DefaultLocale_CTL" // 26
};
INT32 nCount = sizeof(aPropNames) / sizeof(aPropNames[0]);
@@ -299,13 +339,7 @@ BOOL LinguOptions::LinguOptionsData::LoadConfig()
{
switch (i)
{
- case 0:
- {
- OUString aTmp;
- rVal >>= aTmp;
- nDefaultLanguage = CfgLocaleStrToLanguage( aTmp );
- break;
- }
+ case 0: nDefaultLanguage = CfgAnyToLanguage( rVal ); break;
case 1: rVal >>= aActiveDics; break;
case 2: rVal >>= bIsUseDictionaryList; break;
case 3: rVal >>= bIsIgnoreControlCharacters; break;
@@ -330,6 +364,8 @@ BOOL LinguOptions::LinguOptionsData::LoadConfig()
case 22: GetSeqLangSvcList( rVal ); break;
case 23: GetSeqLangSvcList( rVal ); break;
case 24: GetSeqLangSvc( rVal ); break;
+ case 25: nDefaultLanguage_CJK = CfgAnyToLanguage( rVal ); break;
+ case 26: nDefaultLanguage_CTL = CfgAnyToLanguage( rVal ); break;
default:
DBG_ERROR( "unexpected case" );
}
@@ -363,6 +399,7 @@ BOOL LinguOptions::LinguOptionsData::SaveConfig()
{
OUString aTmp( LanguageToCfgLocaleStr( nDefaultLanguage ) );
rVal = makeAny( aTmp );
+ break;
}
case 1: rVal = makeAny( aActiveDics ); break;
case 2: rVal.setValue( &bIsUseDictionaryList, rBOOL ); break;
@@ -388,6 +425,18 @@ BOOL LinguOptions::LinguOptionsData::SaveConfig()
case 22: break;
case 23: break;
case 24: break;
+ case 25:
+ {
+ OUString aTmp( LanguageToCfgLocaleStr( nDefaultLanguage_CJK ) );
+ rVal = makeAny( aTmp );
+ break;
+ }
+ case 26:
+ {
+ OUString aTmp( LanguageToCfgLocaleStr( nDefaultLanguage_CTL ) );
+ rVal = makeAny( aTmp );
+ break;
+ }
default:
DBG_ERROR( "unexpected case" );
}
@@ -444,6 +493,25 @@ LinguOptions::~LinguOptions()
}
+BOOL LinguOptions::SetLocale_Impl( INT16 &rLanguage, Any &rOld, const Any &rVal)
+{
+ BOOL bRes = FALSE;
+
+ Locale aNew;
+ rVal >>= aNew;
+ INT16 nNew = LocaleToLanguage( aNew );
+ if (nNew != rLanguage)
+ {
+ Locale aLocale( CreateLocale( rLanguage ) );
+ rOld.setValue( &aLocale, ::getCppuType((Locale*)0 ));
+ rLanguage = nNew;
+ bRes = TRUE;
+ }
+
+ return bRes;
+}
+
+
BOOL LinguOptions::SetValue( Any &rOld, const Any &rVal, INT32 nWID )
{
MutexGuard aGuard( GetLinguMutex() );
@@ -478,16 +546,17 @@ BOOL LinguOptions::SetValue( Any &rOld, const Any &rVal, INT32 nWID )
case WID_HYPH_MIN_WORD_LENGTH : pnVal = &pData->nHyphMinWordLength; break;
case WID_DEFAULT_LOCALE :
{
- Locale aNew;
- rVal >>= aNew;
- INT16 nNew = LocaleToLanguage( aNew );
- if (nNew != pData->nDefaultLanguage)
- {
- Locale aLocale( CreateLocale( pData->nDefaultLanguage ) );
- rOld.setValue( &aLocale, ::getCppuType((Locale*)0 ));
- pData->nDefaultLanguage = nNew;
- bRes = TRUE;
- }
+ bRes = SetLocale_Impl( pData->nDefaultLanguage, rOld, rVal );
+ break;
+ }
+ case WID_DEFAULT_LOCALE_CJK :
+ {
+ bRes = SetLocale_Impl( pData->nDefaultLanguage_CJK, rOld, rVal );
+ break;
+ }
+ case WID_DEFAULT_LOCALE_CTL :
+ {
+ bRes = SetLocale_Impl( pData->nDefaultLanguage_CTL, rOld, rVal );
break;
}
default :
@@ -562,6 +631,18 @@ void LinguOptions::GetValue( Any &rVal, INT32 nWID ) const
rVal.setValue( &aLocale, ::getCppuType((Locale*)0 ));
break;
}
+ case WID_DEFAULT_LOCALE_CJK :
+ {
+ Locale aLocale( CreateLocale( pData->nDefaultLanguage_CJK ) );
+ rVal.setValue( &aLocale, ::getCppuType((Locale*)0 ));
+ break;
+ }
+ case WID_DEFAULT_LOCALE_CTL :
+ {
+ Locale aLocale( CreateLocale( pData->nDefaultLanguage_CTL ) );
+ rVal.setValue( &aLocale, ::getCppuType((Locale*)0 ));
+ break;
+ }
default :
{
DBG_ERROR("lng : unknown WID");
@@ -581,6 +662,8 @@ struct WID_Name
const char *pPropertyName;
};
+//! order of entries is import (see LinguOptions::GetName)
+//! since the WID is used as index in this table!
WID_Name aWID_Name[] =
{
WID_IS_GERMAN_PRE_REFORM, UPN_IS_GERMAN_PRE_REFORM,
@@ -604,7 +687,9 @@ WID_Name aWID_Name[] =
WID_IS_STANDARD_SPELL_CHECKER, UPN_IS_STANDARD_SPELL_CHECKER,
WID_IS_STANDARD_THESAURUS, UPN_IS_STANDARD_THESAURUS,
WID_OTHER_LINGU_INDEX, UPN_OTHER_LINGU_INDEX,
- WID_DEFAULT_LANGUAGE, UPN_DEFAULT_LANGUAGE
+ WID_DEFAULT_LANGUAGE, UPN_DEFAULT_LANGUAGE,
+ WID_DEFAULT_LOCALE_CJK, UPN_DEFAULT_LOCALE_CJK,
+ WID_DEFAULT_LOCALE_CTL, UPN_DEFAULT_LOCALE_CTL
};
@@ -690,6 +775,10 @@ static SfxItemPropertyMap aLinguProps[] =
&::getCppuType( (sal_Int16*)0 ), 0, 0 },
{ MAP_CHAR_LEN(UPN_DEFAULT_LOCALE), WID_DEFAULT_LOCALE,
&::getCppuType( (Locale* )0), 0, 0 },
+ { MAP_CHAR_LEN(UPN_DEFAULT_LOCALE_CJK), WID_DEFAULT_LOCALE,
+ &::getCppuType( (Locale* )0), 0, 0 },
+ { MAP_CHAR_LEN(UPN_DEFAULT_LOCALE_CTL), WID_DEFAULT_LOCALE,
+ &::getCppuType( (Locale* )0), 0, 0 },
{ MAP_CHAR_LEN(UPN_HYPH_MIN_LEADING), WID_HYPH_MIN_LEADING,
&::getCppuType( (sal_Int16*)0 ), 0, 0 },
{ MAP_CHAR_LEN(UPN_HYPH_MIN_TRAILING), WID_HYPH_MIN_TRAILING,
diff --git a/linguistic/source/lngopt.hxx b/linguistic/source/lngopt.hxx
index 0b2847a172f2..3c808bf88a79 100644
--- a/linguistic/source/lngopt.hxx
+++ b/linguistic/source/lngopt.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: lngopt.hxx,v $
*
- * $Revision: 1.1.1.1 $
+ * $Revision: 1.2 $
*
- * last change: $Author: hr $ $Date: 2000-11-17 12:37:38 $
+ * last change: $Author: tl $ $Date: 2000-11-22 15:56:01 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -140,6 +140,8 @@ class LinguOptions
// misc options (non-service specific)
INT16 nDefaultLanguage;
+ INT16 nDefaultLanguage_CJK;
+ INT16 nDefaultLanguage_CTL;
// spelling options (non-service specific)
BOOL bIsSpellSpecial;
@@ -185,6 +187,10 @@ class LinguOptions
//! uses default assignment-operator
+ BOOL LinguOptions::SetLocale_Impl( INT16 &rLanguage,
+ ::com::sun::star::uno::Any &rOld,
+ const ::com::sun::star::uno::Any &rVal);
+
public:
LinguOptions();
LinguOptions(const LinguOptions &rOpt);