office-gobmx/sw/inc/cellatr.hxx
Jens-Heiner Rechtien 7b0b5cdfee initial import
2000-09-18 16:15:01 +00:00

178 lines
6.6 KiB
C++

/*************************************************************************
*
* $RCSfile: cellatr.hxx,v $
*
* $Revision: 1.1.1.1 $
*
* last change: $Author: hr $ $Date: 2000-09-18 17:14:24 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
*
* - GNU Lesser General Public License Version 2.1
* - Sun Industry Standards Source License Version 1.1
*
* Sun Microsystems Inc., October, 2000
*
* GNU Lesser General Public License Version 2.1
* =============================================
* Copyright 2000 by Sun Microsystems, Inc.
* 901 San Antonio Road, Palo Alto, CA 94303, USA
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License version 2.1, as published by the Free Software Foundation.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
* MA 02111-1307 USA
*
*
* Sun Industry Standards Source License Version 1.1
* =================================================
* The contents of this file are subject to the Sun Industry Standards
* Source License Version 1.1 (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.openoffice.org/license.html.
*
* Software provided under this License is provided on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
* WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
* MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
* See the License for the specific provisions governing your rights and
* obligations concerning the Software.
*
* The Initial Developer of the Original Code is: Sun Microsystems, Inc.
*
* Copyright: 2000 by Sun Microsystems, Inc.
*
* All Rights Reserved.
*
* Contributor(s): _______________________________________
*
*
************************************************************************/
#ifndef _CELLATR_HXX
#define _CELLATR_HXX
#ifndef _SFXINTITEM_HXX //autogen
#include <svtools/intitem.hxx>
#endif
#ifndef _ZFORLIST_HXX //autogen
#include <svtools/zforlist.hxx>
#endif
#include "format.hxx"
#include "cellfml.hxx"
class SwTblBoxNumFormat : public SfxUInt32Item
{
BOOL bAuto; // automatisch vergebenes Flag
public:
SwTblBoxNumFormat( UINT32 nFormat = NUMBERFORMAT_TEXT,
BOOL bAuto = FALSE );
// "pure virtual Methoden" vom SfxPoolItem
virtual int operator==( const SfxPoolItem& ) const;
virtual SfxPoolItem* Clone( SfxItemPool* pPool = 0 ) const;
virtual SfxPoolItem* Create(SvStream &, USHORT nVer) const;
virtual SvStream& Store(SvStream &, USHORT nIVer) const;
virtual USHORT GetVersion( USHORT nFileVersion) const;
inline SwTblBoxNumFormat& operator=( const SwTblBoxNumFormat& rAttr )
{
SetValue( rAttr.GetValue() );
SetAutoFlag( rAttr.GetAutoFlag() );
return *this;
}
BOOL GetAutoFlag() const { return bAuto; }
void SetAutoFlag( BOOL bFlag = TRUE ) { bAuto = bFlag; }
};
class SwTblBoxFormula : public SfxPoolItem, public SwTableFormula
{
SwModify* pDefinedIn; // Modify-Object, in dem die Formel steht
// kann nur TablenBoxFormat sein
public:
SwTblBoxFormula( const String& rFormula );
// "pure virtual Methoden" vom SfxPoolItem
virtual int operator==( const SfxPoolItem& ) const;
virtual SfxPoolItem* Clone( SfxItemPool* pPool = 0 ) const;
virtual SfxPoolItem* Create(SvStream &, USHORT nVer) const;
virtual SvStream& Store(SvStream &, USHORT nIVer) const;
virtual USHORT GetVersion( USHORT nFileVersion) const;
// erfrage und setze den Modify-Pointer
inline const SwModify* GetDefinedIn() const { return pDefinedIn; }
inline void ChgDefinedIn( const SwModify* pNew )
{ pDefinedIn = (SwModify*)pNew; }
// suche den Node, in dem die Formel steht:
// BoxAttribut -> BoxStartNode
virtual const SwNode* GetNodeOfFormula() const;
SwTableBox* GetTableBox();
const SwTableBox* GetTableBox() const
{ return ((SwTblBoxFormula*)this)->GetTableBox(); }
// Status aendern
void ChangeState( const SfxPoolItem* pItem );
// berechne die Formel
void Calc( SwTblCalcPara& rCalcPara, double& rValue );
};
class SwTblBoxValue : public SfxPoolItem
{
double nValue;
public:
SwTblBoxValue();
SwTblBoxValue( const double aVal );
// "pure virtual Methoden" vom SfxPoolItem
virtual int operator==( const SfxPoolItem& ) const;
virtual SfxPoolItem* Clone( SfxItemPool* pPool = 0 ) const;
virtual SfxPoolItem* Create(SvStream &, USHORT nVer) const;
virtual SvStream& Store(SvStream &, USHORT nIVer) const;
virtual USHORT GetVersion( USHORT nFileVersion) const;
inline SwTblBoxValue& operator=( const SwTblBoxValue& rCmp )
{
nValue = rCmp.nValue;
return *this;
}
double GetValue() const { return nValue; }
void SetValue( const double nVal ) { nValue = nVal; }
};
//***************************************************************************
inline const SwTblBoxNumFormat &SwAttrSet::GetTblBoxNumFmt(BOOL bInP) const
{ return (const SwTblBoxNumFormat&)Get( RES_BOXATR_FORMAT,bInP); }
inline const SwTblBoxFormula &SwAttrSet::GetTblBoxFormula(BOOL bInP) const
{ return (const SwTblBoxFormula&)Get( RES_BOXATR_FORMULA,bInP); }
inline const SwTblBoxValue &SwAttrSet::GetTblBoxValue(BOOL bInP) const
{ return (const SwTblBoxValue&)Get( RES_BOXATR_VALUE, bInP); }
//***************************************************************************
inline const SwTblBoxNumFormat &SwFmt::GetTblBoxNumFmt(BOOL bInP) const
{ return aSet.GetTblBoxNumFmt(bInP); }
inline const SwTblBoxFormula &SwFmt::GetTblBoxFormula(BOOL bInP) const
{ return aSet.GetTblBoxFormula(bInP); }
inline const SwTblBoxValue &SwFmt::GetTblBoxValue(BOOL bInP) const
{ return aSet.GetTblBoxValue(bInP); }
#endif