diff options
author | Kohei Yoshida <kohei.yoshida@collabora.com> | 2014-11-12 22:18:49 -0500 |
---|---|---|
committer | Kohei Yoshida <kohei.yoshida@collabora.com> | 2014-11-18 08:31:55 -0500 |
commit | 2030b9ac6c68ba6f15b0283e0b4e57ae49bd67b0 (patch) | |
tree | dc7ad2b2f890ea0ac614d7820c2e655c84327c3f /sc/inc/formulacell.hxx | |
parent | 192f6a41444b62feae03185975c120f770e2938f (diff) |
Dedicated listener type tailored for formula groups.
Right now, it's only used when loading an xlsx file. But eventually
this one should be used everywhere.
Change-Id: I216c3a9a33c4b8040e8284d59299e0637471fb50
Diffstat (limited to 'sc/inc/formulacell.hxx')
-rw-r--r-- | sc/inc/formulacell.hxx | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/sc/inc/formulacell.hxx b/sc/inc/formulacell.hxx index b65504e71fcc..67381a01a002 100644 --- a/sc/inc/formulacell.hxx +++ b/sc/inc/formulacell.hxx @@ -23,6 +23,7 @@ #include <set> #include <boost/noncopyable.hpp> +#include <boost/ptr_container/ptr_vector.hpp> #include <formula/tokenarray.hxx> #include <osl/conditn.hxx> @@ -47,16 +48,18 @@ struct RefUpdateInsertTabContext; struct RefUpdateDeleteTabContext; struct RefUpdateMoveTabContext; class CompileFormulaContext; +class FormulaGroupAreaListener; } class ScFormulaCell; class ScProgress; class ScTokenArray; -struct ScSimilarFormulaDelta; struct SC_DLLPUBLIC ScFormulaCellGroup : boost::noncopyable { + typedef boost::ptr_vector<sc::FormulaGroupAreaListener> AreaListenersType; + mutable size_t mnRefCount; ScTokenArray* mpCode; @@ -70,6 +73,8 @@ struct SC_DLLPUBLIC ScFormulaCellGroup : boost::noncopyable sal_uInt8 meCalcState; sal_uInt8 meKernelState; + AreaListenersType maAreaListeners; + ScFormulaCellGroup(); ~ScFormulaCellGroup(); @@ -81,6 +86,11 @@ struct SC_DLLPUBLIC ScFormulaCellGroup : boost::noncopyable ScDocument& rDoc, const ScAddress& rPos, formula::FormulaGrammar::Grammar eGram ); void compileOpenCLKernel(); + sc::FormulaGroupAreaListener* getAreaListener( + ScFormulaCell** ppTopCell, const ScRange& rRange, bool bStartFixed, bool bEndFixed ); + + void endAllGroupListening( ScDocument& rDoc ); + #if ENABLE_THREADED_OPENCL_KERNEL_COMPILATION static int snCount; static rtl::Reference<sc::CLBuildKernelThread> sxCompilationThread; |