summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Lange <tl@openoffice.org>2009-09-28 10:46:54 +0000
committerThomas Lange <tl@openoffice.org>2009-09-28 10:46:54 +0000
commit47889e229cd51dd8a019d41dace6572e84771d18 (patch)
tree4e310b93a5b5c80cce183a139003be86f86121c4
parent46f1a498f70bbed831ae1e01a3a016a26f298eba (diff)
158766 avoid duplicating symbols in the catalog
-rw-r--r--starmath/inc/dialog.hxx85
-rw-r--r--starmath/inc/smmod.hxx5
-rw-r--r--starmath/inc/symbol.hxx176
-rw-r--r--starmath/source/cfgitem.cxx28
-rw-r--r--starmath/source/cfgitem.hxx6
-rw-r--r--starmath/source/dialog.cxx306
-rw-r--r--starmath/source/document.cxx24
-rw-r--r--starmath/source/edit.cxx6
-rw-r--r--starmath/source/makefile.mk28
-rw-r--r--starmath/source/node.cxx6
-rw-r--r--starmath/source/parse.cxx12
-rw-r--r--starmath/source/rect.cxx2
-rw-r--r--starmath/source/smdll.cxx2
-rw-r--r--starmath/source/smmod.cxx12
-rw-r--r--starmath/source/symbol.cxx559
-rw-r--r--starmath/source/unomodel.cxx23
-rw-r--r--starmath/source/view.cxx24
17 files changed, 427 insertions, 877 deletions
diff --git a/starmath/inc/dialog.hxx b/starmath/inc/dialog.hxx
index a2814082a9e5..aefc11a60d8a 100644
--- a/starmath/inc/dialog.hxx
+++ b/starmath/inc/dialog.hxx
@@ -303,7 +303,7 @@ public:
class SmShowSymbolSet : public Control
{
- SmSymSet aSymbolSet;
+ SymbolPtrVec_t aSymbolSet;
ScrollBar aVScrollBar;
Size aOutputSize;
Link aSelectHdlLink;
@@ -321,7 +321,7 @@ class SmShowSymbolSet : public Control
public:
SmShowSymbolSet(Window *pParent, const ResId& rResId);
- void SetSymbolSet(const SmSymSet& rSymbolSet);
+ void SetSymbolSet(const SymbolPtrVec_t& rSymbolSet);
void SelectSymbol(USHORT nSymbol);
USHORT GetSelectSymbol() const { return nSelectSymbol; }
@@ -363,8 +363,10 @@ class SmSymbolDialog : public ModalDialog
PushButton aEditBtn;
SmViewShell &rViewSh;
- SmSymSetManager &rSymSetMgr;
- const SmSymSet *pSymSet;
+ SmSymbolManager &rSymbolMgr;
+
+ String aSymbolSetName;
+ SymbolPtrVec_t aSymbolSet;
OutputDevice *pFontListDev;
@@ -376,7 +378,7 @@ class SmSymbolDialog : public ModalDialog
DECL_LINK(GetClickHdl, Button *);
void FillSymbolSets(BOOL bDeleteText = TRUE);
- void SetSymbolSetManager(SmSymSetManager &rMgr);
+ void SetSymbolSetManager(SmSymbolManager &rMgr);
const SmSym *GetSymbol() const;
void InitColor_Impl();
@@ -384,7 +386,7 @@ class SmSymbolDialog : public ModalDialog
public:
SmSymbolDialog(Window * pParent, OutputDevice *pFntListDevice,
- SmSymSetManager &rSymSetMgr, SmViewShell &rViewShell, BOOL bFreeRes = TRUE);
+ SmSymbolManager &rSymbolMgr, SmViewShell &rViewShell, BOOL bFreeRes = TRUE);
virtual ~SmSymbolDialog();
BOOL SelectSymbolSet(const XubString &rSymbolSetName);
@@ -442,8 +444,8 @@ class SmSymDefineDialog : public ModalDialog
Image aRigthArrow_Im;
Image aRigthArrow_Im_HC; // hi-contrast version
- SmSymSetManager aSymSetMgrCopy,
- &rSymSetMgr;
+ SmSymbolManager aSymbolMgrCopy,
+ &rSymbolMgr;
const SmSym *pOrigSymbol;
const SubsetMap *pSubsetMap;
@@ -465,7 +467,7 @@ class SmSymDefineDialog : public ModalDialog
void FillFonts(BOOL bDeleteText = TRUE);
void FillStyles(BOOL bDeleteText = TRUE);
- void SetSymbolSetManager(const SmSymSetManager &rMgr);
+ void SetSymbolSetManager(const SmSymbolManager &rMgr);
void SetFont(const XubString &rFontName, const XubString &rStyleName);
void SetOrigSymbol(const SmSym *pSymbol, const XubString &rSymbolSetName);
void UpdateButtons();
@@ -477,18 +479,18 @@ class SmSymDefineDialog : public ModalDialog
BOOL SelectFont(const XubString &rFontName, BOOL bApplyFont);
BOOL SelectStyle(const XubString &rStyleName, BOOL bApplyFont);
-
- SmSymSet *GetSymbolSet(const ComboBox &rComboBox);
- inline const SmSymSet *GetSymbolSet(const ComboBox &rComboBox) const;
- SmSym *GetSymbol(const ComboBox &rComboBox);
- inline const SmSym *GetSymbol(const ComboBox &rComboBox) const;
+ SmSym * GetSymbol(const ComboBox &rComboBox);
+ const SmSym * GetSymbol(const ComboBox &rComboBox) const
+ {
+ return ((SmSymDefineDialog *) this)->GetSymbol(rComboBox);
+ }
void InitColor_Impl();
virtual void DataChanged( const DataChangedEvent& rDCEvt );
public:
- SmSymDefineDialog(Window *pParent, OutputDevice *pFntListDevice, SmSymSetManager &rMgr, BOOL bFreeRes = TRUE);
+ SmSymDefineDialog(Window *pParent, OutputDevice *pFntListDevice, SmSymbolManager &rMgr, BOOL bFreeRes = TRUE);
~SmSymDefineDialog();
using OutputDevice::SetFont;
@@ -496,44 +498,31 @@ public:
// Dialog
virtual short Execute();
- inline BOOL SelectOldSymbolSet(const XubString &rSymbolSetName);
- inline BOOL SelectOldSymbol(const XubString &rSymbolName);
- inline BOOL SelectSymbolSet(const XubString &rSymbolSetName);
- inline BOOL SelectSymbol(const XubString &rSymbolName);
- BOOL SelectFont(const XubString &rFontName) { return SelectFont(rFontName, TRUE); }
- BOOL SelectStyle(const XubString &rStyleName) { return SelectStyle(rStyleName, TRUE); };
- void SelectChar(xub_Unicode cChar);
-};
-
-inline const SmSymSet * SmSymDefineDialog::GetSymbolSet(const ComboBox &rComboBox) const
-{
- return ((SmSymDefineDialog *) this)->GetSymbolSet(rComboBox);
-}
+ BOOL SmSymDefineDialog::SelectOldSymbolSet(const XubString &rSymbolSetName)
+ {
+ return SelectSymbolSet(aOldSymbolSets, rSymbolSetName, FALSE);
+ }
-inline const SmSym * SmSymDefineDialog::GetSymbol(const ComboBox &rComboBox) const
-{
- return ((SmSymDefineDialog *) this)->GetSymbol(rComboBox);
-}
+ BOOL SmSymDefineDialog::SelectOldSymbol(const XubString &rSymbolName)
+ {
+ return SelectSymbol(aOldSymbols, rSymbolName, FALSE);
+ }
-inline BOOL SmSymDefineDialog::SelectOldSymbolSet(const XubString &rSymbolSetName)
-{
- return SelectSymbolSet(aOldSymbolSets, rSymbolSetName, FALSE);
-}
+ BOOL SmSymDefineDialog::SelectSymbolSet(const XubString &rSymbolSetName)
+ {
+ return SelectSymbolSet(aSymbolSets, rSymbolSetName, FALSE);
+ }
-inline BOOL SmSymDefineDialog::SelectOldSymbol(const XubString &rSymbolName)
-{
- return SelectSymbol(aOldSymbols, rSymbolName, FALSE);
-}
+ BOOL SmSymDefineDialog::SelectSymbol(const XubString &rSymbolName)
+ {
+ return SelectSymbol(aSymbols, rSymbolName, FALSE);
+ }
-inline BOOL SmSymDefineDialog::SelectSymbolSet(const XubString &rSymbolSetName)
-{
- return SelectSymbolSet(aSymbolSets, rSymbolSetName, FALSE);
-}
+ BOOL SelectFont(const XubString &rFontName) { return SelectFont(rFontName, TRUE); }
+ BOOL SelectStyle(const XubString &rStyleName) { return SelectStyle(rStyleName, TRUE); };
+ void SelectChar(xub_Unicode cChar);
+};
-inline BOOL SmSymDefineDialog::SelectSymbol(const XubString &rSymbolName)
-{
- return SelectSymbol(aSymbols, rSymbolName, FALSE);
-}
#endif
diff --git a/starmath/inc/smmod.hxx b/starmath/inc/smmod.hxx
index 4b493c0cbca7..914c4d46cf0c 100644
--- a/starmath/inc/smmod.hxx
+++ b/starmath/inc/smmod.hxx
@@ -48,7 +48,7 @@ class SvxErrorHandler;
class SfxObjectFactory;
class SmConfig;
class SmModule;
-class SmSymSetManager;
+class SmSymbolManager;
/*************************************************************************
|*
@@ -151,7 +151,7 @@ public:
svtools::ColorConfig & GetColorConfig();
SmConfig * GetConfig();
- SmSymSetManager & GetSymSetManager();
+ SmSymbolManager & GetSymbolManager();
SmLocalizedSymbolData & GetLocSymbolData() const;
@@ -178,7 +178,6 @@ public:
};
#define SM_MOD() ( *(SmModule**) GetAppData(SHL_SM) )
-#define SM_MOD1() ( *(SmModule**) GetAppData(SHL_SM) )
#endif // _SDMOD_HXX
diff --git a/starmath/inc/symbol.hxx b/starmath/inc/symbol.hxx
index d39376c30ed0..ce4c0611d368 100644
--- a/starmath/inc/symbol.hxx
+++ b/starmath/inc/symbol.hxx
@@ -31,198 +31,146 @@
#define SYMBOL_HXX
#include <vos/refernce.hxx>
-#ifndef _FONT_HXX //autogen
#include <vcl/font.hxx>
-#endif
#include <tools/list.hxx>
#include <tools/debug.hxx>
#include <tools/dynary.hxx>
#include <svtools/lstner.hxx>
#include <svtools/svarray.hxx>
+
+#include <map>
+#include <vector>
+#include <set>
+
#include "utility.hxx"
-#include <smmod.hxx>
+#include "smmod.hxx"
-#define SS_ATTR_ACCESS 0x80
#define SYMBOLSET_NONE 0xFFFF
#define SYMBOL_NONE 0xFFFF
-class SmSymSetManager;
////////////////////////////////////////////////////////////////////////////////
inline const String GetExportSymbolName( const String &rUiSymbolName )
{
- return SM_MOD1()->GetLocSymbolData().GetExportSymbolName( rUiSymbolName );
+ return SM_MOD()->GetLocSymbolData().GetExportSymbolName( rUiSymbolName );
}
inline const String GetUiSymbolName( const String &rExportSymbolName )
{
- return SM_MOD1()->GetLocSymbolData().GetUiSymbolName( rExportSymbolName );
+ return SM_MOD()->GetLocSymbolData().GetUiSymbolName( rExportSymbolName );
}
inline const String GetExportSymbolSetName( const String &rUiSymbolSetName )
{
- return SM_MOD1()->GetLocSymbolData().GetExportSymbolSetName( rUiSymbolSetName );
+ return SM_MOD()->GetLocSymbolData().GetExportSymbolSetName( rUiSymbolSetName );
}
inline const String GetUiSymbolSetName( const String &rExportSymbolSetName )
{
- return SM_MOD1()->GetLocSymbolData().GetUiSymbolSetName( rExportSymbolSetName );
+ return SM_MOD()->GetLocSymbolData().GetUiSymbolSetName( rExportSymbolSetName );
}
////////////////////////////////////////////////////////////////////////////////
class SmSym
{
- friend class SmSymSetManager;
-
- SmFace Face;
- String Name;
- String aExportName;
- String aSetName;
- SmSym *pHashNext;
- SmSymSetManager *pSymSetManager;
- sal_Unicode Character;
- BYTE Attribut;
- BOOL bPredefined;
- BOOL bDocSymbol;
+ SmFace m_aFace;
+ String m_aName;
+ String m_aExportName;
+ String m_aSetName;
+ sal_Unicode m_cChar;
+ BOOL m_bPredefined;
+ BOOL m_bDocSymbol;
public:
SmSym();
- SmSym(const SmSym& rSymbol);
SmSym(const String& rName, const Font& rFont, sal_Unicode cChar,
const String& rSet, BOOL bIsPredefined = FALSE);
+ SmSym(const SmSym& rSymbol);
SmSym& operator = (const SmSym& rSymbol);
- const Font& GetFace() const { return Face; }
- sal_Unicode GetCharacter() const { return Character; }
- const String& GetName() const { return Name; }
+ const Font& GetFace() const { return m_aFace; }
+ sal_Unicode GetCharacter() const { return m_cChar; }
+ const String& GetName() const { return m_aName; }
- void SetFace( const Font& rFont ) { Face = rFont; }
- void SetCharacter( sal_Unicode cChar ) { Character = cChar; }
- void SetName( const String &rTxt ) { Name = rTxt; }
+ void SetFace( const Font& rFont ) { m_aFace = rFont; }
+ void SetCharacter( sal_Unicode cChar ) { m_cChar = cChar; }
- BOOL IsPredefined() const { return bPredefined; }
- const String & GetSetName() const { return aSetName; }
- void SetSetName( const String &rName ) { aSetName = rName; }
- const String & GetExportName() const { return aExportName; }
- void SetExportName( const String &rName ) { aExportName = rName; }
+//! since the symbol name is also used as key in the map it should not be possible to change the name
+//! because ten the key would not be the same as its supposed copy here
+// void SetName( const String &rTxt ) { m_aName = rTxt; }
- BOOL IsDocSymbol() const { return bDocSymbol; }
- void SetDocSymbol( BOOL bVal ) { bDocSymbol = bVal; }
-};
+ BOOL IsPredefined() const { return m_bPredefined; }
+ const String & GetSymbolSetName() const { return m_aSetName; }
+ void SetSymbolSetName( const String &rName ) { m_aSetName = rName; }
+ const String & GetExportName() const { return m_aExportName; }
+ void SetExportName( const String &rName ) { m_aExportName = rName; }
+
+ BOOL IsDocSymbol() const { return m_bDocSymbol; }
+ void SetDocSymbol( BOOL bVal ) { m_bDocSymbol = bVal; }
-DECLARE_LIST(SmListSym, SmSym *)
-SV_DECL_PTRARR( SymbolArray, SmSym *, 32, 32 )
+ // true if rSymbol has the same name, font and character
+ bool IsEqualInUI( const SmSym& rSymbol ) const;
+};
/**************************************************************************/
-class SmSymSet
+struct lt_String
{
- friend class SmSymSetManager;
-
- SmListSym SymbolList;
- String Name;
- SmSymSetManager *pSymSetManager;
-
-public:
- SmSymSet();
- SmSymSet(const SmSymSet& rSymbolSet);
- SmSymSet(const String& rName);
- ~SmSymSet();
-
- SmSymSet& operator = (const SmSymSet& rSymbolSet);
-
- const String& GetName() const { return Name; }
- USHORT GetCount() const { return (USHORT) SymbolList.Count(); }
-
- const SmSym& GetSymbol(USHORT SymbolNo) const
+ bool operator()( const String &r1, const String &r2 ) const
{
- DBG_ASSERT(SymbolList.GetObject(SymbolNo), "Symbol nicht vorhanden");
- return *SymbolList.GetObject(SymbolNo);
+ // r1 < r2 ?
+ return r1.CompareTo( r2 ) == COMPARE_LESS;
}
-
- USHORT AddSymbol(SmSym* pSymbol);
- void DeleteSymbol(USHORT SymbolNo);
- SmSym * RemoveSymbol(USHORT SymbolNo);
- USHORT GetSymbolPos(const String& rName);
};
-DECLARE_DYNARRAY(SmArraySymSet, SmSymSet *)
-
-/**************************************************************************/
-
-class SmSymbolDialog;
-
-
-struct SmSymSetManager_Impl
-{
- SmArraySymSet SymbolSets;
- SmSymSetManager & rSymSetMgr;
- SmSym** HashEntries;
- USHORT NoSymbolSets;
- USHORT NoHashEntries;
- BOOL Modified;
-
- SmSymSetManager_Impl( SmSymSetManager &rMgr, USHORT HashTableSize );
- ~SmSymSetManager_Impl();
- SmSymSetManager_Impl & operator = ( const SmSymSetManager_Impl &rImpl );
-};
+// type of the actual container to hold the symbols
+typedef std::map< String, SmSym, lt_String > SymbolMap_t;
+// vector of pointers to the actual symbols in the above container
+typedef std::vector< const SmSym * > SymbolPtrVec_t;
-class SmSymSetManager : public SfxListener
+class SmSymbolManager : public SfxListener
{
- friend struct SmSymSetManager_Impl;
-
- SmSymSetManager_Impl *pImpl;
+ SymbolMap_t m_aSymbols;
+ bool m_bModified;
virtual void SFX_NOTIFY(SfxBroadcaster& rBC, const TypeId& rBCType,
const SfxHint& rHint, const TypeId& rHintType);
- UINT32 GetHashIndex(const String& rSymbolName);
- void EnterHashTable(SmSym& rSymbol);
- void EnterHashTable(SmSymSet& rSymbolSet);
- void FillHashTable();
void Init();
void Exit();
public:
- SmSymSetManager(USHORT HashTableSize = 137);
- SmSymSetManager(const SmSymSetManager& rSymbolSetManager);
- ~SmSymSetManager();
+ SmSymbolManager();
+ SmSymbolManager(const SmSymbolManager& rSymbolSetManager);
+ ~SmSymbolManager();
- SmSymSetManager& operator = (const SmSymSetManager& rSymbolSetManager);
+ SmSymbolManager & operator = (const SmSymbolManager& rSymbolSetManager);
- void GetSymbols( std::vector< SmSym > &rSymbols ) const;
+ // symbol sets are for UI purpose only, thus we assemble them here
+ std::set< String > GetSymbolSetNames() const;
+ const SymbolPtrVec_t GetSymbolSet( const String& rSymbolSetName );
-
- USHORT AddSymbolSet(SmSymSet* pSymbolSet);
- void ChangeSymbolSet(SmSymSet* pSymbolSet);
- void DeleteSymbolSet(USHORT SymbolSetNo);
- USHORT GetSymbolSetPos(const String& rSymbolSetName) const;
- USHORT GetSymbolSetCount() const { return pImpl->NoSymbolSets; }
- SmSymSet *GetSymbolSet(USHORT SymbolSetNo) const
- {
- return pImpl->SymbolSets.Get(SymbolSetNo);
- }
+ USHORT GetSymbolCount() const { return static_cast< USHORT >(m_aSymbols.size()); }
+ const SymbolPtrVec_t GetSymbols() const;
+ bool AddOrReplaceSymbol( const SmSym & rSymbol, bool bForceChange = false );
+ void RemoveSymbol( const String & rSymbolName );
SmSym * GetSymbolByName(const String& rSymbolName);
const SmSym * GetSymbolByName(const String& rSymbolName) const
{
- return ((SmSymSetManager *) this)->GetSymbolByName(rSymbolName);
+ return ((SmSymbolManager *) this)->GetSymbolByName(rSymbolName);
}
- void AddReplaceSymbol( const SmSym & rSymbol );
- USHORT GetSymbolCount() const;
- const SmSym * GetSymbolByPos( USHORT nPos ) const;
-
- BOOL IsModified() const { return pImpl->Modified; }
- void SetModified(BOOL Modify) { pImpl->Modified = Modify; }
+ bool IsModified() const { return m_bModified; }
+ void SetModified(bool bModify) { m_bModified = bModify; }
void Load();
void Save();
diff --git a/starmath/source/cfgitem.cxx b/starmath/source/cfgitem.cxx
index 16461d97d6e1..6cc49595d821 100644
--- a/starmath/source/cfgitem.cxx
+++ b/starmath/source/cfgitem.cxx
@@ -432,7 +432,7 @@ SmMathConfig::SmMathConfig() :
pFormat = 0;
pOther = 0;
pFontFormatList = 0;
- pSymSetMgr = 0;
+ pSymbolMgr = 0;
bIsOtherModified = bIsFormatModified = FALSE;
}
@@ -444,7 +444,7 @@ SmMathConfig::~SmMathConfig()
delete pFormat;
delete pOther;
delete pFontFormatList;
- delete pSymSetMgr;
+ delete pSymbolMgr;
}
@@ -557,14 +557,14 @@ void SmMathConfig::ReadSymbol( SmSym &rSymbol,
}
-SmSymSetManager & SmMathConfig::GetSymSetManager()
+SmSymbolManager & SmMathConfig::GetSymbolManager()
{
- if (!pSymSetMgr)
+ if (!pSymbolMgr)
{
- pSymSetMgr = new SmSymSetManager;
- pSymSetMgr->Load();
+ pSymbolMgr = new SmSymbolManager;
+ pSymbolMgr->Load();
}
- return *pSymSetMgr;
+ return *pSymbolMgr;
}
@@ -581,18 +581,6 @@ void SmMathConfig::Save()
}
-USHORT SmMathConfig::GetSymbolCount() const
-{
- return ((SmMathConfig *) this)->GetSymSetManager().GetSymbolCount();
-}
-
-
-const SmSym * SmMathConfig::GetSymbol( USHORT nIndex ) const
-{
- return ((SmMathConfig *) this)->GetSymSetManager().GetSymbolByPos( nIndex );
-}
-
-
void SmMathConfig::GetSymbols( std::vector< SmSym > &rSymbols ) const
{
Sequence< OUString > aNodes( ((SmMathConfig*) this)->GetNodeNames( A2OU( SYMBOL_LIST ) ) );
@@ -643,7 +631,7 @@ void SmMathConfig::SetSymbols( const std::vector< SmSym > &rNewSymbols )
// Set
pVal->Name = aNodeNameDelim;
pVal->Name += *pName++;
- OUString aTmp( rSymbol.GetSetName() );
+ OUString aTmp( rSymbol.GetSymbolSetName() );
if (rSymbol.IsPredefined())
aTmp = GetExportSymbolSetName( aTmp );
pVal->Value <<= aTmp;
diff --git a/starmath/source/cfgitem.hxx b/starmath/source/cfgitem.hxx
index 8987e153026f..a255d76a1533 100644
--- a/starmath/source/cfgitem.hxx
+++ b/starmath/source/cfgitem.hxx
@@ -125,7 +125,7 @@ class SmMathConfig : public utl::ConfigItem
SmFormat * pFormat;
SmCfgOther * pOther;
SmFontFormatList * pFontFormatList;
- SmSymSetManager * pSymSetMgr;
+ SmSymbolManager * pSymbolMgr;
BOOL bIsOtherModified;
BOOL bIsFormatModified;
@@ -185,11 +185,9 @@ public:
//using utl::ConfigItem::ReplaceSetProperties;
//using utl::ConfigItem::GetReadOnlyStates;
- SmSymSetManager & GetSymSetManager();
+ SmSymbolManager & GetSymbolManager();
void GetSymbols( std::vector< SmSym > &rSymbols ) const;
void SetSymbols( const std::vector< SmSym > &rNewSymbols );
- USHORT GetSymbolCount() const;
- const SmSym * GetSymbol( USHORT nIndex ) const;
const SmFormat & GetStandardFormat() const;
void SetStandardFormat( const SmFormat &rFormat, BOOL bSaveFontFormatList = FALSE );
diff --git a/starmath/source/dialog.cxx b/starmath/source/dialog.cxx
index 20af2f38b3ee..5d5124211ece 100644
--- a/starmath/source/dialog.cxx
+++ b/starmath/source/dialog.cxx
@@ -429,7 +429,7 @@ IMPL_LINK( SmFontSizeDialog, DefaultButtonClickHdl, Button *, EMPTYARG /*pButton
if (pQueryBox->Execute() == RET_YES)
{
- SmModule *pp = SM_MOD1();
+ SmModule *pp = SM_MOD();
SmFormat aFmt( pp->GetConfig()->GetStandardFormat() );
WriteTo( aFmt );
pp->GetConfig()->SetStandardFormat( aFmt );
@@ -536,7 +536,7 @@ IMPL_LINK_INLINE_START( SmFontTypeDialog, DefaultButtonClickHdl, Button *, EMPTY
QueryBox *pQueryBox = new QueryBox(this, SmResId(RID_DEFAULTSAVEQUERY));
if (pQueryBox->Execute() == RET_YES)
{
- SmModule *pp = SM_MOD1();
+ SmModule *pp = SM_MOD();
SmFormat aFmt( pp->GetConfig()->GetStandardFormat() );
WriteTo( aFmt );
pp->GetConfig()->SetStandardFormat( aFmt, TRUE );
@@ -582,7 +582,7 @@ SmFontTypeDialog::SmFontTypeDialog(Window * pParent, OutputDevice *pFntListDevic
void SmFontTypeDialog::ReadFrom(const SmFormat &rFormat)
{
- SmModule *pp = SM_MOD1();
+ SmModule *pp = SM_MOD();
aVariableFont = pp->GetConfig()->GetFontPickList(FNT_VARIABLE);
aFunctionFont = pp->GetConfig()->GetFontPickList(FNT_FUNCTION);
@@ -604,7 +604,7 @@ void SmFontTypeDialog::ReadFrom(const SmFormat &rFormat)
void SmFontTypeDialog::WriteTo(SmFormat &rFormat) const
{
- SmModule *pp = SM_MOD1();
+ SmModule *pp = SM_MOD();
pp->GetConfig()->GetFontPickList(FNT_VARIABLE) = aVariableFont;
pp->GetConfig()->GetFontPickList(FNT_FUNCTION) = aFunctionFont;
@@ -743,7 +743,7 @@ IMPL_LINK( SmDistanceDialog, DefaultButtonClickHdl, Button *, EMPTYARG /*pButton
if (pQueryBox->Execute() == RET_YES)
{
- SmModule *pp = SM_MOD1();
+ SmModule *pp = SM_MOD();
SmFormat aFmt( pp->GetConfig()->GetStandardFormat() );
WriteTo( aFmt );
pp->GetConfig()->SetStandardFormat( aFmt );
@@ -1066,7 +1066,7 @@ IMPL_LINK( SmAlignDialog, DefaultButtonClickHdl, Button *, EMPTYARG /*pButton*/
if (pQueryBox->Execute() == RET_YES)
{
- SmModule *pp = SM_MOD1();
+ SmModule *pp = SM_MOD();
SmFormat aFmt( pp->GetConfig()->GetStandardFormat() );
WriteTo( aFmt );
pp->GetConfig()->SetStandardFormat( aFmt );
@@ -1143,12 +1143,12 @@ void SmShowSymbolSet::Paint(const Rectangle&)
SetMapMode(MapMode(MAP_PIXEL));
USHORT v = sal::static_int_cast< USHORT >((aVScrollBar.GetThumbPos() * nColumns));
- USHORT nSymbols = aSymbolSet.GetCount();
+ size_t nSymbols = aSymbolSet.size();
Color aTxtColor( GetTextColor() );
for (USHORT i = v; i < nSymbols ; i++)
{
- SmSym aSymbol (aSymbolSet.GetSymbol(i));
+ SmSym aSymbol (*aSymbolSet[i]);
Font aFont (aSymbol.GetFace());
aFont.SetAlign(ALIGN_TOP);
@@ -1209,7 +1209,7 @@ void SmShowSymbolSet::KeyInput(const KeyEvent& rKEvt)
case KEY_LEFT: n -= 1; break;
case KEY_RIGHT: n += 1; break;
case KEY_HOME: n = 0; break;
- case KEY_END: n = aSymbolSet.GetCount() - 1; break;
+ case KEY_END: n = static_cast< USHORT >(aSymbolSet.size() - 1); break;
case KEY_PAGEUP: n -= nColumns * nRows; break;
case KEY_PAGEDOWN: n += nColumns * nRows; break;
@@ -1221,7 +1221,7 @@ void SmShowSymbolSet::KeyInput(const KeyEvent& rKEvt)
else
n = 0;
- if (n >= aSymbolSet.GetCount())
+ if (n >= aSymbolSet.size())
n = nSelectSymbol;
// adjust scrollbar
@@ -1277,13 +1277,13 @@ SmShowSymbolSet::SmShowSymbolSet(Window *pParent, const ResId& rResId) :
}
-void SmShowSymbolSet::SetSymbolSet(const SmSymSet& rSymbolSet)
+void SmShowSymbolSet::SetSymbolSet(const SymbolPtrVec_t& rSymbolSet)
{
aSymbolSet = rSymbolSet;
- if (aSymbolSet.GetCount() > (nColumns * nRows))
+ if (static_cast< USHORT >(aSymbolSet.size()) > (nColumns * nRows))
{
- aVScrollBar.SetRange(Range(0, ((aSymbolSet.GetCount() + (nColumns - 1)) / nColumns) - nRows));
+ aVScrollBar.SetRange(Range(0, ((aSymbolSet.size() + (nColumns - 1)) / nColumns) - nRows));
aVScrollBar.Enable(TRUE);
}
else
@@ -1305,10 +1305,10 @@ void SmShowSymbolSet::SelectSymbol(USHORT nSymbol)
((nSelectSymbol - v) / nColumns) * nLen),
Size(nLen, nLen)));
- if (nSymbol < aSymbolSet.GetCount())
+ if (nSymbol < aSymbolSet.size())
nSelectSymbol = nSymbol;
- if (aSymbolSet.GetCount() == 0)
+ if (aSymbolSet.size() == 0)
nSelectSymbol = SYMBOL_NONE;
if (nSelectSymbol != SYMBOL_NONE)
@@ -1383,9 +1383,10 @@ void SmSymbolDialog::FillSymbolSets(BOOL bDeleteText)
if (bDeleteText)
aSymbolSets.SetNoSelection();
- USHORT nNumSymSets = rSymSetMgr.GetSymbolSetCount();
- for (USHORT i = 0; i < nNumSymSets; i++)
- aSymbolSets.InsertEntry(rSymSetMgr.GetSymbolSet(i)->GetName());
+ std::set< String > aSybolSetNames( rSymbolMgr.GetSymbolSetNames() );
+ std::set< String >::const_iterator aIt( aSybolSetNames.begin() );
+ for ( ; aIt != aSybolSetNames.end(); ++aIt)
+ aSymbolSets.InsertEntry( *aIt );
}
@@ -1419,7 +1420,7 @@ IMPL_LINK( SmSymbolDialog, EditClickHdl, Button *, EMPTYARG pButton )
DBG_ASSERT(pButton == &aEditBtn, "Sm : falsches Argument");
#endif
- SmSymDefineDialog *pDialog = new SmSymDefineDialog(this, pFontListDev, rSymSetMgr);
+ SmSymDefineDialog *pDialog = new SmSymDefineDialog(this, pFontListDev, rSymbolMgr);
// aktuelles Symbol und SymbolSet am neuen Dialog setzen
const XubString aSymSetName (aSymbolSets.GetSelectEntry()),
@@ -1435,9 +1436,9 @@ IMPL_LINK( SmSymbolDialog, EditClickHdl, Button *, EMPTYARG pButton )
USHORT nSymPos = GetSelectedSymbol();
// Dialog an evtl geaenderte Daten des SymbolSet Manager anpassen
- if (pDialog->Execute() == RET_OK && rSymSetMgr.IsModified())
+ if (pDialog->Execute() == RET_OK && rSymbolMgr.IsModified())
{
- rSymSetMgr.Save();
+ rSymbolMgr.Save();
FillSymbolSets();
}
@@ -1445,7 +1446,16 @@ IMPL_LINK( SmSymbolDialog, EditClickHdl, Button *, EMPTYARG pButton )
// (soweit eines vorhanden ist)
if (!SelectSymbolSet(aOldSymbolSet) && aSymbolSets.GetEntryCount() > 0)
SelectSymbolSet(aSymbolSets.GetEntry(0));
-
+ else
+ {
+ // just update display of current symbol set
+ DBG_ASSERT( aSymSetName == aSymSetName, "unexpected change in symbol set name" );
+ aSymbolSet = rSymbolMgr.GetSymbolSet( aSymbolSetName );
+ aSymbolSetDisplay.SetSymbolSet( aSymbolSet );
+ }
+
+ if (nSymPos >= aSymbolSet.size())
+ nSymPos = static_cast< USHORT >(aSymbolSet.size()) - 1;
SelectSymbol( nSymPos );
delete pDialog;
@@ -1502,7 +1512,7 @@ IMPL_LINK_INLINE_END( SmSymbolDialog, CloseClickHdl, Button *, pButton )
SmSymbolDialog::SmSymbolDialog(Window *pParent, OutputDevice *pFntListDevice,
- SmSymSetManager &rMgr, SmViewShell &rViewShell, BOOL bFreeRes) :
+ SmSymbolManager &rMgr, SmViewShell &rViewShell, BOOL bFreeRes) :
ModalDialog (pParent, SmResId(RID_SYMBOLDIALOG)),
aSymbolSetText (this, SmResId(1)),
aSymbolSets (this, SmResId(1)),
@@ -1513,13 +1523,14 @@ SmSymbolDialog::SmSymbolDialog(Window *pParent, OutputDevice *pFntListDevice,
aCloseBtn (this, SmResId(3)),
aEditBtn (this, SmResId(1)),
rViewSh (rViewShell),
- rSymSetMgr (rMgr),
+ rSymbolMgr (rMgr),
pFontListDev (pFntListDevice)
{
if (bFreeRes)
FreeResource();
- pSymSet = NULL;
+ aSymbolSetName = String();
+ aSymbolSet.clear();
FillSymbolSets();
if (aSymbolSets.GetEntryCount() > 0)
SelectSymbolSet(aSymbolSets.GetEntry(0));
@@ -1583,18 +1594,17 @@ BOOL SmSymbolDialog::SelectSymbolSet(const XubString &rSymbolSetName)
BOOL bRet = FALSE;
USHORT nPos = aSymbolSets.GetEntryPos(rSymbolSetName);
- pSymSet = NULL;
+ aSymbolSetName = String();
+ aSymbolSet.clear();
if (nPos != LISTBOX_ENTRY_NOTFOUND)
{
aSymbolSets.SelectEntryPos(nPos);
- USHORT nSymbolSetNo = rSymSetMgr.GetSymbolSetPos(aSymbolSets.GetSelectEntry());
- pSymSet = rSymSetMgr.GetSymbolSet(nSymbolSetNo);
-#if OSL_DEBUG_LEVEL > 1
- DBG_ASSERT(pSymSet, "Sm : NULL pointer");
-#endif
- aSymbolSetDisplay.SetSymbolSet(*pSymSet);
- if (pSymSet->GetCount() > 0)
+ aSymbolSetName = rSymbolSetName;
+ aSymbolSet = rSymbolMgr.GetSymbolSet( aSymbolSetName );
+
+ aSymbolSetDisplay.SetSymbolSet( aSymbolSet );
+ if (aSymbolSet.size() > 0)
SelectSymbol(0);
bRet = TRUE;
@@ -1609,8 +1619,8 @@ BOOL SmSymbolDialog::SelectSymbolSet(const XubString &rSymbolSetName)
void SmSymbolDialog::SelectSymbol(USHORT nSymbolNo)
{
const SmSym *pSym = NULL;
- if (pSymSet && nSymbolNo < pSymSet->GetCount())
- pSym = &pSymSet->GetSymbol(nSymbolNo);
+ if (aSymbolSetName.Len() > 0 && nSymbolNo < static_cast< USHORT >(aSymbolSet.size()))
+ pSym = aSymbolSet[ nSymbolNo ];
aSymbolSetDisplay.SelectSymbol(nSymbolNo);
aSymbolDisplay.SetSymbol(pSym);
@@ -1621,7 +1631,8 @@ void SmSymbolDialog::SelectSymbol(USHORT nSymbolNo)
const SmSym * SmSymbolDialog::GetSymbol() const
{
USHORT nSymbolNo = aSymbolSetDisplay.GetSelectSymbol();
- return pSymSet == NULL ? NULL : &pSymSet->GetSymbol(nSymbolNo);
+ bool bValid = aSymbolSetName.Len() > 0 && nSymbolNo < static_cast< USHORT >(aSymbolSet.size());
+ return bValid ? aSymbolSet[ nSymbolNo ] : NULL;
}
@@ -1681,15 +1692,10 @@ void SmSymDefineDialog::FillSymbols(ComboBox &rComboBox, BOOL bDeleteText)
if (bDeleteText)
rComboBox.SetText(XubString());
- ComboBox &rSymbolSets = &rComboBox == &aOldSymbols ?
- aOldSymbolSets : aSymbolSets;
- const SmSymSet *pSymSet = GetSymbolSet(rSymbolSets);
- if (pSymSet)
- { USHORT nNumSymbols = pSymSet->GetCount();
- for (USHORT i = 0; i < nNumSymbols; i++)
- rComboBox.InsertEntry(pSymSet->GetSymbol(i).GetName());
- }
-
+ ComboBox &rBox = &rComboBox == &aOldSymbols ? aOldSymbolSets : aSymbolSets;
+ SymbolPtrVec_t aSymSet( aSymbolMgrCopy.GetSymbolSet( rBox.GetText() ) );
+ for (size_t i = 0; i < aSymSet.size(); ++i)
+ rComboBox.InsertEntry( aSymSet[i]->GetName() );
}
@@ -1704,9 +1710,10 @@ void SmSymDefineDialog::FillSymbolSets(ComboBox &rComboBox, BOOL bDeleteText)
if (bDeleteText)
rComboBox.SetText(XubString());
- USHORT nNumSymSets = aSymSetMgrCopy.GetSymbolSetCount();
- for (USHORT i = 0; i < nNumSymSets; i++)
- rComboBox.InsertEntry(aSymSetMgrCopy.GetSymbolSet(i)->GetName());
+ const std::set< String > aSymbolSetNames( aSymbolMgrCopy.GetSymbolSetNames() );
+ std::set< String >::const_iterator aIt( aSymbolSetNames.begin() );
+ for ( ; aIt != aSymbolSetNames.end(); ++aIt)
+ rComboBox.InsertEntry( *aIt );
}
@@ -1751,26 +1758,13 @@ void SmSymDefineDialog::FillStyles(BOOL bDeleteText)
}
-SmSymSet * SmSymDefineDialog::GetSymbolSet(const ComboBox &rComboBox)
-{
-#if OSL_DEBUG_LEVEL > 1
- DBG_ASSERT(&rComboBox == &aOldSymbolSets || &rComboBox == &aSymbolSets,
- "Sm : falsche ComboBox");
-#endif
- USHORT nSymbolSetNo = aSymSetMgrCopy.GetSymbolSetPos(rComboBox.GetText());
-
- return nSymbolSetNo == SYMBOLSET_NONE ?
- NULL : aSymSetMgrCopy.GetSymbolSet(nSymbolSetNo);
-}
-
-
SmSym * SmSymDefineDialog::GetSymbol(const ComboBox &rComboBox)
{
#if OSL_DEBUG_LEVEL > 1
DBG_ASSERT(&rComboBox == &aOldSymbols || &rComboBox == &aSymbols,
"Sm : falsche ComboBox");
#endif
- return aSymSetMgrCopy.GetSymbolByName(rComboBox.GetText());
+ return aSymbolMgrCopy.GetSymbolByName(rComboBox.GetText());
}
@@ -1900,32 +1894,16 @@ IMPL_LINK( SmSymDefineDialog, AddClickHdl, Button *, EMPTYARG pButton )
DBG_ASSERT(aAddBtn.IsEnabled(), "Sm : Voraussetzungen erfuellt ??");
#endif
- SmSymSet *pSymSet = GetSymbolSet(aSymbolSets);
-
- // SymbolSet einfuegen falls es noch nicht existiert
- if (!pSymSet)
- {
- pSymSet = new SmSymSet(aSymbolSets.GetText());
- aSymSetMgrCopy.AddSymbolSet(pSymSet);
- FillSymbolSets(aOldSymbolSets, FALSE);
- FillSymbolSets(aSymbolSets, FALSE);
- }
-#if OSL_DEBUG_LEVEL > 1
- DBG_ASSERT(pSymSet, "Sm : NULL pointer");
-#endif
-
- // Symbol ins SymbolSet einfuegen
+ // add symbol
// TO_DO_UCS4 (#i74049): get rid of cast without loosing UCS4 functionality
- SmSym *pSym = new SmSym(aSymbols.GetText(), aCharsetDisplay.GetFont(),
- sal::static_int_cast< sal_Unicode >(aCharsetDisplay.GetSelectCharacter()),
- aSymbolSets.GetText());
- pSymSet->AddSymbol(pSym);
-
- // update der Hash Tabelle erzwingen (damit aAddBtn disabled wird).
- // (wird spaeter nach Ueberarbeitung von symbol.cxx ueberfluessig werden).
- aSymSetMgrCopy.ChangeSymbolSet((SmSymSet *)1);
-
- // Symbolliste aktualiseren
+ const SmSym aSymbol( aSymbols.GetText(), aCharsetDisplay.GetFont(),
+ sal::static_int_cast< sal_Unicode >( aCharsetDisplay.GetSelectCharacter() ),
+ aSymbolSets.GetText() );
+ aSymbolMgrCopy.AddOrReplaceSymbol( aSymbol );
+
+ // update list box entries
+ FillSymbolSets(aOldSymbolSets, FALSE);
+ FillSymbolSets(aSymbolSets, FALSE);
FillSymbols(aOldSymbols ,FALSE);
FillSymbols(aSymbols ,FALSE);
@@ -1943,61 +1921,27 @@ IMPL_LINK( SmSymDefineDialog, ChangeClickHdl, Button *, EMPTYARG pButton )
DBG_ASSERT(aChangeBtn.IsEnabled(), "Sm : Voraussetzungen erfuellt ??");
#endif
- // finden des SymbolSets zum alten Symbol
- SmSymSet *pOldSymSet = GetSymbolSet(aOldSymbolSets);
-#if OSL_DEBUG_LEVEL > 1
- DBG_ASSERT(pOldSymSet, "Sm : NULL pointer");
-#endif
-
- // suchen des neuen SymbolSets
- SmSymSet *pNewSymSet = GetSymbolSet(aSymbolSets);
- // SymbolSet einfuegen falls es noch nicht existiert
- if (!pNewSymSet)
- {
- pNewSymSet = new SmSymSet(aSymbolSets.GetText());
- aSymSetMgrCopy.AddSymbolSet(pNewSymSet);
- FillSymbolSets(aOldSymbolSets, FALSE);
- FillSymbolSets(aSymbolSets, FALSE);
- }
-
- // das (alte) Symbol besorgen
- USHORT nSymbol = pOldSymSet->GetSymbolPos(aOldSymbols.GetText());
- SmSym *pSym = (SmSym *) &pOldSymSet->GetSymbol(nSymbol);
-#if OSL_DEBUG_LEVEL > 1
- DBG_ASSERT( SYMBOL_NONE != nSymbol, "symbol not found" );
- DBG_ASSERT(pSym, "Sm : NULL pointer");
-#endif
-
- // apply changes
- pSym->SetName( aSymbols.GetText() );
- //! get font from symbol-display since charset-display does not keep
+ // get new Sybol to use
+ //! get font from symbol-disp lay since charset-display does not keep
//! the bold attribut.
- pSym->SetFace( aSymbolDisplay.GetFont() );
// TO_DO_UCS4 (#i74049): get rid of cast without loosing UCS4 functionality
- pSym->SetCharacter( sal::static_int_cast< sal_Unicode >(aCharsetDisplay.GetSelectCharacter()) );
+ const SmSym aNewSymbol( aSymbols.GetText(), aSymbolDisplay.GetFont(),
+ sal::static_int_cast< sal_Unicode >( aCharsetDisplay.GetSelectCharacter() ),
+ aSymbolSets.GetText() );
- // das SymbolSet wechseln wenn noetig
- if (pOldSymSet != pNewSymSet)
- {
- pNewSymSet->AddSymbol( new SmSym( *pSym ) );
- pOldSymSet->DeleteSymbol(nSymbol);
-
- //
- // update controls
- //
- // actualize symbol-lists in the dialog
- String aTmpOldSymbolName( pOrigSymbol->GetName() );
- aOldSymbols.SetText( String() );
- aOldSymbols.RemoveEntry( aTmpOldSymbolName );
- if (aSymbolSets.GetText() == aOldSymbolSets.GetText())
- aSymbols.RemoveEntry( aTmpOldSymbolName );
- // clear display for original symbol
- SetOrigSymbol(NULL, XubString());
- }
+ // remove old symbol if the name was changed then add new one
+ if (aOldSymbols.GetText() != aSymbols.GetText())
+ aSymbolMgrCopy.RemoveSymbol( aOldSymbols.GetText() );
+ aSymbolMgrCopy.AddOrReplaceSymbol( aNewSymbol, true );
- //!! den SymbolSet Manger dazu zwingen seinen HashTable zu aktualisieren,
- //!! um mit moeglich neuen bzw fehlenden alten Symbol Namen konform zu sein.
- aSymSetMgrCopy.ChangeSymbolSet((SmSymSet *)1);
+ // clear display for original symbol
+ SetOrigSymbol(NULL, XubString());
+
+ // update list box entries
+ FillSymbolSets(aOldSymbolSets, FALSE);
+ FillSymbolSets(aSymbolSets, FALSE);
+ FillSymbols(aOldSymbols ,FALSE);
+ FillSymbols(aSymbols ,FALSE);
UpdateButtons();
@@ -2015,33 +1959,16 @@ IMPL_LINK( SmSymDefineDialog, DeleteClickHdl, Button *, EMPTYARG pButton )
if (pOrigSymbol)
{
- // loeschen des Symbols:
- //
- // zugehoeriges SymbolSet finden
- SmSymSet *pSymSet = GetSymbolSet(aOldSymbolSets);
- // finden des Index
- XubString aTmpOldSymbolName (pOrigSymbol->GetName());
- USHORT nSymbolNo = pSymSet->GetSymbolPos(aTmpOldSymbolName);
- // Bezuege auf das Symbols loeschen
+ aSymbolMgrCopy.RemoveSymbol( pOrigSymbol->GetName() );
+
+ // clear display for original symbol
SetOrigSymbol(NULL, XubString());
- // und weg mit dem Symbol
- pSymSet->DeleteSymbol(nSymbolNo);
-#if OSL_DEBUG_LEVEL > 1
- DBG_ASSERT(pSymSet, "Sm : NULL pointer");
- DBG_ASSERT(nSymbolNo != SYMBOL_NONE, "Sm : kein Symbol");
-#endif
- //!! den SymbolSet Manger dazu zwingen seinen HashTable zu aktualisieren,
- //!! was er naemlich nicht tut, wenn in einem seiner SymbolSets geaendert/
- //!! geloescht wird, was wiederum zu einem Absturz fuehren kann (wenn er
- //!! ueber ein nicht mehr existentes aber nicht entferntes Symbol iteriert).
- aSymSetMgrCopy.ChangeSymbolSet((SmSymSet *)1);
-
- // aktualisieren der Symboleintraege des Dialogs
- aOldSymbols.SetText(XubString());
- aOldSymbols.RemoveEntry(aTmpOldSymbolName);
- if (aSymbolSets.GetText() == aOldSymbolSets.GetText())
- aSymbols.RemoveEntry(aTmpOldSymbolName);
+ // update list box entries
+ FillSymbolSets(aOldSymbolSets, FALSE);
+ FillSymbolSets(aSymbolSets, FALSE);
+ FillSymbols(aOldSymbols ,FALSE);
+ FillSymbols(aSymbols ,FALSE);
}
UpdateButtons();
@@ -2073,7 +2000,7 @@ void SmSymDefineDialog::UpdateButtons()
&& aCharsetDisplay.GetSelectCharacter() == pOrigSymbol->GetCharacter();
// hinzufuegen nur wenn es noch kein Symbol desgleichen Namens gibt
- bAdd = aSymSetMgrCopy.GetSymbolByName(aTmpSymbolName) == NULL;
+ bAdd = aSymbolMgrCopy.GetSymbolByName(aTmpSymbolName) == NULL;
// loeschen nur wenn alle Einstellungen gleich sind
bDelete = pOrigSymbol != NULL;
@@ -2092,7 +2019,7 @@ void SmSymDefineDialog::UpdateButtons()
SmSymDefineDialog::SmSymDefineDialog(Window * pParent,
- OutputDevice *pFntListDevice, SmSymSetManager &rMgr, BOOL bFreeRes) :
+ OutputDevice *pFntListDevice, SmSymbolManager &rMgr, BOOL bFreeRes) :
ModalDialog (pParent, SmResId(RID_SYMDEFINEDIALOG)),
aOldSymbolText (this, SmResId(1)),
aOldSymbols (this, SmResId(1)),
@@ -2123,7 +2050,7 @@ SmSymDefineDialog::SmSymDefineDialog(Window * pParent,
aRightArrow (this, SmResId(1)),
aRigthArrow_Im (SmResId(1)),
aRigthArrow_Im_HC (SmResId(2)), // hi-contrast version
- rSymSetMgr (rMgr),
+ rSymbolMgr (rMgr),
pSubsetMap (NULL),
pFontList (NULL)
{
@@ -2134,9 +2061,10 @@ SmSymDefineDialog::SmSymDefineDialog(Window * pParent,
pOrigSymbol = 0;
- // make autocompletion for symbols case-sensitive
- aOldSymbols.EnableAutocomplete(TRUE, TRUE);
- aSymbols .EnableAutocomplete(TRUE, TRUE);
+ // auto completion is troublesome since that symbols character also gets automatically selected in the
+ // display and if the user previously selected a character to define/redefine that one this is bad
+ aOldSymbols.EnableAutocomplete( FALSE, TRUE );
+ aSymbols .EnableAutocomplete( FALSE, TRUE );
FillFonts();
if (aFonts.GetEntryCount() > 0)
@@ -2144,7 +2072,7 @@ SmSymDefineDialog::SmSymDefineDialog(Window * pParent,
InitColor_Impl();
- SetSymbolSetManager(rSymSetMgr);
+ SetSymbolSetManager(rSymbolMgr);
aOldSymbols .SetSelectHdl(LINK(this, SmSymDefineDialog, OldSymbolChangeHdl));
aOldSymbolSets .SetSelectHdl(LINK(this, SmSymDefineDialog, OldSymbolSetChangeHdl));
@@ -2218,41 +2146,23 @@ short SmSymDefineDialog::Execute()
short nResult = ModalDialog::Execute();
// Aenderungen uebernehmen falls Dialog mit OK beendet wurde
- if (aSymSetMgrCopy.IsModified() && nResult == RET_OK)
- {
- // leere SymbolSets aus dem Ergebnis entfernen.
- // Dabei von hinten durch das array iterieren, da beim loeschen die
- // Elemente aufruecken.
- USHORT nSymbolSets = aSymSetMgrCopy.GetSymbolSetCount();
- for (USHORT i = 0; i < nSymbolSets; i++)
- {
- USHORT nIdx = nSymbolSets - 1 - i;
- if (aSymSetMgrCopy.GetSymbolSet(nIdx)->GetCount() == 0)
- aSymSetMgrCopy.DeleteSymbolSet(nIdx);
- }
-
-
-
- rSymSetMgr = aSymSetMgrCopy;
-#ifdef DEBUG
-// USHORT nS = rSymSetMgr.GetSymbolSetCount();
-#endif
- }
+ if (aSymbolMgrCopy.IsModified() && nResult == RET_OK)
+ rSymbolMgr = aSymbolMgrCopy;
return nResult;
}
-void SmSymDefineDialog::SetSymbolSetManager(const SmSymSetManager &rMgr)
+void SmSymDefineDialog::SetSymbolSetManager(const SmSymbolManager &rMgr)
{
- aSymSetMgrCopy = rMgr;
+ aSymbolMgrCopy = rMgr;
#ifdef DEBUG
-// USHORT nS = aSymSetMgrCopy.GetSymbolSetCount();
+// USHORT nS = aSymbolMgrCopy.GetSymbolSetCount();
#endif
// Das modified Flag der Kopie auf FALSE setzen, damit man spaeter damit
// testen kann ob sich was geaendert hat.
- aSymSetMgrCopy.SetModified(FALSE);
+ aSymbolMgrCopy.SetModified(FALSE);
FillSymbolSets(aOldSymbolSets);
if (aOldSymbolSets.GetEntryCount() > 0)
@@ -2407,13 +2317,13 @@ BOOL SmSymDefineDialog::SelectSymbol(ComboBox &rComboBox,
{
// bei Wechsel des alten Symbols nur vorhandene anzeigen sonst keins
const SmSym *pOldSymbol = NULL;
- XubString aTMpOldSymbolSetName;
+ XubString aTmpOldSymbolSetName;
if (nPos != COMBOBOX_ENTRY_NOTFOUND)
{
- pOldSymbol = aSymSetMgrCopy.GetSymbolByName(aNormName);
- aTMpOldSymbolSetName = aOldSymbolSets.GetText();
+ pOldSymbol = aSymbolMgrCopy.GetSymbolByName(aNormName);
+ aTmpOldSymbolSetName = aOldSymbolSets.GetText();
}
- SetOrigSymbol(pOldSymbol, aTMpOldSymbolSetName);
+ SetOrigSymbol(pOldSymbol, aTmpOldSymbolSetName);
}
else
aSymbolName.SetText(rComboBox.GetText());
diff --git a/starmath/source/document.cxx b/starmath/source/document.cxx
index 33fa49bdb4ef..a675389981fb 100644
--- a/starmath/source/document.cxx
+++ b/starmath/source/document.cxx
@@ -151,8 +151,8 @@ void SmDocShell::LoadSymbols()
{
RTL_LOGFILE_CONTEXT( aLog, "starmath: SmDocShell::LoadSymbols" );
- SmModule *pp = SM_MOD1();
- pp->GetSymSetManager().Load();
+ SmModule *pp = SM_MOD();
+ pp->GetSymbolManager().Load();
}
@@ -282,7 +282,7 @@ void SmDocShell::ArrangeFormula()
pOutDev = &pView->GetGraphicWindow();
else
{
- pOutDev = &SM_MOD1()->GetDefaultVirtualDev();
+ pOutDev = &SM_MOD()->GetDefaultVirtualDev();
pOutDev->SetMapMode( MapMode(MAP_100TH_MM) );
}
}
@@ -616,7 +616,7 @@ Printer* SmDocShell::GetPrt()
SID_NO_RIGHT_SPACES, SID_NO_RIGHT_SPACES,
0);
- SmModule *pp = SM_MOD1();
+ SmModule *pp = SM_MOD();
pp->GetConfig()->ConfigToItemSet(*pOptions);
pPrinter = new SfxPrinter(pOptions);
pPrinter->SetMapMode( MapMode(MAP_100TH_MM) );
@@ -698,7 +698,7 @@ SmDocShell::SmDocShell(SfxObjectCreateMode eMode,const sal_Bool _bScriptSupport)
SetPool(&SFX_APP()->GetPool());
- SmModule *pp = SM_MOD1();
+ SmModule *pp = SM_MOD();
aFormat = pp->GetConfig()->GetStandardFormat();
StartListening(aFormat);
@@ -718,7 +718,7 @@ SmDocShell::~SmDocShell()
{
RTL_LOGFILE_CONTEXT( aLog, "starmath: SmDocShell::~SmDocShell" );
- SmModule *pp = SM_MOD1();
+ SmModule *pp = SM_MOD();
EndListening(aFormat);
EndListening(*pp->GetConfig());
@@ -1014,7 +1014,7 @@ void SmDocShell::Execute(SfxRequest& rReq)
case SID_AUTO_REDRAW :
{
- SmModule *pp = SM_MOD1();
+ SmModule *pp = SM_MOD();
BOOL bRedraw = pp->GetConfig()->IsAutoRedraw();
pp->GetConfig()->SetAutoRedraw(!bRedraw);
}
@@ -1033,7 +1033,7 @@ void SmDocShell::Execute(SfxRequest& rReq)
// get device used to retrieve the FontList
OutputDevice *pDev = GetPrinter();
if (!pDev || pDev->GetDevFontCount() == 0)
- pDev = &SM_MOD1()->GetDefaultVirtualDev();
+ pDev = &SM_MOD()->GetDefaultVirtualDev();
DBG_ASSERT (pDev, "device for font list missing" );
SmFontTypeDialog *pFontTypeDialog = new SmFontTypeDialog( NULL, pDev );
@@ -1117,7 +1117,7 @@ void SmDocShell::Execute(SfxRequest& rReq)
pAlignDialog->WriteTo(aNewFormat);
- SmModule *pp = SM_MOD1();
+ SmModule *pp = SM_MOD();
SmFormat aFmt( pp->GetConfig()->GetStandardFormat() );
pAlignDialog->WriteTo( aFmt );
pp->GetConfig()->SetStandardFormat( aFmt );
@@ -1202,7 +1202,7 @@ void SmDocShell::GetState(SfxItemSet &rSet)
case SID_AUTO_REDRAW :
{
- SmModule *pp = SM_MOD1();
+ SmModule *pp = SM_MOD();
BOOL bRedraw = pp->GetConfig()->IsAutoRedraw();
rSet.Put(SfxBoolItem(SID_AUTO_REDRAW, bRedraw));
@@ -1291,8 +1291,8 @@ void SmDocShell::SaveSymbols()
{
RTL_LOGFILE_CONTEXT( aLog, "starmath: SmDocShell::SaveSymbols" );
- SmModule *pp = SM_MOD1();
- pp->GetSymSetManager().Save();
+ SmModule *pp = SM_MOD();
+ pp->GetSymbolManager().Save();
}
diff --git a/starmath/source/edit.cxx b/starmath/source/edit.cxx
index d9c333611071..e89a2f0f3d5b 100644
--- a/starmath/source/edit.cxx
+++ b/starmath/source/edit.cxx
@@ -116,7 +116,7 @@ SmEditWindow::SmEditWindow( SmCmdBoxWindow &rMyCmdBoxWin ) :
// Even RTL languages don't use RTL for math
rCmdBox.GetEditWindow()->EnableRTL( FALSE );
- ApplyColorConfigValues( SM_MOD1()->GetColorConfig() );
+ ApplyColorConfigValues( SM_MOD()->GetColorConfig() );
// compare DataChanged
SetBackground( GetSettings().GetStyleSettings().GetWindowColor() );
@@ -212,7 +212,7 @@ void SmEditWindow::DataChanged( const DataChangedEvent& )
{
const StyleSettings aSettings( GetSettings().GetStyleSettings() );
- ApplyColorConfigValues( SM_MOD1()->GetColorConfig() );
+ ApplyColorConfigValues( SM_MOD()->GetColorConfig() );
SetBackground( aSettings.GetWindowColor() );
// edit fields in other Applications use this font instead of
@@ -246,7 +246,7 @@ void SmEditWindow::DataChanged( const DataChangedEvent& )
IMPL_LINK( SmEditWindow, ModifyTimerHdl, Timer *, EMPTYARG /*pTimer*/ )
{
- SmModule *pp = SM_MOD1();
+ SmModule *pp = SM_MOD();
if (pp->GetConfig()->IsAutoRedraw())
Flush();
aModifyTimer.Start();
diff --git a/starmath/source/makefile.mk b/starmath/source/makefile.mk
index 0f604a22b346..e0b8d47d7cfe 100644
--- a/starmath/source/makefile.mk
+++ b/starmath/source/makefile.mk
@@ -52,33 +52,33 @@ SRC2FILES = smres.src \
commands.src
SLO1FILES = \
- $(SLO)$/register.obj \
- $(SLO)$/typemap.obj \
+ $(SLO)$/accessibility.obj \
+ $(SLO)$/edit.obj \
+ $(SLO)$/eqnolefilehdr.obj \
+ $(SLO)$/mathmlexport.obj \
+ $(SLO)$/mathmlimport.obj \
$(SLO)$/symbol.obj \
- $(SLO)$/toolbox.obj \
+ $(SLO)$/types.obj \
+ $(SLO)$/unodoc.obj \
$(SLO)$/action.obj \
- $(SLO)$/accessibility.obj \
$(SLO)$/cfgitem.obj \
$(SLO)$/config.obj \
$(SLO)$/dialog.obj \
$(SLO)$/document.obj \
- $(SLO)$/mathtype.obj \
- $(SLO)$/mathmlimport.obj \
- $(SLO)$/mathmlexport.obj \
$(SLO)$/format.obj \
+ $(SLO)$/mathtype.obj \
$(SLO)$/node.obj \
$(SLO)$/parse.obj \
- $(SLO)$/utility.obj \
+ $(SLO)$/register.obj \
$(SLO)$/smdll.obj \
+ $(SLO)$/toolbox.obj \
+ $(SLO)$/typemap.obj \
$(SLO)$/smmod.obj \
- $(SLO)$/types.obj \
- $(SLO)$/view.obj \
- $(SLO)$/viewhdl.obj \
- $(SLO)$/edit.obj \
+ $(SLO)$/utility.obj \
$(SLO)$/rect.obj \
$(SLO)$/unomodel.obj \
- $(SLO)$/unodoc.obj \
- $(SLO)$/eqnolefilehdr.obj
+ $(SLO)$/viewhdl.obj \
+ $(SLO)$/view.obj
SLO2FILES = \
$(SLO)$/register.obj \
diff --git a/starmath/source/node.cxx b/starmath/source/node.cxx
index ad3987549c0f..bfafe705f486 100644
--- a/starmath/source/node.cxx
+++ b/starmath/source/node.cxx
@@ -118,7 +118,7 @@ Color SmTmpDevice::Impl_GetColor( const Color& rColor )
if (OUTDEV_WINDOW == rOutDev.GetOutDevType())
aBgCol = ((Window &) rOutDev).GetDisplayBackground().GetColor();
- nNewCol = SM_MOD1()->GetColorConfig().GetColorValue(svtools::FONTCOLOR).nColor;
+ nNewCol = SM_MOD()->GetColorConfig().GetColorValue(svtools::FONTCOLOR).nColor;
Color aTmpColor( nNewCol );
if (aBgCol.IsDark() && aTmpColor.IsDark())
@@ -2806,9 +2806,9 @@ void SmSpecialNode::Prepare(const SmFormat &rFormat, const SmDocShell &rDocShell
SmNode::Prepare(rFormat, rDocShell);
const SmSym *pSym;
- SmModule *pp = SM_MOD1();
+ SmModule *pp = SM_MOD();
- if (NULL != (pSym = pp->GetSymSetManager().GetSymbolByName(GetToken().aText)))
+ if (NULL != (pSym = pp->GetSymbolManager().GetSymbolByName(GetToken().aText)))
{
SetText( pSym->GetCharacter() );
GetFont() = pSym->GetFace();
diff --git a/starmath/source/parse.cxx b/starmath/source/parse.cxx
index 83662e50b123..fe0a5eeb6437 100644
--- a/starmath/source/parse.cxx
+++ b/starmath/source/parse.cxx
@@ -383,7 +383,7 @@ BOOL SmParser::IsDelimiter( const String &rTxt, xub_StrLen nPos )
BOOL bIsDelim = *pDelim != 0;
- INT16 nTypJp = SM_MOD1()->GetSysLocale().GetCharClass().getType( rTxt, nPos );
+ INT16 nTypJp = SM_MOD()->GetSysLocale().GetCharClass().getType( rTxt, nPos );
bIsDelim |= nTypJp == com::sun::star::i18n::UnicodeType::SPACE_SEPARATOR ||
nTypJp == com::sun::star::i18n::UnicodeType::CONTROL;
@@ -441,7 +441,7 @@ void SmParser::NextToken()
xub_StrLen nRealStart;
BOOL bCont;
BOOL bNumStart = FALSE;
- CharClass aCC(SM_MOD1()->GetSysLocale().GetCharClass().getLocale());
+ CharClass aCC(SM_MOD()->GetSysLocale().GetCharClass().getLocale());
do
{
// skip white spaces
@@ -1365,7 +1365,7 @@ void SmParser::Blank()
// Blanks am Zeilenende ignorieren wenn die entsprechende Option gesetzt ist
if ( CurToken.eType == TNEWLINE ||
- (CurToken.eType == TEND && SM_MOD1()->GetConfig()->IsIgnoreSpacesRight()) )
+ (CurToken.eType == TEND && SM_MOD()->GetConfig()->IsIgnoreSpacesRight()) )
{
pBlankNode->Clear();
}
@@ -2289,13 +2289,13 @@ void SmParser::Special()
// UI uses localized names XML file format does not.)
if (IsImportSymbolNames())
{
- const SmLocalizedSymbolData &rLSD = SM_MOD1()->GetLocSymbolData();
+ const SmLocalizedSymbolData &rLSD = SM_MOD()->GetLocSymbolData();
aNewName = rLSD.GetUiSymbolName( rName );
bReplace = TRUE;
}
else if (IsExportSymbolNames())
{
- const SmLocalizedSymbolData &rLSD = SM_MOD1()->GetLocSymbolData();
+ const SmLocalizedSymbolData &rLSD = SM_MOD()->GetLocSymbolData();
aNewName = rLSD.GetExportSymbolName( rName );
bReplace = TRUE;
}
@@ -2303,7 +2303,7 @@ void SmParser::Special()
else // 5.0 <-> 6.0 formula text (symbol name) conversion
{
LanguageType nLanguage = GetLanguage();
- SmLocalizedSymbolData &rData = SM_MOD1()->GetLocSymbolData();
+ SmLocalizedSymbolData &rData = SM_MOD()->GetLocSymbolData();
const ResStringArray *pFrom = 0;
const ResStringArray *pTo = 0;
if (CONVERT_50_TO_60 == GetConversion())
diff --git a/starmath/source/rect.cxx b/starmath/source/rect.cxx
index 0718be8ffd37..1a2a6a408a59 100644
--- a/starmath/source/rect.cxx
+++ b/starmath/source/rect.cxx
@@ -719,7 +719,7 @@ BOOL SmGetGlyphBoundRect(const OutputDevice &rDev,
{
// since we format for the printer (where GetTextBoundRect will fail)
// we need a virtual device here.
- pGlyphDev = &SM_MOD1()->GetDefaultVirtualDev();
+ pGlyphDev = &SM_MOD()->GetDefaultVirtualDev();
}
const FontMetric aDevFM (rDev.GetFontMetric());
diff --git a/starmath/source/smdll.cxx b/starmath/source/smdll.cxx
index 7b9e79a9cf41..1ee06fc60e7d 100644
--- a/starmath/source/smdll.cxx
+++ b/starmath/source/smdll.cxx
@@ -78,7 +78,7 @@ void SmDLL::Init()
SmModule** ppShlPtr = (SmModule**) GetAppData(SHL_SM);
*ppShlPtr = new SmModule( &rFactory );
- SfxModule *p = SM_MOD1();
+ SfxModule *p = SM_MOD();
SmModule *pp = (SmModule *) p;
rFactory.SetDocumentServiceName( String::CreateFromAscii("com.sun.star.formula.FormulaProperties") );
diff --git a/starmath/source/smmod.cxx b/starmath/source/smmod.cxx
index 20cfc284d006..a34302338d75 100644
--- a/starmath/source/smmod.cxx
+++ b/starmath/source/smmod.cxx
@@ -101,7 +101,7 @@ const String SmLocalizedSymbolData::GetUiSymbolName( const String &rExportName )
{
String aRes;
- const SmLocalizedSymbolData &rData = SM_MOD1()->GetLocSymbolData();
+ const SmLocalizedSymbolData &rData = SM_MOD()->GetLocSymbolData();
const ResStringArray &rUiNames = rData.GetUiSymbolNamesArray();
const ResStringArray &rExportNames = rData.GetExportSymbolNamesArray();
USHORT nCount = sal::static_int_cast< xub_StrLen >(rExportNames.Count());
@@ -122,7 +122,7 @@ const String SmLocalizedSymbolData::GetExportSymbolName( const String &rUiName )
{
String aRes;
- const SmLocalizedSymbolData &rData = SM_MOD1()->GetLocSymbolData();
+ const SmLocalizedSymbolData &rData = SM_MOD()->GetLocSymbolData();
const ResStringArray &rUiNames = rData.GetUiSymbolNamesArray();
const ResStringArray &rExportNames = rData.GetExportSymbolNamesArray();
USHORT nCount = sal::static_int_cast< xub_StrLen >(rUiNames.Count());
@@ -143,7 +143,7 @@ const String SmLocalizedSymbolData::GetUiSymbolSetName( const String &rExportNam
{
String aRes;
- const SmLocalizedSymbolData &rData = SM_MOD1()->GetLocSymbolData();
+ const SmLocalizedSymbolData &rData = SM_MOD()->GetLocSymbolData();
const ResStringArray &rUiNames = rData.GetUiSymbolSetNamesArray();
const ResStringArray &rExportNames = rData.GetExportSymbolSetNamesArray();
USHORT nCount = sal::static_int_cast< xub_StrLen >(rExportNames.Count());
@@ -164,7 +164,7 @@ const String SmLocalizedSymbolData::GetExportSymbolSetName( const String &rUiNam
{
String aRes;
- const SmLocalizedSymbolData &rData = SM_MOD1()->GetLocSymbolData();
+ const SmLocalizedSymbolData &rData = SM_MOD()->GetLocSymbolData();
const ResStringArray &rUiNames = rData.GetUiSymbolSetNamesArray();
const ResStringArray &rExportNames = rData.GetExportSymbolSetNamesArray();
USHORT nCount = sal::static_int_cast< xub_StrLen >(rUiNames.Count());
@@ -317,9 +317,9 @@ SmConfig * SmModule::GetConfig()
return pConfig;
}
-SmSymSetManager & SmModule::GetSymSetManager()
+SmSymbolManager & SmModule::GetSymbolManager()
{
- return GetConfig()->GetSymSetManager();
+ return GetConfig()->GetSymbolManager();
}
SmLocalizedSymbolData & SmModule::GetLocSymbolData() const
diff --git a/starmath/source/symbol.cxx b/starmath/source/symbol.cxx
index aba0e754b85e..4868a4d7a37d 100644
--- a/starmath/source/symbol.cxx
+++ b/starmath/source/symbol.cxx
@@ -37,12 +37,13 @@
#include <ucbhelper/content.hxx>
#include <vcl/msgbox.hxx>
-#ifndef _SV_RESARY_HXX
-#include <tools/resary.hxx>
-#endif
#include <sfx2/dispatch.hxx>
#include <sfx2/docfile.hxx>
+#include <map>
+#include <vector>
+#include <iterator>
+
#include "symbol.hxx"
#include "view.hxx"
#include "utility.hxx"
@@ -58,72 +59,38 @@ using namespace ::com::sun::star::ucb;
using namespace ::com::sun::star::uno;
using namespace ::rtl;
-// Das hier muss auch mal alles "uberarbeitet werden. Insbesondere die nicht
-// funktionierende und bei l"oschen/"andern von Symbolen nicht gepflegte
-// Hash Tabelle!!! Diese aktualisert sich erst im Wertzuweisungsoperator
-// beim Verlassen des 'SmSymDefineDialog's!
-
-/**************************************************************************/
-/*
-**
-** MACRO DEFINTION
-**
-**/
-
-#define SF_SM20IDENT 0x03031963L
-#define SF_IDENT 0x30334D53L
-
-
-SV_IMPL_PTRARR( SymbolArray, SmSym * );
-
-/**************************************************************************/
-/*
-**
-** DATA DEFINITION
-**
-**/
-
-long SF_Ident = SF_IDENT;
/**************************************************************************/
-/*
-**
-** CLASS IMPLEMENTATION
-**
-**/
SmSym::SmSym() :
- Name(C2S("unknown")),
- aSetName(C2S("unknown")),
- pHashNext(0),
- pSymSetManager(0),
- Character('\0'),
- bPredefined(FALSE),
- bDocSymbol(FALSE)
+ m_aName(C2S("unknown")),
+ m_aSetName(C2S("unknown")),
+ m_cChar('\0'),
+ m_bPredefined(FALSE),
+ m_bDocSymbol(FALSE)
{
- aExportName = Name;
- Face.SetTransparent(TRUE);
- Face.SetAlign(ALIGN_BASELINE);
+ m_aExportName = m_aName;
+ m_aFace.SetTransparent(TRUE);
+ m_aFace.SetAlign(ALIGN_BASELINE);
}
SmSym::SmSym(const SmSym& rSymbol)
{
- pSymSetManager = 0;
*this = rSymbol;
}
-SmSym::SmSym(const String& rName, const Font& rFont, sal_Unicode aChar,
+SmSym::SmSym(const String& rName, const Font& rFont, sal_Unicode cChar,
const String& rSet, BOOL bIsPredefined)
{
- Name = aExportName = rName;
+ m_aName = m_aExportName = rName;
- Face = rFont;
- Face.SetTransparent(TRUE);
- Face.SetAlign(ALIGN_BASELINE);
+ m_aFace = rFont;
+ m_aFace.SetTransparent(TRUE);
+ m_aFace.SetAlign(ALIGN_BASELINE);
- Character = aChar;
+ m_cChar = cChar;
//! according to HDU this should not be used anymore now
//! since this was necessary in the early days but should
//! not be done now since this is handled now at a more
@@ -135,481 +102,231 @@ SmSym::SmSym(const String& rName, const Font& rFont, sal_Unicode aChar,
//
// if (RTL_TEXTENCODING_SYMBOL == rFont.GetCharSet())
// Character |= 0xF000;
- aSetName = rSet;
- bPredefined = bIsPredefined;
- bDocSymbol = FALSE;
-
- pHashNext = 0;
- pSymSetManager = 0;
+ m_aSetName = rSet;
+ m_bPredefined = bIsPredefined;
+ m_bDocSymbol = FALSE;
}
SmSym& SmSym::operator = (const SmSym& rSymbol)
{
- Name = rSymbol.Name;
- Face = rSymbol.Face;
- Character = rSymbol.Character;
- aSetName = rSymbol.aSetName;
- bPredefined = rSymbol.bPredefined;
- bDocSymbol = rSymbol.bDocSymbol;
- aExportName = rSymbol.aExportName;
-
- pHashNext = 0;
-
- if (pSymSetManager)
- pSymSetManager->SetModified(TRUE);
-
- return *this;
-}
-
-/**************************************************************************/
-
-SmSymSet::SmSymSet() :
- Name(C2S("unknown")),
- pSymSetManager(0)
-{
- SymbolList.Clear();
-}
-
-SmSymSet::SmSymSet(const SmSymSet& rSymbolSet)
-{
- pSymSetManager = 0;
- *this = rSymbolSet;
-}
-
-SmSymSet::SmSymSet(const String& rName)
-{
- Name = rName;
- SymbolList.Clear();
-
- pSymSetManager = 0;
-}
-
-SmSymSet::~SmSymSet()
-{
- for (USHORT i = 0; i < GetCount(); i++)
- delete SymbolList.GetObject(i);
-}
-
-SmSymSet& SmSymSet::operator = (const SmSymSet& rSymbolSet)
-{
- USHORT i;
- for (i = 0; i < GetCount(); i++)
- delete SymbolList.GetObject(i);
-
- Name = rSymbolSet.Name;
- SymbolList.Clear();
- for (i = 0; i < rSymbolSet.GetCount(); i++)
- AddSymbol(new SmSym(rSymbolSet.GetSymbol(i)));
+ m_aName = rSymbol.m_aName;
+ m_aExportName = rSymbol.m_aExportName;
+ m_cChar = rSymbol.m_cChar;
+ m_aFace = rSymbol.m_aFace;
+ m_aSetName = rSymbol.m_aSetName;
+ m_bPredefined = rSymbol.m_bPredefined;
+ m_bDocSymbol = rSymbol.m_bDocSymbol;
+ SmSymbolManager * pSymSetManager = &SM_MOD()->GetSymbolManager();
if (pSymSetManager)
- pSymSetManager->SetModified(TRUE);
+ pSymSetManager->SetModified(true);
return *this;
}
-USHORT SmSymSet::AddSymbol(SmSym* pSymbol)
-{
- DBG_ASSERT(pSymbol, "Kein Symbol");
-
- if (pSymbol)
- pSymbol->SetSetName( GetName() );
- SymbolList.Insert(pSymbol, LIST_APPEND);
- DBG_ASSERT(SymbolList.GetPos(pSymbol) == SymbolList.Count() - 1,
- "Sm : ... ergibt falschen return Wert");
-
- if (pSymSetManager)
- pSymSetManager->SetModified(TRUE);
-
- return (USHORT) SymbolList.Count() - 1;
-}
-
-void SmSymSet::DeleteSymbol(USHORT SymbolNo)
-{
- delete RemoveSymbol(SymbolNo);
-}
-
-SmSym * SmSymSet::RemoveSymbol(USHORT SymbolNo)
-{
- DBG_ASSERT(SymbolList.GetObject(SymbolNo), "Symbol nicht vorhanden");
-
- SmSym *pSym = SymbolList.GetObject(SymbolNo);
- SymbolList.Remove(SymbolNo);
-
- if (pSymSetManager)
- pSymSetManager->SetModified(TRUE);
-
- return pSym;
-}
-
-USHORT SmSymSet::GetSymbolPos(const String& rName)
-{
- for (USHORT i = 0; i < GetCount(); i++)
- if (SymbolList.GetObject(i)->GetName() == rName)
- return (i);
- return SYMBOL_NONE;
-}
-
-/**************************************************************************/
-
-SmSymSetManager_Impl::SmSymSetManager_Impl(
- SmSymSetManager &rMgr, USHORT HashTableSize ) :
-
- rSymSetMgr (rMgr)
-{
- NoSymbolSets = 0;
- NoHashEntries = HashTableSize;
- HashEntries = new SmSym *[NoHashEntries];
- memset( HashEntries, 0, sizeof(SmSym *) * NoHashEntries );
- Modified = FALSE;
-}
-
-
-SmSymSetManager_Impl::~SmSymSetManager_Impl()
+bool SmSym::IsEqualInUI( const SmSym& rSymbol ) const
{
- for (USHORT i = 0; i < NoSymbolSets; ++i)
- delete SymbolSets.Get(i);
- SymbolSets.Clear();
-
- NoSymbolSets = 0;
- if (HashEntries)
- {
- delete[] HashEntries;
- HashEntries = 0;
- }
- NoHashEntries = 0;
- Modified = FALSE;
-}
-
-
-SmSymSetManager_Impl & SmSymSetManager_Impl::operator = ( const SmSymSetManager_Impl &rImpl )
-{
- //! rMySymSetMgr remains unchanged
-
- NoHashEntries = rImpl.NoHashEntries;
- if (HashEntries)
- delete [] HashEntries;
- HashEntries = new SmSym *[NoHashEntries];
- memset( HashEntries, 0, sizeof(SmSym *) * NoHashEntries );
-
- NoSymbolSets = 0;
- SymbolSets.Clear();
- for (USHORT i = 0; i < rImpl.NoSymbolSets; ++i)
- {
- rSymSetMgr.AddSymbolSet( new SmSymSet( *rImpl.rSymSetMgr.GetSymbolSet(i) ) );
- }
- DBG_ASSERT( NoSymbolSets == rImpl.NoSymbolSets,
- "incorrect number of symbolsets" );
-
- Modified = TRUE;
- return *this;
+ return m_aName == rSymbol.m_aName &&
+ m_aFace == rSymbol.m_aFace &&
+ m_cChar == rSymbol.m_cChar;
}
/**************************************************************************/
-void SmSymSetManager::SFX_NOTIFY(SfxBroadcaster& /*rBC*/, const TypeId& rBCType,
+void SmSymbolManager::SFX_NOTIFY(SfxBroadcaster& /*rBC*/, const TypeId& rBCType,
const SfxHint& /*rHint*/, const TypeId& rHintType)
{
}
-UINT32 SmSymSetManager::GetHashIndex(const String& rSymbolName)
-{
- UINT32 x = 1;
- for (xub_StrLen i = 0; i < rSymbolName.Len(); i++)
- x += x * rSymbolName.GetChar(i) + i;
-
- return x % pImpl->NoHashEntries;
-}
-
-
-void SmSymSetManager::EnterHashTable(SmSym& rSymbol)
-{
- int j = GetHashIndex( rSymbol.GetName() );
- if (pImpl->HashEntries[j] == 0)
- pImpl->HashEntries[j] = &rSymbol;
- else
- {
- SmSym *p = pImpl->HashEntries[j];
- while (p->pHashNext)
- p = p->pHashNext;
- p->pHashNext = &rSymbol;
- }
- rSymbol.pHashNext = 0;
-}
-
-
-void SmSymSetManager::EnterHashTable(SmSymSet& rSymbolSet)
-{
- for (USHORT i = 0; i < rSymbolSet.GetCount(); i++)
- EnterHashTable( *rSymbolSet.SymbolList.GetObject(i) );
-}
-
-void SmSymSetManager::FillHashTable()
-{
- if (pImpl->HashEntries)
- {
- memset( pImpl->HashEntries, 0, pImpl->NoHashEntries * sizeof(SmSym *) );
-
- for (UINT32 i = 0; i < pImpl->NoSymbolSets; i++)
- EnterHashTable( *GetSymbolSet( (USHORT) i ) );
- }
-}
-
-void SmSymSetManager::Init()
+void SmSymbolManager::Init()
{
- SmModule *pp = SM_MOD1();
+ SmModule *pp = SM_MOD();
StartListening(*pp->GetConfig());
}
-void SmSymSetManager::Exit()
+void SmSymbolManager::Exit()
{
- SmModule *pp = SM_MOD1();
+ SmModule *pp = SM_MOD();
EndListening(*pp->GetConfig());
}
-SmSymSetManager::SmSymSetManager(USHORT HashTableSize)
+SmSymbolManager::SmSymbolManager()
{
- pImpl = new SmSymSetManager_Impl( *this, HashTableSize );
+ m_bModified = false;
}
-SmSymSetManager::SmSymSetManager(const SmSymSetManager& rSymbolSetManager) :
+SmSymbolManager::SmSymbolManager(const SmSymbolManager& rSymbolSetManager) :
SfxListener()
{
- pImpl = new SmSymSetManager_Impl( *this, rSymbolSetManager.pImpl->NoHashEntries );
- *pImpl = *rSymbolSetManager.pImpl;
+ m_aSymbols = rSymbolSetManager.m_aSymbols;
+ m_bModified = true;
}
-SmSymSetManager::~SmSymSetManager()
+SmSymbolManager::~SmSymbolManager()
{
- delete pImpl;
- pImpl = 0;
}
-SmSymSetManager& SmSymSetManager::operator = (const SmSymSetManager& rSymbolSetManager)
+
+SmSymbolManager& SmSymbolManager::operator = (const SmSymbolManager& rSymbolSetManager)
{
- *pImpl = *rSymbolSetManager.pImpl;
+ m_aSymbols = rSymbolSetManager.m_aSymbols;
+ m_bModified = true;
return *this;
}
-USHORT SmSymSetManager::AddSymbolSet(SmSymSet* pSymbolSet)
-{
- if (pImpl->NoSymbolSets >= pImpl->SymbolSets.GetSize())
- pImpl->SymbolSets.SetSize(pImpl->NoSymbolSets + 1);
-
- pImpl->SymbolSets.Put(pImpl->NoSymbolSets++, pSymbolSet);
- pSymbolSet->pSymSetManager = this;
-
- for (USHORT i = 0; i < pSymbolSet->GetCount(); i++)
- pSymbolSet->SymbolList.GetObject(i)->pSymSetManager = this;
-
- FillHashTable();
- pImpl->Modified = TRUE;
-
- return (USHORT) (pImpl->NoSymbolSets - 1);
-}
-
-void SmSymSetManager::ChangeSymbolSet(SmSymSet* pSymbolSet)
+SmSym *SmSymbolManager::GetSymbolByName(const String& rSymbolName)
{
- if (pSymbolSet)
- {
- FillHashTable();
- pImpl->Modified = TRUE;
- }
+ SmSym *pRes = NULL;
+ SymbolMap_t::iterator aIt( m_aSymbols.find( rSymbolName ) );
+ if (aIt != m_aSymbols.end())
+ pRes = &aIt->second;
+ return pRes;
}
-void SmSymSetManager::DeleteSymbolSet(USHORT SymbolSetNo)
-{
- delete pImpl->SymbolSets.Get(SymbolSetNo);
- pImpl->NoSymbolSets--;
-
- for (UINT32 i = SymbolSetNo; i < pImpl->NoSymbolSets; i++)
- pImpl->SymbolSets.Put(i, pImpl->SymbolSets.Get(i + 1));
-
- FillHashTable();
- pImpl->Modified = TRUE;
+const SymbolPtrVec_t SmSymbolManager::GetSymbols() const
+{
+ SymbolPtrVec_t aRes;
+ SymbolMap_t::const_iterator aIt( m_aSymbols.begin() );
+ for ( ; aIt != m_aSymbols.end(); ++aIt)
+ aRes.push_back( &aIt->second );
+ DBG_ASSERT( sSymbols.size() == m_aSymbols.size(), "number of symbols mismatch " );
+ return aRes;
}
-USHORT SmSymSetManager::GetSymbolSetPos(const String& rSymbolSetName) const
+bool SmSymbolManager::AddOrReplaceSymbol( const SmSym &rSymbol, bool bForceChange )
{
- for (USHORT i = 0; i < pImpl->NoSymbolSets; i++)
- if (pImpl->SymbolSets.Get(i)->GetName() == rSymbolSetName)
- return (i);
-
- return SYMBOLSET_NONE;
-}
+ bool bAdded = false;
-SmSym *SmSymSetManager::GetSymbolByName(const String& rSymbolName)
-{
- SmSym *pSym = pImpl->HashEntries[GetHashIndex(rSymbolName)];
- while (pSym)
+ const String aSymbolName( rSymbol.GetName() );
+ if (aSymbolName.Len() > 0 && rSymbol.GetSymbolSetName().Len() > 0)
{
- if (pSym->Name == rSymbolName)
- break;
- pSym = pSym->pHashNext;
- }
-
- return pSym;
-}
+ const SmSym *pFound = GetSymbolByName( aSymbolName );
+ const bool bSymbolConflict = pFound && !pFound->IsEqualInUI( rSymbol );
-
-void SmSymSetManager::AddReplaceSymbol( const SmSym &rSymbol )
-{
- SmSym *pSym = GetSymbolByName( rSymbol.GetName() );
- if (pSym)
- {
- *pSym = rSymbol;
- }
- else
- {
- USHORT nPos = GetSymbolSetPos( rSymbol.GetSetName() );
- if (SYMBOLSET_NONE == nPos)
+ // avoid having the same symbol name twice but with different symbols in use
+ if (!pFound || bForceChange)
{
- AddSymbolSet( new SmSymSet( rSymbol.GetSetName() ) );
- nPos = GetSymbolSetPos( rSymbol.GetSetName() );
+ m_aSymbols[ aSymbolName ] = rSymbol;
+ bAdded = true;
+ }
+ else if (pFound && !bForceChange && bSymbolConflict)
+ {
+ // TODO: but what ...
+ DBG_ASSERT( 0, "symbol conflict, different symbol with same name found!" );
}
- DBG_ASSERT( nPos != SYMBOLSET_NONE, "SymbolSet not found");
- SmSym *pTmpSym = new SmSym( rSymbol );
- GetSymbolSet( nPos )->AddSymbol( pTmpSym );
- EnterHashTable( *pTmpSym );
}
- SetModified( TRUE );
-}
+ DBG_ASSERT( bAdded, "failed to add symbol" );
+ if (bAdded)
+ m_bModified = true;
-USHORT SmSymSetManager::GetSymbolCount() const
-{
- USHORT nRes = 0;
- USHORT nSets = GetSymbolSetCount();
- for (USHORT i = 0; i < nSets; ++i)
- nRes = nRes + GetSymbolSet(i)->GetCount();
- return nRes;
+ return bAdded;
}
-const SmSym * SmSymSetManager::GetSymbolByPos( USHORT nPos ) const
+void SmSymbolManager::RemoveSymbol( const String & rSymbolName )
{
- const SmSym *pRes = 0;
-
- INT16 nIdx = 0;
- USHORT nSets = GetSymbolSetCount();
- USHORT i = 0;
- while (i < nSets && !pRes)
+ if (rSymbolName.Len() > 0)
{
- USHORT nEntries = GetSymbolSet(i)->GetCount();
- if (nPos < nIdx + nEntries)
- pRes = &GetSymbolSet(i)->GetSymbol( nPos - nIdx );
- else
- nIdx = nIdx + nEntries;
- ++i;
+ size_t nOldSize = m_aSymbols.size();
+ m_aSymbols.erase( rSymbolName );
+ m_bModified = nOldSize != m_aSymbols.size();
}
+}
- return pRes;
+
+std::set< String > SmSymbolManager::GetSymbolSetNames() const
+{
+ std::set< String > aRes;
+ SymbolMap_t::const_iterator aIt( m_aSymbols.begin() );
+ for ( ; aIt != m_aSymbols.end(); ++aIt )
+ aRes.insert( aIt->second.GetSymbolSetName() );
+ return aRes;
}
-void SmSymSetManager::GetSymbols( std::vector< SmSym > &rSymbols ) const
+const SymbolPtrVec_t SmSymbolManager::GetSymbolSet( const String& rSymbolSetName )
{
- INT32 nCount = GetSymbolCount();
- rSymbols.resize( nCount );
- USHORT nPos = 0;
- std::vector< SmSym >::iterator aIt( rSymbols.begin() );
- std::vector< SmSym >::iterator aEnd( rSymbols.end() );
- while (aIt != aEnd)
+ SymbolPtrVec_t aRes;
+ if (rSymbolSetName.Len() > 0)
{
- const SmSym *pSym = GetSymbolByPos( nPos++ );
- DBG_ASSERT( pSym, "symbol missing" );
- if (pSym)
- *aIt++ = *pSym;
+ SymbolMap_t::const_iterator aIt( m_aSymbols.begin() );
+ for ( ; aIt != m_aSymbols.end(); ++aIt )
+ {
+ if (aIt->second.GetSymbolSetName() == rSymbolSetName)
+ aRes.push_back( &aIt->second );
+ }
}
- DBG_ASSERT( nPos == nCount, "index out of range?" );
+ return aRes;
}
-void SmSymSetManager::Load()
+void SmSymbolManager::Load()
{
std::vector< SmSym > aSymbols;
- SmMathConfig &rCfg = *SM_MOD1()->GetConfig();
+ SmMathConfig &rCfg = *SM_MOD()->GetConfig();
rCfg.GetSymbols( aSymbols );
- INT32 nSymbolCount = aSymbols.size();
+ size_t nSymbolCount = aSymbols.size();
- USHORT i;
- for (i = 0; i < nSymbolCount; ++i)
+ m_aSymbols.clear();
+ for (size_t i = 0; i < nSymbolCount; ++i)
{
const SmSym &rSym = aSymbols[i];
- DBG_ASSERT( rSym.Name.Len() > 0, "symbol without name!" );
- if (rSym.Name.Len() > 0)
- {
- SmSymSet *pSymSet = 0;
- const String &rSetName = rSym.GetSetName();
- USHORT nSetPos = GetSymbolSetPos( rSetName );
- if (SYMBOLSET_NONE != nSetPos)
- pSymSet = GetSymbolSet( nSetPos );
- else
- {
- pSymSet = new SmSymSet( rSetName );
- AddSymbolSet( pSymSet );
- }
-
- pSymSet->AddSymbol( new SmSym( rSym ) );
- }
+ DBG_ASSERT( rSym.GetName().Len() > 0, "symbol without name!" );
+ if (rSym.GetName().Len() > 0)
+ AddOrReplaceSymbol( rSym );
}
- // build HashTables
- INT32 nSymbolSetCount = GetSymbolSetCount();
- for (i = 0; i < nSymbolSetCount; ++i)
- ChangeSymbolSet( GetSymbolSet( i ) );
+ m_bModified = true;
if (0 == nSymbolCount)
{
DBG_ERROR( "no symbol set found" );
- pImpl->Modified = FALSE;
+ m_bModified = false;
}
}
-void SmSymSetManager::Save()
+void SmSymbolManager::Save()
{
- SmMathConfig &rCfg = *SM_MOD1()->GetConfig();
-
- // get number of Symbols
- USHORT nSymbolCount = 0;
- USHORT nSetCount = GetSymbolSetCount();
- USHORT i;
- for (i = 0; i < nSetCount; ++i)
- nSymbolCount = nSymbolCount + GetSymbolSet( i )->GetCount();
-
- if (nSymbolCount)
+ if (m_bModified)
{
- USHORT nSaveSymbolCnt = 0;
- const SmSym **pSymbols = new const SmSym* [ nSymbolCount ];
- const SmSym **pSym = pSymbols;
- for (i = 0; i < nSetCount; ++i)
+ SmMathConfig &rCfg = *SM_MOD()->GetConfig();
+
+#if 0
+ USHORT nSymbolCount = GetSymbolCount();
+ USHORT nSaveSymbolCnt = 0;
+ const SmSym **pSymbols = new const SmSym* [ nSymbolCount ];
+ const SmSym **pSym = pSymbols;
+ for (USHORT j = 0; j < nSymbolCount; ++j)
{
- const SmSymSet *pSymSet = GetSymbolSet( i );
- USHORT n = pSymSet->GetCount();
- for (USHORT j = 0; j < n; ++j)
+ const SmSym &rSym = *pSymSet->GetSymbol( j );
+ if (!rSym.IsDocSymbol())
{
- const SmSym &rSym = pSymSet->GetSymbol( j );
- if (!rSym.IsDocSymbol())
- {
- *pSym++ = &rSym;
- ++nSaveSymbolCnt;
- }
+ *pSym++ = &rSym;
+ ++nSaveSymbolCnt;
}
}
DBG_ASSERT(pSym - pSymbols == nSaveSymbolCnt, "wrong number of symbols" );
-
+#endif
+ SymbolPtrVec_t aTmp( GetSymbols() );
std::vector< SmSym > aSymbols;
- GetSymbols( aSymbols );
+ for (size_t i = 0; i < aTmp.size(); ++i)
+ aSymbols.push_back( *aTmp[i] );
rCfg.SetSymbols( aSymbols );
+#if 0
delete [] pSymbols;
+#endif
+
+ m_bModified = false;
}
}
diff --git a/starmath/source/unomodel.cxx b/starmath/source/unomodel.cxx
index ed6e5b6bd23f..9d481bf1b840 100644
--- a/starmath/source/unomodel.cxx
+++ b/starmath/source/unomodel.cxx
@@ -593,7 +593,7 @@ void SmModel::_setPropertyValues(const PropertyMapEntry** ppEntries, const Any*
0
};
SfxItemSet *pItemSet = new SfxItemSet( pDocSh->GetPool(), nRange );
- SmModule *pp = SM_MOD1();
+ SmModule *pp = SM_MOD();
pp->GetConfig()->ConfigToItemSet(*pItemSet);
SfxPrinter *pPrinter = SfxPrinter::Create ( aStream, pItemSet );
@@ -610,8 +610,8 @@ void SmModel::_setPropertyValues(const PropertyMapEntry** ppEntries, const Any*
if ( *pValues >>= aSequence )
{
sal_uInt32 nSize = aSequence.getLength();
- SmModule *pp = SM_MOD1();
- SmSymSetManager &rManager = pp->GetSymSetManager();
+ SmModule *pp = SM_MOD();
+ SmSymbolManager &rManager = pp->GetSymbolManager();
SymbolDescriptor *pDescriptor = aSequence.getArray();
for (sal_uInt32 i = 0; i < nSize ; i++, pDescriptor++)
{
@@ -626,7 +626,7 @@ void SmModel::_setPropertyValues(const PropertyMapEntry** ppEntries, const Any*
pDescriptor->sSymbolSet );
aSymbol.SetExportName ( pDescriptor->sExportName );
aSymbol.SetDocSymbol( TRUE );
- rManager.AddReplaceSymbol ( aSymbol );
+ rManager.AddOrReplaceSymbol ( aSymbol );
}
}
else
@@ -795,14 +795,15 @@ void SmModel::_getPropertyValues( const PropertyMapEntry **ppEntries, Any *pValu
case HANDLE_SYMBOLS:
{
// this is get
- SmModule *pp = SM_MOD1();
- const SmSymSetManager &rManager = pp->GetSymSetManager();
+ SmModule *pp = SM_MOD();
+ const SmSymbolManager &rManager = pp->GetSymbolManager();
vector < const SmSym * > aVector;
- USHORT nCount = 0;
- for (USHORT i = 0, nEnd = rManager.GetSymbolCount(); i < nEnd; i++)
+ const SymbolPtrVec_t aSymbols( rManager.GetSymbols() );
+ size_t nCount = 0;
+ for (size_t i = 0; i < aSymbols.size(); ++i)
{
- const SmSym * pSymbol = rManager.GetSymbolByPos( i );
+ const SmSym * pSymbol = aSymbols[ i ];
if (pSymbol && !pSymbol->IsPredefined () )
{
aVector.push_back ( pSymbol );
@@ -812,12 +813,12 @@ void SmModel::_getPropertyValues( const PropertyMapEntry **ppEntries, Any *pValu
Sequence < SymbolDescriptor > aSequence ( nCount );
SymbolDescriptor * pDescriptor = aSequence.getArray();
- vector <const SmSym * >::const_iterator aIter = aVector.begin(), aEnd = aVector.end();
+ vector < const SmSym * >::const_iterator aIter = aVector.begin(), aEnd = aVector.end();
for(; aIter != aEnd; pDescriptor++, aIter++)
{
pDescriptor->sName = (*aIter)->GetName();
pDescriptor->sExportName = (*aIter)->GetExportName();
- pDescriptor->sSymbolSet = (*aIter)->GetSetName();
+ pDescriptor->sSymbolSet = (*aIter)->GetSymbolSetName();
pDescriptor->nCharacter = static_cast < sal_Int32 > ((*aIter)->GetCharacter());
Font rFont = (*aIter)->GetFace();
diff --git a/starmath/source/view.cxx b/starmath/source/view.cxx
index 22f186fbcb76..81030653c006 100644
--- a/starmath/source/view.cxx
+++ b/starmath/source/view.cxx
@@ -111,7 +111,7 @@ SmGraphicWindow::SmGraphicWindow(SmViewShell* pShell):
const Fraction aFraction (1,1);
SetMapMode( MapMode(MAP_100TH_MM, Point(), aFraction, aFraction));
- ApplyColorConfigValues( SM_MOD1()->GetColorConfig() );
+ ApplyColorConfigValues( SM_MOD()->GetColorConfig() );
SetTotalSize();
@@ -149,7 +149,7 @@ void SmGraphicWindow::ApplyColorConfigValues( const svtools::ColorConfig &rColor
void SmGraphicWindow::DataChanged( const DataChangedEvent& rEvt )
{
- ApplyColorConfigValues( SM_MOD1()->GetColorConfig() );
+ ApplyColorConfigValues( SM_MOD()->GetColorConfig() );
ScrollableWindow::DataChanged( rEvt );
}
@@ -274,7 +274,7 @@ void SmGraphicWindow::SetCursor(const Rectangle &rRect)
// The old cursor will be removed, and the new one will be shown if
// that is activated in the ConfigItem
{
- SmModule *pp = SM_MOD1();
+ SmModule *pp = SM_MOD();
if (IsCursorVisible())
ShowCursor(FALSE); // clean up remainings of old cursor
@@ -328,7 +328,7 @@ void SmGraphicWindow::Paint(const Rectangle&)
nCol++;
const SmNode *pFound = SetCursorPos(nRow, nCol);
- SmModule *pp = SM_MOD1();
+ SmModule *pp = SM_MOD();
if (pFound && pp->GetConfig()->IsShowFormulaCursor())
ShowCursor(TRUE);
}
@@ -1015,7 +1015,7 @@ void SmViewShell::Impl_Print(
{
RTL_LOGFILE_CONTEXT( aLog, "starmath: SmViewShell::Impl_Print" );
- SmModule *pp = SM_MOD1();
+ SmModule *pp = SM_MOD();
rOutDev.Push();
rOutDev.SetLineColor( Color(COL_BLACK) );
@@ -1187,7 +1187,7 @@ USHORT SmViewShell::Print(SfxProgress &rProgress, BOOL bIsAPI, PrintDialog *pPri
OutputRect.Right() -= 1500 - (aPrtPaperSize.Width() -
(aPrtPageOffset.X() + OutputRect.Right()));
- SmModule *pp = SM_MOD1();
+ SmModule *pp = SM_MOD();
Impl_Print( *pPrinter, pp->GetConfig()->GetPrintSize(),
OutputRect, aZeroPoint );
@@ -1217,7 +1217,7 @@ USHORT SmViewShell::SetPrinter(SfxPrinter *pNewPrinter, USHORT nDiffFlags, bool
if ((nDiffFlags & SFX_PRINTER_OPTIONS) == SFX_PRINTER_OPTIONS)
{
- SmModule *pp = SM_MOD1();
+ SmModule *pp = SM_MOD();
pp->GetConfig()->ItemSetToConfig(pNewPrinter->GetOptions());
}
return 0;
@@ -1405,7 +1405,7 @@ void SmViewShell::Execute(SfxRequest& rReq)
{
case SID_FORMULACURSOR:
{
- SmModule *pp = SM_MOD1();
+ SmModule *pp = SM_MOD();
const SfxItemSet *pArgs = rReq.GetArgs();
const SfxPoolItem *pItem;
@@ -1707,11 +1707,11 @@ void SmViewShell::Execute(SfxRequest& rReq)
SmDocShell *pDoc = GetDoc();
OutputDevice *pDev = pDoc->GetPrinter();
if (!pDev || pDev->GetDevFontCount() == 0)
- pDev = &SM_MOD1()->GetDefaultVirtualDev();
+ pDev = &SM_MOD()->GetDefaultVirtualDev();
DBG_ASSERT (pDev, "device for font list missing" );
- SmModule *pp = SM_MOD1();
- SmSymbolDialog( NULL, pDev, pp->GetSymSetManager(), *this ).Execute();
+ SmModule *pp = SM_MOD();
+ SmSymbolDialog( NULL, pDev, pp->GetSymbolManager(), *this ).Execute();
}
break;
@@ -1789,7 +1789,7 @@ void SmViewShell::GetState(SfxItemSet &rSet)
case SID_FORMULACURSOR:
{
- SmModule *pp = SM_MOD1();
+ SmModule *pp = SM_MOD();
rSet.Put(SfxBoolItem(nWh, pp->GetConfig()->IsShowFormulaCursor()));
}
break;