office-gobmx/sc/inc/attrib.hxx

407 lines
15 KiB
C++
Raw Normal View History

2000-09-18 11:07:07 -05:00
/*************************************************************************
*
* $RCSfile: attrib.hxx,v $
*
* $Revision: 1.2 $
2000-09-18 11:07:07 -05:00
*
* last change: $Author: er $ $Date: 2001-05-13 03:21:28 $
2000-09-18 11:07:07 -05:00
*
* 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 SC_SCATTR_HXX
#define SC_SCATTR_HXX
#ifndef _SFXPOOLITEM_HXX //autogen
#include <svtools/poolitem.hxx>
#endif
#ifndef _SFXINTITEM_HXX //autogen
#include <svtools/intitem.hxx>
#endif
#ifndef _SFXENUMITEM_HXX //autogen
#include <svtools/eitem.hxx>
#endif
#ifndef SC_SCGLOB_HXX
#include "global.hxx"
#endif
//------------------------------------------------------------------------
// Flags fuer durch Merge verdeckte Zellen
// und Control fuer Auto-Filter
#define SC_MF_HOR 1
#define SC_MF_VER 2
#define SC_MF_AUTO 4
#define SC_MF_BUTTON 8
#define SC_MF_SCENARIO 16
#define SC_MF_ALL 31
class EditTextObject;
class SvxBorderLine;
BOOL HasPriority( const SvxBorderLine* pThis, const SvxBorderLine* pOther );
//------------------------------------------------------------------------
class ScMergeAttr: public SfxPoolItem
{
INT16 nColMerge;
INT16 nRowMerge;
public:
TYPEINFO();
ScMergeAttr();
ScMergeAttr( INT16 nCol, INT16 nRow = 0);
ScMergeAttr( const ScMergeAttr& );
~ScMergeAttr();
virtual String GetValueText() const;
virtual int operator==( const SfxPoolItem& ) const;
virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const;
virtual SfxPoolItem* Create( SvStream& rStream, USHORT nVer ) const;
virtual SvStream& Store( SvStream& rStream, USHORT nVer ) const;
INT16 GetColMerge() const {return nColMerge; }
INT16 GetRowMerge() const {return nRowMerge; }
BOOL IsMerged() const { return nColMerge>1 || nRowMerge>1; }
inline ScMergeAttr& operator=(const ScMergeAttr& rMerge)
{
nColMerge = rMerge.nColMerge;
nRowMerge = rMerge.nRowMerge;
return *this;
}
};
//------------------------------------------------------------------------
class ScMergeFlagAttr: public SfxInt16Item
{
public:
ScMergeFlagAttr();
ScMergeFlagAttr(INT16 nFlags);
~ScMergeFlagAttr();
BOOL IsHorOverlapped() const { return ( GetValue() & SC_MF_HOR ) != 0; }
BOOL IsVerOverlapped() const { return ( GetValue() & SC_MF_VER ) != 0; }
BOOL IsOverlapped() const { return ( GetValue() & ( SC_MF_HOR | SC_MF_VER ) ) != 0; }
BOOL HasAutoFilter() const { return ( GetValue() & SC_MF_AUTO ) != 0; }
BOOL HasButton() const { return ( GetValue() & SC_MF_BUTTON ) != 0; }
BOOL IsScenario() const { return ( GetValue() & SC_MF_SCENARIO ) != 0; }
};
//------------------------------------------------------------------------
class ScProtectionAttr: public SfxPoolItem
{
BOOL bProtection; // Zelle schuetzen
BOOL bHideFormula; // Formel nicht Anzeigen
BOOL bHideCell; // Zelle nicht Anzeigen
BOOL bHidePrint; // Zelle nicht Ausdrucken
public:
TYPEINFO();
ScProtectionAttr();
ScProtectionAttr( BOOL bProtect,
BOOL bHFormula = FALSE,
BOOL bHCell = FALSE,
BOOL bHPrint = FALSE);
ScProtectionAttr( const ScProtectionAttr& );
~ScProtectionAttr();
virtual String GetValueText() const;
virtual SfxItemPresentation GetPresentation(
SfxItemPresentation ePres,
SfxMapUnit eCoreMetric,
SfxMapUnit ePresMetric,
String& rText,
const IntlWrapper* pIntl = 0 ) const;
2000-09-18 11:07:07 -05:00
virtual int operator==( const SfxPoolItem& ) const;
virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const;
virtual SfxPoolItem* Create( SvStream& rStream, USHORT nVer ) const;
virtual SvStream& Store( SvStream& rStream, USHORT nVer ) const;
virtual BOOL QueryValue( com::sun::star::uno::Any& rVal, BYTE nMemberId = 0 ) const;
virtual BOOL PutValue( const com::sun::star::uno::Any& rVal, BYTE nMemberId = 0 );
BOOL GetProtection() const { return bProtection; }
BOOL SetProtection( BOOL bProtect);
BOOL GetHideFormula() const { return bHideFormula; }
BOOL SetHideFormula( BOOL bHFormula);
BOOL GetHideCell() const { return bHideCell; }
BOOL SetHideCell( BOOL bHCell);
BOOL GetHidePrint() const { return bHidePrint; }
BOOL SetHidePrint( BOOL bHPrint);
inline ScProtectionAttr& operator=(const ScProtectionAttr& rProtection)
{
bProtection = rProtection.bProtection;
bHideFormula = rProtection.bHideFormula;
bHideCell = rProtection.bHideCell;
bHidePrint = rProtection.bHidePrint;
return *this;
}
};
//----------------------------------------------------------------------------
// ScRangeItem: verwaltet einen Tabellenbereich
#define SCR_INVALID 0x01
#define SCR_ALLTABS 0x02
#define SCR_TONEWTAB 0x04
class ScRangeItem : public SfxPoolItem
{
public:
TYPEINFO();
inline ScRangeItem( const USHORT nWhich );
inline ScRangeItem( const USHORT nWhich,
const ScRange& rRange,
const USHORT nNewFlags = 0 );
inline ScRangeItem( const ScRangeItem& rCpy );
inline ScRangeItem& operator=( const ScRangeItem &rCpy );
// "pure virtual Methoden" vom SfxPoolItem
virtual int operator==( const SfxPoolItem& ) const;
virtual void Record( SfxArguments &rArgs ) const;
virtual SfxArgumentError Construct( USHORT nId, const SfxArguments &rArgs );
virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres,
SfxMapUnit eCoreMetric,
SfxMapUnit ePresMetric,
String &rText,
const IntlWrapper* pIntl = 0 ) const;
2000-09-18 11:07:07 -05:00
virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const;
virtual USHORT GetVersion( USHORT nFileVersion ) const;
virtual SfxPoolItem* Create(SvStream &, USHORT) const;
virtual SvStream& Store( SvStream& rStream, USHORT nVer ) const;
const ScRange& GetRange() const { return aRange; }
void SetRange( const ScRange& rNew ) { aRange = rNew; }
USHORT GetFlags() const { return nFlags; }
void SetFlags( USHORT nNew ) { nFlags = nNew; }
private:
ScRange aRange;
USHORT nFlags;
};
inline ScRangeItem::ScRangeItem( const USHORT nWhich )
: SfxPoolItem( nWhich ), nFlags( SCR_INVALID ) // == ungueltige Area
{
}
inline ScRangeItem::ScRangeItem( const USHORT nWhich,
const ScRange& rRange,
const USHORT nNew )
: SfxPoolItem( nWhich ), aRange( rRange ), nFlags( nNew )
{
}
inline ScRangeItem::ScRangeItem( const ScRangeItem& rCpy )
: SfxPoolItem( rCpy.Which() ), aRange( rCpy.aRange ), nFlags( rCpy.nFlags )
{}
inline ScRangeItem& ScRangeItem::operator=( const ScRangeItem &rCpy )
{
aRange = rCpy.aRange;
return *this;
}
//----------------------------------------------------------------------------
// ScTableListItem: verwaltet eine Liste von Tabellen
//----------------------------------------------------------------------------
class ScTableListItem : public SfxPoolItem
{
public:
TYPEINFO();
inline ScTableListItem( const USHORT nWhich );
ScTableListItem( const ScTableListItem& rCpy );
ScTableListItem( const USHORT nWhich, const List& rList );
~ScTableListItem();
ScTableListItem& operator=( const ScTableListItem &rCpy );
// "pure virtual Methoden" vom SfxPoolItem
virtual int operator==( const SfxPoolItem& ) const;
virtual void Record( SfxArguments &rArgs ) const;
virtual SfxArgumentError Construct( USHORT nId, const SfxArguments &rArgs );
virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres,
SfxMapUnit eCoreMetric,
SfxMapUnit ePresMetric,
String &rText,
const IntlWrapper* pIntl = 0 ) const;
2000-09-18 11:07:07 -05:00
virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const;
virtual SfxPoolItem* Create(SvStream &, USHORT) const;
virtual SvStream& Store( SvStream& rStream, USHORT nVer ) const;
BOOL GetTableList( List& aList ) const;
void SetTableList( const List& aList );
public:
USHORT nCount;
USHORT* pTabArr;
};
inline ScTableListItem::ScTableListItem( const USHORT nWhich )
: SfxPoolItem(nWhich), nCount(0), pTabArr(NULL)
{}
//----------------------------------------------------------------------------
// Seitenformat-Item: Kopf-/Fusszeileninhalte
#define SC_HF_LEFTAREA 1
#define SC_HF_CENTERAREA 2
#define SC_HF_RIGHTAREA 3
class ScPageHFItem : public SfxPoolItem
{
EditTextObject* pLeftArea;
EditTextObject* pCenterArea;
EditTextObject* pRightArea;
public:
TYPEINFO();
ScPageHFItem( USHORT nWhich );
ScPageHFItem( const ScPageHFItem& rItem );
~ScPageHFItem();
virtual String GetValueText() const;
virtual int operator==( const SfxPoolItem& ) const;
virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const;
virtual SfxPoolItem* Create( SvStream& rStream, USHORT nVer ) const;
virtual SvStream& Store( SvStream& rStream, USHORT nVer ) const;
virtual USHORT GetVersion( USHORT nFileVersion ) const;
virtual BOOL QueryValue( com::sun::star::uno::Any& rVal, BYTE nMemberId = 0 ) const;
virtual BOOL PutValue( const com::sun::star::uno::Any& rVal, BYTE nMemberId = 0 );
const EditTextObject* GetLeftArea() const { return pLeftArea; }
const EditTextObject* GetCenterArea() const { return pCenterArea; }
const EditTextObject* GetRightArea() const { return pRightArea; }
void SetLeftArea( const EditTextObject& rNew );
void SetCenterArea( const EditTextObject& rNew );
void SetRightArea( const EditTextObject& rNew );
//Set mit Uebereignung der Pointer, nArea siehe defines oben
void SetArea( EditTextObject *pNew, int nArea );
};
//----------------------------------------------------------------------------
// Seitenformat-Item: Kopf-/Fusszeileninhalte
class ScViewObjectModeItem: public SfxEnumItem
{
public:
TYPEINFO();
ScViewObjectModeItem( USHORT nWhich );
ScViewObjectModeItem( USHORT nWhich, ScVObjMode eMode );
~ScViewObjectModeItem();
virtual USHORT GetValueCount() const;
virtual String GetValueText( USHORT nVal ) const;
virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const;
virtual SfxPoolItem* Create(SvStream &, USHORT) const;
virtual USHORT GetVersion( USHORT nFileVersion ) const;
virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres,
SfxMapUnit eCoreMetric,
SfxMapUnit ePresMetric,
String& rText,
const IntlWrapper* pIntl = 0 ) const;
2000-09-18 11:07:07 -05:00
};
//----------------------------------------------------------------------------
//
class ScDoubleItem : public SfxPoolItem
{
public:
TYPEINFO();
ScDoubleItem( USHORT nWhich, double nVal=0 );
ScDoubleItem( const ScDoubleItem& rItem );
~ScDoubleItem();
virtual String GetValueText() const;
virtual int operator==( const SfxPoolItem& ) const;
virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const;
virtual SfxPoolItem* Create( SvStream& rStream, USHORT nVer ) const;
virtual SvStream& Store( SvStream& rStream, USHORT nVer ) const;
double GetValue() const { return nValue; }
void SetValue( const double nVal ) { nValue = nVal;}
private:
double nValue;
};
#endif