/*************************************************************************
 *
 *  $RCSfile: xpool.cxx,v $
 *
 *  $Revision: 1.9 $
 *
 *  last change: $Author: rt $ $Date: 2005-01-28 15:45:30 $
 *
 *  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): _______________________________________
 *
 *
 ************************************************************************/

//BFS01#pragma hdrstop

#include "xtable.hxx"
#include "xattr.hxx"
#include "xpool.hxx"
#include "svdattr.hxx"
#include "svxids.hrc"

#ifndef _SFXITEMSET_HXX //autogen
#include <svtools/itemset.hxx>
#endif

//BFS01#define GLOBALOVERFLOW3

//BFS01static USHORT nVersion1Map[40];
//BFS01static USHORT nVersion2Map[66];
//BFS01static USHORT nVersion3Map[124];
//BFS01static USHORT nVersion4Map[141];

//BFS01static XOutdevItemPool* pPool=0;

/*************************************************************************
|*
|* Konstruktor
|*
\************************************************************************/


//BFS01XOutdevItemPool::XOutdevItemPool(USHORT nAttrStart, USHORT nAttrEnd, FASTBOOL bLoadRefCounts)
//BFS04XOutdevItemPool::XOutdevItemPool(FASTBOOL bLoadRefCounts)
//BFS04:    SfxItemPool(String("XOutdevItemPool", gsl_getSystemTextEncoding()),
//BFS04 SDRATTR_START, SDRATTR_END,
//BFS04 NULL, NULL,
//BFS04 bLoadRefCounts)
//BFS04{
//BFS04//BFS01  Ctor(NULL,nAttrStart,nAttrEnd);
//BFS04 Ctor(NULL);
//BFS04}


//BFS01XOutdevItemPool::XOutdevItemPool(SfxItemPool* pMaster, USHORT nAttrStart, USHORT nAttrEnd, FASTBOOL bLoadRefCounts)
//BFS04XOutdevItemPool::XOutdevItemPool(SfxItemPool* pMaster, FASTBOOL bLoadRefCounts)
XOutdevItemPool::XOutdevItemPool(
    SfxItemPool* pMaster,
    sal_uInt16 nAttrStart,
    sal_uInt16 nAttrEnd,
    sal_Bool bLoadRefCounts)
:   SfxItemPool(String("XOutdevItemPool", gsl_getSystemTextEncoding()), nAttrStart, nAttrEnd, 0L, 0L, bLoadRefCounts)
{
//BFS01 Ctor(pMaster,nAttrStart,nAttrEnd);
//BFS04 Ctor(pMaster);
    // prepare some defaults
    const XubString aNullStr;
    const Bitmap aNullBmp;
    const XPolygon aNullPol;
    const Color aNullLineCol(RGB_Color(COL_BLACK));
    const Color aNullFillCol(RGB_Color(COL_DEFAULT_SHAPE_FILLING));  // "Blue 8"
    const Color aNullShadowCol(RGB_Color(COL_LIGHTGRAY));
    const XDash aNullDash;
    const XGradient aNullGrad(aNullLineCol, RGB_Color(COL_WHITE));
    const XHatch aNullHatch(aNullLineCol);

    // get master pointer, evtl. add myself to the end of the pools
    if(!pMaster)
    {
        pMaster = this;
    }
    else
    {
        SfxItemPool* pParent = pMaster;

        while(pParent->GetSecondaryPool())
        {
            pParent = pParent->GetSecondaryPool();
        }

        pParent->SetSecondaryPool(this);
    }

    // prepare PoolDefaults
    mppLocalPoolDefaults = new SfxPoolItem*[GetLastWhich() - GetFirstWhich() + 1];

    mppLocalPoolDefaults[XATTR_LINESTYLE          -XATTR_START] = new XLineStyleItem;
    mppLocalPoolDefaults[XATTR_LINEDASH           -XATTR_START] = new XLineDashItem(this,aNullDash);
    mppLocalPoolDefaults[XATTR_LINEWIDTH          -XATTR_START] = new XLineWidthItem;
    mppLocalPoolDefaults[XATTR_LINECOLOR          -XATTR_START] = new XLineColorItem(aNullStr,aNullLineCol);
    mppLocalPoolDefaults[XATTR_LINESTART          -XATTR_START] = new XLineStartItem(this,aNullPol);
    mppLocalPoolDefaults[XATTR_LINEEND            -XATTR_START] = new XLineEndItem  (this,aNullPol);
    mppLocalPoolDefaults[XATTR_LINESTARTWIDTH     -XATTR_START] = new XLineStartWidthItem;
    mppLocalPoolDefaults[XATTR_LINEENDWIDTH       -XATTR_START] = new XLineEndWidthItem;
    mppLocalPoolDefaults[XATTR_LINESTARTCENTER    -XATTR_START] = new XLineStartCenterItem;
    mppLocalPoolDefaults[XATTR_LINEENDCENTER      -XATTR_START] = new XLineEndCenterItem;
    mppLocalPoolDefaults[XATTR_LINETRANSPARENCE   -XATTR_START] = new XLineTransparenceItem;
    mppLocalPoolDefaults[XATTR_LINEJOINT            -XATTR_START] = new XLineJointItem;
    mppLocalPoolDefaults[XATTR_FILLSTYLE                -XATTR_START] = new XFillStyleItem;
    mppLocalPoolDefaults[XATTR_FILLCOLOR                -XATTR_START] = new XFillColorItem   (aNullStr,aNullFillCol);
    mppLocalPoolDefaults[XATTR_FILLGRADIENT         -XATTR_START] = new XFillGradientItem(this,aNullGrad);
    mppLocalPoolDefaults[XATTR_FILLHATCH                -XATTR_START] = new XFillHatchItem   (this,aNullHatch);
    mppLocalPoolDefaults[XATTR_FILLBITMAP               -XATTR_START] = new XFillBitmapItem  (this,aNullBmp);
    mppLocalPoolDefaults[XATTR_FILLTRANSPARENCE     -XATTR_START] = new XFillTransparenceItem;
    mppLocalPoolDefaults[XATTR_GRADIENTSTEPCOUNT        -XATTR_START] = new XGradientStepCountItem;
    mppLocalPoolDefaults[XATTR_FILLBMP_TILE         -XATTR_START] = new XFillBmpTileItem;
    mppLocalPoolDefaults[XATTR_FILLBMP_POS          -XATTR_START] = new XFillBmpPosItem;
    mppLocalPoolDefaults[XATTR_FILLBMP_SIZEX            -XATTR_START] = new XFillBmpSizeXItem;
    mppLocalPoolDefaults[XATTR_FILLBMP_SIZEY            -XATTR_START] = new XFillBmpSizeYItem;
    mppLocalPoolDefaults[XATTR_FILLBMP_SIZELOG      -XATTR_START] = new XFillBmpSizeLogItem;
    mppLocalPoolDefaults[XATTR_FILLBMP_TILEOFFSETX  -XATTR_START] = new XFillBmpTileOffsetXItem;
    mppLocalPoolDefaults[XATTR_FILLBMP_TILEOFFSETY  -XATTR_START] = new XFillBmpTileOffsetYItem;
    mppLocalPoolDefaults[XATTR_FILLBMP_STRETCH      -XATTR_START] = new XFillBmpStretchItem;
    mppLocalPoolDefaults[XATTR_FILLBMP_POSOFFSETX       -XATTR_START] = new XFillBmpPosOffsetXItem;
    mppLocalPoolDefaults[XATTR_FILLBMP_POSOFFSETY       -XATTR_START] = new XFillBmpPosOffsetYItem;
    mppLocalPoolDefaults[XATTR_FILLFLOATTRANSPARENCE    -XATTR_START] = new XFillFloatTransparenceItem( this, aNullGrad, FALSE );
    mppLocalPoolDefaults[XATTR_SECONDARYFILLCOLOR       -XATTR_START] = new XSecondaryFillColorItem(aNullStr, aNullFillCol);
    mppLocalPoolDefaults[XATTR_FILLBACKGROUND           -XATTR_START] = new XFillBackgroundItem;
    mppLocalPoolDefaults[XATTR_FORMTXTSTYLE       -XATTR_START] = new XFormTextStyleItem;
    mppLocalPoolDefaults[XATTR_FORMTXTADJUST      -XATTR_START] = new XFormTextAdjustItem;
    mppLocalPoolDefaults[XATTR_FORMTXTDISTANCE    -XATTR_START] = new XFormTextDistanceItem;
    mppLocalPoolDefaults[XATTR_FORMTXTSTART       -XATTR_START] = new XFormTextStartItem;
    mppLocalPoolDefaults[XATTR_FORMTXTMIRROR      -XATTR_START] = new XFormTextMirrorItem;
    mppLocalPoolDefaults[XATTR_FORMTXTOUTLINE     -XATTR_START] = new XFormTextOutlineItem;
    mppLocalPoolDefaults[XATTR_FORMTXTSHADOW      -XATTR_START] = new XFormTextShadowItem;
    mppLocalPoolDefaults[XATTR_FORMTXTSHDWCOLOR   -XATTR_START] = new XFormTextShadowColorItem(aNullStr,aNullShadowCol);
    mppLocalPoolDefaults[XATTR_FORMTXTSHDWXVAL    -XATTR_START] = new XFormTextShadowXValItem;
    mppLocalPoolDefaults[XATTR_FORMTXTSHDWYVAL    -XATTR_START] = new XFormTextShadowYValItem;
    mppLocalPoolDefaults[XATTR_FORMTXTSTDFORM     -XATTR_START] = new XFormTextStdFormItem;
    mppLocalPoolDefaults[XATTR_FORMTXTHIDEFORM    -XATTR_START] = new XFormTextHideFormItem;
    mppLocalPoolDefaults[XATTR_FORMTXTSHDWTRANSP  -XATTR_START] = new XFormTextShadowTranspItem;

    // create SetItems
    SfxItemSet* pSet=new SfxItemSet(*pMaster, XATTR_LINE_FIRST, XATTR_LINE_LAST);
    mppLocalPoolDefaults[XATTRSET_LINE - XATTR_START] = new XLineAttrSetItem(pSet);
    pSet=new SfxItemSet(*pMaster, XATTR_FILL_FIRST, XATTR_FILL_LAST);
    mppLocalPoolDefaults[XATTRSET_FILL - XATTR_START] = new XFillAttrSetItem(pSet);

    // create ItemInfos
    mpLocalItemInfos = new SfxItemInfo[GetLastWhich() - GetFirstWhich() + 1];
    for(sal_uInt16 i(GetFirstWhich()); i <= GetLastWhich(); i++)
    {
        mpLocalItemInfos[i - XATTR_START]._nSID = 0;
        mpLocalItemInfos[i - XATTR_START]._nFlags = SFX_ITEM_POOLABLE;
    }

    mpLocalItemInfos[XATTR_LINESTYLE        -XATTR_START]._nSID = SID_ATTR_LINE_STYLE;
    mpLocalItemInfos[XATTR_LINEDASH         -XATTR_START]._nSID = SID_ATTR_LINE_DASH;
    mpLocalItemInfos[XATTR_LINEWIDTH        -XATTR_START]._nSID = SID_ATTR_LINE_WIDTH;
    mpLocalItemInfos[XATTR_LINECOLOR        -XATTR_START]._nSID = SID_ATTR_LINE_COLOR;
    mpLocalItemInfos[XATTR_LINESTART        -XATTR_START]._nSID = SID_ATTR_LINE_START;
    mpLocalItemInfos[XATTR_LINEEND          -XATTR_START]._nSID = SID_ATTR_LINE_END;
    mpLocalItemInfos[XATTR_LINESTARTWIDTH   -XATTR_START]._nSID = SID_ATTR_LINE_STARTWIDTH;
    mpLocalItemInfos[XATTR_LINEENDWIDTH     -XATTR_START]._nSID = SID_ATTR_LINE_ENDWIDTH;
    mpLocalItemInfos[XATTR_LINESTARTCENTER  -XATTR_START]._nSID = SID_ATTR_LINE_STARTCENTER;
    mpLocalItemInfos[XATTR_LINEENDCENTER    -XATTR_START]._nSID = SID_ATTR_LINE_ENDCENTER;
    mpLocalItemInfos[XATTR_FILLSTYLE        -XATTR_START]._nSID = SID_ATTR_FILL_STYLE;
    mpLocalItemInfos[XATTR_FILLCOLOR        -XATTR_START]._nSID = SID_ATTR_FILL_COLOR;
    mpLocalItemInfos[XATTR_FILLGRADIENT     -XATTR_START]._nSID = SID_ATTR_FILL_GRADIENT;
    mpLocalItemInfos[XATTR_FILLHATCH        -XATTR_START]._nSID = SID_ATTR_FILL_HATCH;
    mpLocalItemInfos[XATTR_FILLBITMAP       -XATTR_START]._nSID = SID_ATTR_FILL_BITMAP;
    mpLocalItemInfos[XATTR_FORMTXTSTYLE     -XATTR_START]._nSID = SID_FORMTEXT_STYLE;
    mpLocalItemInfos[XATTR_FORMTXTADJUST    -XATTR_START]._nSID = SID_FORMTEXT_ADJUST;
    mpLocalItemInfos[XATTR_FORMTXTDISTANCE  -XATTR_START]._nSID = SID_FORMTEXT_DISTANCE;
    mpLocalItemInfos[XATTR_FORMTXTSTART     -XATTR_START]._nSID = SID_FORMTEXT_START;
    mpLocalItemInfos[XATTR_FORMTXTMIRROR    -XATTR_START]._nSID = SID_FORMTEXT_MIRROR;
    mpLocalItemInfos[XATTR_FORMTXTOUTLINE   -XATTR_START]._nSID = SID_FORMTEXT_OUTLINE;
    mpLocalItemInfos[XATTR_FORMTXTSHADOW    -XATTR_START]._nSID = SID_FORMTEXT_SHADOW;
    mpLocalItemInfos[XATTR_FORMTXTSHDWCOLOR -XATTR_START]._nSID = SID_FORMTEXT_SHDWCOLOR;
    mpLocalItemInfos[XATTR_FORMTXTSHDWXVAL  -XATTR_START]._nSID = SID_FORMTEXT_SHDWXVAL;
    mpLocalItemInfos[XATTR_FORMTXTSHDWYVAL  -XATTR_START]._nSID = SID_FORMTEXT_SHDWYVAL;
    mpLocalItemInfos[XATTR_FORMTXTSTDFORM   -XATTR_START]._nSID = SID_FORMTEXT_STDFORM;
    mpLocalItemInfos[XATTR_FORMTXTHIDEFORM  -XATTR_START]._nSID = SID_FORMTEXT_HIDEFORM;

    // if it's my own creation level, set Defaults and ItemInfos
    if(XATTR_START == GetFirstWhich() && XATTR_END == GetLastWhich())
    {
        SetDefaults(mppLocalPoolDefaults);
        SetItemInfos(mpLocalItemInfos);
    }
}

//BFS01XOutdevItemPool* XOutdevItemPool::Get()
//BFS01{
//BFS01 if ( !pPool )
//BFS01     pPool = new XOutdevItemPool;
//BFS01 return pPool;
//BFS01}

//BFS04//BFS01void XOutdevItemPool::Ctor(SfxItemPool* pMaster, USHORT nAttrStart, USHORT nAttrEnd)
//BFS04void XOutdevItemPool::Ctor(SfxItemPool* pMaster)
//BFS04{
//BFS04 // Mich als Secondary an den MasterPool (Joe)
//BFS04 if (pMaster==NULL) {
//BFS04     pMaster=this;
//BFS04 } else {
//BFS04     // Ich ganz hinten dran
//BFS04     SfxItemPool* pParent=pMaster;
//BFS04     while (pParent->GetSecondaryPool()!=NULL) {
//BFS04         pParent=pParent->GetSecondaryPool();
//BFS04     }
//BFS04     pParent->SetSecondaryPool(this);
//BFS04 }
//BFS04
//BFS04 SfxItemSet* pSet;
//BFS04
//BFS04//BFS01  nStart=nAttrStart;
//BFS04//BFS01  nEnd  =nAttrEnd;
//BFS04//BFS01  ppPoolDefaults = new SfxPoolItem* [nEnd-nStart+1];
//BFS04 ppPoolDefaults = new SfxPoolItem*[XATTR_END - XATTR_START + 1];
//BFS04
//BFS04//BFS01  USHORT i;
//BFS04 sal_uInt16 i;
//BFS04
//BFS04 // Am 27-06-1995 hat Elmar 13 neue Whiches fuer XATTR_FORMTXT bei Which 1021
//BFS04 // eingebaut.
//BFS04 // Alles was zu diesem Zeitpunkt >1021 war verschiebt sich also um
//BFS04 // 13 Positionen nach hinten.
//BFS04 // Alles was davor liegt (11 LineItems, 6 FillItems, 5 von 6 FormTextItems)
//BFS04 // behaelt seine WhichId.
//BFS04
//BFS04//BFS01  for (i=1000; i<=1021; i++) {
//BFS04//BFS01      nVersion1Map[i-1000]=i;
//BFS04//BFS01  }
//BFS04//BFS01  for (i=1022; i<=1039; i++) {
//BFS04//BFS01      nVersion1Map[i-1000]=i+13;
//BFS04//BFS01  }
//BFS04//BFS01  SetVersionMap(1,1000,1039,nVersion1Map);
//BFS04
//BFS04 // Am 09-11-1995 haben dann wiederum Kai Ahrens 14 und Joe 44 (also beide
//BFS04 // insgesamt 58) neue Whiches an verschiedenen Stellen spendiert (siehe
//BFS04 // auch die Beschreibung in svx\inc\SvdAttr.HXX).
//BFS04
//BFS04//BFS01  for (i=1000; i<=1009; i++) {  // XOut
//BFS04//BFS01      nVersion2Map[i-1000]=i;
//BFS04//BFS01  }
//BFS04//BFS01  for (i=1010; i<=1015; i++) {  // XOut
//BFS04//BFS01      nVersion2Map[i-1000]=i+7;
//BFS04//BFS01  }
//BFS04//BFS01  for (i=1016; i<=1035; i++) {  // XOut
//BFS04//BFS01      nVersion2Map[i-1000]=i+14;
//BFS04//BFS01  }
//BFS04//BFS01  for (i=1036; i<=1039; i++) {  // SvDraw
//BFS04//BFS01      nVersion2Map[i-1000]=i+14;
//BFS04//BFS01  }
//BFS04//BFS01  for (i=1040; i<=1050; i++) {  // SvDraw
//BFS04//BFS01      nVersion2Map[i-1000]=i+22;
//BFS04//BFS01  }
//BFS04//BFS01  for (i=1051; i<=1056; i++) {  // SvDraw
//BFS04//BFS01      nVersion2Map[i-1000]=i+27;
//BFS04//BFS01  }
//BFS04//BFS01  for (i=1057; i<=1065; i++) {  // SvDraw
//BFS04//BFS01      nVersion2Map[i-1000]=i+52;
//BFS04//BFS01  }
//BFS04//BFS01  SetVersionMap(2,1000,1065,nVersion2Map);
//BFS04
//BFS04
//BFS04 // Am 29-02-1996 hat KA 17 neue Whiches
//BFS04 // fuer das XOut spendiert
//BFS04
//BFS04//BFS01  for (i=1000; i<=1029; i++) {
//BFS04//BFS01      nVersion3Map[i-1000]=i;
//BFS04//BFS01  }
//BFS04//BFS01  for (i=1030; i<=1123; i++) {
//BFS04//BFS01      nVersion3Map[i-1000]=i+17;
//BFS04//BFS01  }
//BFS04//BFS01  SetVersionMap(3,1000,1123,nVersion3Map);
//BFS04
//BFS04
//BFS04 // Am 10-08-1996 hat Joe 45 neue Items in SvDraw eingebaut
//BFS04 // fuer Bemassung, Verbinder und Laufschrift
//BFS04
//BFS04//BFS01  for (i=1000; i<=1126; i++) {
//BFS04//BFS01      nVersion4Map[i-1000]=i;
//BFS04//BFS01  }
//BFS04//BFS01  for (i=1127; i<=1140; i++) {
//BFS04//BFS01      nVersion4Map[i-1000]=i+45;
//BFS04//BFS01  }
//BFS04//BFS01  SetVersionMap(4,1000,1140,nVersion4Map);
//BFS04
//BFS04
//BFS04 XubString    aNullStr;
//BFS04 Bitmap      aNullBmp;
//BFS04 XPolygon    aNullPol;
//BFS04 Color       aNullLineCol(RGB_Color(COL_BLACK));
//BFS04
//BFS04 Color       aNullFillCol(Color(0,184,255));  // "Blau 7"
//BFS04
//BFS04 Color       aNullShadowCol(RGB_Color(COL_LIGHTGRAY));
//BFS04 XDash       aNullDash;
//BFS04 XGradient   aNullGrad(aNullLineCol, RGB_Color(COL_WHITE));
//BFS04 XHatch      aNullHatch(aNullLineCol);
//BFS04
//BFS04 // LineItems
//BFS04 ppPoolDefaults[XATTR_LINESTYLE          -XATTR_START] = new XLineStyleItem;
//BFS04 ppPoolDefaults[XATTR_LINEDASH           -XATTR_START] = new XLineDashItem(this,aNullDash);
//BFS04 ppPoolDefaults[XATTR_LINEWIDTH          -XATTR_START] = new XLineWidthItem;
//BFS04 ppPoolDefaults[XATTR_LINECOLOR          -XATTR_START] = new XLineColorItem(aNullStr,aNullLineCol);
//BFS04 ppPoolDefaults[XATTR_LINESTART          -XATTR_START] = new XLineStartItem(this,aNullPol);
//BFS04 ppPoolDefaults[XATTR_LINEEND            -XATTR_START] = new XLineEndItem  (this,aNullPol);
//BFS04 ppPoolDefaults[XATTR_LINESTARTWIDTH     -XATTR_START] = new XLineStartWidthItem;
//BFS04 ppPoolDefaults[XATTR_LINEENDWIDTH       -XATTR_START] = new XLineEndWidthItem;
//BFS04 ppPoolDefaults[XATTR_LINESTARTCENTER    -XATTR_START] = new XLineStartCenterItem;
//BFS04 ppPoolDefaults[XATTR_LINEENDCENTER      -XATTR_START] = new XLineEndCenterItem;
//BFS04 ppPoolDefaults[XATTR_LINETRANSPARENCE   -XATTR_START] = new XLineTransparenceItem;
//BFS04 ppPoolDefaults[XATTR_LINEJOINT          -XATTR_START] = new XLineJointItem;
//BFS04
//BFS04 // Reserven fuer LineItems
//BFS04//BFS01  ppPoolDefaults[XATTR_LINERESERVED2      -XATTR_START] = new SfxVoidItem(XATTR_LINERESERVED2);
//BFS04//BFS01  ppPoolDefaults[XATTR_LINERESERVED3      -XATTR_START] = new SfxVoidItem(XATTR_LINERESERVED3);
//BFS04//BFS01  ppPoolDefaults[XATTR_LINERESERVED4      -XATTR_START] = new SfxVoidItem(XATTR_LINERESERVED4);
//BFS04//BFS01  ppPoolDefaults[XATTR_LINERESERVED5      -XATTR_START] = new SfxVoidItem(XATTR_LINERESERVED5);
//BFS04//BFS01  ppPoolDefaults[XATTR_LINERESERVED_LAST  -XATTR_START] = new SfxVoidItem(XATTR_LINERESERVED_LAST);
//BFS04
//BFS04 // FillItems
//BFS04 ppPoolDefaults[XATTR_FILLSTYLE              -XATTR_START] = new XFillStyleItem;
//BFS04 ppPoolDefaults[XATTR_FILLCOLOR              -XATTR_START] = new XFillColorItem   (aNullStr,aNullFillCol);
//BFS04 ppPoolDefaults[XATTR_FILLGRADIENT           -XATTR_START] = new XFillGradientItem(this,aNullGrad);
//BFS04 ppPoolDefaults[XATTR_FILLHATCH              -XATTR_START] = new XFillHatchItem   (this,aNullHatch);
//BFS04 ppPoolDefaults[XATTR_FILLBITMAP             -XATTR_START] = new XFillBitmapItem  (this,aNullBmp);
//BFS04 ppPoolDefaults[XATTR_FILLTRANSPARENCE       -XATTR_START] = new XFillTransparenceItem;
//BFS04 ppPoolDefaults[XATTR_GRADIENTSTEPCOUNT      -XATTR_START] = new XGradientStepCountItem;
//BFS04 ppPoolDefaults[XATTR_FILLBMP_TILE           -XATTR_START] = new XFillBmpTileItem;
//BFS04 ppPoolDefaults[XATTR_FILLBMP_POS            -XATTR_START] = new XFillBmpPosItem;
//BFS04 ppPoolDefaults[XATTR_FILLBMP_SIZEX          -XATTR_START] = new XFillBmpSizeXItem;
//BFS04 ppPoolDefaults[XATTR_FILLBMP_SIZEY          -XATTR_START] = new XFillBmpSizeYItem;
//BFS04 ppPoolDefaults[XATTR_FILLBMP_SIZELOG        -XATTR_START] = new XFillBmpSizeLogItem;
//BFS04 ppPoolDefaults[XATTR_FILLBMP_TILEOFFSETX    -XATTR_START] = new XFillBmpTileOffsetXItem;
//BFS04 ppPoolDefaults[XATTR_FILLBMP_TILEOFFSETY    -XATTR_START] = new XFillBmpTileOffsetYItem;
//BFS04 ppPoolDefaults[XATTR_FILLBMP_STRETCH        -XATTR_START] = new XFillBmpStretchItem;
//BFS04 ppPoolDefaults[XATTR_FILLBMP_POSOFFSETX     -XATTR_START] = new XFillBmpPosOffsetXItem;
//BFS04 ppPoolDefaults[XATTR_FILLBMP_POSOFFSETY     -XATTR_START] = new XFillBmpPosOffsetYItem;
//BFS04 ppPoolDefaults[XATTR_FILLFLOATTRANSPARENCE  -XATTR_START] = new XFillFloatTransparenceItem( this, aNullGrad, FALSE );
//BFS04
//BFS04 // Reserven fuer FillItems
//BFS04 ppPoolDefaults[XATTR_SECONDARYFILLCOLOR     -XATTR_START] = new XSecondaryFillColorItem(aNullStr, aNullFillCol);
//BFS04//BFS01  ppPoolDefaults[XATTR_FILLRESERVED3          -XATTR_START] = new SfxVoidItem(XATTR_FILLRESERVED3);
//BFS04//BFS01  ppPoolDefaults[XATTR_FILLRESERVED4          -XATTR_START] = new SfxVoidItem(XATTR_FILLRESERVED4);
//BFS04//BFS01  ppPoolDefaults[XATTR_FILLRESERVED5          -XATTR_START] = new SfxVoidItem(XATTR_FILLRESERVED5);
//BFS04//BFS01  ppPoolDefaults[XATTR_FILLRESERVED6          -XATTR_START] = new SfxVoidItem(XATTR_FILLRESERVED6);
//BFS04//BFS01  ppPoolDefaults[XATTR_FILLRESERVED7          -XATTR_START] = new SfxVoidItem(XATTR_FILLRESERVED7);
//BFS04//BFS01  ppPoolDefaults[XATTR_FILLRESERVED8          -XATTR_START] = new SfxVoidItem(XATTR_FILLRESERVED8);
//BFS04 ppPoolDefaults[XATTR_FILLBACKGROUND         -XATTR_START] = new XFillBackgroundItem;
//BFS04//BFS01  ppPoolDefaults[XATTR_FILLRESERVED10         -XATTR_START] = new SfxVoidItem(XATTR_FILLRESERVED10);
//BFS04//BFS01  ppPoolDefaults[XATTR_FILLRESERVED11         -XATTR_START] = new SfxVoidItem(XATTR_FILLRESERVED11);
//BFS04//BFS01  ppPoolDefaults[XATTR_FILLRESERVED_LAST      -XATTR_START] = new SfxVoidItem(XATTR_FILLRESERVED_LAST);
//BFS04
//BFS04 // FormTextItems
//BFS04 ppPoolDefaults[XATTR_FORMTXTSTYLE       -XATTR_START] = new XFormTextStyleItem;
//BFS04 ppPoolDefaults[XATTR_FORMTXTADJUST      -XATTR_START] = new XFormTextAdjustItem;
//BFS04 ppPoolDefaults[XATTR_FORMTXTDISTANCE    -XATTR_START] = new XFormTextDistanceItem;
//BFS04 ppPoolDefaults[XATTR_FORMTXTSTART       -XATTR_START] = new XFormTextStartItem;
//BFS04 ppPoolDefaults[XATTR_FORMTXTMIRROR      -XATTR_START] = new XFormTextMirrorItem;
//BFS04 ppPoolDefaults[XATTR_FORMTXTOUTLINE     -XATTR_START] = new XFormTextOutlineItem;
//BFS04 ppPoolDefaults[XATTR_FORMTXTSHADOW      -XATTR_START] = new XFormTextShadowItem;
//BFS04 ppPoolDefaults[XATTR_FORMTXTSHDWCOLOR   -XATTR_START] = new XFormTextShadowColorItem(aNullStr,aNullShadowCol);
//BFS04 ppPoolDefaults[XATTR_FORMTXTSHDWXVAL    -XATTR_START] = new XFormTextShadowXValItem;
//BFS04 ppPoolDefaults[XATTR_FORMTXTSHDWYVAL    -XATTR_START] = new XFormTextShadowYValItem;
//BFS04 ppPoolDefaults[XATTR_FORMTXTSTDFORM     -XATTR_START] = new XFormTextStdFormItem;
//BFS04 ppPoolDefaults[XATTR_FORMTXTHIDEFORM    -XATTR_START] = new XFormTextHideFormItem;
//BFS04
//BFS04 // Reserven fuer FormTextItems
//BFS04 ppPoolDefaults[XATTR_FORMTXTSHDWTRANSP  -XATTR_START] = new XFormTextShadowTranspItem;
//BFS04//BFS01  ppPoolDefaults[XATTR_FTRESERVED2        -XATTR_START] = new SfxVoidItem(XATTR_FTRESERVED2);
//BFS04//BFS01  ppPoolDefaults[XATTR_FTRESERVED3        -XATTR_START] = new SfxVoidItem(XATTR_FTRESERVED3);
//BFS04//BFS01  ppPoolDefaults[XATTR_FTRESERVED4        -XATTR_START] = new SfxVoidItem(XATTR_FTRESERVED4);
//BFS04//BFS01  ppPoolDefaults[XATTR_FTRESERVED5        -XATTR_START] = new SfxVoidItem(XATTR_FTRESERVED5);
//BFS04//BFS01  ppPoolDefaults[XATTR_FTRESERVED_LAST    -XATTR_START] = new SfxVoidItem(XATTR_FTRESERVED_LAST);
//BFS04
//BFS04 // SetItems erzeugen
//BFS04 pSet=new SfxItemSet(*pMaster, XATTR_LINE_FIRST, XATTR_LINE_LAST);
//BFS04 ppPoolDefaults[XATTRSET_LINE - XATTR_START] = new XLineAttrSetItem(pSet);
//BFS04 pSet=new SfxItemSet(*pMaster, XATTR_FILL_FIRST, XATTR_FILL_LAST);
//BFS04 ppPoolDefaults[XATTRSET_FILL - XATTR_START] = new XFillAttrSetItem(pSet);
//BFS04//BFS01  pSet=new SfxItemSet(*pMaster, XATTR_TEXT_FIRST, XATTR_TEXT_LAST);
//BFS04//BFS01  ppPoolDefaults[XATTRSET_TEXT - XATTR_START] = new XTextAttrSetItem(pSet);
//BFS04
//BFS04 // ItemInfos
//BFS04//BFS01  pItemInfos=new SfxItemInfo[nEnd-nStart+1];
//BFS04 pItemInfos = new SfxItemInfo[XATTR_END - XATTR_START + 1];
//BFS04
//BFS04//BFS01  for (i=nStart; i<=nEnd; i++)
//BFS04 for(i = XATTR_START; i <= XATTR_END; i++)
//BFS04 {
//BFS04//BFS01      pItemInfos[i-nStart]._nSID=0;
//BFS04//BFS01      pItemInfos[i-nStart]._nFlags=SFX_ITEM_POOLABLE;
//BFS04     pItemInfos[i - XATTR_START]._nSID = 0;
//BFS04     pItemInfos[i - XATTR_START]._nFlags = SFX_ITEM_POOLABLE;
//BFS04 }
//BFS04
//BFS04 pItemInfos[XATTR_LINESTYLE        -XATTR_START]._nSID = SID_ATTR_LINE_STYLE;
//BFS04 pItemInfos[XATTR_LINEDASH         -XATTR_START]._nSID = SID_ATTR_LINE_DASH;
//BFS04 pItemInfos[XATTR_LINEWIDTH        -XATTR_START]._nSID = SID_ATTR_LINE_WIDTH;
//BFS04 pItemInfos[XATTR_LINECOLOR        -XATTR_START]._nSID = SID_ATTR_LINE_COLOR;
//BFS04 pItemInfos[XATTR_LINESTART        -XATTR_START]._nSID = SID_ATTR_LINE_START;
//BFS04 pItemInfos[XATTR_LINEEND          -XATTR_START]._nSID = SID_ATTR_LINE_END;
//BFS04 pItemInfos[XATTR_LINESTARTWIDTH   -XATTR_START]._nSID = SID_ATTR_LINE_STARTWIDTH;
//BFS04 pItemInfos[XATTR_LINEENDWIDTH     -XATTR_START]._nSID = SID_ATTR_LINE_ENDWIDTH;
//BFS04 pItemInfos[XATTR_LINESTARTCENTER  -XATTR_START]._nSID = SID_ATTR_LINE_STARTCENTER;
//BFS04 pItemInfos[XATTR_LINEENDCENTER    -XATTR_START]._nSID = SID_ATTR_LINE_ENDCENTER;
//BFS04
//BFS04 pItemInfos[XATTR_FILLSTYLE        -XATTR_START]._nSID = SID_ATTR_FILL_STYLE;
//BFS04 pItemInfos[XATTR_FILLCOLOR        -XATTR_START]._nSID = SID_ATTR_FILL_COLOR;
//BFS04 pItemInfos[XATTR_FILLGRADIENT     -XATTR_START]._nSID = SID_ATTR_FILL_GRADIENT;
//BFS04 pItemInfos[XATTR_FILLHATCH        -XATTR_START]._nSID = SID_ATTR_FILL_HATCH;
//BFS04 pItemInfos[XATTR_FILLBITMAP       -XATTR_START]._nSID = SID_ATTR_FILL_BITMAP;
//BFS04
//BFS04 pItemInfos[XATTR_FORMTXTSTYLE     -XATTR_START]._nSID = SID_FORMTEXT_STYLE;
//BFS04 pItemInfos[XATTR_FORMTXTADJUST    -XATTR_START]._nSID = SID_FORMTEXT_ADJUST;
//BFS04 pItemInfos[XATTR_FORMTXTDISTANCE  -XATTR_START]._nSID = SID_FORMTEXT_DISTANCE;
//BFS04 pItemInfos[XATTR_FORMTXTSTART     -XATTR_START]._nSID = SID_FORMTEXT_START;
//BFS04 pItemInfos[XATTR_FORMTXTMIRROR    -XATTR_START]._nSID = SID_FORMTEXT_MIRROR;
//BFS04 pItemInfos[XATTR_FORMTXTOUTLINE   -XATTR_START]._nSID = SID_FORMTEXT_OUTLINE;
//BFS04 pItemInfos[XATTR_FORMTXTSHADOW    -XATTR_START]._nSID = SID_FORMTEXT_SHADOW;
//BFS04 pItemInfos[XATTR_FORMTXTSHDWCOLOR -XATTR_START]._nSID = SID_FORMTEXT_SHDWCOLOR;
//BFS04 pItemInfos[XATTR_FORMTXTSHDWXVAL  -XATTR_START]._nSID = SID_FORMTEXT_SHDWXVAL;
//BFS04 pItemInfos[XATTR_FORMTXTSHDWYVAL  -XATTR_START]._nSID = SID_FORMTEXT_SHDWYVAL;
//BFS04 pItemInfos[XATTR_FORMTXTSTDFORM   -XATTR_START]._nSID = SID_FORMTEXT_STDFORM;
//BFS04 pItemInfos[XATTR_FORMTXTHIDEFORM  -XATTR_START]._nSID = SID_FORMTEXT_HIDEFORM;
//BFS04
//BFS04//BFS01#if SUPD<355
//BFS04//BFS01  pSlotIds = new USHORT[nEnd-nStart+1];
//BFS04//BFS01
//BFS04//BFS01  pSlotIds[XATTR_LINESTYLE        -XATTR_START] = SID_ATTR_LINE_STYLE;
//BFS04//BFS01  pSlotIds[XATTR_LINEDASH         -XATTR_START] = SID_ATTR_LINE_DASH;
//BFS04//BFS01  pSlotIds[XATTR_LINEWIDTH        -XATTR_START] = SID_ATTR_LINE_WIDTH;
//BFS04//BFS01  pSlotIds[XATTR_LINECOLOR        -XATTR_START] = SID_ATTR_LINE_COLOR;
//BFS04//BFS01  pSlotIds[XATTR_LINESTART        -XATTR_START] = SID_ATTR_LINE_START;
//BFS04//BFS01  pSlotIds[XATTR_LINEEND          -XATTR_START] = SID_ATTR_LINE_END;
//BFS04//BFS01  pSlotIds[XATTR_LINESTARTWIDTH   -XATTR_START] = SID_ATTR_LINE_STARTWIDTH;
//BFS04//BFS01  pSlotIds[XATTR_LINEENDWIDTH     -XATTR_START] = SID_ATTR_LINE_ENDWIDTH;
//BFS04//BFS01  pSlotIds[XATTR_LINESTARTCENTER  -XATTR_START] = SID_ATTR_LINE_STARTCENTER;
//BFS04//BFS01  pSlotIds[XATTR_LINEENDCENTER    -XATTR_START] = SID_ATTR_LINE_ENDCENTER;
//BFS04//BFS01  pSlotIds[XATTR_LINETRANSPARENCE -XATTR_START] = 0;
//BFS04//BFS01  pSlotIds[XATTR_LINEJOINT        -XATTR_START] = 0;
//BFS04//BFS01
//BFS04//BFS01  // Line-Reserven
//BFS04//BFS01  pSlotIds[XATTR_LINERESERVED2        -XATTR_START] = 0;
//BFS04//BFS01  pSlotIds[XATTR_LINERESERVED3        -XATTR_START] = 0;
//BFS04//BFS01  pSlotIds[XATTR_LINERESERVED4        -XATTR_START] = 0;
//BFS04//BFS01  pSlotIds[XATTR_LINERESERVED5        -XATTR_START] = 0;
//BFS04//BFS01  pSlotIds[XATTR_LINERESERVED_LAST    -XATTR_START] = 0;
//BFS04//BFS01
//BFS04//BFS01  pSlotIds[XATTR_FILLSTYLE        -XATTR_START] = SID_ATTR_FILL_STYLE;
//BFS04//BFS01  pSlotIds[XATTR_FILLCOLOR        -XATTR_START] = SID_ATTR_FILL_COLOR;
//BFS04//BFS01  pSlotIds[XATTR_FILLGRADIENT     -XATTR_START] = SID_ATTR_FILL_GRADIENT;
//BFS04//BFS01  pSlotIds[XATTR_FILLHATCH        -XATTR_START] = SID_ATTR_FILL_HATCH;
//BFS04//BFS01  pSlotIds[XATTR_FILLBITMAP       -XATTR_START] = SID_ATTR_FILL_BITMAP;
//BFS04//BFS01  pSlotIds[XATTR_FILLTRANSPARENCE -XATTR_START] = 0;
//BFS04//BFS01  pSlotIds[XATTR_GRADIENTSTEPCOUNT-XATTR_START] = 0;
//BFS04//BFS01
//BFS04//BFS01  pSlotIds[XATTR_FILLBMP_TILE             -XATTR_START] = 0;
//BFS04//BFS01  pSlotIds[XATTR_FILLBMP_POS              -XATTR_START] = 0;
//BFS04//BFS01  pSlotIds[XATTR_FILLBMP_SIZEX            -XATTR_START] = 0;
//BFS04//BFS01  pSlotIds[XATTR_FILLBMP_SIZEY            -XATTR_START] = 0;
//BFS04//BFS01  pSlotIds[XATTR_FILLBMP_SIZELOG          -XATTR_START] = 0;
//BFS04//BFS01  pSlotIds[XATTR_FILLBMP_TILEOFFSETX      -XATTR_START] = 0;
//BFS04//BFS01  pSlotIds[XATTR_FILLBMP_TILEOFFSETY      -XATTR_START] = 0;
//BFS04//BFS01  pSlotIds[XATTR_FILLBMP_STRETCH          -XATTR_START] = 0;
//BFS04//BFS01  pSlotIds[XATTR_FILLBMP_POSOFFSETX       -XATTR_START] = 0;
//BFS04//BFS01  pSlotIds[XATTR_FILLBMP_POSOFFSETY       -XATTR_START] = 0;
//BFS04//BFS01  pSlotIds[XATTR_FILLFLOATTRANSPARENCE    -XATTR_START] = 0;
//BFS04//BFS01
//BFS04//BFS01  // Fill-Reserven
//BFS04//BFS01  pSlotIds[XATTR_SECONDARYFILLCOLOR   -XATTR_START] = 0;
//BFS04//BFS01  pSlotIds[XATTR_FILLRESERVED3        -XATTR_START] = 0;
//BFS04//BFS01  pSlotIds[XATTR_FILLRESERVED4        -XATTR_START] = 0;
//BFS04//BFS01  pSlotIds[XATTR_FILLRESERVED5        -XATTR_START] = 0;
//BFS04//BFS01  pSlotIds[XATTR_FILLRESERVED6        -XATTR_START] = 0;
//BFS04//BFS01  pSlotIds[XATTR_FILLRESERVED7        -XATTR_START] = 0;
//BFS04//BFS01  pSlotIds[XATTR_FILLRESERVED8        -XATTR_START] = 0;
//BFS04//BFS01  pSlotIds[XATTR_FILLBACKGROUND       -XATTR_START] = 0;
//BFS04//BFS01  pSlotIds[XATTR_FILLRESERVED10       -XATTR_START] = 0;
//BFS04//BFS01  pSlotIds[XATTR_FILLRESERVED11       -XATTR_START] = 0;
//BFS04//BFS01  pSlotIds[XATTR_FILLRESERVED_LAST    -XATTR_START] = 0;
//BFS04//BFS01
//BFS04//BFS01  pSlotIds[XATTR_FORMTXTSTYLE     -XATTR_START] = SID_FORMTEXT_STYLE;
//BFS04//BFS01  pSlotIds[XATTR_FORMTXTADJUST    -XATTR_START] = SID_FORMTEXT_ADJUST;
//BFS04//BFS01  pSlotIds[XATTR_FORMTXTDISTANCE  -XATTR_START] = SID_FORMTEXT_DISTANCE;
//BFS04//BFS01  pSlotIds[XATTR_FORMTXTSTART     -XATTR_START] = SID_FORMTEXT_START;
//BFS04//BFS01  pSlotIds[XATTR_FORMTXTMIRROR    -XATTR_START] = SID_FORMTEXT_MIRROR;
//BFS04//BFS01  pSlotIds[XATTR_FORMTXTOUTLINE   -XATTR_START] = SID_FORMTEXT_OUTLINE;
//BFS04//BFS01  pSlotIds[XATTR_FORMTXTSHADOW    -XATTR_START] = SID_FORMTEXT_SHADOW;
//BFS04//BFS01  pSlotIds[XATTR_FORMTXTSHDWCOLOR -XATTR_START] = SID_FORMTEXT_SHDWCOLOR;
//BFS04//BFS01  pSlotIds[XATTR_FORMTXTSHDWXVAL  -XATTR_START] = SID_FORMTEXT_SHDWXVAL;
//BFS04//BFS01  pSlotIds[XATTR_FORMTXTSHDWYVAL  -XATTR_START] = SID_FORMTEXT_SHDWYVAL;
//BFS04//BFS01  pSlotIds[XATTR_FORMTXTSTDFORM   -XATTR_START] = SID_FORMTEXT_STDFORM;
//BFS04//BFS01  pSlotIds[XATTR_FORMTXTHIDEFORM  -XATTR_START] = SID_FORMTEXT_HIDEFORM;
//BFS04//BFS01
//BFS04//BFS01  // FormText-Reserven
//BFS04//BFS01  pSlotIds[XATTR_FORMTXTSHDWTRANSP-XATTR_START] = 0;
//BFS04//BFS01  pSlotIds[XATTR_FTRESERVED2      -XATTR_START] = 0;
//BFS04//BFS01  pSlotIds[XATTR_FTRESERVED3      -XATTR_START] = 0;
//BFS04//BFS01  pSlotIds[XATTR_FTRESERVED4      -XATTR_START] = 0;
//BFS04//BFS01  pSlotIds[XATTR_FTRESERVED5      -XATTR_START] = 0;
//BFS04//BFS01  pSlotIds[XATTR_FTRESERVED_LAST  -XATTR_START] = 0;
//BFS04//BFS01
//BFS04//BFS01  pSlotIds[XATTRSET_LINE - XATTR_START] = 0; // 20136; alter Hack von MI
//BFS04//BFS01  pSlotIds[XATTRSET_FILL - XATTR_START] = 0; // 20135; alter Hack von MI
//BFS04//BFS01//BFS01   pSlotIds[XATTRSET_TEXT - XATTR_START] = 0;
//BFS04//BFS01#endif
//BFS04
//BFS04//BFS04  if (XATTR_START == GetFirstWhich() && XATTR_END == GetLastWhich())
//BFS04//BFS04  {
//BFS04//BFS04      SetDefaults(ppPoolDefaults);
//BFS04//BFS04      SetItemInfos(pItemInfos);
//BFS04//BFS04//BFS01#if SUPD<355
//BFS04//BFS04//BFS01       SetMap(pSlotIds);
//BFS04//BFS04//BFS01#endif
//BFS04//BFS04  }
//BFS04}


/*************************************************************************
|*
|* copy ctor, sorgt dafuer, dass die static defaults gecloned werden
|*            (Parameter 2 = TRUE)
|*
\************************************************************************/

XOutdevItemPool::XOutdevItemPool(const XOutdevItemPool& rPool)
:   SfxItemPool(rPool, TRUE),
    mppLocalPoolDefaults(0L),
    mpLocalItemInfos(0L)
{
//BFS05 // damit geclonete Pools nicht im dtor auf die Nase fallen
//BFS05 // endgueltige Loesung --> MI
//BFS05 ppPoolDefaults = NULL;
}

/*************************************************************************
|*
|* Clone()
|*
\************************************************************************/

SfxItemPool* XOutdevItemPool::Clone() const
{
    return new XOutdevItemPool(*this);
}

/*************************************************************************
|*
|* Destruktor
|*
\************************************************************************/

XOutdevItemPool::~XOutdevItemPool()
{
//BFS01#if SUPD<355
//BFS01 if (pSlotIds!=NULL) delete[] pSlotIds;
//BFS01#endif

    Delete();

    // remove own static defaults
    if(mppLocalPoolDefaults)
    {
        SfxPoolItem** ppDefaultItem = mppLocalPoolDefaults;
//BFS01     for ( USHORT i = nEnd - nStart + 1; i; --i, ++ppDefaultItem )
        for(sal_uInt16 i(GetLastWhich() - GetFirstWhich() + 1); i; --i, ++ppDefaultItem)
        {
            if ( *ppDefaultItem ) //Teile schon von abgel. Klasse abgeraeumt!
            {
//BFS04#ifndef PRODUCT
                SetRefCount( **ppDefaultItem, 0 );
//BFS04#endif
                delete *ppDefaultItem;
            }
        }

        delete[] mppLocalPoolDefaults;
    }

    if(mpLocalItemInfos)
    {
        delete[] mpLocalItemInfos;
    }
}

// eof