diff options
Diffstat (limited to 'sc/inc/attrib.hxx')
-rw-r--r-- | sc/inc/attrib.hxx | 402 |
1 files changed, 402 insertions, 0 deletions
diff --git a/sc/inc/attrib.hxx b/sc/inc/attrib.hxx new file mode 100644 index 000000000000..96a0529c48a1 --- /dev/null +++ b/sc/inc/attrib.hxx @@ -0,0 +1,402 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org 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 version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef SC_SCATTR_HXX +#define SC_SCATTR_HXX + +#include <svl/poolitem.hxx> +#include <svl/intitem.hxx> +#include <svl/eitem.hxx> +#include "scdllapi.h" +#include "global.hxx" +#include "address.hxx" + +//------------------------------------------------------------------------ + + // Flags fuer durch Merge verdeckte Zellen + // und Control fuer Auto-Filter +#define SC_MF_HOR 0x0001 +#define SC_MF_VER 0x0002 +#define SC_MF_AUTO 0x0004 /// autofilter arrow +#define SC_MF_BUTTON 0x0008 /// field button for datapilot +#define SC_MF_SCENARIO 0x0010 +#define SC_MF_BUTTON_POPUP 0x0020 /// dp button with popup arrow +#define SC_MF_HIDDEN_MEMBER 0x0040 /// dp field button with presence of hidden member +#define SC_MF_DP_TABLE 0x0080 /// dp table output + +#define SC_MF_ALL 0x00FF + + +class EditTextObject; +class SvxBorderLine; + +BOOL SC_DLLPUBLIC ScHasPriority( const SvxBorderLine* pThis, const SvxBorderLine* pOther ); + +//------------------------------------------------------------------------ + +class SC_DLLPUBLIC ScMergeAttr: public SfxPoolItem +{ + SCsCOL nColMerge; + SCsROW nRowMerge; +public: + TYPEINFO(); + ScMergeAttr(); + ScMergeAttr( SCsCOL nCol, SCsROW 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; + + SCsCOL GetColMerge() const {return nColMerge; } + SCsROW 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 SC_DLLPUBLIC 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 HasDPTable() const { return ( GetValue() & SC_MF_DP_TABLE ) != 0; } + + BOOL IsScenario() const { return ( GetValue() & SC_MF_SCENARIO ) != 0; } +}; + +//------------------------------------------------------------------------ +class SC_DLLPUBLIC 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; + + virtual int operator==( const SfxPoolItem& ) const; + virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const; + virtual SfxPoolItem* Create( 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 SfxItemPresentation GetPresentation( SfxItemPresentation ePres, + SfxMapUnit eCoreMetric, + SfxMapUnit ePresMetric, + String &rText, + const IntlWrapper* pIntl = 0 ) const; + virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) 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 nWhichP ) + : SfxPoolItem( nWhichP ), nFlags( SCR_INVALID ) // == ungueltige Area +{ +} + +inline ScRangeItem::ScRangeItem( const USHORT nWhichP, + const ScRange& rRange, + const USHORT nNew ) + : SfxPoolItem( nWhichP ), 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 ); +//UNUSED2008-05 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 SfxItemPresentation GetPresentation( SfxItemPresentation ePres, + SfxMapUnit eCoreMetric, + SfxMapUnit ePresMetric, + String &rText, + const IntlWrapper* pIntl = 0 ) const; + virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const; + +//UNUSED2009-05 BOOL GetTableList( List& aList ) const; +//UNUSED2009-05 void SetTableList( const List& aList ); + +public: + USHORT nCount; + SCTAB* pTabArr; +}; + +inline ScTableListItem::ScTableListItem( const USHORT nWhichP ) + : SfxPoolItem(nWhichP), nCount(0), pTabArr(NULL) +{} + +//---------------------------------------------------------------------------- +// Seitenformat-Item: Kopf-/Fusszeileninhalte + +#define SC_HF_LEFTAREA 1 +#define SC_HF_CENTERAREA 2 +#define SC_HF_RIGHTAREA 3 + +class SC_DLLPUBLIC 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 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 SC_DLLPUBLIC 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; +}; + +//---------------------------------------------------------------------------- +// + +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; + + double GetValue() const { return nValue; } + + void SetValue( const double nVal ) { nValue = nVal;} + +private: + double nValue; +}; + + +// ============================================================================ + +/** Member ID for "page scale to width" value in QueryValue() and PutValue(). */ +const BYTE SC_MID_PAGE_SCALETO_WIDTH = 1; +/** Member ID for "page scale to height" value in QueryValue() and PutValue(). */ +const BYTE SC_MID_PAGE_SCALETO_HEIGHT = 2; + + +/** Contains the "scale to width/height" attribute in page styles. */ +class SC_DLLPUBLIC ScPageScaleToItem : public SfxPoolItem +{ +public: + TYPEINFO(); + + /** Default c'tor sets the width and height to 0. */ + explicit ScPageScaleToItem(); + explicit ScPageScaleToItem( sal_uInt16 nWidth, sal_uInt16 nHeight ); + + virtual ~ScPageScaleToItem(); + + virtual ScPageScaleToItem* Clone( SfxItemPool* = 0 ) const; + + virtual int operator==( const SfxPoolItem& rCmp ) const; + + inline sal_uInt16 GetWidth() const { return mnWidth; } + inline sal_uInt16 GetHeight() const { return mnHeight; } + inline bool IsValid() const { return mnWidth || mnHeight; } + + inline void SetWidth( sal_uInt16 nWidth ) { mnWidth = nWidth; } + inline void SetHeight( sal_uInt16 nHeight ) { mnHeight = nHeight; } + inline void Set( sal_uInt16 nWidth, sal_uInt16 nHeight ) + { mnWidth = nWidth; mnHeight = nHeight; } + inline void SetInvalid() { mnWidth = mnHeight = 0; } + + virtual SfxItemPresentation GetPresentation( + SfxItemPresentation ePresentation, + SfxMapUnit, SfxMapUnit, + XubString& rText, + const IntlWrapper* = 0 ) const; + + virtual BOOL QueryValue( ::com::sun::star::uno::Any& rAny, BYTE nMemberId = 0 ) const; + virtual BOOL PutValue( const ::com::sun::star::uno::Any& rAny, BYTE nMemberId = 0 ); + +private: + sal_uInt16 mnWidth; + sal_uInt16 mnHeight; +}; + +// ============================================================================ + +#endif + |