diff options
author | Vladimir Glazunov <vg@openoffice.org> | 2011-01-27 16:53:34 +0100 |
---|---|---|
committer | Vladimir Glazunov <vg@openoffice.org> | 2011-01-27 16:53:34 +0100 |
commit | fc8b4b4b2ebe3d5183e00a07ba8721d5909c34ad (patch) | |
tree | 34da321814885c40a3e6267b9bba6cf1fba2d13f /starmath/inc | |
parent | a8fec4fc9cfcbc0fbf21f5a118facd84baac60d4 (diff) | |
parent | 70fc69da2e9a673505a8e1236501ddf577efb64a (diff) |
CWS-TOOLING: integrate CWS tl84
Diffstat (limited to 'starmath/inc')
-rwxr-xr-x[-rw-r--r--] | starmath/inc/dialog.hxx | 1 | ||||
-rwxr-xr-x[-rw-r--r--] | starmath/inc/document.hxx | 16 | ||||
-rwxr-xr-x[-rw-r--r--] | starmath/inc/parse.hxx | 80 | ||||
-rwxr-xr-x[-rw-r--r--] | starmath/inc/starmath.hrc | 5 |
4 files changed, 61 insertions, 41 deletions
diff --git a/starmath/inc/dialog.hxx b/starmath/inc/dialog.hxx index a421cc8a164e..818fec8009c9 100644..100755 --- a/starmath/inc/dialog.hxx +++ b/starmath/inc/dialog.hxx @@ -71,6 +71,7 @@ class SmPrintOptionsTabPage : public SfxTabPage MetricField aZoom; FixedLine aFixedLine3; CheckBox aNoRightSpaces; + CheckBox aSaveOnlyUsedSymbols; DECL_LINK(SizeButtonClickHdl, Button *); diff --git a/starmath/inc/document.hxx b/starmath/inc/document.hxx index f03cd43fc965..3aea9e3e4e09 100644..100755 --- a/starmath/inc/document.hxx +++ b/starmath/inc/document.hxx @@ -29,19 +29,21 @@ #define SMDLL 1 -#include <sot/storage.hxx> -#include <sot/sotref.hxx> +#include <rtl/ustring.hxx> +#include <sfx2/docfac.hxx> #include <sfx2/objsh.hxx> +#include <sot/sotref.hxx> +#include <sot/storage.hxx> #include <svl/lstner.hxx> -#include <sfx2/docfac.hxx> +#include <vcl/jobset.hxx> #include <vcl/virdev.hxx> +#include <set> + #include "format.hxx" #include "parse.hxx" #include "smmod.hxx" -#include <vcl/jobset.hxx> - class SmNode; class SfxMenuBarManager; class SfxPrinter; @@ -124,6 +126,8 @@ class SmDocShell : public SfxObjectShell, public SfxListener USHORT nModifyCount; BOOL bIsFormulaArranged; + std::set< rtl::OUString > aUsedSymbols; // to export used symbols only when saving + virtual void SFX_NOTIFY(SfxBroadcaster& rBC, const TypeId& rBCType, @@ -200,6 +204,8 @@ public: const SmNode * GetFormulaTree() const { return pTree; } void SetFormulaTree(SmNode *&rTree) { pTree = rTree; } + const std::set< rtl::OUString > & GetUsedSymbols() const { return aUsedSymbols; } + String GetAccessibleText(); EditEngine & GetEditEngine(); diff --git a/starmath/inc/parse.hxx b/starmath/inc/parse.hxx index facf17d561e2..e30193490539 100644..100755 --- a/starmath/inc/parse.hxx +++ b/starmath/inc/parse.hxx @@ -33,11 +33,16 @@ #include <tools/list.hxx> #include <tools/string.hxx> +#include <set> +#include <stack> +#include <list> + #include "types.hxx" class SmNode; class SmDocShell; +////////////////////////////////////////////////////////////////////// // TokenGroups #define TGOPER 0x00000001 @@ -113,17 +118,18 @@ enum SmTokenType struct SmToken { - // token text - String aText; - // token info - SmTokenType eType; + + String aText; // token text + SmTokenType eType; // token info sal_Unicode cMathChar; + // parse-help info - ULONG nGroup; - USHORT nLevel; + ULONG nGroup; + USHORT nLevel; + // token position - USHORT nRow; - xub_StrLen nCol; + USHORT nRow; + xub_StrLen nCol; SmToken(); }; @@ -152,6 +158,7 @@ struct SmErrorDesc String Text; }; + DECLARE_STACK(SmNodeStack, SmNode *) DECLARE_LIST(SmErrDescList, SmErrorDesc *) @@ -170,19 +177,22 @@ enum SmConvert class SmParser { - String BufferString; - SmToken CurToken; - SmNodeStack NodeStack; - SmErrDescList ErrDescList; - int CurError; - LanguageType nLang; - xub_StrLen BufferIndex, - nTokenIndex; - USHORT Row, - ColOff; - SmConvert eConversion; - BOOL bImportSymNames, - bExportSymNames; + String m_aBufferString; + SmToken m_aCurToken; + SmNodeStack m_aNodeStack; + SmErrDescList m_aErrDescList; + int m_nCurError; + LanguageType m_nLang; + xub_StrLen m_nBufferIndex, + m_nTokenIndex; + USHORT m_Row, + m_nColOff; + SmConvert m_eConversion; + BOOL m_bImportSymNames, + m_bExportSymNames; + + // map of used symbols (used to reduce file size by exporting only actually used symbols) + std::set< rtl::OUString > m_aUsedSymbols; // declare copy-constructor and assignment-operator private SmParser(const SmParser &); @@ -193,7 +203,7 @@ protected: BOOL IsDelimiter( const String &rTxt, xub_StrLen nPos ); #endif void NextToken(); - xub_StrLen GetTokenIndex() const { return nTokenIndex; } + xub_StrLen GetTokenIndex() const { return m_nTokenIndex; } void Insert(const String &rText, USHORT nPos); void Replace( USHORT nPos, USHORT nLen, const String &rText ); @@ -231,37 +241,43 @@ protected: void GlyphSpecial(); // end of grammar - LanguageType GetLanguage() const { return nLang; } - void SetLanguage( LanguageType nNewLang ) { nLang = nNewLang; } + LanguageType GetLanguage() const { return m_nLang; } + void SetLanguage( LanguageType nNewLang ) { m_nLang = nNewLang; } void Error(SmParseError Error); + void ClearUsedSymbols() { m_aUsedSymbols.clear(); } + void AddToUsedSymbols( const String &rSymbolName ) { m_aUsedSymbols.insert( rSymbolName ); } + public: SmParser(); SmNode *Parse(const String &rBuffer); - const String & GetText() const { return BufferString; }; + const String & GetText() const { return m_aBufferString; }; - SmConvert GetConversion() const { return eConversion; } - void SetConversion(SmConvert eConv) { eConversion = eConv; } + SmConvert GetConversion() const { return m_eConversion; } + void SetConversion(SmConvert eConv) { m_eConversion = eConv; } - BOOL IsImportSymbolNames() const { return bImportSymNames; } - void SetImportSymbolNames(BOOL bVal) { bImportSymNames = bVal; } - BOOL IsExportSymbolNames() const { return bExportSymNames; } - void SetExportSymbolNames(BOOL bVal) { bExportSymNames = bVal; } + BOOL IsImportSymbolNames() const { return m_bImportSymNames; } + void SetImportSymbolNames(BOOL bVal) { m_bImportSymNames = bVal; } + BOOL IsExportSymbolNames() const { return m_bExportSymNames; } + void SetExportSymbolNames(BOOL bVal) { m_bExportSymNames = bVal; } USHORT AddError(SmParseError Type, SmNode *pNode); const SmErrorDesc * NextError(); const SmErrorDesc * PrevError(); const SmErrorDesc * GetError(USHORT i = 0xFFFF); + + bool IsUsedSymbol( const String &rSymbolName ) const { return m_aUsedSymbols.find( rSymbolName ) != m_aUsedSymbols.end(); } + std::set< rtl::OUString > GetUsedSymbols() const { return m_aUsedSymbols; } }; inline BOOL SmParser::TokenInGroup(ULONG nGroup) { - return (CurToken.nGroup & nGroup) ? TRUE : FALSE; + return (m_aCurToken.nGroup & nGroup) ? TRUE : FALSE; } diff --git a/starmath/inc/starmath.hrc b/starmath/inc/starmath.hrc index 1b919471115c..7acefec94808 100644..100755 --- a/starmath/inc/starmath.hrc +++ b/starmath/inc/starmath.hrc @@ -82,10 +82,9 @@ #define SID_CMDBOXWINDOW (SID_SMA_START + 122) #define SID_TOOLBOXWINDOW (SID_SMA_START + 123) #define SID_NO_RIGHT_SPACES (SID_SMA_START + 124) +#define SID_SAVE_ONLY_USED_SYMBOLS (SID_SMA_START + 125) #define SID_DUMMY (SID_SMA_START + 254) -//#define GID_FORMEL (RID_GROUPS_OFFSET + 1) -//#define GID_ERROR (RID_GROUPS_OFFSET + 2) //#define RID_OPTIONSDIALOG (RID_APP_START + 1) #define RID_FONTDIALOG (RID_APP_START + 2) @@ -100,8 +99,6 @@ #define RID_PRINTUIOPTIONS (RID_APP_START + 11) #define RID_MATH_TOOLBOX (RID_APP_START + 50) -// wegen #58705# entfernt -//#define RID_DRAW_OBJECTBAR (RID_APP_START + 51) #define RID_DEFAULTSAVEQUERY (RID_APP_START + 102) #define RID_WRITESYMBOLERROR (RID_APP_START + 202) |