diff options
Diffstat (limited to 'editeng')
-rw-r--r-- | editeng/inc/editeng/optitems.hxx | 114 | ||||
-rw-r--r-- | editeng/source/items/makefile.mk | 3 | ||||
-rw-r--r-- | editeng/source/items/optitems.cxx | 206 |
3 files changed, 322 insertions, 1 deletions
diff --git a/editeng/inc/editeng/optitems.hxx b/editeng/inc/editeng/optitems.hxx new file mode 100644 index 000000000000..1dd586da29c7 --- /dev/null +++ b/editeng/inc/editeng/optitems.hxx @@ -0,0 +1,114 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2008 by Sun Microsystems, Inc. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * $RCSfile: optitems.hxx,v $ + * $Revision: 1.7 $ + * + * 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 _EDITENG_OPTITEMS_HXX +#define _EDITENG_OPTITEMS_HXX + +// include --------------------------------------------------------------- + +#include <svl/poolitem.hxx> +#include <com/sun/star/uno/Reference.hxx> +#include <editeng/editengdllapi.h> + +// forward --------------------------------------------------------------- +namespace com { namespace sun { namespace star { +namespace linguistic2{ + class XSpellChecker1; +}}}} + + +// class SfxSpellCheckItem ----------------------------------------------- + +class EDITENG_DLLPUBLIC SfxSpellCheckItem: public SfxPoolItem +{ +public: + TYPEINFO(); + + SfxSpellCheckItem( ::com::sun::star::uno::Reference< + ::com::sun::star::linguistic2::XSpellChecker1 > &xChecker, + sal_uInt16 nWhich ); + SfxSpellCheckItem( const SfxSpellCheckItem& rItem ); + + virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres, + SfxMapUnit eCoreMetric, + SfxMapUnit ePresMetric, + String &rText, const IntlWrapper * = 0 ) const; + + virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const; + virtual int operator==( const SfxPoolItem& ) const; + + ::com::sun::star::uno::Reference< + ::com::sun::star::linguistic2::XSpellChecker1 > + GetXSpellChecker() const { return xSpellCheck; } + +private: + ::com::sun::star::uno::Reference< + ::com::sun::star::linguistic2::XSpellChecker1 > xSpellCheck; +}; + + +// class SfxHyphenRegionItem --------------------------------------------- + +class EDITENG_DLLPUBLIC SfxHyphenRegionItem: public SfxPoolItem +{ + sal_uInt8 nMinLead; + sal_uInt8 nMinTrail; + +public: + TYPEINFO(); + + SfxHyphenRegionItem( const sal_uInt16 nId ); + SfxHyphenRegionItem( const SfxHyphenRegionItem& rItem ); + + virtual int operator==( const SfxPoolItem& ) const; + virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres, + SfxMapUnit eCoreMetric, + SfxMapUnit ePresMetric, + String &rText, const IntlWrapper * = 0 ) const; + + virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const; + virtual SfxPoolItem* Create( SvStream& rStrm, sal_uInt16 nVer ) const; + virtual SvStream& Store( SvStream& rStrm, sal_uInt16 ) const; + + inline sal_uInt8 &GetMinLead() { return nMinLead; } + inline sal_uInt8 GetMinLead() const { return nMinLead; } + + inline sal_uInt8 &GetMinTrail() { return nMinTrail; } + inline sal_uInt8 GetMinTrail() const { return nMinTrail; } + + inline SfxHyphenRegionItem& operator=( const SfxHyphenRegionItem& rNew ) + { + nMinLead = rNew.GetMinLead(); + nMinTrail = rNew.GetMinTrail(); + return *this; + } +}; + +#endif + diff --git a/editeng/source/items/makefile.mk b/editeng/source/items/makefile.mk index 3b7412f213ae..512db7cc34bd 100644 --- a/editeng/source/items/makefile.mk +++ b/editeng/source/items/makefile.mk @@ -52,7 +52,8 @@ SRC1FILES = \ svxitems.src SLOFILES= \ - $(SLO)$/svdfield.obj \ + $(SLO)$/optitems.obj \ + $(SLO)$/svdfield.obj \ $(SLO)$/writingmodeitem.obj \ $(SLO)$/frmitems.obj \ $(SLO)$/paraitem.obj \ diff --git a/editeng/source/items/optitems.cxx b/editeng/source/items/optitems.cxx new file mode 100644 index 000000000000..9ddbdbe8ea43 --- /dev/null +++ b/editeng/source/items/optitems.cxx @@ -0,0 +1,206 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2008 by Sun Microsystems, Inc. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * $RCSfile: optitems.cxx,v $ + * $Revision: 1.10 $ + * + * 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. + * + ************************************************************************/ + +// MARKER(update_precomp.py): autogen include statement, do not remove +#include "precompiled_editeng.hxx" +#include <tools/shl.hxx> +#include <tools/resid.hxx> +#include <tools/stream.hxx> +#include <com/sun/star/linguistic2/XSpellChecker1.hpp> + +#include <editeng/optitems.hxx> +#include <editeng/eerdll.hxx> +#include <editeng/editrids.hrc> +#include <editeng/eerdll.hxx> +#include <editeng/editrids.hrc> + +using namespace ::com::sun::star::uno; +using namespace ::com::sun::star::linguistic2; + +// STATIC DATA ----------------------------------------------------------- + +TYPEINIT1(SfxSpellCheckItem, SfxPoolItem); +TYPEINIT1(SfxHyphenRegionItem, SfxPoolItem); + +// class SfxSpellCheckItem ----------------------------------------------- + +SfxSpellCheckItem::SfxSpellCheckItem +( + Reference< XSpellChecker1 > &xChecker, + sal_uInt16 _nWhich +) : + + SfxPoolItem( _nWhich ) +{ + xSpellCheck = xChecker; +} + +// ----------------------------------------------------------------------- + +SfxSpellCheckItem::SfxSpellCheckItem( const SfxSpellCheckItem& rItem ) : + + SfxPoolItem( rItem ), + xSpellCheck( rItem.GetXSpellChecker() ) +{ +} + +//------------------------------------------------------------------------ + +SfxItemPresentation SfxSpellCheckItem::GetPresentation +( + SfxItemPresentation ePres, + SfxMapUnit , + SfxMapUnit , + String& rText, + const IntlWrapper* +) const +{ + switch ( ePres ) + { + case SFX_ITEM_PRESENTATION_NONE: + rText.Erase(); + return SFX_ITEM_PRESENTATION_NONE; + + case SFX_ITEM_PRESENTATION_NAMELESS: + case SFX_ITEM_PRESENTATION_COMPLETE: + { + return ePres; + } + default: + return SFX_ITEM_PRESENTATION_NONE; + } +} + +// ----------------------------------------------------------------------- + +SfxPoolItem* SfxSpellCheckItem::Clone( SfxItemPool* ) const +{ + return new SfxSpellCheckItem( *this ); +} + +// ----------------------------------------------------------------------- + +int SfxSpellCheckItem::operator==( const SfxPoolItem& rItem ) const +{ + DBG_ASSERT( SfxPoolItem::operator==(rItem), "unequal types" ); + return ( xSpellCheck == ( (const SfxSpellCheckItem& )rItem ).GetXSpellChecker() ); +} + +// class SfxHyphenRegionItem ----------------------------------------------- + +SfxHyphenRegionItem::SfxHyphenRegionItem( const sal_uInt16 nId ) : + + SfxPoolItem( nId ) +{ + nMinLead = nMinTrail = 0; +} + +// ----------------------------------------------------------------------- + +SfxHyphenRegionItem::SfxHyphenRegionItem( const SfxHyphenRegionItem& rItem ) : + + SfxPoolItem ( rItem ), + + nMinLead ( rItem.GetMinLead() ), + nMinTrail ( rItem.GetMinTrail() ) +{ +} + +// ----------------------------------------------------------------------- + +int SfxHyphenRegionItem::operator==( const SfxPoolItem& rAttr ) const +{ + DBG_ASSERT( SfxPoolItem::operator==(rAttr), "unequal types" ); + + return ( ( ( (SfxHyphenRegionItem&)rAttr ).nMinLead == nMinLead ) && + ( ( (SfxHyphenRegionItem&)rAttr ).nMinTrail == nMinTrail ) ); +} + +// ----------------------------------------------------------------------- + +SfxPoolItem* SfxHyphenRegionItem::Clone( SfxItemPool* ) const +{ + return new SfxHyphenRegionItem( *this ); +} + +//------------------------------------------------------------------------ + +SfxItemPresentation SfxHyphenRegionItem::GetPresentation +( + SfxItemPresentation ePres, + SfxMapUnit , + SfxMapUnit , + String& rText, + const IntlWrapper* +) const +{ + switch ( ePres ) + { + case SFX_ITEM_PRESENTATION_NONE: + rText.Erase(); + return SFX_ITEM_PRESENTATION_NONE; + + case SFX_ITEM_PRESENTATION_NAMELESS: + case SFX_ITEM_PRESENTATION_COMPLETE: + { + rText += String::CreateFromInt32( nMinLead ); + rText += String( EditResId( RID_SVXITEMS_HYPHEN_MINLEAD ) ); + rText += ','; + rText += String::CreateFromInt32( nMinTrail ); + rText += String( EditResId( RID_SVXITEMS_HYPHEN_MINTRAIL ) ); + return ePres; + } + default: + return SFX_ITEM_PRESENTATION_NONE; + } +} + +// ----------------------------------------------------------------------- + +SfxPoolItem* SfxHyphenRegionItem::Create(SvStream& rStrm, sal_uInt16 ) const +{ + sal_uInt8 _nMinLead, _nMinTrail; + rStrm >> _nMinLead >> _nMinTrail; + SfxHyphenRegionItem* pAttr = new SfxHyphenRegionItem( Which() ); + pAttr->GetMinLead() = _nMinLead; + pAttr->GetMinTrail() = _nMinTrail; + return pAttr; +} + +// ----------------------------------------------------------------------- + +SvStream& SfxHyphenRegionItem::Store( SvStream& rStrm, sal_uInt16 ) const +{ + rStrm << (sal_uInt8) GetMinLead() + << (sal_uInt8) GetMinTrail(); + return rStrm; +} + + |