/************************************************************** * * 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 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