diff options
author | Thomas Arnhold <thomas@arnhold.org> | 2013-04-02 14:21:42 +0200 |
---|---|---|
committer | Luboš Luňák <l.lunak@suse.cz> | 2013-04-02 15:32:20 +0000 |
commit | 1416669670de6f93b40d8a2f8f001e92ec0bf101 (patch) | |
tree | 16da4cdc3242efc3c189660d7118663e3e9874e4 /svl | |
parent | 07f98c44311464fd7e5f94f569f847e43a0be4a2 (diff) |
Revert "Revert "reduce some uglyness""
The header guard seems to solve the problem.
This reverts commit df8c41cceeca27ae49e9fa6b5cd64c65c8feb218.
Change-Id: I27869be9c70e79a366a547ce061e71a3743f87da
Reviewed-on: https://gerrit.libreoffice.org/3171
Reviewed-by: Luboš Luňák <l.lunak@suse.cz>
Tested-by: Luboš Luňák <l.lunak@suse.cz>
Diffstat (limited to 'svl')
-rw-r--r-- | svl/inc/svl/rngitem.hxx | 49 | ||||
-rw-r--r-- | svl/source/items/rngitem.cxx | 190 | ||||
-rw-r--r-- | svl/source/items/rngitem_inc.cxx | 212 |
3 files changed, 197 insertions, 254 deletions
diff --git a/svl/inc/svl/rngitem.hxx b/svl/inc/svl/rngitem.hxx index 698641d51fb1..450e958ec179 100644 --- a/svl/inc/svl/rngitem.hxx +++ b/svl/inc/svl/rngitem.hxx @@ -18,20 +18,8 @@ */ #ifndef _SFXRNGITEM_HXX - -#ifndef NUMTYPE - -#define NUMTYPE sal_uInt16 -#define SfxXRangeItem SfxRangeItem -#define SfxXRangesItem SfxUShortRangesItem -#include <svl/rngitem.hxx> -#undef NUMTYPE -#undef SfxXRangeItem -#undef SfxXRangesItem - #define _SFXRNGITEM_HXX -#else #include "svl/svldllapi.h" #include <svl/poolitem.hxx> @@ -39,16 +27,16 @@ class SvStream; // ----------------------------------------------------------------------- -class SVL_DLLPUBLIC SfxXRangeItem : public SfxPoolItem +class SVL_DLLPUBLIC SfxRangeItem : public SfxPoolItem { private: - NUMTYPE nFrom; - NUMTYPE nTo; + sal_uInt16 nFrom; + sal_uInt16 nTo; public: TYPEINFO(); - SfxXRangeItem(); - SfxXRangeItem( sal_uInt16 nWID, NUMTYPE nFrom, NUMTYPE nTo ); - SfxXRangeItem( const SfxXRangeItem& rItem ); + SfxRangeItem(); + SfxRangeItem( sal_uInt16 nWID, sal_uInt16 nFrom, sal_uInt16 nTo ); + SfxRangeItem( const SfxRangeItem& rItem ); virtual int operator==( const SfxPoolItem& ) const; virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres, SfxMapUnit eCoreMetric, @@ -56,28 +44,28 @@ public: OUString &rText, const IntlWrapper * = 0 ) const; virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const; - inline NUMTYPE& From() { return nFrom; } - inline NUMTYPE From() const { return nFrom; } - inline NUMTYPE& To() { return nTo; } - inline NUMTYPE To() const { return nTo; } - inline sal_Bool HasRange() const { return nTo>nFrom; } + inline sal_uInt16& From() { return nFrom; } + inline sal_uInt16 From() const { return nFrom; } + inline sal_uInt16& To() { return nTo; } + inline sal_uInt16 To() const { return nTo; } + inline sal_Bool HasRange() const { return nTo>nFrom; } virtual SfxPoolItem* Create( SvStream &, sal_uInt16 nVersion ) const; virtual SvStream& Store( SvStream &, sal_uInt16 nItemVersion ) const; }; // ----------------------------------------------------------------------- -class SVL_DLLPUBLIC SfxXRangesItem : public SfxPoolItem +class SVL_DLLPUBLIC SfxUShortRangesItem : public SfxPoolItem { private: - NUMTYPE* _pRanges; + sal_uInt16* _pRanges; public: TYPEINFO(); - SfxXRangesItem(); - SfxXRangesItem( sal_uInt16 nWID, SvStream &rStream ); - SfxXRangesItem( const SfxXRangesItem& rItem ); - virtual ~SfxXRangesItem(); + SfxUShortRangesItem(); + SfxUShortRangesItem( sal_uInt16 nWID, SvStream &rStream ); + SfxUShortRangesItem( const SfxUShortRangesItem& rItem ); + virtual ~SfxUShortRangesItem(); virtual int operator==( const SfxPoolItem& ) const; virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres, SfxMapUnit eCoreMetric, @@ -85,12 +73,11 @@ public: OUString &rText, const IntlWrapper * = 0 ) const; virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const; - inline const NUMTYPE* GetRanges() const { return _pRanges; } + inline const sal_uInt16* GetRanges() const { return _pRanges; } virtual SfxPoolItem* Create( SvStream &, sal_uInt16 nVersion ) const; virtual SvStream& Store( SvStream &, sal_uInt16 nItemVersion ) const; }; #endif -#endif /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/svl/source/items/rngitem.cxx b/svl/source/items/rngitem.cxx index 72f890d462aa..645c543230e2 100644 --- a/svl/source/items/rngitem.cxx +++ b/svl/source/items/rngitem.cxx @@ -18,22 +18,190 @@ */ #include <tools/stream.hxx> +#include <svl/rngitem.hxx> -#ifndef NUMTYPE +static inline sal_uInt16 Count_Impl(const sal_uInt16 * pRanges) +{ + sal_uInt16 nCount = 0; + for (; *pRanges; pRanges += 2) nCount += 2; + return nCount; +} -#define NUMTYPE sal_uInt16 -#define SfxXRangeItem SfxRangeItem -#define SfxXRangesItem SfxUShortRangesItem -#include <svl/rngitem.hxx> -#include "rngitem_inc.cxx" +// ----------------------------------------------------------------------- + +TYPEINIT1_AUTOFACTORY(SfxRangeItem, SfxPoolItem); +TYPEINIT1_AUTOFACTORY(SfxUShortRangesItem, SfxPoolItem); + +sal_uInt16 Count_Impl( const sal_uInt16 *pRanges ); + +// ----------------------------------------------------------------------- + +SfxRangeItem::SfxRangeItem() +{ + nFrom = 0; + nTo = 0; +} + +// ----------------------------------------------------------------------- + +SfxRangeItem::SfxRangeItem( sal_uInt16 which, sal_uInt16 from, sal_uInt16 to ): + SfxPoolItem( which ), + nFrom( from ), + nTo( to ) +{ +} + +// ----------------------------------------------------------------------- + +SfxRangeItem::SfxRangeItem( const SfxRangeItem& rItem ) : + SfxPoolItem( rItem ) +{ + nFrom = rItem.nFrom; + nTo = rItem.nTo; +} + +// ----------------------------------------------------------------------- + +SfxItemPresentation SfxRangeItem::GetPresentation +( + SfxItemPresentation /*ePresentation*/, + SfxMapUnit /*eCoreMetric*/, + SfxMapUnit /*ePresentationMetric*/, + OUString& rText, + const IntlWrapper * +) const +{ + rText = OUString::number(nFrom) + ":" + OUString::number(nTo); + return SFX_ITEM_PRESENTATION_NAMELESS; +} + +// ----------------------------------------------------------------------- + +int SfxRangeItem::operator==( const SfxPoolItem& rItem ) const +{ + DBG_ASSERT( SfxPoolItem::operator==( rItem ), "unequal type" ); + SfxRangeItem* pT = (SfxRangeItem*)&rItem; + if( nFrom==pT->nFrom && nTo==pT->nTo ) + return 1; + return 0; +} + +// ----------------------------------------------------------------------- + +SfxPoolItem* SfxRangeItem::Clone(SfxItemPool *) const +{ + return new SfxRangeItem( Which(), nFrom, nTo ); +} + +// ----------------------------------------------------------------------- + +SfxPoolItem* SfxRangeItem::Create(SvStream &rStream, sal_uInt16) const +{ + sal_uInt16 nVon(0), nBis(0); + rStream >> nVon; + rStream >> nBis; + return new SfxRangeItem( Which(), nVon, nBis ); +} + +// ----------------------------------------------------------------------- + +SvStream& SfxRangeItem::Store(SvStream &rStream, sal_uInt16) const +{ + rStream << nFrom; + rStream << nTo; + return rStream; +} + +//========================================================================= + +SfxUShortRangesItem::SfxUShortRangesItem() +: _pRanges(0) +{ +} + +//------------------------------------------------------------------------- + +SfxUShortRangesItem::SfxUShortRangesItem( sal_uInt16 nWID, SvStream &rStream ) +: SfxPoolItem( nWID ) +{ + sal_uInt16 nCount(0); + rStream >> nCount; + _pRanges = new sal_uInt16[nCount + 1]; + for ( sal_uInt16 n = 0; n < nCount; ++n ) + rStream >> _pRanges[n]; + _pRanges[nCount] = 0; +} + +//------------------------------------------------------------------------- + +SfxUShortRangesItem::SfxUShortRangesItem( const SfxUShortRangesItem& rItem ) +: SfxPoolItem( rItem ) +{ + sal_uInt16 nCount = Count_Impl(rItem._pRanges) + 1; + _pRanges = new sal_uInt16[nCount]; + memcpy( _pRanges, rItem._pRanges, sizeof(sal_uInt16) * nCount ); +} + +//------------------------------------------------------------------------- + +SfxUShortRangesItem::~SfxUShortRangesItem() +{ + delete _pRanges; +} + +//------------------------------------------------------------------------- + +int SfxUShortRangesItem::operator==( const SfxPoolItem &rItem ) const +{ + const SfxUShortRangesItem &rOther = (const SfxUShortRangesItem&) rItem; + if ( !_pRanges && !rOther._pRanges ) + return sal_True; + if ( _pRanges || rOther._pRanges ) + return sal_False; + + sal_uInt16 n; + for ( n = 0; _pRanges[n] && rOther._pRanges[n]; ++n ) + if ( *_pRanges != rOther._pRanges[n] ) + return 0; + + return !_pRanges[n] && !rOther._pRanges[n]; +} + +//------------------------------------------------------------------------- + +SfxItemPresentation SfxUShortRangesItem::GetPresentation( SfxItemPresentation /*ePres*/, + SfxMapUnit /*eCoreMetric*/, + SfxMapUnit /*ePresMetric*/, + OUString & /*rText*/, + const IntlWrapper * ) const +{ + // not implemented + return SFX_ITEM_PRESENTATION_NONE; +} + +//------------------------------------------------------------------------- + +SfxPoolItem* SfxUShortRangesItem::Clone( SfxItemPool * ) const +{ + return new SfxUShortRangesItem( *this ); +} -#else +//------------------------------------------------------------------------- -// We leave this condition just in case NUMTYPE has been defined externally to this -// file and we are supposed to define the SfxXRangeItem based on that. +SfxPoolItem* SfxUShortRangesItem::Create( SvStream &rStream, sal_uInt16 ) const +{ + return new SfxUShortRangesItem( Which(), rStream ); +} -#include "rngitem_inc.cxx" +//------------------------------------------------------------------------- -#endif +SvStream& SfxUShortRangesItem::Store( SvStream &rStream, sal_uInt16 ) const +{ + sal_uInt16 nCount = Count_Impl( _pRanges ); + rStream >> nCount; + for ( sal_uInt16 n = 0; _pRanges[n]; ++n ) + rStream >> _pRanges[n]; + return rStream; +} /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/svl/source/items/rngitem_inc.cxx b/svl/source/items/rngitem_inc.cxx deleted file mode 100644 index 572c89ef5fff..000000000000 --- a/svl/source/items/rngitem_inc.cxx +++ /dev/null @@ -1,212 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 . - */ - -// This snippet of code is included by rngitem.cxx but not compiled directly. -// Ugly hack, probably due to lack of templates in the 20th century. - -static inline NUMTYPE Count_Impl(const NUMTYPE * pRanges) -{ - NUMTYPE nCount = 0; - for (; *pRanges; pRanges += 2) nCount += 2; - return nCount; -} - -// ----------------------------------------------------------------------- - -TYPEINIT1_AUTOFACTORY(SfxXRangeItem, SfxPoolItem); -TYPEINIT1_AUTOFACTORY(SfxXRangesItem, SfxPoolItem); - -NUMTYPE Count_Impl( const NUMTYPE *pRanges ); - -// ----------------------------------------------------------------------- - -SfxXRangeItem::SfxXRangeItem() -{ - nFrom = 0; - nTo = 0; -} - -// ----------------------------------------------------------------------- - -SfxXRangeItem::SfxXRangeItem( sal_uInt16 which, NUMTYPE from, NUMTYPE to ): - SfxPoolItem( which ), - nFrom( from ), - nTo( to ) -{ -} - -// ----------------------------------------------------------------------- - -SfxXRangeItem::SfxXRangeItem( const SfxXRangeItem& rItem ) : - SfxPoolItem( rItem ) -{ - nFrom = rItem.nFrom; - nTo = rItem.nTo; -} - -// ----------------------------------------------------------------------- - -SfxItemPresentation SfxXRangeItem::GetPresentation -( - SfxItemPresentation /*ePresentation*/, - SfxMapUnit /*eCoreMetric*/, - SfxMapUnit /*ePresentationMetric*/, - OUString& rText, - const IntlWrapper * -) const -{ - rText = OUString::number(nFrom) + ":" + OUString::number(nTo); - return SFX_ITEM_PRESENTATION_NAMELESS; -} - -// ----------------------------------------------------------------------- - -int SfxXRangeItem::operator==( const SfxPoolItem& rItem ) const -{ - DBG_ASSERT( SfxPoolItem::operator==( rItem ), "unequal type" ); - SfxXRangeItem* pT = (SfxXRangeItem*)&rItem; - if( nFrom==pT->nFrom && nTo==pT->nTo ) - return 1; - return 0; -} - -// ----------------------------------------------------------------------- - -SfxPoolItem* SfxXRangeItem::Clone(SfxItemPool *) const -{ - return new SfxXRangeItem( Which(), nFrom, nTo ); -} - -// ----------------------------------------------------------------------- - -SfxPoolItem* SfxXRangeItem::Create(SvStream &rStream, sal_uInt16) const -{ - NUMTYPE nVon(0), nBis(0); - rStream >> nVon; - rStream >> nBis; - return new SfxXRangeItem( Which(), nVon, nBis ); -} - -// ----------------------------------------------------------------------- - -SvStream& SfxXRangeItem::Store(SvStream &rStream, sal_uInt16) const -{ - rStream << nFrom; - rStream << nTo; - return rStream; -} - -//========================================================================= - -SfxXRangesItem::SfxXRangesItem() -: _pRanges(0) -{ -} - -//------------------------------------------------------------------------- - -SfxXRangesItem::SfxXRangesItem( sal_uInt16 nWID, SvStream &rStream ) -: SfxPoolItem( nWID ) -{ - NUMTYPE nCount(0); - rStream >> nCount; - _pRanges = new NUMTYPE[nCount + 1]; - for ( NUMTYPE n = 0; n < nCount; ++n ) - rStream >> _pRanges[n]; - _pRanges[nCount] = 0; -} - -//------------------------------------------------------------------------- - -SfxXRangesItem::SfxXRangesItem( const SfxXRangesItem& rItem ) -: SfxPoolItem( rItem ) -{ - NUMTYPE nCount = Count_Impl(rItem._pRanges) + 1; - _pRanges = new NUMTYPE[nCount]; - memcpy( _pRanges, rItem._pRanges, sizeof(NUMTYPE) * nCount ); -} - -//------------------------------------------------------------------------- - -SfxXRangesItem::~SfxXRangesItem() -{ - delete _pRanges; -} - -//------------------------------------------------------------------------- - -int SfxXRangesItem::operator==( const SfxPoolItem &rItem ) const -{ - const SfxXRangesItem &rOther = (const SfxXRangesItem&) rItem; - if ( !_pRanges && !rOther._pRanges ) - return sal_True; - if ( _pRanges || rOther._pRanges ) - return sal_False; - - NUMTYPE n; - for ( n = 0; _pRanges[n] && rOther._pRanges[n]; ++n ) - if ( *_pRanges != rOther._pRanges[n] ) - return 0; - - return !_pRanges[n] && !rOther._pRanges[n]; -} - -//------------------------------------------------------------------------- - -SfxItemPresentation SfxXRangesItem::GetPresentation( SfxItemPresentation /*ePres*/, - SfxMapUnit /*eCoreMetric*/, - SfxMapUnit /*ePresMetric*/, - OUString & /*rText*/, - const IntlWrapper * ) const -{ - // not implemented - return SFX_ITEM_PRESENTATION_NONE; -} - -//------------------------------------------------------------------------- - -SfxPoolItem* SfxXRangesItem::Clone( SfxItemPool * ) const -{ - return new SfxXRangesItem( *this ); -} - -//------------------------------------------------------------------------- - -SfxPoolItem* SfxXRangesItem::Create( SvStream &rStream, sal_uInt16 ) const -{ - return new SfxXRangesItem( Which(), rStream ); -} - -//------------------------------------------------------------------------- - -SvStream& SfxXRangesItem::Store( SvStream &rStream, sal_uInt16 ) const -{ - NUMTYPE nCount = Count_Impl( _pRanges ); - rStream >> nCount; - for ( NUMTYPE n = 0; _pRanges[n]; ++n ) - rStream >> _pRanges[n]; - return rStream; -} - - -#undef NUMTYPE -#undef SfxXRangeItem -#undef SfxXRangesItem - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |