diff options
author | Thomas Lange <tl@openoffice.org> | 2001-08-02 14:37:39 +0000 |
---|---|---|
committer | Thomas Lange <tl@openoffice.org> | 2001-08-02 14:37:39 +0000 |
commit | b87f0421519cd059a4208a09d540b0317a1df634 (patch) | |
tree | 7eaaaed76e1520d41cec191865541cebba0a36c1 | |
parent | 3f477bf4b59c3171cc7fa3e70f60b53f5f931415 (diff) |
#90029# french 50 <-> 60 symbol name conversion
-rw-r--r-- | starmath/inc/document.hxx | 8 | ||||
-rw-r--r-- | starmath/inc/smmod.hxx | 43 | ||||
-rw-r--r-- | starmath/inc/starmath.hrc | 6 | ||||
-rw-r--r-- | starmath/source/document.cxx | 84 | ||||
-rw-r--r-- | starmath/source/smmod.cxx | 33 | ||||
-rw-r--r-- | starmath/source/symbol.cxx | 66 |
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)) |