blob: 6125d26a9979a709bf14bb29ed65485fb1ac306e [file] [log] [blame]
/**************************************************************
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*************************************************************/
#ifndef SC_TABOPPARAMS_HXX
#define SC_TABOPPARAMS_HXX
#include "global.hxx"
#include "address.hxx"
#include <vector>
class ScFormulaCell;
struct ScInterpreterTableOpParams
{
ScAddress aOld1;
ScAddress aNew1;
ScAddress aOld2;
ScAddress aNew2;
ScAddress aFormulaPos;
::std::vector< ScFormulaCell* > aNotifiedFormulaCells;
::std::vector< ScAddress > aNotifiedFormulaPos;
sal_Bool bValid;
sal_Bool bRefresh;
sal_Bool bCollectNotifications;
ScInterpreterTableOpParams()
: bValid( sal_False )
, bRefresh( sal_False )
, bCollectNotifications( sal_True )
{
}
ScInterpreterTableOpParams( const ScInterpreterTableOpParams& r )
: aOld1( r.aOld1 )
, aNew1( r.aNew1 )
, aOld2( r.aOld2 )
, aNew2( r.aNew2 )
, aFormulaPos( r.aFormulaPos )
//! never copied! , aNotifiedFormulaCells( r.aNotifiedFormulaCells )
, aNotifiedFormulaPos( r.aNotifiedFormulaPos )
, bValid( r.bValid )
, bRefresh( r.bRefresh )
, bCollectNotifications( r.bCollectNotifications )
{
}
ScInterpreterTableOpParams& operator =( const ScInterpreterTableOpParams& r )
{
aOld1 = r.aOld1;
aNew1 = r.aNew1;
aOld2 = r.aOld2;
aNew2 = r.aNew2;
aFormulaPos = r.aFormulaPos;
//! never copied! aNotifiedFormulaCells = r.aNotifiedFormulaCells;
//! instead, empty anything eventually present
::std::vector< ScFormulaCell* >().swap( aNotifiedFormulaCells );
aNotifiedFormulaPos = r.aNotifiedFormulaPos;
bValid = r.bValid;
bRefresh = r.bRefresh;
bCollectNotifications = r.bCollectNotifications;
return *this;
}
sal_Bool operator ==( const ScInterpreterTableOpParams& r )
{
return
bValid && r.bValid &&
aOld1 == r.aOld1 &&
aOld2 == r.aOld2 &&
aFormulaPos == r.aFormulaPos ;
// aNotifiedFormula(Cells|Pos), aNew1, aNew2, bRefresh,
// bCollectNotifications are not compared
}
};
DECLARE_LIST( ScTabOpList, ScInterpreterTableOpParams* )
#endif // SC_TABOPPARAMS_HXX