diff options
author | Kohei Yoshida <kohei.yoshida@suse.com> | 2012-02-01 15:13:50 -0500 |
---|---|---|
committer | Kohei Yoshida <kohei.yoshida@suse.com> | 2012-02-01 20:21:04 -0500 |
commit | 1f290abba0bb70c1ecf9d168c0d6c8c564d302ec (patch) | |
tree | 2cebe9fd756af4c76b3e1e2fef84adcd6dc3540a /sc/inc/chartlis.hxx | |
parent | 47de5f1c09cab1ea18b870d675b7bfb0cdfa74d3 (diff) |
ScChartListenerCollection is no longer a child of ScStrCollection.
Diffstat (limited to 'sc/inc/chartlis.hxx')
-rw-r--r-- | sc/inc/chartlis.hxx | 60 |
1 files changed, 37 insertions, 23 deletions
diff --git a/sc/inc/chartlis.hxx b/sc/inc/chartlis.hxx index 970f796f710e..d6bff1b7712f 100644 --- a/sc/inc/chartlis.hxx +++ b/sc/inc/chartlis.hxx @@ -43,13 +43,14 @@ #include <boost/unordered_set.hpp> #include <boost/scoped_ptr.hpp> +#include <boost/ptr_container/ptr_map.hpp> class ScDocument; class ScChartUnoData; #include <com/sun/star/chart/XChartData.hpp> #include <com/sun/star/chart/XChartDataChangeEventListener.hpp> -class SC_DLLPUBLIC ScChartListener : public StrData, public SvtListener +class SC_DLLPUBLIC ScChartListener : public SvtListener { public: class ExternalRefListener : public ScExternalRefManager::LinkListener @@ -76,6 +77,7 @@ private: boost::scoped_ptr<ExternalRefListener> mpExtRefListener; boost::scoped_ptr<std::vector<ScTokenRef> > mpTokens; + rtl::OUString maName; ScChartUnoData* pUnoData; ScDocument* pDoc; bool bUsed:1; // for ScChartListenerCollection::FreeUnused @@ -86,15 +88,17 @@ private: ScChartListener& operator=( const ScChartListener& ); public: - ScChartListener( const String& rName, ScDocument* pDoc, - const ScRange& rRange ); - ScChartListener( const String& rName, ScDocument* pDoc, - const ScRangeListRef& rRangeListRef ); - ScChartListener( const String& rName, ScDocument* pDoc, - ::std::vector<ScTokenRef>* pTokens ); - ScChartListener( const ScChartListener& ); - virtual ~ScChartListener(); - virtual ScDataObject* Clone() const; + ScChartListener( const rtl::OUString& rName, ScDocument* pDoc, + const ScRange& rRange ); + ScChartListener( const rtl::OUString& rName, ScDocument* pDoc, + const ScRangeListRef& rRangeListRef ); + ScChartListener( const rtl::OUString& rName, ScDocument* pDoc, + ::std::vector<ScTokenRef>* pTokens ); + ScChartListener( const ScChartListener& ); + ~ScChartListener(); + + const rtl::OUString& GetName() const; + void SetName(const rtl::OUString& rName); void SetUno( const com::sun::star::uno::Reference< com::sun::star::chart::XChartDataChangeEventListener >& rListener, const com::sun::star::uno::Reference< com::sun::star::chart::XChartData >& rSource ); @@ -127,9 +131,8 @@ public: ExternalRefListener* GetExtRefListener(); void SetUpdateQueue(); - bool operator==( const ScChartListener& ); - bool operator!=( const ScChartListener& r ) - { return !operator==( r ); } + bool operator==( const ScChartListener& ) const; + bool operator!=( const ScChartListener& r ) const; }; // ============================================================================ @@ -144,7 +147,7 @@ public: // ============================================================================ -class ScChartListenerCollection : public ScStrCollection +class ScChartListenerCollection { public: struct RangeListenerItem @@ -154,7 +157,10 @@ public: explicit RangeListenerItem(const ScRange& rRange, ScChartHiddenRangeListener* p); }; + typedef boost::ptr_map<rtl::OUString, ScChartListener> ListenersType; + private: + ListenersType maListeners; ::std::list<RangeListenerItem> maHiddenListeners; Timer aTimer; @@ -165,18 +171,25 @@ private: // not implemented ScChartListenerCollection& operator=( const ScChartListenerCollection& ); - using ScStrCollection::operator==; - public: - ScChartListenerCollection( ScDocument* pDoc ); - ScChartListenerCollection( const ScChartListenerCollection& ); - virtual ScDataObject* Clone() const; - - virtual ~ScChartListenerCollection(); + ScChartListenerCollection( ScDocument* pDoc ); + ScChartListenerCollection( const ScChartListenerCollection& ); + ~ScChartListenerCollection(); // only needed after copy-ctor, if newly added to doc void StartAllListeners(); + SC_DLLPUBLIC void Insert(ScChartListener* pListener); + ScChartListener* Find(const ScChartListener& rListener); + const ScChartListener* Find(const ScChartListener& rListener) const; + bool HasListeners() const; + + const ListenersType& GetListeners() const; + ListenersType& GetListeners(); + size_t GetCount() const; + + rtl::OUString GetUniqueName(const rtl::OUString& rPrefix) const; + void ChangeListening( const String& rName, const ScRangeListRef& rRangeListRef, bool bDirty = false ); @@ -186,7 +199,7 @@ public: const com::sun::star::uno::Reference< com::sun::star::chart::XChartData >& rSource ); void StartTimer(); void UpdateDirtyCharts(); - void SC_DLLPUBLIC SetDirty(); + SC_DLLPUBLIC void SetDirty(); void SetDiffDirty( const ScChartListenerCollection&, bool bSetChartRangeLists = false ); @@ -195,7 +208,8 @@ public: void UpdateScheduledSeriesRanges(); void UpdateChartsContainingTab( SCTAB nTab ); - bool operator==( const ScChartListenerCollection& ); + bool operator==( const ScChartListenerCollection& r ) const; + bool operator!=( const ScChartListenerCollection& r ) const; /** * Start listening on hide/show change within specified cell range. A |