From 84dc8e5b5504e5f54fba695d4338d022681d85cf Mon Sep 17 00:00:00 2001 From: Thomas Arnhold Date: Mon, 11 Mar 2013 13:07:34 +0100 Subject: reduce some uglyness As there are no other users of this files, those macros can be expanded: NUMTYPE -> sal_uInt16 SfxXRangeItem -> SfxRangeItem SfxXRangesItem -> SfxUShortRangesItem Change-Id: I35361e0622a8787d938fc6c6745c4169ad6d909f --- svl/source/items/rngitem.cxx | 190 +++++++++++++++++++++++++++++++++-- svl/source/items/rngitem_inc.cxx | 212 --------------------------------------- 2 files changed, 179 insertions(+), 223 deletions(-) delete mode 100644 svl/source/items/rngitem_inc.cxx (limited to 'svl/source') 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 +#include -#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 -#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: */ -- cgit