office-gobmx/sw/inc/grfatr.hxx
2001-05-13 02:33:31 +00:00

435 lines
17 KiB
C++

/*************************************************************************
*
* $RCSfile: grfatr.hxx,v $
*
* $Revision: 1.3 $
*
* last change: $Author: er $ $Date: 2001-05-13 03:32:47 $
*
* 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 _GRFATR_HXX
#define _GRFATR_HXX
#ifndef _HINTIDS_HXX
#include <hintids.hxx> // fuer die WhichIds
#endif
#ifndef _SV_GEN_HXX
#include <tools/gen.hxx>
#endif
#ifndef _SFXENUMITEM_HXX
#include <svtools/eitem.hxx>
#endif
#ifndef _SFXINTITEM_HXX
#include <svtools/intitem.hxx>
#endif
#ifndef _SVX_GRFCROP_HXX
#include <svx/grfcrop.hxx>
#endif
#ifndef _SWATRSET_HXX
#include <swatrset.hxx> // fuer inlines
#endif
#ifndef _FORMAT_HXX
#include <format.hxx> // fuer inlines
#endif
/******************************************************************************
* class SwMirrorGrf
******************************************************************************/
enum GRFMIRROR
{
RES_GRFMIRROR_BEGIN,
RES_DONT_MIRROR_GRF = RES_GRFMIRROR_BEGIN,
RES_MIRROR_GRF_VERT,
RES_MIRROR_GRF_HOR,
RES_MIRROR_GRF_BOTH,
RES_GRFMIRROR_END
};
class SwMirrorGrf : public SfxEnumItem
{
BOOL bGrfToggle; // auf geraden Seiten Grafiken spiegeln
public:
SwMirrorGrf( USHORT nMiro = RES_DONT_MIRROR_GRF )
: SfxEnumItem( RES_GRFATR_MIRRORGRF, nMiro ), bGrfToggle( sal_False )
{}
SwMirrorGrf::SwMirrorGrf( const SwMirrorGrf &rMirrorGrf )
: SfxEnumItem( RES_GRFATR_MIRRORGRF, rMirrorGrf.GetValue()),
bGrfToggle( rMirrorGrf.IsGrfToggle() )
{}
// pure virtual-Methoden von SfxPoolItem
virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const;
// pure virtual-Methiden von SfxEnumItem
virtual USHORT GetValueCount() const;
virtual USHORT GetVersion( USHORT nFFVer ) const;
virtual SfxPoolItem* Create(SvStream &, USHORT nVer ) const;
virtual SvStream& Store(SvStream &, USHORT nIVer) const;
virtual int operator==( const SfxPoolItem& ) const;
virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres,
SfxMapUnit eCoreMetric,
SfxMapUnit ePresMetric,
String &rText,
const IntlWrapper* pIntl = 0 ) 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 );
inline SwMirrorGrf& operator=( const SwMirrorGrf& rMirrorGrf )
{
SfxEnumItem::SetValue( rMirrorGrf.GetValue() );
bGrfToggle = rMirrorGrf.IsGrfToggle();
return *this;
}
inline BOOL IsGrfToggle() const { return bGrfToggle; }
inline void SetGrfToggle( BOOL bNew ) { bGrfToggle = bNew; }
};
/******************************************************************************
* class SwAttrCropGrf
******************************************************************************/
class SwCropGrf : public SvxGrfCrop
{
public:
TYPEINFO();
SwCropGrf();
SwCropGrf( sal_Int32 nLeft, sal_Int32 nRight,
sal_Int32 nTop, sal_Int32 nBottom );
// "pure virtual Methoden" vom SfxPoolItem
virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const;
virtual USHORT GetVersion( USHORT nFileVersion ) const;
};
class SwRotationGrf : public SfxUInt16Item
{
Size aUnrotatedSize;
public:
SwRotationGrf( sal_Int16 nVal = 0 )
: SfxUInt16Item( RES_GRFATR_ROTATION, nVal )
{}
SwRotationGrf( sal_Int16 nVal, const Size& rSz )
: SfxUInt16Item( RES_GRFATR_ROTATION, nVal ), aUnrotatedSize( rSz )
{}
// pure virtual-Methiden from SfxInt16Item
virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const;
virtual USHORT GetVersion( USHORT nFFVer ) const;
virtual SfxPoolItem* Create(SvStream &, USHORT nVer ) const;
virtual SvStream& Store(SvStream &, USHORT nIVer) const;
virtual int operator==( const SfxPoolItem& ) const;
virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres,
SfxMapUnit eCoreMetric,
SfxMapUnit ePresMetric,
String &rText,
const IntlWrapper* pIntl = 0 ) 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 );
void SetUnrotatedSize( const Size& rSz ) { aUnrotatedSize = rSz; }
const Size& GetUnrotatedSize() const { return aUnrotatedSize; }
};
class SwLuminanceGrf : public SfxInt16Item
{
public:
SwLuminanceGrf( sal_Int16 nVal = 0 )
: SfxInt16Item( RES_GRFATR_LUMINANCE, nVal )
{}
// pure virtual-Methiden from SfxInt16Item
virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const;
virtual USHORT GetVersion( USHORT nFFVer ) const;
virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres,
SfxMapUnit eCoreMetric,
SfxMapUnit ePresMetric,
String &rText,
const IntlWrapper* pIntl = 0 ) const;
};
class SwContrastGrf : public SfxInt16Item
{
public:
SwContrastGrf( sal_Int16 nVal = 0 )
: SfxInt16Item( RES_GRFATR_CONTRAST, nVal )
{}
// pure virtual-Methiden from SfxInt16Item
virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const;
virtual USHORT GetVersion( USHORT nFFVer ) const;
virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres,
SfxMapUnit eCoreMetric,
SfxMapUnit ePresMetric,
String &rText,
const IntlWrapper* pIntl = 0 ) const;
};
class SwChannelGrf : public SfxInt16Item
{
protected:
SwChannelGrf( sal_Int16 nVal, USHORT nWhich )
: SfxInt16Item( nWhich, nVal )
{}
public:
// pure virtual-Methiden from SfxInt16Item
virtual USHORT GetVersion( USHORT nFFVer ) const;
virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres,
SfxMapUnit eCoreMetric,
SfxMapUnit ePresMetric,
String &rText,
const IntlWrapper* pIntl = 0 ) const;
};
class SwChannelRGrf : public SwChannelGrf
{
public:
SwChannelRGrf( sal_Int16 nVal = 0 )
: SwChannelGrf( nVal, RES_GRFATR_CHANNELR )
{}
virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const;
};
class SwChannelGGrf : public SwChannelGrf
{
public:
SwChannelGGrf( sal_Int16 nVal = 0 )
: SwChannelGrf( nVal, RES_GRFATR_CHANNELG )
{}
virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const;
};
class SwChannelBGrf : public SwChannelGrf
{
public:
SwChannelBGrf( sal_Int16 nVal = 0 )
: SwChannelGrf( nVal, RES_GRFATR_CHANNELB )
{}
virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const;
};
class SwGammaGrf : public SfxPoolItem
{
double nValue;
public:
TYPEINFO();
SwGammaGrf() : SfxPoolItem( RES_GRFATR_GAMMA ), nValue( 1.0 )
{}
SwGammaGrf( const double& rVal )
: SfxPoolItem( RES_GRFATR_GAMMA ), nValue( rVal )
{}
inline SwGammaGrf& operator=( const SwGammaGrf& rCopy )
{
SetValue( rCopy.GetValue() );
return *this;
}
// pure virtual-Methiden von SfxEnumItem
virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const;
virtual USHORT GetVersion( USHORT nFFVer ) const;
virtual SfxPoolItem* Create(SvStream &, USHORT nVer ) const;
virtual SvStream& Store(SvStream &, USHORT nIVer) const;
virtual int operator==( const SfxPoolItem& ) const;
virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres,
SfxMapUnit eCoreMetric,
SfxMapUnit ePresMetric,
String &rText,
const IntlWrapper* pIntl = 0 ) 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 double& GetValue() const { return nValue; }
void SetValue( const double& rVal ) { nValue = rVal; }
};
class SwInvertGrf: public SfxBoolItem
{
public:
SwInvertGrf( sal_Bool bVal = sal_False )
: SfxBoolItem( RES_GRFATR_INVERT, bVal )
{}
// pure virtual-Methiden from SfxInt16Item
virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const;
virtual USHORT GetVersion( USHORT nFFVer ) const;
virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres,
SfxMapUnit eCoreMetric,
SfxMapUnit ePresMetric,
String &rText,
const IntlWrapper* pIntl = 0 ) const;
};
class SwTransparencyGrf : public SfxByteItem
{
public:
SwTransparencyGrf( sal_Int8 nVal = 0 )
: SfxByteItem( RES_GRFATR_TRANSPARENCY, nVal )
{}
// pure virtual-Methiden from SfxInt16Item
virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const;
virtual USHORT GetVersion( USHORT nFFVer ) const;
virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres,
SfxMapUnit eCoreMetric,
SfxMapUnit ePresMetric,
String &rText,
const IntlWrapper* pIntl = 0 ) 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 );
};
class SwDrawModeGrf : public SfxEnumItem
{
public:
SwDrawModeGrf( USHORT nMode = 0 )
: SfxEnumItem( RES_GRFATR_DRAWMODE, nMode )
{}
// pure virtual-Methoden von SfxPoolItem
virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const;
// pure virtual-Methiden von SfxEnumItem
virtual USHORT GetValueCount() const;
virtual USHORT GetVersion( USHORT nFFVer ) const;
virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres,
SfxMapUnit eCoreMetric,
SfxMapUnit ePresMetric,
String &rText,
const IntlWrapper* pIntl = 0 ) 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 );
};
/******************************************************************************
* Implementierung der GrafikAttribut Methoden vom SwAttrSet
******************************************************************************/
inline const SwMirrorGrf &SwAttrSet::GetMirrorGrf(BOOL bInP) const
{ return (const SwMirrorGrf&)Get( RES_GRFATR_MIRRORGRF,bInP); }
inline const SwCropGrf &SwAttrSet::GetCropGrf(BOOL bInP) const
{ return (const SwCropGrf&)Get( RES_GRFATR_CROPGRF,bInP); }
inline const SwRotationGrf &SwAttrSet::GetRotationGrf(BOOL bInP) const
{ return (const SwRotationGrf&)Get( RES_GRFATR_ROTATION,bInP); }
inline const SwLuminanceGrf &SwAttrSet::GetLuminanceGrf(BOOL bInP) const
{ return (const SwLuminanceGrf&)Get( RES_GRFATR_LUMINANCE,bInP); }
inline const SwContrastGrf &SwAttrSet::GetContrastGrf(BOOL bInP) const
{ return (const SwContrastGrf&)Get( RES_GRFATR_CONTRAST,bInP); }
inline const SwChannelRGrf &SwAttrSet::GetChannelRGrf(BOOL bInP) const
{ return (const SwChannelRGrf&)Get( RES_GRFATR_CHANNELR,bInP); }
inline const SwChannelGGrf &SwAttrSet::GetChannelGGrf(BOOL bInP) const
{ return (const SwChannelGGrf&)Get( RES_GRFATR_CHANNELG,bInP); }
inline const SwChannelBGrf &SwAttrSet::GetChannelBGrf(BOOL bInP) const
{ return (const SwChannelBGrf&)Get( RES_GRFATR_CHANNELB,bInP); }
inline const SwGammaGrf &SwAttrSet::GetGammaGrf(BOOL bInP) const
{ return (const SwGammaGrf&)Get( RES_GRFATR_GAMMA,bInP); }
inline const SwInvertGrf &SwAttrSet::GetInvertGrf(BOOL bInP) const
{ return (const SwInvertGrf&)Get( RES_GRFATR_INVERT,bInP); }
inline const SwTransparencyGrf &SwAttrSet::GetTransparencyGrf(BOOL bInP) const
{ return (const SwTransparencyGrf&)Get( RES_GRFATR_TRANSPARENCY,bInP); }
inline const SwDrawModeGrf &SwAttrSet::GetDrawModeGrf(BOOL bInP) const
{ return (const SwDrawModeGrf&)Get( RES_GRFATR_DRAWMODE,bInP); }
/******************************************************************************
* Implementierung der GrafikAttribut Methoden vom SwFmt
******************************************************************************/
inline const SwMirrorGrf &SwFmt::GetMirrorGrf(BOOL bInP) const
{ return aSet.GetMirrorGrf(bInP); }
inline const SwCropGrf &SwFmt::GetCropGrf(BOOL bInP) const
{ return aSet.GetCropGrf(bInP); }
inline const SwRotationGrf &SwFmt::GetRotationGrf(BOOL bInP) const
{ return aSet.GetRotationGrf(bInP); }
inline const SwLuminanceGrf &SwFmt::GetLuminanceGrf(BOOL bInP) const
{ return aSet.GetLuminanceGrf( bInP); }
inline const SwContrastGrf &SwFmt::GetContrastGrf(BOOL bInP) const
{ return aSet.GetContrastGrf( bInP); }
inline const SwChannelRGrf &SwFmt::GetChannelRGrf(BOOL bInP) const
{ return aSet.GetChannelRGrf( bInP); }
inline const SwChannelGGrf &SwFmt::GetChannelGGrf(BOOL bInP) const
{ return aSet.GetChannelGGrf( bInP); }
inline const SwChannelBGrf &SwFmt::GetChannelBGrf(BOOL bInP) const
{ return aSet.GetChannelBGrf( bInP); }
inline const SwGammaGrf &SwFmt::GetGammaGrf(BOOL bInP) const
{ return aSet.GetGammaGrf( bInP); }
inline const SwInvertGrf &SwFmt::GetInvertGrf(BOOL bInP) const
{ return aSet.GetInvertGrf( bInP); }
inline const SwTransparencyGrf &SwFmt::GetTransparencyGrf(BOOL bInP) const
{ return aSet.GetTransparencyGrf( bInP); }
inline const SwDrawModeGrf &SwFmt::GetDrawModeGrf(BOOL bInP) const
{ return aSet.GetDrawModeGrf(bInP); }
#endif // _GRFATR_HXX