summaryrefslogtreecommitdiff
path: root/starmath/inc
diff options
context:
space:
mode:
authorVladimir Glazunov <vg@openoffice.org>2011-01-27 16:53:34 +0100
committerVladimir Glazunov <vg@openoffice.org>2011-01-27 16:53:34 +0100
commitfc8b4b4b2ebe3d5183e00a07ba8721d5909c34ad (patch)
tree34da321814885c40a3e6267b9bba6cf1fba2d13f /starmath/inc
parenta8fec4fc9cfcbc0fbf21f5a118facd84baac60d4 (diff)
parent70fc69da2e9a673505a8e1236501ddf577efb64a (diff)
CWS-TOOLING: integrate CWS tl84
Diffstat (limited to 'starmath/inc')
-rwxr-xr-x[-rw-r--r--]starmath/inc/dialog.hxx1
-rwxr-xr-x[-rw-r--r--]starmath/inc/document.hxx16
-rwxr-xr-x[-rw-r--r--]starmath/inc/parse.hxx80
-rwxr-xr-x[-rw-r--r--]starmath/inc/starmath.hrc5
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)