summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Lange <tl@openoffice.org>2001-08-02 14:37:39 +0000
committerThomas Lange <tl@openoffice.org>2001-08-02 14:37:39 +0000
commitb87f0421519cd059a4208a09d540b0317a1df634 (patch)
tree7eaaaed76e1520d41cec191865541cebba0a36c1
parent3f477bf4b59c3171cc7fa3e70f60b53f5f931415 (diff)
#90029# french 50 <-> 60 symbol name conversion
-rw-r--r--starmath/inc/document.hxx8
-rw-r--r--starmath/inc/smmod.hxx43
-rw-r--r--starmath/inc/starmath.hrc6
-rw-r--r--starmath/source/document.cxx84
-rw-r--r--starmath/source/smmod.cxx33
-rw-r--r--starmath/source/symbol.cxx66
6 files changed, 157 insertions, 83 deletions
diff --git a/starmath/inc/document.hxx b/starmath/inc/document.hxx
index 589489c92bf9..d3a6dbf5c175 100644
--- a/starmath/inc/document.hxx
+++ b/starmath/inc/document.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: document.hxx,v $
*
- * $Revision: 1.11 $
+ * $Revision: 1.12 $
*
- * last change: $Author: jp $ $Date: 2001-07-05 10:52:21 $
+ * last change: $Author: tl $ $Date: 2001-08-02 15:31:38 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -212,7 +212,9 @@ class SmDocShell : public SfxObjectShell, public SfxInPlaceObject,
Printer *GetPrt();
- void Convert40To50Txt();
+ void Convert40To50Txt( String &rText );
+ void Convert50To60Txt( String &rText );
+ void Convert60To50Txt( String &rText );
BOOL IsFormulaArranged() const { return bIsFormulaArranged; }
void SetFormulaArranged(BOOL bVal) { bIsFormulaArranged = bVal; }
diff --git a/starmath/inc/smmod.hxx b/starmath/inc/smmod.hxx
index 38257ad2b71d..62b65dbfe4c4 100644
--- a/starmath/inc/smmod.hxx
+++ b/starmath/inc/smmod.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: smmod.hxx,v $
*
- * $Revision: 1.3 $
+ * $Revision: 1.4 $
*
- * last change: $Author: jp $ $Date: 2001-07-06 13:02:49 $
+ * last change: $Author: tl $ $Date: 2001-08-02 15:32:10 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -62,6 +62,9 @@
#ifndef _SMMOD_HXX
#define _SMMOD_HXX
+#ifndef _SV_RESARY_HXX
+#include <tools/resary.hxx>
+#endif
#ifndef _SMDLL_HXX
#define _SM_DLL // fuer SD_MOD()
@@ -89,11 +92,39 @@ class SmModule;
class SmRectCache;
class SvtSysLocale;
+/////////////////////////////////////////////////////////////////
+
+class SmLocalizedSymbolData : public Resource
+{
+ ResStringArray aUiSymbolNamesAry;
+ ResStringArray aExportSymbolNamesAry;
+ ResStringArray aUiSymbolSetNamesAry;
+ ResStringArray aExportSymbolSetNamesAry;
+ ResStringArray aFrench50NamesAry;
+ ResStringArray aFrench60NamesAry;
+
+public:
+ SmLocalizedSymbolData();
+ ~SmLocalizedSymbolData();
+
+ const ResStringArray& GetUiSymbolNamesArray() const { return aUiSymbolNamesAry; }
+ const ResStringArray& GetExportSymbolNamesArray() const { return aExportSymbolNamesAry; }
+
+ const ResStringArray& GetUiSymbolSetNamesArray() const { return aUiSymbolSetNamesAry; }
+ const ResStringArray& GetExportSymbolSetNamesArray() const { return aExportSymbolSetNamesAry; }
+
+ const ResStringArray& GetFrench50NamesArray() const { return aFrench50NamesAry; }
+ const ResStringArray& GetFrench60NamesArray() const { return aFrench60NamesAry; }
+};
+
+/////////////////////////////////////////////////////////////////
+
class SmModule : public SmModuleDummy
{
- SmConfig *pConfig;
- SmRectCache *pRectCache;
- SvtSysLocale *pSysLocale;
+ SmConfig *pConfig;
+ SmLocalizedSymbolData *pLocSymbolData;
+ SmRectCache *pRectCache;
+ SvtSysLocale *pSysLocale;
virtual void FillStatusBar(StatusBar &rBar);
void _CreateSysLocale() const;
@@ -111,6 +142,8 @@ public:
SmConfig * GetConfig();
SmRectCache * GetRectCache() { return pRectCache; }
+ const SmLocalizedSymbolData & GetLocSymbolData() const;
+
void GetState(SfxItemSet&);
const SvtSysLocale& GetSysLocale() const
diff --git a/starmath/inc/starmath.hrc b/starmath/inc/starmath.hrc
index 6e3b5250c479..35024ce8e94b 100644
--- a/starmath/inc/starmath.hrc
+++ b/starmath/inc/starmath.hrc
@@ -2,9 +2,9 @@
*
* $RCSfile: starmath.hrc,v $
*
- * $Revision: 1.8 $
+ * $Revision: 1.9 $
*
- * last change: $Author: cmc $ $Date: 2001-08-01 13:55:13 $
+ * last change: $Author: tl $ $Date: 2001-08-02 15:32:47 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -459,6 +459,8 @@
#define RID_LOCALIZED_SYMBOLSET_NAMES (RID_APP_START + 3104)
#define RID_UI_SYMBOLSET_NAMES (RID_APP_START + 3105)
#define RID_EXPORT_SYMBOLSET_NAMES (RID_APP_START + 3106)
+#define RID_FRENCH_50_NAMES (RID_APP_START + 3107)
+#define RID_FRENCH_60_NAMES (RID_APP_START + 3108)
#define HID_SMA_OPTIONSDIALOG (HID_SMA_START + 1)
#define HID_SMA_FONTDIALOG (HID_SMA_START + 2)
diff --git a/starmath/source/document.cxx b/starmath/source/document.cxx
index 2db109d8c389..0ff1ab4e589d 100644
--- a/starmath/source/document.cxx
+++ b/starmath/source/document.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: document.cxx,v $
*
- * $Revision: 1.38 $
+ * $Revision: 1.39 $
*
- * last change: $Author: jp $ $Date: 2001-07-30 09:28:13 $
+ * last change: $Author: tl $ $Date: 2001-08-02 15:36:37 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -663,7 +663,7 @@ BOOL SmDocShell::SetData( const String& rData )
return TRUE;
}
-void SmDocShell::Convert40To50Txt()
+void SmDocShell::Convert40To50Txt( String &rText )
// adapts the text 'aText' to be parsed from 4.0 version, to changes made
// in 5.0 version. (Namely that functions do not need arguments any more)
// Example: "2 over sin x" acts very different in 4.0 and 5.0
@@ -674,11 +674,11 @@ void SmDocShell::Convert40To50Txt()
// parse in old 4.0 style and make changes for 5.0 style
BOOL bVal = aInterpreter.IsConvert40To50();
aInterpreter.SetConvert40To50(TRUE);
- pTree = aInterpreter.Parse(aText);
+ pTree = aInterpreter.Parse(rText);
aInterpreter.SetConvert40To50(bVal);
// get new to 5.0 version converted text
- aText = aInterpreter.GetText();
+ rText = aInterpreter.GetText();
// clean up tree parsed in old style
if (pTree)
@@ -688,6 +688,46 @@ void SmDocShell::Convert40To50Txt()
}
+void SmDocShell::Convert50To60Txt( String &rText )
+{
+ // change french 50 symbol-names to their 60 equivalent
+ // even in strings ("") and comments (%%).
+ // Thus a simple text replacement should work.
+ if (LANGUAGE_FRENCH == Application::GetSettings().GetUILanguage())
+ {
+ const SmLocalizedSymbolData &rData = SM_MOD1()->GetLocSymbolData();
+ const ResStringArray &rFrench50 = rData.GetFrench50NamesArray();
+ const ResStringArray &rFrench60 = rData.GetFrench60NamesArray();
+ USHORT nCount = rFrench50.Count();
+ for (USHORT i = 0; i < nCount; ++i)
+ {
+ rText.SearchAndReplaceAll( rFrench50.GetString(i),
+ rFrench60.GetString(i) );
+ }
+ }
+}
+
+
+void SmDocShell::Convert60To50Txt( String &rText )
+{
+ // change french 60 symbol-names to their 50 equivalent
+ // even in strings ("") and comments (%%).
+ // Thus a simple text replacement should work.
+ if (LANGUAGE_FRENCH == Application::GetSettings().GetUILanguage())
+ {
+ const SmLocalizedSymbolData &rData = SM_MOD1()->GetLocSymbolData();
+ const ResStringArray &rFrench50 = rData.GetFrench50NamesArray();
+ const ResStringArray &rFrench60 = rData.GetFrench60NamesArray();
+ USHORT nCount = rFrench60.Count();
+ for (USHORT i = 0; i < nCount; ++i)
+ {
+ rText.SearchAndReplaceAll( rFrench60.GetString(i),
+ rFrench50.GetString(i) );
+ }
+ }
+}
+
+
BOOL SmDocShell::ConvertFrom(SfxMedium &rMedium)
{
BOOL bSuccess = FALSE;
@@ -799,8 +839,15 @@ BOOL SmDocShell::Load(SvStorage *pStor)
}
else
{
- if ( pStor->GetVersion() <= SOFFICE_FILEFORMAT_40 )
- Convert40To50Txt();
+ long nVersion = pStor->GetVersion();
+ if ( nVersion <= SOFFICE_FILEFORMAT_40 )
+ Convert40To50Txt( aText );
+ if ( nVersion <= SOFFICE_FILEFORMAT_50 )
+ Convert50To60Txt( aText );
+ if (pTree)
+ { delete pTree;
+ pTree = NULL;
+ }
}
}
}
@@ -845,8 +892,13 @@ BOOL SmDocShell::Insert(SvStorage *pStor)
aTemp += aText;
aText = aTemp;
- if( bChkOldVersion && SOFFICE_FILEFORMAT_40 >= pStor->GetVersion() )
- Convert40To50Txt();
+ if( bChkOldVersion )
+ {
+ if( SOFFICE_FILEFORMAT_40 >= pStor->GetVersion() )
+ Convert40To50Txt( aText );
+ if( SOFFICE_FILEFORMAT_50 >= pStor->GetVersion() )
+ Convert50To60Txt( aText );
+ }
Parse();
SetModified(TRUE);
@@ -865,7 +917,10 @@ BOOL SmDocShell::Insert(SvStorage *pStor)
void SmDocShell::ImplSave( SvStorageStreamRef xStrm )
{
- ByteString exString (ExportString(aText));
+ String aTmp( aText );
+ if (SOFFICE_FILEFORMAT_50 >= xStrm->GetVersion())
+ Convert60To50Txt( aTmp );
+ ByteString exString( ExportString( aTmp ) );
*xStrm << SM304AIDENT << SM50VERSION
<< 'T';
@@ -879,15 +934,6 @@ void SmDocShell::ImplSave( SvStorageStreamRef xStrm )
BOOL SmDocShell::Save()
{
-#if 0
- if ( SfxInPlaceObject::Save() && aDocStream.Is() )
- {
- aDocStream->Seek(0);
- ImplSave( aDocStream );
- return TRUE;
- }
-#endif
-
//! apply latest changes if necessary
UpdateText();
diff --git a/starmath/source/smmod.cxx b/starmath/source/smmod.cxx
index f96c675d2501..a9e48c7a47b0 100644
--- a/starmath/source/smmod.cxx
+++ b/starmath/source/smmod.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: smmod.cxx,v $
*
- * $Revision: 1.3 $
+ * $Revision: 1.4 $
*
- * last change: $Author: jp $ $Date: 2001-07-06 13:02:28 $
+ * last change: $Author: tl $ $Date: 2001-08-02 15:37:06 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -122,6 +122,27 @@ TYPEINIT1( SmModule, SmModuleDummy );
#define SmModule
#include "smslots.hxx"
+/////////////////////////////////////////////////////////////////
+
+SmLocalizedSymbolData::SmLocalizedSymbolData() :
+ Resource( SmResId(RID_LOCALIZED_NAMES) ),
+ aUiSymbolNamesAry ( ResId(RID_UI_SYMBOL_NAMES) ),
+ aExportSymbolNamesAry ( ResId(RID_EXPORT_SYMBOL_NAMES) ),
+ aUiSymbolSetNamesAry ( ResId(RID_UI_SYMBOLSET_NAMES) ),
+ aExportSymbolSetNamesAry( ResId(RID_EXPORT_SYMBOLSET_NAMES) ),
+ aFrench50NamesAry ( ResId(RID_FRENCH_50_NAMES) ),
+ aFrench60NamesAry ( ResId(RID_FRENCH_60_NAMES) )
+{
+ FreeResource();
+}
+
+
+SmLocalizedSymbolData::~SmLocalizedSymbolData()
+{
+}
+
+/////////////////////////////////////////////////////////////////
+
SFX_IMPL_INTERFACE(SmModule, SfxModule, SmResId(RID_APPLICATION))
{
SFX_STATUSBAR_REGISTRATION(SmResId(RID_STATUSBAR));
@@ -131,6 +152,7 @@ SFX_IMPL_INTERFACE(SmModule, SfxModule, SmResId(RID_APPLICATION))
SmModule::SmModule(SvFactory* pObjFact) :
SmModuleDummy(SFX_APP()->CreateResManager("sm"), FALSE, pObjFact),
pConfig( 0 ),
+ pLocSymbolData( 0 ),
pRectCache( new SmRectCache ),
pSysLocale( 0 )
{
@@ -141,6 +163,7 @@ SmModule::SmModule(SvFactory* pObjFact) :
SmModule::~SmModule()
{
delete pConfig;
+ delete pLocSymbolData;
delete pRectCache;
delete pSysLocale;
}
@@ -158,6 +181,12 @@ SmConfig * SmModule::GetConfig()
return pConfig;
}
+const SmLocalizedSymbolData & SmModule::GetLocSymbolData() const
+{
+ if (!pLocSymbolData)
+ ((SmModule *) this)->pLocSymbolData = new SmLocalizedSymbolData;
+ return *pLocSymbolData;
+}
void SmModule::GetState(SfxItemSet &rSet)
{
diff --git a/starmath/source/symbol.cxx b/starmath/source/symbol.cxx
index a8761f12e69a..beca93a17bda 100644
--- a/starmath/source/symbol.cxx
+++ b/starmath/source/symbol.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: symbol.cxx,v $
*
- * $Revision: 1.13 $
+ * $Revision: 1.14 $
*
- * last change: $Author: tl $ $Date: 2001-07-17 08:28:21 $
+ * last change: $Author: tl $ $Date: 2001-08-02 15:37:39 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -72,11 +72,7 @@
#endif
#ifndef _SV_RESARY_HXX
-#if SUPD >= 637
#include <tools/resary.hxx>
-#else
-#include <vcl/resary.hxx>
-#endif
#endif
#ifndef _SFXDISPATCH_HXX //autogen
@@ -130,45 +126,14 @@ long SF_Ident = SF_IDENT;
/**************************************************************************/
-class SmMathConfigResource : public Resource
-{
- ResStringArray aUiSymbolNamesAry;
- ResStringArray aExportSymbolNamesAry;
- ResStringArray aUiSymbolSetNamesAry;
- ResStringArray aExportSymbolSetNamesAry;
-
-public:
- SmMathConfigResource();
-
- ResStringArray& GetUiSymbolNamesArray() { return aUiSymbolNamesAry; }
- ResStringArray& GetExportSymbolNamesArray() { return aExportSymbolNamesAry; }
-
- ResStringArray& GetUiSymbolSetNamesArray() { return aUiSymbolSetNamesAry; }
- ResStringArray& GetExportSymbolSetNamesArray() { return aExportSymbolSetNamesAry; }
-};
-
-
-SmMathConfigResource::SmMathConfigResource() :
- Resource( SmResId(RID_LOCALIZED_NAMES) ),
- aUiSymbolNamesAry ( ResId(RID_UI_SYMBOL_NAMES) ),
- aExportSymbolNamesAry ( ResId(RID_EXPORT_SYMBOL_NAMES) ),
- aUiSymbolSetNamesAry ( ResId(RID_UI_SYMBOLSET_NAMES) ),
- aExportSymbolSetNamesAry( ResId(RID_EXPORT_SYMBOLSET_NAMES) )
-{
- FreeResource();
-}
-
-/**************************************************************************/
-
String GetExportSymbolName( const String &rUiSymbolName )
{
String aRes;
- SmMathConfigResource aCfgRes;
- ResStringArray &rUiNames = aCfgRes.GetUiSymbolNamesArray();
- ResStringArray &rExportNames = aCfgRes.GetExportSymbolNamesArray();
+ const SmLocalizedSymbolData &rData = SM_MOD1()->GetLocSymbolData();
+ const ResStringArray &rUiNames = rData.GetUiSymbolNamesArray();
+ const ResStringArray &rExportNames = rData.GetExportSymbolNamesArray();
USHORT nCount = rUiNames.Count();
-
for (USHORT i = 0; i < nCount; ++i)
{
if (rUiSymbolName == rUiNames.GetString(i))
@@ -186,11 +151,10 @@ String GetUiSymbolName( const String &rExportSymbolName )
{
String aRes;
- SmMathConfigResource aCfgRes;
- ResStringArray &rUiNames = aCfgRes.GetUiSymbolNamesArray();
- ResStringArray &rExportNames = aCfgRes.GetExportSymbolNamesArray();
+ const SmLocalizedSymbolData &rData = SM_MOD1()->GetLocSymbolData();
+ const ResStringArray &rUiNames = rData.GetUiSymbolNamesArray();
+ const ResStringArray &rExportNames = rData.GetExportSymbolNamesArray();
USHORT nCount = rExportNames.Count();
-
for (USHORT i = 0; i < nCount; ++i)
{
if (rExportSymbolName == rExportNames.GetString(i))
@@ -207,11 +171,10 @@ String GetExportSymbolSetName( const String &rUiSymbolSetName )
{
String aRes;
- SmMathConfigResource aCfgRes;
- ResStringArray &rUiNames = aCfgRes.GetUiSymbolSetNamesArray();
- ResStringArray &rExportNames = aCfgRes.GetExportSymbolSetNamesArray();
+ const SmLocalizedSymbolData &rData = SM_MOD1()->GetLocSymbolData();
+ const ResStringArray &rUiNames = rData.GetUiSymbolSetNamesArray();
+ const ResStringArray &rExportNames = rData.GetExportSymbolSetNamesArray();
USHORT nCount = rUiNames.Count();
-
for (USHORT i = 0; i < nCount; ++i)
{
if (rUiSymbolSetName == rUiNames.GetString(i))
@@ -229,11 +192,10 @@ String GetUiSymbolSetName( const String &rExportSymbolSetName )
{
String aRes;
- SmMathConfigResource aCfgRes;
- ResStringArray &rUiNames = aCfgRes.GetUiSymbolSetNamesArray();
- ResStringArray &rExportNames = aCfgRes.GetExportSymbolSetNamesArray();
+ const SmLocalizedSymbolData &rData = SM_MOD1()->GetLocSymbolData();
+ const ResStringArray &rUiNames = rData.GetUiSymbolSetNamesArray();
+ const ResStringArray &rExportNames = rData.GetExportSymbolSetNamesArray();
USHORT nCount = rExportNames.Count();
-
for (USHORT i = 0; i < nCount; ++i)
{
if (rExportSymbolSetName == rExportNames.GetString(i))