diff options
Diffstat (limited to 'svx/source/svdraw/svdattr.cxx')
-rw-r--r-- | svx/source/svdraw/svdattr.cxx | 2429 |
1 files changed, 2429 insertions, 0 deletions
diff --git a/svx/source/svdraw/svdattr.cxx b/svx/source/svdraw/svdattr.cxx new file mode 100644 index 000000000000..1adddfc29b2b --- /dev/null +++ b/svx/source/svdraw/svdattr.cxx @@ -0,0 +1,2429 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * 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_svx.hxx" + + +#include <com/sun/star/drawing/TextFitToSizeType.hpp> +#include <com/sun/star/drawing/TextHorizontalAdjust.hpp> +#include <com/sun/star/drawing/TextVerticalAdjust.hpp> +#include <com/sun/star/drawing/TextAnimationKind.hpp> +#include <com/sun/star/uno/Any.hxx> +#include <com/sun/star/drawing/TextAnimationDirection.hpp> +#include <com/sun/star/drawing/ConnectorType.hpp> +#include <com/sun/star/drawing/MeasureKind.hpp> +#include <com/sun/star/drawing/MeasureTextHorzPos.hpp> +#include <com/sun/star/drawing/MeasureTextVertPos.hpp> +#include <com/sun/star/drawing/CircleKind.hpp> +#include <com/sun/star/uno/Sequence.hxx> + +#include <unotools/intlwrapper.hxx> +#include <comphelper/processfactory.hxx> +#include <vcl/svapp.hxx> +#include <svx/svdattr.hxx> +#include <svx/svdattrx.hxx> +#include <svx/svdpool.hxx> + +#include <svl/solar.hrc> +#include "editeng/xmlcnitm.hxx" + +#include <svx/svxids.hrc> +#include <svx/xtable.hxx> // fuer RGB_Color() +#include "svx/svditext.hxx" +#include <svx/svdmodel.hxx> // fuer DEGREE_CHAR +#include <svx/svdtrans.hxx> +#include "svx/svdglob.hxx" // Stringcache +#include "svx/svdstr.hrc" +#include <svx/sdgcpitm.hxx> +#include <editeng/adjitem.hxx> +#include <svx/sdtfchim.hxx> +#include <editeng/writingmodeitem.hxx> +#include <tools/bigint.hxx> +#include <tools/stream.hxx> + +#include <svx/xfillit0.hxx> +#include <svx/xflclit.hxx> +#include <svx/xlineit0.hxx> +#include <svx/svx3ditems.hxx> + +#define ITEMID_BOX SDRATTR_TABLE_BORDER +#define ITEMID_BOXINFO SDRATTR_TABLE_BORDER_INNER +#include "editeng/boxitem.hxx" + +#define ITEMID_SHADOW SDRATTR_TABLE_BORDER_SHADOW +#include "editeng/shaditem.hxx" + +#define ITEMID_LINE 0 +#include "editeng/bolnitem.hxx" + +using namespace ::rtl; +using namespace ::com::sun::star; + +/************************************************************************* +|* +|* Konstruktor +|* +\************************************************************************/ + +SdrItemPool::SdrItemPool( + SfxItemPool* _pMaster, + sal_Bool bLoadRefCounts) +: XOutdevItemPool(_pMaster, SDRATTR_START, SDRATTR_END, bLoadRefCounts) +{ + // preapare some constants + const Color aNullCol(RGB_Color(COL_BLACK)); + const XubString aEmptyStr; + const sal_Int32 nDefEdgeDist(500L); // Erstmal hart defaulted fuer Draw (100TH_MM). hier muss noch der MapMode beruecksichtigt werden. + + // init the non-persistent items + for(sal_uInt16 i(SDRATTR_NOTPERSIST_FIRST); i <= SDRATTR_NOTPERSIST_LAST; i++) + { + mpLocalItemInfos[i - SDRATTR_START]._nFlags=0; + } + + // init own PoolDefaults + mppLocalPoolDefaults[SDRATTR_SHADOW -SDRATTR_START]=new SdrShadowItem; + mppLocalPoolDefaults[SDRATTR_SHADOWCOLOR -SDRATTR_START]=new SdrShadowColorItem(aEmptyStr,aNullCol); + mppLocalPoolDefaults[SDRATTR_SHADOWXDIST -SDRATTR_START]=new SdrShadowXDistItem; + mppLocalPoolDefaults[SDRATTR_SHADOWYDIST -SDRATTR_START]=new SdrShadowYDistItem; + mppLocalPoolDefaults[SDRATTR_SHADOWTRANSPARENCE-SDRATTR_START]=new SdrShadowTransparenceItem; + mppLocalPoolDefaults[SDRATTR_SHADOW3D -SDRATTR_START]=new SfxVoidItem(SDRATTR_SHADOW3D ); + mppLocalPoolDefaults[SDRATTR_SHADOWPERSP -SDRATTR_START]=new SfxVoidItem(SDRATTR_SHADOWPERSP ); + mppLocalPoolDefaults[SDRATTR_CAPTIONTYPE -SDRATTR_START]=new SdrCaptionTypeItem ; + mppLocalPoolDefaults[SDRATTR_CAPTIONFIXEDANGLE-SDRATTR_START]=new SdrCaptionFixedAngleItem; + mppLocalPoolDefaults[SDRATTR_CAPTIONANGLE -SDRATTR_START]=new SdrCaptionAngleItem ; + mppLocalPoolDefaults[SDRATTR_CAPTIONGAP -SDRATTR_START]=new SdrCaptionGapItem ; + mppLocalPoolDefaults[SDRATTR_CAPTIONESCDIR -SDRATTR_START]=new SdrCaptionEscDirItem ; + mppLocalPoolDefaults[SDRATTR_CAPTIONESCISREL -SDRATTR_START]=new SdrCaptionEscIsRelItem ; + mppLocalPoolDefaults[SDRATTR_CAPTIONESCREL -SDRATTR_START]=new SdrCaptionEscRelItem ; + mppLocalPoolDefaults[SDRATTR_CAPTIONESCABS -SDRATTR_START]=new SdrCaptionEscAbsItem ; + mppLocalPoolDefaults[SDRATTR_CAPTIONLINELEN -SDRATTR_START]=new SdrCaptionLineLenItem ; + mppLocalPoolDefaults[SDRATTR_CAPTIONFITLINELEN-SDRATTR_START]=new SdrCaptionFitLineLenItem; + mppLocalPoolDefaults[SDRATTR_ECKENRADIUS -SDRATTR_START]=new SdrEckenradiusItem; + mppLocalPoolDefaults[SDRATTR_TEXT_MINFRAMEHEIGHT -SDRATTR_START]=new SdrTextMinFrameHeightItem; + mppLocalPoolDefaults[SDRATTR_TEXT_AUTOGROWHEIGHT -SDRATTR_START]=new SdrTextAutoGrowHeightItem; + mppLocalPoolDefaults[SDRATTR_TEXT_FITTOSIZE -SDRATTR_START]=new SdrTextFitToSizeTypeItem; + mppLocalPoolDefaults[SDRATTR_TEXT_LEFTDIST -SDRATTR_START]=new SdrTextLeftDistItem; + mppLocalPoolDefaults[SDRATTR_TEXT_RIGHTDIST -SDRATTR_START]=new SdrTextRightDistItem; + mppLocalPoolDefaults[SDRATTR_TEXT_UPPERDIST -SDRATTR_START]=new SdrTextUpperDistItem; + mppLocalPoolDefaults[SDRATTR_TEXT_LOWERDIST -SDRATTR_START]=new SdrTextLowerDistItem; + mppLocalPoolDefaults[SDRATTR_TEXT_VERTADJUST -SDRATTR_START]=new SdrTextVertAdjustItem; + mppLocalPoolDefaults[SDRATTR_TEXT_MAXFRAMEHEIGHT -SDRATTR_START]=new SdrTextMaxFrameHeightItem; + mppLocalPoolDefaults[SDRATTR_TEXT_MINFRAMEWIDTH -SDRATTR_START]=new SdrTextMinFrameWidthItem; + mppLocalPoolDefaults[SDRATTR_TEXT_MAXFRAMEWIDTH -SDRATTR_START]=new SdrTextMaxFrameWidthItem; + mppLocalPoolDefaults[SDRATTR_TEXT_AUTOGROWWIDTH -SDRATTR_START]=new SdrTextAutoGrowWidthItem; + mppLocalPoolDefaults[SDRATTR_TEXT_HORZADJUST -SDRATTR_START]=new SdrTextHorzAdjustItem; + mppLocalPoolDefaults[SDRATTR_TEXT_ANIKIND -SDRATTR_START]=new SdrTextAniKindItem; + mppLocalPoolDefaults[SDRATTR_TEXT_ANIDIRECTION -SDRATTR_START]=new SdrTextAniDirectionItem; + mppLocalPoolDefaults[SDRATTR_TEXT_ANISTARTINSIDE -SDRATTR_START]=new SdrTextAniStartInsideItem; + mppLocalPoolDefaults[SDRATTR_TEXT_ANISTOPINSIDE -SDRATTR_START]=new SdrTextAniStopInsideItem; + mppLocalPoolDefaults[SDRATTR_TEXT_ANICOUNT -SDRATTR_START]=new SdrTextAniCountItem; + mppLocalPoolDefaults[SDRATTR_TEXT_ANIDELAY -SDRATTR_START]=new SdrTextAniDelayItem; + mppLocalPoolDefaults[SDRATTR_TEXT_ANIAMOUNT -SDRATTR_START]=new SdrTextAniAmountItem; + mppLocalPoolDefaults[SDRATTR_TEXT_CONTOURFRAME -SDRATTR_START]=new SdrTextContourFrameItem; + mppLocalPoolDefaults[SDRATTR_CUSTOMSHAPE_ADJUSTMENT -SDRATTR_START]=new SdrCustomShapeAdjustmentItem; + mppLocalPoolDefaults[SDRATTR_XMLATTRIBUTES -SDRATTR_START]=new SvXMLAttrContainerItem( SDRATTR_XMLATTRIBUTES ); + mppLocalPoolDefaults[SDRATTR_TEXT_USEFIXEDCELLHEIGHT -SDRATTR_START]=new SdrTextFixedCellHeightItem; + mppLocalPoolDefaults[SDRATTR_TEXT_WORDWRAP -SDRATTR_START]=new SdrTextWordWrapItem; + mppLocalPoolDefaults[SDRATTR_TEXT_AUTOGROWSIZE -SDRATTR_START]=new SdrTextAutoGrowSizeItem; + mppLocalPoolDefaults[SDRATTR_EDGEKIND -SDRATTR_START]=new SdrEdgeKindItem; + mppLocalPoolDefaults[SDRATTR_EDGENODE1HORZDIST-SDRATTR_START]=new SdrEdgeNode1HorzDistItem(nDefEdgeDist); + mppLocalPoolDefaults[SDRATTR_EDGENODE1VERTDIST-SDRATTR_START]=new SdrEdgeNode1VertDistItem(nDefEdgeDist); + mppLocalPoolDefaults[SDRATTR_EDGENODE2HORZDIST-SDRATTR_START]=new SdrEdgeNode2HorzDistItem(nDefEdgeDist); + mppLocalPoolDefaults[SDRATTR_EDGENODE2VERTDIST-SDRATTR_START]=new SdrEdgeNode2VertDistItem(nDefEdgeDist); + mppLocalPoolDefaults[SDRATTR_EDGENODE1GLUEDIST-SDRATTR_START]=new SdrEdgeNode1GlueDistItem; + mppLocalPoolDefaults[SDRATTR_EDGENODE2GLUEDIST-SDRATTR_START]=new SdrEdgeNode2GlueDistItem; + mppLocalPoolDefaults[SDRATTR_EDGELINEDELTAANZ -SDRATTR_START]=new SdrEdgeLineDeltaAnzItem; + mppLocalPoolDefaults[SDRATTR_EDGELINE1DELTA -SDRATTR_START]=new SdrEdgeLine1DeltaItem; + mppLocalPoolDefaults[SDRATTR_EDGELINE2DELTA -SDRATTR_START]=new SdrEdgeLine2DeltaItem; + mppLocalPoolDefaults[SDRATTR_EDGELINE3DELTA -SDRATTR_START]=new SdrEdgeLine3DeltaItem; + mppLocalPoolDefaults[SDRATTR_MEASUREKIND -SDRATTR_START]=new SdrMeasureKindItem; + mppLocalPoolDefaults[SDRATTR_MEASURETEXTHPOS -SDRATTR_START]=new SdrMeasureTextHPosItem; + mppLocalPoolDefaults[SDRATTR_MEASURETEXTVPOS -SDRATTR_START]=new SdrMeasureTextVPosItem; + mppLocalPoolDefaults[SDRATTR_MEASURELINEDIST -SDRATTR_START]=new SdrMeasureLineDistItem(800); + mppLocalPoolDefaults[SDRATTR_MEASUREHELPLINEOVERHANG -SDRATTR_START]=new SdrMeasureHelplineOverhangItem(200); + mppLocalPoolDefaults[SDRATTR_MEASUREHELPLINEDIST -SDRATTR_START]=new SdrMeasureHelplineDistItem(100); + mppLocalPoolDefaults[SDRATTR_MEASUREHELPLINE1LEN -SDRATTR_START]=new SdrMeasureHelpline1LenItem; + mppLocalPoolDefaults[SDRATTR_MEASUREHELPLINE2LEN -SDRATTR_START]=new SdrMeasureHelpline2LenItem; + mppLocalPoolDefaults[SDRATTR_MEASUREBELOWREFEDGE -SDRATTR_START]=new SdrMeasureBelowRefEdgeItem; + mppLocalPoolDefaults[SDRATTR_MEASURETEXTROTA90 -SDRATTR_START]=new SdrMeasureTextRota90Item; + mppLocalPoolDefaults[SDRATTR_MEASURETEXTUPSIDEDOWN -SDRATTR_START]=new SdrMeasureTextUpsideDownItem; + mppLocalPoolDefaults[SDRATTR_MEASUREOVERHANG -SDRATTR_START]=new SdrMeasureOverhangItem(600); + mppLocalPoolDefaults[SDRATTR_MEASUREUNIT -SDRATTR_START]=new SdrMeasureUnitItem; + mppLocalPoolDefaults[SDRATTR_MEASURESCALE -SDRATTR_START]=new SdrMeasureScaleItem; + mppLocalPoolDefaults[SDRATTR_MEASURESHOWUNIT -SDRATTR_START]=new SdrMeasureShowUnitItem; + mppLocalPoolDefaults[SDRATTR_MEASUREFORMATSTRING -SDRATTR_START]=new SdrMeasureFormatStringItem(); + mppLocalPoolDefaults[SDRATTR_MEASURETEXTAUTOANGLE -SDRATTR_START]=new SdrMeasureTextAutoAngleItem(); + mppLocalPoolDefaults[SDRATTR_MEASURETEXTAUTOANGLEVIEW-SDRATTR_START]=new SdrMeasureTextAutoAngleViewItem(); + mppLocalPoolDefaults[SDRATTR_MEASURETEXTISFIXEDANGLE -SDRATTR_START]=new SdrMeasureTextIsFixedAngleItem(); + mppLocalPoolDefaults[SDRATTR_MEASURETEXTFIXEDANGLE -SDRATTR_START]=new SdrMeasureTextFixedAngleItem(); + mppLocalPoolDefaults[SDRATTR_MEASUREDECIMALPLACES -SDRATTR_START]=new SdrMeasureDecimalPlacesItem(); + mppLocalPoolDefaults[SDRATTR_CIRCKIND -SDRATTR_START]=new SdrCircKindItem; + mppLocalPoolDefaults[SDRATTR_CIRCSTARTANGLE-SDRATTR_START]=new SdrCircStartAngleItem; + mppLocalPoolDefaults[SDRATTR_CIRCENDANGLE -SDRATTR_START]=new SdrCircEndAngleItem; + mppLocalPoolDefaults[SDRATTR_OBJMOVEPROTECT -SDRATTR_START]=new SdrObjMoveProtectItem; + mppLocalPoolDefaults[SDRATTR_OBJSIZEPROTECT -SDRATTR_START]=new SdrObjSizeProtectItem; + mppLocalPoolDefaults[SDRATTR_OBJPRINTABLE -SDRATTR_START]=new SdrObjPrintableItem; + mppLocalPoolDefaults[SDRATTR_OBJVISIBLE -SDRATTR_START]=new SdrObjVisibleItem; + mppLocalPoolDefaults[SDRATTR_LAYERID -SDRATTR_START]=new SdrLayerIdItem; + mppLocalPoolDefaults[SDRATTR_LAYERNAME -SDRATTR_START]=new SdrLayerNameItem; + mppLocalPoolDefaults[SDRATTR_OBJECTNAME -SDRATTR_START]=new SdrObjectNameItem; + mppLocalPoolDefaults[SDRATTR_ALLPOSITIONX -SDRATTR_START]=new SdrAllPositionXItem; + mppLocalPoolDefaults[SDRATTR_ALLPOSITIONY -SDRATTR_START]=new SdrAllPositionYItem; + mppLocalPoolDefaults[SDRATTR_ALLSIZEWIDTH -SDRATTR_START]=new SdrAllSizeWidthItem; + mppLocalPoolDefaults[SDRATTR_ALLSIZEHEIGHT -SDRATTR_START]=new SdrAllSizeHeightItem; + mppLocalPoolDefaults[SDRATTR_ONEPOSITIONX -SDRATTR_START]=new SdrOnePositionXItem; + mppLocalPoolDefaults[SDRATTR_ONEPOSITIONY -SDRATTR_START]=new SdrOnePositionYItem; + mppLocalPoolDefaults[SDRATTR_ONESIZEWIDTH -SDRATTR_START]=new SdrOneSizeWidthItem; + mppLocalPoolDefaults[SDRATTR_ONESIZEHEIGHT -SDRATTR_START]=new SdrOneSizeHeightItem; + mppLocalPoolDefaults[SDRATTR_LOGICSIZEWIDTH -SDRATTR_START]=new SdrLogicSizeWidthItem; + mppLocalPoolDefaults[SDRATTR_LOGICSIZEHEIGHT-SDRATTR_START]=new SdrLogicSizeHeightItem; + mppLocalPoolDefaults[SDRATTR_ROTATEANGLE -SDRATTR_START]=new SdrRotateAngleItem; + mppLocalPoolDefaults[SDRATTR_SHEARANGLE -SDRATTR_START]=new SdrShearAngleItem; + mppLocalPoolDefaults[SDRATTR_MOVEX -SDRATTR_START]=new SdrMoveXItem; + mppLocalPoolDefaults[SDRATTR_MOVEY -SDRATTR_START]=new SdrMoveYItem; + mppLocalPoolDefaults[SDRATTR_RESIZEXONE -SDRATTR_START]=new SdrResizeXOneItem; + mppLocalPoolDefaults[SDRATTR_RESIZEYONE -SDRATTR_START]=new SdrResizeYOneItem; + mppLocalPoolDefaults[SDRATTR_ROTATEONE -SDRATTR_START]=new SdrRotateOneItem; + mppLocalPoolDefaults[SDRATTR_HORZSHEARONE -SDRATTR_START]=new SdrHorzShearOneItem; + mppLocalPoolDefaults[SDRATTR_VERTSHEARONE -SDRATTR_START]=new SdrVertShearOneItem; + mppLocalPoolDefaults[SDRATTR_RESIZEXALL -SDRATTR_START]=new SdrResizeXAllItem; + mppLocalPoolDefaults[SDRATTR_RESIZEYALL -SDRATTR_START]=new SdrResizeYAllItem; + mppLocalPoolDefaults[SDRATTR_ROTATEALL -SDRATTR_START]=new SdrRotateAllItem; + mppLocalPoolDefaults[SDRATTR_HORZSHEARALL -SDRATTR_START]=new SdrHorzShearAllItem; + mppLocalPoolDefaults[SDRATTR_VERTSHEARALL -SDRATTR_START]=new SdrVertShearAllItem; + mppLocalPoolDefaults[SDRATTR_TRANSFORMREF1X -SDRATTR_START]=new SdrTransformRef1XItem; + mppLocalPoolDefaults[SDRATTR_TRANSFORMREF1Y -SDRATTR_START]=new SdrTransformRef1YItem; + mppLocalPoolDefaults[SDRATTR_TRANSFORMREF2X -SDRATTR_START]=new SdrTransformRef2XItem; + mppLocalPoolDefaults[SDRATTR_TRANSFORMREF2Y -SDRATTR_START]=new SdrTransformRef2YItem; + mppLocalPoolDefaults[SDRATTR_TEXTDIRECTION -SDRATTR_START]=new SvxWritingModeItem(com::sun::star::text::WritingMode_LR_TB, SDRATTR_TEXTDIRECTION); + mppLocalPoolDefaults[ SDRATTR_GRAFRED - SDRATTR_START] = new SdrGrafRedItem; + mppLocalPoolDefaults[ SDRATTR_GRAFGREEN - SDRATTR_START] = new SdrGrafGreenItem; + mppLocalPoolDefaults[ SDRATTR_GRAFBLUE - SDRATTR_START] = new SdrGrafBlueItem; + mppLocalPoolDefaults[ SDRATTR_GRAFLUMINANCE - SDRATTR_START] = new SdrGrafLuminanceItem; + mppLocalPoolDefaults[ SDRATTR_GRAFCONTRAST - SDRATTR_START] = new SdrGrafContrastItem; + mppLocalPoolDefaults[ SDRATTR_GRAFGAMMA - SDRATTR_START] = new SdrGrafGamma100Item; + mppLocalPoolDefaults[ SDRATTR_GRAFTRANSPARENCE - SDRATTR_START] = new SdrGrafTransparenceItem; + mppLocalPoolDefaults[ SDRATTR_GRAFINVERT - SDRATTR_START] = new SdrGrafInvertItem; + mppLocalPoolDefaults[ SDRATTR_GRAFMODE - SDRATTR_START] = new SdrGrafModeItem; + mppLocalPoolDefaults[ SDRATTR_GRAFCROP - SDRATTR_START] = new SdrGrafCropItem; + mppLocalPoolDefaults[ SDRATTR_3DOBJ_PERCENT_DIAGONAL - SDRATTR_START ] = new Svx3DPercentDiagonalItem; + mppLocalPoolDefaults[ SDRATTR_3DOBJ_BACKSCALE - SDRATTR_START ] = new Svx3DBackscaleItem; + mppLocalPoolDefaults[ SDRATTR_3DOBJ_DEPTH - SDRATTR_START ] = new Svx3DDepthItem; + mppLocalPoolDefaults[ SDRATTR_3DOBJ_HORZ_SEGS - SDRATTR_START ] = new Svx3DHorizontalSegmentsItem; + mppLocalPoolDefaults[ SDRATTR_3DOBJ_VERT_SEGS - SDRATTR_START ] = new Svx3DVerticalSegmentsItem; + mppLocalPoolDefaults[ SDRATTR_3DOBJ_END_ANGLE - SDRATTR_START ] = new Svx3DEndAngleItem; + mppLocalPoolDefaults[ SDRATTR_3DOBJ_DOUBLE_SIDED - SDRATTR_START ] = new Svx3DDoubleSidedItem; + mppLocalPoolDefaults[ SDRATTR_3DOBJ_NORMALS_KIND - SDRATTR_START ] = new Svx3DNormalsKindItem; + mppLocalPoolDefaults[ SDRATTR_3DOBJ_NORMALS_INVERT - SDRATTR_START ] = new Svx3DNormalsInvertItem; + mppLocalPoolDefaults[ SDRATTR_3DOBJ_TEXTURE_PROJ_X - SDRATTR_START ] = new Svx3DTextureProjectionXItem; + mppLocalPoolDefaults[ SDRATTR_3DOBJ_TEXTURE_PROJ_Y - SDRATTR_START ] = new Svx3DTextureProjectionYItem; + mppLocalPoolDefaults[ SDRATTR_3DOBJ_SHADOW_3D - SDRATTR_START ] = new Svx3DShadow3DItem; + mppLocalPoolDefaults[ SDRATTR_3DOBJ_MAT_COLOR - SDRATTR_START ] = new Svx3DMaterialColorItem; + mppLocalPoolDefaults[ SDRATTR_3DOBJ_MAT_EMISSION - SDRATTR_START ] = new Svx3DMaterialEmissionItem; + mppLocalPoolDefaults[ SDRATTR_3DOBJ_MAT_SPECULAR - SDRATTR_START ] = new Svx3DMaterialSpecularItem; + mppLocalPoolDefaults[ SDRATTR_3DOBJ_MAT_SPECULAR_INTENSITY - SDRATTR_START ] = new Svx3DMaterialSpecularIntensityItem; + mppLocalPoolDefaults[ SDRATTR_3DOBJ_TEXTURE_KIND - SDRATTR_START ] = new Svx3DTextureKindItem; + mppLocalPoolDefaults[ SDRATTR_3DOBJ_TEXTURE_MODE - SDRATTR_START ] = new Svx3DTextureModeItem; + mppLocalPoolDefaults[ SDRATTR_3DOBJ_TEXTURE_FILTER - SDRATTR_START ] = new Svx3DTextureFilterItem; + mppLocalPoolDefaults[ SDRATTR_3DOBJ_SMOOTH_NORMALS - SDRATTR_START ] = new Svx3DSmoothNormalsItem; + mppLocalPoolDefaults[ SDRATTR_3DOBJ_SMOOTH_LIDS - SDRATTR_START ] = new Svx3DSmoothLidsItem; + mppLocalPoolDefaults[ SDRATTR_3DOBJ_CHARACTER_MODE - SDRATTR_START ] = new Svx3DCharacterModeItem; + mppLocalPoolDefaults[ SDRATTR_3DOBJ_CLOSE_FRONT - SDRATTR_START ] = new Svx3DCloseFrontItem; + mppLocalPoolDefaults[ SDRATTR_3DOBJ_CLOSE_BACK - SDRATTR_START ] = new Svx3DCloseBackItem; + mppLocalPoolDefaults[ SDRATTR_3DOBJ_REDUCED_LINE_GEOMETRY - SDRATTR_START ] = new Svx3DReducedLineGeometryItem; + mppLocalPoolDefaults[ SDRATTR_3DSCENE_PERSPECTIVE - SDRATTR_START ] = new Svx3DPerspectiveItem; + mppLocalPoolDefaults[ SDRATTR_3DSCENE_DISTANCE - SDRATTR_START ] = new Svx3DDistanceItem; + mppLocalPoolDefaults[ SDRATTR_3DSCENE_FOCAL_LENGTH - SDRATTR_START ] = new Svx3DFocalLengthItem; + mppLocalPoolDefaults[ SDRATTR_3DSCENE_TWO_SIDED_LIGHTING - SDRATTR_START ] = new Svx3DTwoSidedLightingItem; + mppLocalPoolDefaults[ SDRATTR_3DSCENE_LIGHTCOLOR_1 - SDRATTR_START ] = new Svx3DLightcolor1Item; + mppLocalPoolDefaults[ SDRATTR_3DSCENE_LIGHTCOLOR_2 - SDRATTR_START ] = new Svx3DLightcolor2Item; + mppLocalPoolDefaults[ SDRATTR_3DSCENE_LIGHTCOLOR_3 - SDRATTR_START ] = new Svx3DLightcolor3Item; + mppLocalPoolDefaults[ SDRATTR_3DSCENE_LIGHTCOLOR_4 - SDRATTR_START ] = new Svx3DLightcolor4Item; + mppLocalPoolDefaults[ SDRATTR_3DSCENE_LIGHTCOLOR_5 - SDRATTR_START ] = new Svx3DLightcolor5Item; + mppLocalPoolDefaults[ SDRATTR_3DSCENE_LIGHTCOLOR_6 - SDRATTR_START ] = new Svx3DLightcolor6Item; + mppLocalPoolDefaults[ SDRATTR_3DSCENE_LIGHTCOLOR_7 - SDRATTR_START ] = new Svx3DLightcolor7Item; + mppLocalPoolDefaults[ SDRATTR_3DSCENE_LIGHTCOLOR_8 - SDRATTR_START ] = new Svx3DLightcolor8Item; + mppLocalPoolDefaults[ SDRATTR_3DSCENE_AMBIENTCOLOR - SDRATTR_START ] = new Svx3DAmbientcolorItem; + mppLocalPoolDefaults[ SDRATTR_3DSCENE_LIGHTON_1 - SDRATTR_START ] = new Svx3DLightOnOff1Item; + mppLocalPoolDefaults[ SDRATTR_3DSCENE_LIGHTON_2 - SDRATTR_START ] = new Svx3DLightOnOff2Item; + mppLocalPoolDefaults[ SDRATTR_3DSCENE_LIGHTON_3 - SDRATTR_START ] = new Svx3DLightOnOff3Item; + mppLocalPoolDefaults[ SDRATTR_3DSCENE_LIGHTON_4 - SDRATTR_START ] = new Svx3DLightOnOff4Item; + mppLocalPoolDefaults[ SDRATTR_3DSCENE_LIGHTON_5 - SDRATTR_START ] = new Svx3DLightOnOff5Item; + mppLocalPoolDefaults[ SDRATTR_3DSCENE_LIGHTON_6 - SDRATTR_START ] = new Svx3DLightOnOff6Item; + mppLocalPoolDefaults[ SDRATTR_3DSCENE_LIGHTON_7 - SDRATTR_START ] = new Svx3DLightOnOff7Item; + mppLocalPoolDefaults[ SDRATTR_3DSCENE_LIGHTON_8 - SDRATTR_START ] = new Svx3DLightOnOff8Item; + mppLocalPoolDefaults[ SDRATTR_3DSCENE_LIGHTDIRECTION_1 - SDRATTR_START ] = new Svx3DLightDirection1Item; + mppLocalPoolDefaults[ SDRATTR_3DSCENE_LIGHTDIRECTION_2 - SDRATTR_START ] = new Svx3DLightDirection2Item; + mppLocalPoolDefaults[ SDRATTR_3DSCENE_LIGHTDIRECTION_3 - SDRATTR_START ] = new Svx3DLightDirection3Item; + mppLocalPoolDefaults[ SDRATTR_3DSCENE_LIGHTDIRECTION_4 - SDRATTR_START ] = new Svx3DLightDirection4Item; + mppLocalPoolDefaults[ SDRATTR_3DSCENE_LIGHTDIRECTION_5 - SDRATTR_START ] = new Svx3DLightDirection5Item; + mppLocalPoolDefaults[ SDRATTR_3DSCENE_LIGHTDIRECTION_6 - SDRATTR_START ] = new Svx3DLightDirection6Item; + mppLocalPoolDefaults[ SDRATTR_3DSCENE_LIGHTDIRECTION_7 - SDRATTR_START ] = new Svx3DLightDirection7Item; + mppLocalPoolDefaults[ SDRATTR_3DSCENE_LIGHTDIRECTION_8 - SDRATTR_START ] = new Svx3DLightDirection8Item; + mppLocalPoolDefaults[ SDRATTR_3DSCENE_SHADOW_SLANT - SDRATTR_START ] = new Svx3DShadowSlantItem; + mppLocalPoolDefaults[ SDRATTR_3DSCENE_SHADE_MODE - SDRATTR_START ] = new Svx3DShadeModeItem; + mppLocalPoolDefaults[ SDRATTR_CUSTOMSHAPE_ENGINE - SDRATTR_START ] = new SdrCustomShapeEngineItem; + mppLocalPoolDefaults[ SDRATTR_CUSTOMSHAPE_DATA - SDRATTR_START ] = new SdrCustomShapeDataItem; + mppLocalPoolDefaults[ SDRATTR_CUSTOMSHAPE_GEOMETRY - SDRATTR_START ] = new SdrCustomShapeGeometryItem; + mppLocalPoolDefaults[ SDRATTR_CUSTOMSHAPE_REPLACEMENT_URL - SDRATTR_START ] = new SdrCustomShapeReplacementURLItem; + + SvxBoxItem* pboxItem = new SvxBoxItem( SDRATTR_TABLE_BORDER ); + pboxItem->SetDistance( 100 ); + mppLocalPoolDefaults[ SDRATTR_TABLE_BORDER - SDRATTR_START ] = pboxItem; + + SvxBoxInfoItem* pBoxInfoItem = new SvxBoxInfoItem( SDRATTR_TABLE_BORDER_INNER ); + + pBoxInfoItem->SetTable( TRUE ); + pBoxInfoItem->SetDist( TRUE); // Abstandsfeld immer anzeigen +// pBoxInfoItem->SetMinDist( TRUE );// Minimalgroesse in Tabellen und Absaetzen setzen +// pBoxInfoItem->SetDefDist( MIN_BORDER_DIST );// Default-Abstand immer setzen + pBoxInfoItem->SetValid( VALID_DISABLE, TRUE ); // Einzelne Linien koennen nur in Tabellen DontCare-Status haben + + mppLocalPoolDefaults[ SDRATTR_TABLE_BORDER_INNER - SDRATTR_START ] = pBoxInfoItem; +// mppLocalPoolDefaults[ SDRATTR_TABLE_BORDER_SHADOW - SDRATTR_START ] = new SvxShadowItem( SDRATTR_TABLE_BORDER_SHADOW ); + mppLocalPoolDefaults[ SDRATTR_TABLE_BORDER_TLBR - SDRATTR_START ] = new SvxLineItem( SDRATTR_TABLE_BORDER_TLBR ); + mppLocalPoolDefaults[ SDRATTR_TABLE_BORDER_BLTR - SDRATTR_START ] = new SvxLineItem( SDRATTR_TABLE_BORDER_BLTR ); + + // set own ItemInfos + mpLocalItemInfos[SDRATTR_SHADOW-SDRATTR_START]._nSID=SID_ATTR_FILL_SHADOW; + mpLocalItemInfos[SDRATTR_TEXT_FITTOSIZE-SDRATTR_START]._nSID=SID_ATTR_TEXT_FITTOSIZE; + mpLocalItemInfos[SDRATTR_GRAFCROP-SDRATTR_START]._nSID=SID_ATTR_GRAF_CROP; + + mpLocalItemInfos[SDRATTR_TABLE_BORDER - SDRATTR_START ]._nSID = SID_ATTR_BORDER_OUTER; + mpLocalItemInfos[SDRATTR_TABLE_BORDER_INNER - SDRATTR_START ]._nSID = SID_ATTR_BORDER_INNER; +// mpLocalItemInfos[SDRATTR_TABLE_BORDER_SHADOW - SDRATTR_START ]._nSID = SID_ATTR_BORDER_SHADOW; + mpLocalItemInfos[SDRATTR_TABLE_BORDER_TLBR - SDRATTR_START ]._nSID = SID_ATTR_BORDER_DIAG_TLBR; + mpLocalItemInfos[SDRATTR_TABLE_BORDER_BLTR - SDRATTR_START ]._nSID = SID_ATTR_BORDER_DIAG_BLTR; + + // it's my own creation level, set Defaults and ItemInfos + SetDefaults(mppLocalPoolDefaults); + SetItemInfos(mpLocalItemInfos); +} + +/************************************************************************* +|* +|* copy ctor, sorgt dafuer, dass die static defaults gecloned werden +|* (Parameter 2 = TRUE) +|* +\************************************************************************/ + +SdrItemPool::SdrItemPool(const SdrItemPool& rPool) +: XOutdevItemPool(rPool) +{ +} + +/************************************************************************* +|* +|* Clone() +|* +\************************************************************************/ + +SfxItemPool* __EXPORT SdrItemPool::Clone() const +{ + return new SdrItemPool(*this); +} + +/************************************************************************* +|* +|* Destruktor +|* +\************************************************************************/ + +SdrItemPool::~SdrItemPool() +{ + // dtor of SfxItemPool + Delete(); + + // clear own static Defaults + if(mppLocalPoolDefaults) + { + const sal_uInt16 nBeg(SDRATTR_SHADOW_FIRST - SDRATTR_START); + const sal_uInt16 nEnd2(SDRATTR_END - SDRATTR_START); + + for(sal_uInt16 i(nBeg); i <= nEnd2; i++) + { + SetRefCount(*mppLocalPoolDefaults[i],0); + delete mppLocalPoolDefaults[i]; + mppLocalPoolDefaults[i] = 0L; + } + } + + // split pools before detroying + SetSecondaryPool(NULL); +} + +SfxItemPresentation __EXPORT SdrItemPool::GetPresentation( + const SfxPoolItem& rItem, SfxItemPresentation ePresentation, + SfxMapUnit ePresentationMetric, XubString& rText, + const IntlWrapper * pIntlWrapper) const +{ + if (!IsInvalidItem(&rItem)) { + USHORT nWhich=rItem.Which(); + if (nWhich>=SDRATTR_SHADOW_FIRST && nWhich<=SDRATTR_END) { + rItem.GetPresentation(SFX_ITEM_PRESENTATION_NAMELESS, + GetMetric(nWhich),ePresentationMetric,rText, + pIntlWrapper); + String aStr; + + TakeItemName(nWhich, aStr); + aStr += sal_Unicode(' '); + rText.Insert(aStr, 0); + + return ePresentation; + } + } + return XOutdevItemPool::GetPresentation(rItem,ePresentation,ePresentationMetric,rText,pIntlWrapper); +} + +void SdrItemPool::TakeItemName(sal_uInt16 nWhich, String& rItemName) +{ + ResMgr* pResMgr = ImpGetResMgr(); + USHORT nResId = SIP_UNKNOWN_ATTR; + + switch (nWhich) + { + case XATTR_LINESTYLE : nResId = SIP_XA_LINESTYLE;break; + case XATTR_LINEDASH : nResId = SIP_XA_LINEDASH;break; + case XATTR_LINEWIDTH : nResId = SIP_XA_LINEWIDTH;break; + case XATTR_LINECOLOR : nResId = SIP_XA_LINECOLOR;break; + case XATTR_LINESTART : nResId = SIP_XA_LINESTART;break; + case XATTR_LINEEND : nResId = SIP_XA_LINEEND;break; + case XATTR_LINESTARTWIDTH : nResId = SIP_XA_LINESTARTWIDTH;break; + case XATTR_LINEENDWIDTH : nResId = SIP_XA_LINEENDWIDTH;break; + case XATTR_LINESTARTCENTER : nResId = SIP_XA_LINESTARTCENTER;break; + case XATTR_LINEENDCENTER : nResId = SIP_XA_LINEENDCENTER;break; + case XATTR_LINETRANSPARENCE : nResId = SIP_XA_LINETRANSPARENCE;break; + case XATTR_LINEJOINT : nResId = SIP_XA_LINEJOINT;break; + case XATTRSET_LINE : nResId = SIP_XATTRSET_LINE;break; + + case XATTR_FILLSTYLE : nResId = SIP_XA_FILLSTYLE;break; + case XATTR_FILLCOLOR : nResId = SIP_XA_FILLCOLOR;break; + case XATTR_FILLGRADIENT : nResId = SIP_XA_FILLGRADIENT;break; + case XATTR_FILLHATCH : nResId = SIP_XA_FILLHATCH;break; + case XATTR_FILLBITMAP : nResId = SIP_XA_FILLBITMAP;break; + case XATTR_FILLTRANSPARENCE : nResId = SIP_XA_FILLTRANSPARENCE;break; + case XATTR_GRADIENTSTEPCOUNT : nResId = SIP_XA_GRADIENTSTEPCOUNT;break; + case XATTR_FILLBMP_TILE : nResId = SIP_XA_FILLBMP_TILE;break; + case XATTR_FILLBMP_POS : nResId = SIP_XA_FILLBMP_POS;break; + case XATTR_FILLBMP_SIZEX : nResId = SIP_XA_FILLBMP_SIZEX;break; + case XATTR_FILLBMP_SIZEY : nResId = SIP_XA_FILLBMP_SIZEY;break; + case XATTR_FILLFLOATTRANSPARENCE: nResId = SIP_XA_FILLFLOATTRANSPARENCE;break; + case XATTR_SECONDARYFILLCOLOR : nResId = SIP_XA_SECONDARYFILLCOLOR;break; + case XATTR_FILLBMP_SIZELOG : nResId = SIP_XA_FILLBMP_SIZELOG;break; + case XATTR_FILLBMP_TILEOFFSETX : nResId = SIP_XA_FILLBMP_TILEOFFSETX;break; + case XATTR_FILLBMP_TILEOFFSETY : nResId = SIP_XA_FILLBMP_TILEOFFSETY;break; + case XATTR_FILLBMP_STRETCH : nResId = SIP_XA_FILLBMP_STRETCH;break; + case XATTR_FILLBMP_POSOFFSETX : nResId = SIP_XA_FILLBMP_POSOFFSETX;break; + case XATTR_FILLBMP_POSOFFSETY : nResId = SIP_XA_FILLBMP_POSOFFSETY;break; + case XATTR_FILLBACKGROUND : nResId = SIP_XA_FILLBACKGROUND;break; + + case XATTRSET_FILL : nResId = SIP_XATTRSET_FILL;break; + + case XATTR_FORMTXTSTYLE : nResId = SIP_XA_FORMTXTSTYLE;break; + case XATTR_FORMTXTADJUST : nResId = SIP_XA_FORMTXTADJUST;break; + case XATTR_FORMTXTDISTANCE : nResId = SIP_XA_FORMTXTDISTANCE;break; + case XATTR_FORMTXTSTART : nResId = SIP_XA_FORMTXTSTART;break; + case XATTR_FORMTXTMIRROR : nResId = SIP_XA_FORMTXTMIRROR;break; + case XATTR_FORMTXTOUTLINE : nResId = SIP_XA_FORMTXTOUTLINE;break; + case XATTR_FORMTXTSHADOW : nResId = SIP_XA_FORMTXTSHADOW;break; + case XATTR_FORMTXTSHDWCOLOR : nResId = SIP_XA_FORMTXTSHDWCOLOR;break; + case XATTR_FORMTXTSHDWXVAL : nResId = SIP_XA_FORMTXTSHDWXVAL;break; + case XATTR_FORMTXTSHDWYVAL : nResId = SIP_XA_FORMTXTSHDWYVAL;break; + case XATTR_FORMTXTSTDFORM : nResId = SIP_XA_FORMTXTSTDFORM;break; + case XATTR_FORMTXTHIDEFORM : nResId = SIP_XA_FORMTXTHIDEFORM;break; + case XATTR_FORMTXTSHDWTRANSP: nResId = SIP_XA_FORMTXTSHDWTRANSP;break; + + case SDRATTR_SHADOW : nResId = SIP_SA_SHADOW;break; + case SDRATTR_SHADOWCOLOR : nResId = SIP_SA_SHADOWCOLOR;break; + case SDRATTR_SHADOWXDIST : nResId = SIP_SA_SHADOWXDIST;break; + case SDRATTR_SHADOWYDIST : nResId = SIP_SA_SHADOWYDIST;break; + case SDRATTR_SHADOWTRANSPARENCE: nResId = SIP_SA_SHADOWTRANSPARENCE;break; + case SDRATTR_SHADOW3D : nResId = SIP_SA_SHADOW3D;break; + case SDRATTR_SHADOWPERSP : nResId = SIP_SA_SHADOWPERSP;break; + + case SDRATTR_CAPTIONTYPE : nResId = SIP_SA_CAPTIONTYPE;break; + case SDRATTR_CAPTIONFIXEDANGLE: nResId = SIP_SA_CAPTIONFIXEDANGLE;break; + case SDRATTR_CAPTIONANGLE : nResId = SIP_SA_CAPTIONANGLE;break; + case SDRATTR_CAPTIONGAP : nResId = SIP_SA_CAPTIONGAP;break; + case SDRATTR_CAPTIONESCDIR : nResId = SIP_SA_CAPTIONESCDIR;break; + case SDRATTR_CAPTIONESCISREL : nResId = SIP_SA_CAPTIONESCISREL;break; + case SDRATTR_CAPTIONESCREL : nResId = SIP_SA_CAPTIONESCREL;break; + case SDRATTR_CAPTIONESCABS : nResId = SIP_SA_CAPTIONESCABS;break; + case SDRATTR_CAPTIONLINELEN : nResId = SIP_SA_CAPTIONLINELEN;break; + case SDRATTR_CAPTIONFITLINELEN: nResId = SIP_SA_CAPTIONFITLINELEN;break; + + case SDRATTR_ECKENRADIUS : nResId = SIP_SA_ECKENRADIUS;break; + case SDRATTR_TEXT_MINFRAMEHEIGHT : nResId = SIP_SA_TEXT_MINFRAMEHEIGHT;break; + case SDRATTR_TEXT_AUTOGROWHEIGHT : nResId = SIP_SA_TEXT_AUTOGROWHEIGHT;break; + case SDRATTR_TEXT_FITTOSIZE : nResId = SIP_SA_TEXT_FITTOSIZE;break; + case SDRATTR_TEXT_LEFTDIST : nResId = SIP_SA_TEXT_LEFTDIST;break; + case SDRATTR_TEXT_RIGHTDIST : nResId = SIP_SA_TEXT_RIGHTDIST;break; + case SDRATTR_TEXT_UPPERDIST : nResId = SIP_SA_TEXT_UPPERDIST;break; + case SDRATTR_TEXT_LOWERDIST : nResId = SIP_SA_TEXT_LOWERDIST;break; + case SDRATTR_TEXT_VERTADJUST : nResId = SIP_SA_TEXT_VERTADJUST;break; + case SDRATTR_TEXT_MAXFRAMEHEIGHT : nResId = SIP_SA_TEXT_MAXFRAMEHEIGHT;break; + case SDRATTR_TEXT_MINFRAMEWIDTH : nResId = SIP_SA_TEXT_MINFRAMEWIDTH;break; + case SDRATTR_TEXT_MAXFRAMEWIDTH : nResId = SIP_SA_TEXT_MAXFRAMEWIDTH;break; + case SDRATTR_TEXT_AUTOGROWWIDTH : nResId = SIP_SA_TEXT_AUTOGROWWIDTH;break; + case SDRATTR_TEXT_HORZADJUST : nResId = SIP_SA_TEXT_HORZADJUST;break; + case SDRATTR_TEXT_ANIKIND : nResId = SIP_SA_TEXT_ANIKIND;break; + case SDRATTR_TEXT_ANIDIRECTION : nResId = SIP_SA_TEXT_ANIDIRECTION;break; + case SDRATTR_TEXT_ANISTARTINSIDE : nResId = SIP_SA_TEXT_ANISTARTINSIDE;break; + case SDRATTR_TEXT_ANISTOPINSIDE : nResId = SIP_SA_TEXT_ANISTOPINSIDE;break; + case SDRATTR_TEXT_ANICOUNT : nResId = SIP_SA_TEXT_ANICOUNT;break; + case SDRATTR_TEXT_ANIDELAY : nResId = SIP_SA_TEXT_ANIDELAY;break; + case SDRATTR_TEXT_ANIAMOUNT : nResId = SIP_SA_TEXT_ANIAMOUNT;break; + case SDRATTR_TEXT_CONTOURFRAME : nResId = SIP_SA_TEXT_CONTOURFRAME;break; + case SDRATTR_CUSTOMSHAPE_ADJUSTMENT : nResId = SIP_SA_CUSTOMSHAPE_ADJUSTMENT;break; + case SDRATTR_XMLATTRIBUTES : nResId = SIP_SA_XMLATTRIBUTES;break; + case SDRATTR_TEXT_USEFIXEDCELLHEIGHT: nResId = SIP_SA_TEXT_USEFIXEDCELLHEIGHT;break; + case SDRATTR_TEXT_WORDWRAP : nResId = SIP_SA_WORDWRAP;break; + case SDRATTR_TEXT_AUTOGROWSIZE : nResId = SIP_SA_AUTOGROWSIZE;break; + + case SDRATTR_EDGEKIND : nResId = SIP_SA_EDGEKIND;break; + case SDRATTR_EDGENODE1HORZDIST : nResId = SIP_SA_EDGENODE1HORZDIST;break; + case SDRATTR_EDGENODE1VERTDIST : nResId = SIP_SA_EDGENODE1VERTDIST;break; + case SDRATTR_EDGENODE2HORZDIST : nResId = SIP_SA_EDGENODE2HORZDIST;break; + case SDRATTR_EDGENODE2VERTDIST : nResId = SIP_SA_EDGENODE2VERTDIST;break; + case SDRATTR_EDGENODE1GLUEDIST : nResId = SIP_SA_EDGENODE1GLUEDIST;break; + case SDRATTR_EDGENODE2GLUEDIST : nResId = SIP_SA_EDGENODE2GLUEDIST;break; + case SDRATTR_EDGELINEDELTAANZ : nResId = SIP_SA_EDGELINEDELTAANZ;break; + case SDRATTR_EDGELINE1DELTA : nResId = SIP_SA_EDGELINE1DELTA;break; + case SDRATTR_EDGELINE2DELTA : nResId = SIP_SA_EDGELINE2DELTA;break; + case SDRATTR_EDGELINE3DELTA : nResId = SIP_SA_EDGELINE3DELTA;break; + + case SDRATTR_MEASUREKIND : nResId = SIP_SA_MEASUREKIND;break; + case SDRATTR_MEASURETEXTHPOS : nResId = SIP_SA_MEASURETEXTHPOS;break; + case SDRATTR_MEASURETEXTVPOS : nResId = SIP_SA_MEASURETEXTVPOS;break; + case SDRATTR_MEASURELINEDIST : nResId = SIP_SA_MEASURELINEDIST;break; + case SDRATTR_MEASUREHELPLINEOVERHANG : nResId = SIP_SA_MEASUREHELPLINEOVERHANG;break; + case SDRATTR_MEASUREHELPLINEDIST : nResId = SIP_SA_MEASUREHELPLINEDIST;break; + case SDRATTR_MEASUREHELPLINE1LEN : nResId = SIP_SA_MEASUREHELPLINE1LEN;break; + case SDRATTR_MEASUREHELPLINE2LEN : nResId = SIP_SA_MEASUREHELPLINE2LEN;break; + case SDRATTR_MEASUREBELOWREFEDGE : nResId = SIP_SA_MEASUREBELOWREFEDGE;break; + case SDRATTR_MEASURETEXTROTA90 : nResId = SIP_SA_MEASURETEXTROTA90;break; + case SDRATTR_MEASURETEXTUPSIDEDOWN : nResId = SIP_SA_MEASURETEXTUPSIDEDOWN;break; + case SDRATTR_MEASUREOVERHANG : nResId = SIP_SA_MEASUREOVERHANG;break; + case SDRATTR_MEASUREUNIT : nResId = SIP_SA_MEASUREUNIT;break; + case SDRATTR_MEASURESCALE : nResId = SIP_SA_MEASURESCALE;break; + case SDRATTR_MEASURESHOWUNIT : nResId = SIP_SA_MEASURESHOWUNIT;break; + case SDRATTR_MEASUREFORMATSTRING : nResId = SIP_SA_MEASUREFORMATSTRING;break; + case SDRATTR_MEASURETEXTAUTOANGLE : nResId = SIP_SA_MEASURETEXTAUTOANGLE;break; + case SDRATTR_MEASURETEXTAUTOANGLEVIEW: nResId = SIP_SA_MEASURETEXTAUTOANGLEVIEW;break; + case SDRATTR_MEASURETEXTISFIXEDANGLE : nResId = SIP_SA_MEASURETEXTISFIXEDANGLE;break; + case SDRATTR_MEASURETEXTFIXEDANGLE : nResId = SIP_SA_MEASURETEXTFIXEDANGLE;break; + case SDRATTR_MEASUREDECIMALPLACES : nResId = SIP_SA_MEASUREDECIMALPLACES;break; + + case SDRATTR_CIRCKIND : nResId = SIP_SA_CIRCKIND;break; + case SDRATTR_CIRCSTARTANGLE: nResId = SIP_SA_CIRCSTARTANGLE;break; + case SDRATTR_CIRCENDANGLE : nResId = SIP_SA_CIRCENDANGLE;break; + + case SDRATTR_OBJMOVEPROTECT : nResId = SIP_SA_OBJMOVEPROTECT;break; + case SDRATTR_OBJSIZEPROTECT : nResId = SIP_SA_OBJSIZEPROTECT;break; + case SDRATTR_OBJPRINTABLE : nResId = SIP_SA_OBJPRINTABLE;break; + case SDRATTR_OBJVISIBLE : nResId = SIP_SA_OBJVISIBLE;break; + case SDRATTR_LAYERID : nResId = SIP_SA_LAYERID;break; + case SDRATTR_LAYERNAME : nResId = SIP_SA_LAYERNAME;break; + case SDRATTR_OBJECTNAME : nResId = SIP_SA_OBJECTNAME;break; + case SDRATTR_ALLPOSITIONX : nResId = SIP_SA_ALLPOSITIONX;break; + case SDRATTR_ALLPOSITIONY : nResId = SIP_SA_ALLPOSITIONY;break; + case SDRATTR_ALLSIZEWIDTH : nResId = SIP_SA_ALLSIZEWIDTH;break; + case SDRATTR_ALLSIZEHEIGHT : nResId = SIP_SA_ALLSIZEHEIGHT;break; + case SDRATTR_ONEPOSITIONX : nResId = SIP_SA_ONEPOSITIONX;break; + case SDRATTR_ONEPOSITIONY : nResId = SIP_SA_ONEPOSITIONY;break; + case SDRATTR_ONESIZEWIDTH : nResId = SIP_SA_ONESIZEWIDTH;break; + case SDRATTR_ONESIZEHEIGHT : nResId = SIP_SA_ONESIZEHEIGHT;break; + case SDRATTR_LOGICSIZEWIDTH : nResId = SIP_SA_LOGICSIZEWIDTH;break; + case SDRATTR_LOGICSIZEHEIGHT: nResId = SIP_SA_LOGICSIZEHEIGHT;break; + case SDRATTR_ROTATEANGLE : nResId = SIP_SA_ROTATEANGLE;break; + case SDRATTR_SHEARANGLE : nResId = SIP_SA_SHEARANGLE;break; + case SDRATTR_MOVEX : nResId = SIP_SA_MOVEX;break; + case SDRATTR_MOVEY : nResId = SIP_SA_MOVEY;break; + case SDRATTR_RESIZEXONE : nResId = SIP_SA_RESIZEXONE;break; + case SDRATTR_RESIZEYONE : nResId = SIP_SA_RESIZEYONE;break; + case SDRATTR_ROTATEONE : nResId = SIP_SA_ROTATEONE;break; + case SDRATTR_HORZSHEARONE : nResId = SIP_SA_HORZSHEARONE;break; + case SDRATTR_VERTSHEARONE : nResId = SIP_SA_VERTSHEARONE;break; + case SDRATTR_RESIZEXALL : nResId = SIP_SA_RESIZEXALL;break; + case SDRATTR_RESIZEYALL : nResId = SIP_SA_RESIZEYALL;break; + case SDRATTR_ROTATEALL : nResId = SIP_SA_ROTATEALL;break; + case SDRATTR_HORZSHEARALL : nResId = SIP_SA_HORZSHEARALL;break; + case SDRATTR_VERTSHEARALL : nResId = SIP_SA_VERTSHEARALL;break; + case SDRATTR_TRANSFORMREF1X : nResId = SIP_SA_TRANSFORMREF1X;break; + case SDRATTR_TRANSFORMREF1Y : nResId = SIP_SA_TRANSFORMREF1Y;break; + case SDRATTR_TRANSFORMREF2X : nResId = SIP_SA_TRANSFORMREF2X;break; + case SDRATTR_TRANSFORMREF2Y : nResId = SIP_SA_TRANSFORMREF2Y;break; + + case SDRATTR_GRAFRED : nResId = SIP_SA_GRAFRED;break; + case SDRATTR_GRAFGREEN : nResId = SIP_SA_GRAFGREEN;break; + case SDRATTR_GRAFBLUE : nResId = SIP_SA_GRAFBLUE;break; + case SDRATTR_GRAFLUMINANCE : nResId = SIP_SA_GRAFLUMINANCE;break; + case SDRATTR_GRAFCONTRAST : nResId = SIP_SA_GRAFCONTRAST;break; + case SDRATTR_GRAFGAMMA : nResId = SIP_SA_GRAFGAMMA;break; + case SDRATTR_GRAFTRANSPARENCE : nResId = SIP_SA_GRAFTRANSPARENCE;break; + case SDRATTR_GRAFINVERT : nResId = SIP_SA_GRAFINVERT;break; + case SDRATTR_GRAFMODE : nResId = SIP_SA_GRAFMODE;break; + case SDRATTR_GRAFCROP : nResId = SIP_SA_GRAFCROP;break; + + case EE_PARA_HYPHENATE : nResId = SIP_EE_PARA_HYPHENATE;break; + case EE_PARA_BULLETSTATE: nResId = SIP_EE_PARA_BULLETSTATE;break; + case EE_PARA_OUTLLRSPACE: nResId = SIP_EE_PARA_OUTLLRSPACE;break; + case EE_PARA_OUTLLEVEL : nResId = SIP_EE_PARA_OUTLLEVEL;break; + case EE_PARA_BULLET : nResId = SIP_EE_PARA_BULLET;break; + case EE_PARA_LRSPACE : nResId = SIP_EE_PARA_LRSPACE;break; + case EE_PARA_ULSPACE : nResId = SIP_EE_PARA_ULSPACE;break; + case EE_PARA_SBL : nResId = SIP_EE_PARA_SBL;break; + case EE_PARA_JUST : nResId = SIP_EE_PARA_JUST;break; + case EE_PARA_TABS : nResId = SIP_EE_PARA_TABS;break; + + case EE_CHAR_COLOR : nResId = SIP_EE_CHAR_COLOR;break; + case EE_CHAR_FONTINFO : nResId = SIP_EE_CHAR_FONTINFO;break; + case EE_CHAR_FONTHEIGHT : nResId = SIP_EE_CHAR_FONTHEIGHT;break; + case EE_CHAR_FONTWIDTH : nResId = SIP_EE_CHAR_FONTWIDTH;break; + case EE_CHAR_WEIGHT : nResId = SIP_EE_CHAR_WEIGHT;break; + case EE_CHAR_UNDERLINE : nResId = SIP_EE_CHAR_UNDERLINE;break; + case EE_CHAR_OVERLINE : nResId = SIP_EE_CHAR_OVERLINE;break; + case EE_CHAR_STRIKEOUT : nResId = SIP_EE_CHAR_STRIKEOUT;break; + case EE_CHAR_ITALIC : nResId = SIP_EE_CHAR_ITALIC;break; + case EE_CHAR_OUTLINE : nResId = SIP_EE_CHAR_OUTLINE;break; + case EE_CHAR_SHADOW : nResId = SIP_EE_CHAR_SHADOW;break; + case EE_CHAR_ESCAPEMENT : nResId = SIP_EE_CHAR_ESCAPEMENT;break; + case EE_CHAR_PAIRKERNING: nResId = SIP_EE_CHAR_PAIRKERNING;break; + case EE_CHAR_KERNING : nResId = SIP_EE_CHAR_KERNING;break; + case EE_CHAR_WLM : nResId = SIP_EE_CHAR_WLM;break; + case EE_FEATURE_TAB : nResId = SIP_EE_FEATURE_TAB;break; + case EE_FEATURE_LINEBR : nResId = SIP_EE_FEATURE_LINEBR;break; + case EE_FEATURE_NOTCONV : nResId = SIP_EE_FEATURE_NOTCONV;break; + case EE_FEATURE_FIELD : nResId = SIP_EE_FEATURE_FIELD;break; + } // switch + + rItemName = String( ResId( nResId, *pResMgr ) ); +} + +//////////////////////////////////////////////////////////////////////////////// +// FractionItem +//////////////////////////////////////////////////////////////////////////////// + +TYPEINIT1_AUTOFACTORY(SdrFractionItem,SfxPoolItem); + +SdrFractionItem::SdrFractionItem(USHORT nId, SvStream& rIn): + SfxPoolItem(nId) +{ + INT32 nMul,nDiv; + rIn>>nMul; + rIn>>nDiv; + nValue=Fraction(nMul,nDiv); +} + +int __EXPORT SdrFractionItem::operator==(const SfxPoolItem& rCmp) const +{ + return SfxPoolItem::operator==(rCmp) && + ((SdrFractionItem&)rCmp).GetValue()==nValue; +} + +SfxItemPresentation __EXPORT SdrFractionItem::GetPresentation( + SfxItemPresentation ePresentation, SfxMapUnit /*eCoreMetric*/, + SfxMapUnit /*ePresentationMetric*/, XubString &rText, const IntlWrapper *) const +{ + if(nValue.IsValid()) + { + INT32 nDiv = nValue.GetDenominator(); + rText = UniString::CreateFromInt32(nValue.GetNumerator()); + + if(nDiv != 1) + { + rText += sal_Unicode('/'); + rText += UniString::CreateFromInt32(nDiv); + } + } + else + { + rText = UniString(); + rText += sal_Unicode('?'); + } + + if(ePresentation == SFX_ITEM_PRESENTATION_COMPLETE) + { + XubString aStr; + + SdrItemPool::TakeItemName(Which(), aStr); + aStr += sal_Unicode(' '); + rText.Insert(aStr, 0); + } + + return ePresentation; +} + +SfxPoolItem* __EXPORT SdrFractionItem::Create(SvStream& rIn, USHORT /*nVer*/) const +{ + return new SdrFractionItem(Which(),rIn); +} + +SvStream& __EXPORT SdrFractionItem::Store(SvStream& rOut, USHORT /*nItemVers*/) const +{ + rOut<<INT32(nValue.GetNumerator()); + rOut<<INT32(nValue.GetDenominator()); + return rOut; +} + +SfxPoolItem* __EXPORT SdrFractionItem::Clone(SfxItemPool * /*pPool*/) const +{ + return new SdrFractionItem(Which(),GetValue()); +} + +#ifdef SDR_ISPOOLABLE +int __EXPORT SdrFractionItem::IsPoolable() const +{ + USHORT nId=Which(); + return nId<SDRATTR_NOTPERSIST_FIRST || nId>SDRATTR_NOTPERSIST_LAST; +} +#endif + +//////////////////////////////////////////////////////////////////////////////// +// ScaleItem +//////////////////////////////////////////////////////////////////////////////// + +TYPEINIT1_AUTOFACTORY(SdrScaleItem,SdrFractionItem); + +SfxItemPresentation __EXPORT SdrScaleItem::GetPresentation( + SfxItemPresentation ePresentation, SfxMapUnit /*eCoreMetric*/, + SfxMapUnit /*ePresentationMetric*/, XubString &rText, const IntlWrapper *) const +{ + if(GetValue().IsValid()) + { + INT32 nDiv = GetValue().GetDenominator(); + + rText = UniString::CreateFromInt32(GetValue().GetNumerator()); + rText += sal_Unicode(':'); + rText += UniString::CreateFromInt32(nDiv); + } + else + { + rText = UniString(); + rText += sal_Unicode('?'); + } + + if(ePresentation == SFX_ITEM_PRESENTATION_COMPLETE) + { + XubString aStr; + + SdrItemPool::TakeItemName(Which(), aStr); + aStr += sal_Unicode(' '); + rText.Insert(aStr, 0); + } + + return ePresentation; +} + +SfxPoolItem* __EXPORT SdrScaleItem::Create(SvStream& rIn, USHORT /*nVer*/) const +{ + return new SdrScaleItem(Which(),rIn); +} + +SfxPoolItem* __EXPORT SdrScaleItem::Clone(SfxItemPool * /*pPool*/) const +{ + return new SdrScaleItem(Which(),GetValue()); +} + +//////////////////////////////////////////////////////////////////////////////// +// OnOffItem +//////////////////////////////////////////////////////////////////////////////// + +TYPEINIT1_AUTOFACTORY(SdrOnOffItem,SfxBoolItem); + +SfxPoolItem* __EXPORT SdrOnOffItem::Clone(SfxItemPool* /*pPool*/) const +{ + return new SdrOnOffItem(Which(),GetValue()); +} + +SfxPoolItem* __EXPORT SdrOnOffItem::Create(SvStream& rIn, USHORT /*nVer*/) const +{ + return new SdrOnOffItem(Which(),rIn); +} + +XubString __EXPORT SdrOnOffItem::GetValueTextByVal(BOOL bVal) const +{ + if (bVal) return ImpGetResStr(STR_ItemValON); + else return ImpGetResStr(STR_ItemValOFF); +} + +SfxItemPresentation __EXPORT SdrOnOffItem::GetPresentation(SfxItemPresentation ePres, + SfxMapUnit /*eCoreMetric*/, SfxMapUnit /*ePresMetric*/, XubString& rText, const IntlWrapper *) const +{ + rText=GetValueTextByVal(GetValue()); + if (ePres==SFX_ITEM_PRESENTATION_COMPLETE) { + String aStr; + + SdrItemPool::TakeItemName(Which(), aStr); + aStr += sal_Unicode(' '); + rText.Insert(aStr, 0); + } + return ePres; +} + +#ifdef SDR_ISPOOLABLE +int __EXPORT SdrOnOffItem::IsPoolable() const +{ + USHORT nId=Which(); + return nId<SDRATTR_NOTPERSIST_FIRST || nId>SDRATTR_NOTPERSIST_LAST; +} +#endif + +TYPEINIT1_AUTOFACTORY(SdrYesNoItem,SfxBoolItem); + +SfxPoolItem* __EXPORT SdrYesNoItem::Clone(SfxItemPool* /*pPool*/) const +{ + return new SdrYesNoItem(Which(),GetValue()); +} + +SfxPoolItem* __EXPORT SdrYesNoItem::Create(SvStream& rIn, USHORT /*nVer*/) const +{ + return new SdrYesNoItem(Which(),rIn); +} + +XubString __EXPORT SdrYesNoItem::GetValueTextByVal(BOOL bVal) const +{ + if (bVal) return ImpGetResStr(STR_ItemValYES); + else return ImpGetResStr(STR_ItemValNO); +} + +SfxItemPresentation __EXPORT SdrYesNoItem::GetPresentation(SfxItemPresentation ePres, + SfxMapUnit /*eCoreMetric*/, SfxMapUnit /*ePresMetric*/, XubString& rText, const IntlWrapper *) const +{ + rText=GetValueTextByVal(GetValue()); + if (ePres==SFX_ITEM_PRESENTATION_COMPLETE) { + String aStr; + + SdrItemPool::TakeItemName(Which(), aStr); + aStr += sal_Unicode(' '); + rText.Insert(aStr, 0); + } + return ePres; +} + +#ifdef SDR_ISPOOLABLE +int __EXPORT SdrYesNoItem::IsPoolable() const +{ + USHORT nId=Which(); + return nId<SDRATTR_NOTPERSIST_FIRST || nId>SDRATTR_NOTPERSIST_LAST; +} +#endif + +//------------------------------------------------------------ +// class SdrPercentItem +//------------------------------------------------------------ + +TYPEINIT1_AUTOFACTORY(SdrPercentItem,SfxUInt16Item); + +SfxPoolItem* __EXPORT SdrPercentItem::Clone(SfxItemPool* /*pPool*/) const +{ + return new SdrPercentItem(Which(),GetValue()); +} + +SfxPoolItem* __EXPORT SdrPercentItem::Create(SvStream& rIn, USHORT /*nVer*/) const +{ + return new SdrPercentItem(Which(),rIn); +} + +SfxItemPresentation __EXPORT SdrPercentItem::GetPresentation( + SfxItemPresentation ePres, SfxMapUnit /*eCoreMetric*/, + SfxMapUnit /*ePresMetric*/, XubString& rText, const IntlWrapper *) const +{ + rText = UniString::CreateFromInt32(GetValue()); + rText += sal_Unicode('%'); + + if(ePres == SFX_ITEM_PRESENTATION_COMPLETE) + { + XubString aStr; + + SdrItemPool::TakeItemName(Which(), aStr); + aStr += sal_Unicode(' '); + rText.Insert(aStr, 0); + } + + return ePres; +} + +#ifdef SDR_ISPOOLABLE +int __EXPORT SdrPercentItem::IsPoolable() const +{ + USHORT nId=Which(); + return nId<SDRATTR_NOTPERSIST_FIRST || nId>SDRATTR_NOTPERSIST_LAST; +} +#endif + +//------------------------------------------------------------ +// class SdrAngleItem +//------------------------------------------------------------ + +TYPEINIT1_AUTOFACTORY(SdrAngleItem,SfxInt32Item); + +SfxPoolItem* __EXPORT SdrAngleItem::Clone(SfxItemPool* /*pPool*/) const +{ + return new SdrAngleItem(Which(),GetValue()); +} + +SfxPoolItem* __EXPORT SdrAngleItem::Create(SvStream& rIn, USHORT /*nVer*/) const +{ + return new SdrAngleItem(Which(),rIn); +} + +SfxItemPresentation __EXPORT SdrAngleItem::GetPresentation( + SfxItemPresentation ePres, SfxMapUnit /*eCoreMetric*/, SfxMapUnit /*ePresMetric*/, + XubString& rText, const IntlWrapper * pIntlWrapper) const +{ + INT32 nValue(GetValue()); + BOOL bNeg(nValue < 0); + + if(bNeg) + nValue = -nValue; + + rText = UniString::CreateFromInt32(nValue); + + if(nValue) + { + sal_Unicode aUnicodeNull('0'); + xub_StrLen nAnz(2); + + const IntlWrapper* pMyIntlWrapper = NULL; +// DBG_ASSERT( pIntlWrapper, "SdrAngleItem::GetPresentation: using default App-IntlWrapper" ); + if(!pIntlWrapper) + pIntlWrapper = pMyIntlWrapper = new IntlWrapper( + ::comphelper::getProcessServiceFactory(), + Application::GetSettings().GetLanguage() ); + + if(pIntlWrapper->getLocaleData()->isNumLeadingZero()) + nAnz++; + + while(rText.Len() < nAnz) + rText.Insert(aUnicodeNull, 0); + + xub_StrLen nLen = rText.Len(); + BOOL bNull1(rText.GetChar(nLen-1) == aUnicodeNull); + BOOL bNull2(bNull1 && rText.GetChar(nLen-2) == aUnicodeNull); + + if(bNull2) + { + // keine Nachkommastellen + rText.Erase(nLen-2); + } + else + { + sal_Unicode cDec = + pIntlWrapper->getLocaleData()->getNumDecimalSep().GetChar(0); + rText.Insert(cDec, nLen-2); + + if(bNull1) + rText.Erase(nLen); + } + + if(bNeg) + rText.Insert(sal_Unicode('-'), 0); + + if ( pMyIntlWrapper ) + { + delete pMyIntlWrapper; + pIntlWrapper = NULL; + } + } + + rText += sal_Unicode(DEGREE_CHAR); + + if(ePres == SFX_ITEM_PRESENTATION_COMPLETE) + { + XubString aStr; + + SdrItemPool::TakeItemName(Which(), aStr); + aStr += sal_Unicode(' '); + rText.Insert(aStr, 0); + } + + return ePres; +} + +#ifdef SDR_ISPOOLABLE +int __EXPORT SdrAngleItem::IsPoolable() const +{ + USHORT nId=Which(); + return nId<SDRATTR_NOTPERSIST_FIRST || nId>SDRATTR_NOTPERSIST_LAST; +} +#endif + +//------------------------------------------------------------ +// class SdrMetricItem +//------------------------------------------------------------ + +TYPEINIT1_AUTOFACTORY(SdrMetricItem,SfxInt32Item); + +SfxPoolItem* __EXPORT SdrMetricItem::Clone(SfxItemPool* /*pPool*/) const +{ + return new SdrMetricItem(Which(),GetValue()); +} + +SfxPoolItem* __EXPORT SdrMetricItem::Create(SvStream& rIn, USHORT /*nVer*/) const +{ + return new SdrMetricItem(Which(),rIn); +} + +FASTBOOL __EXPORT SdrMetricItem::HasMetrics() const +{ + return TRUE; +} + +FASTBOOL __EXPORT SdrMetricItem::ScaleMetrics(long nMul, long nDiv) +{ + if (GetValue()!=0) { + BigInt aVal(GetValue()); + aVal*=nMul; + aVal+=nDiv/2; // fuer korrektes Runden + aVal/=nDiv; + SetValue(long(aVal)); + } + return TRUE; +} + +SfxItemPresentation __EXPORT SdrMetricItem::GetPresentation(SfxItemPresentation ePres, + SfxMapUnit eCoreMetric, SfxMapUnit ePresMetric, XubString& rText, const IntlWrapper *) const +{ + long nValue=GetValue(); + SdrFormatter aFmt((MapUnit)eCoreMetric,(MapUnit)ePresMetric); + aFmt.TakeStr(nValue,rText); + String aStr; + aFmt.TakeUnitStr((MapUnit)ePresMetric,aStr); + rText+=aStr; + if (ePres==SFX_ITEM_PRESENTATION_COMPLETE) { + String aStr2; + + SdrItemPool::TakeItemName(Which(), aStr2); + aStr2 += sal_Unicode(' '); + rText.Insert(aStr2, 0); + } + return ePres; +} + +#ifdef SDR_ISPOOLABLE +int __EXPORT SdrMetricItem::IsPoolable() const +{ + USHORT nId=Which(); + return nId<SDRATTR_NOTPERSIST_FIRST || nId>SDRATTR_NOTPERSIST_LAST; +} +#endif + +//////////////////////////////////////////////////////////////////////////////// +// Items des Legendenobjekts +//////////////////////////////////////////////////////////////////////////////// + +TYPEINIT1_AUTOFACTORY(SdrCaptionTypeItem,SfxEnumItem); + +SfxPoolItem* __EXPORT SdrCaptionTypeItem::Clone(SfxItemPool* /*pPool*/) const { return new SdrCaptionTypeItem(*this); } + +SfxPoolItem* __EXPORT SdrCaptionTypeItem::Create(SvStream& rIn, USHORT /*nVer*/) const { return new SdrCaptionTypeItem(rIn); } + +USHORT __EXPORT SdrCaptionTypeItem::GetValueCount() const { return 4; } + +XubString __EXPORT SdrCaptionTypeItem::GetValueTextByPos(USHORT nPos) const +{ + return ImpGetResStr(STR_ItemValCAPTIONTYPE1+nPos); +} + +SfxItemPresentation __EXPORT SdrCaptionTypeItem::GetPresentation(SfxItemPresentation ePres, + SfxMapUnit /*eCoreMetric*/, SfxMapUnit /*ePresMetric*/, XubString& rText, const IntlWrapper *) const +{ + rText=GetValueTextByPos(sal::static_int_cast< USHORT >(GetValue())); + if (ePres==SFX_ITEM_PRESENTATION_COMPLETE) { + String aStr; + + SdrItemPool::TakeItemName(Which(), aStr); + aStr += sal_Unicode(' '); + rText.Insert(aStr, 0); + } + return ePres; +} + +TYPEINIT1_AUTOFACTORY(SdrCaptionEscDirItem,SfxEnumItem); + +SfxPoolItem* __EXPORT SdrCaptionEscDirItem::Clone(SfxItemPool* /*pPool*/) const { return new SdrCaptionEscDirItem(*this); } + +SfxPoolItem* __EXPORT SdrCaptionEscDirItem::Create(SvStream& rIn, USHORT /*nVer*/) const { return new SdrCaptionEscDirItem(rIn); } + +USHORT __EXPORT SdrCaptionEscDirItem::GetValueCount() const { return 3; } + +XubString __EXPORT SdrCaptionEscDirItem::GetValueTextByPos(USHORT nPos) const +{ + return ImpGetResStr(STR_ItemValCAPTIONESCHORI+nPos); +} + +SfxItemPresentation __EXPORT SdrCaptionEscDirItem::GetPresentation(SfxItemPresentation ePres, + SfxMapUnit /*eCoreMetric*/, SfxMapUnit /*ePresMetric*/, XubString& rText, const IntlWrapper *) const +{ + rText=GetValueTextByPos(sal::static_int_cast< USHORT >(GetValue())); + if (ePres==SFX_ITEM_PRESENTATION_COMPLETE) { + String aStr; + + SdrItemPool::TakeItemName(Which(), aStr); + aStr += sal_Unicode(' '); + rText.Insert(aStr, 0); + } + return ePres; +} + +//////////////////////////////////////////////////////////////////////////////// +// MiscItems +//////////////////////////////////////////////////////////////////////////////// + +// FitToSize +TYPEINIT1_AUTOFACTORY(SdrTextFitToSizeTypeItem,SfxEnumItem); + +SfxPoolItem* __EXPORT SdrTextFitToSizeTypeItem::Clone(SfxItemPool* /*pPool*/) const { return new SdrTextFitToSizeTypeItem(*this); } + +SfxPoolItem* __EXPORT SdrTextFitToSizeTypeItem::Create(SvStream& rIn, USHORT /*nVer*/) const { return new SdrTextFitToSizeTypeItem(rIn); } + +USHORT __EXPORT SdrTextFitToSizeTypeItem::GetValueCount() const { return 4; } + +XubString __EXPORT SdrTextFitToSizeTypeItem::GetValueTextByPos(USHORT nPos) const +{ + return ImpGetResStr(STR_ItemValFITTOSIZENONE+nPos); +} + +SfxItemPresentation __EXPORT SdrTextFitToSizeTypeItem::GetPresentation(SfxItemPresentation ePres, + SfxMapUnit /*eCoreMetric*/, SfxMapUnit /*ePresMetric*/, XubString& rText, const IntlWrapper *) const +{ + rText=GetValueTextByPos(sal::static_int_cast< USHORT >(GetValue())); + if (ePres==SFX_ITEM_PRESENTATION_COMPLETE) { + String aStr; + + SdrItemPool::TakeItemName(Which(), aStr); + aStr += sal_Unicode(' '); + rText.Insert(aStr, 0); + } + return ePres; +} + +int __EXPORT SdrTextFitToSizeTypeItem::HasBoolValue() const { return TRUE; } + +BOOL __EXPORT SdrTextFitToSizeTypeItem::GetBoolValue() const { return GetValue()!=SDRTEXTFIT_NONE; } + +void __EXPORT SdrTextFitToSizeTypeItem::SetBoolValue(BOOL bVal) { SetValue(sal::static_int_cast< USHORT >(bVal ? SDRTEXTFIT_PROPORTIONAL : SDRTEXTFIT_NONE)); } + +sal_Bool SdrTextFitToSizeTypeItem::QueryValue( uno::Any& rVal, BYTE /*nMemberId*/) const +{ + drawing::TextFitToSizeType eFS = (drawing::TextFitToSizeType)GetValue(); + rVal <<= eFS; + + return sal_True; +} + +sal_Bool SdrTextFitToSizeTypeItem::PutValue( const uno::Any& rVal, BYTE /*nMemberId*/) +{ + drawing::TextFitToSizeType eFS; + if(!(rVal >>= eFS)) + { + sal_Int32 nEnum = 0; + if(!(rVal >>= nEnum)) + return sal_False; + + eFS = (drawing::TextFitToSizeType) nEnum; + } + + SetValue( sal::static_int_cast< USHORT >( (SdrFitToSizeType)eFS ) ); + + return sal_True; +} + +TYPEINIT1_AUTOFACTORY(SdrTextVertAdjustItem,SfxEnumItem); + +SfxPoolItem* __EXPORT SdrTextVertAdjustItem::Clone(SfxItemPool* /*pPool*/) const { return new SdrTextVertAdjustItem(*this); } + +SfxPoolItem* __EXPORT SdrTextVertAdjustItem::Create(SvStream& rIn, USHORT /*nVer*/) const { return new SdrTextVertAdjustItem(rIn); } + +USHORT __EXPORT SdrTextVertAdjustItem::GetValueCount() const { return 5; } + +XubString __EXPORT SdrTextVertAdjustItem::GetValueTextByPos(USHORT nPos) const +{ + return ImpGetResStr(STR_ItemValTEXTVADJTOP+nPos); +} + +SfxItemPresentation __EXPORT SdrTextVertAdjustItem::GetPresentation(SfxItemPresentation ePres, + SfxMapUnit /*eCoreMetric*/, SfxMapUnit /*ePresMetric*/, XubString& rText, const IntlWrapper *) const +{ + rText=GetValueTextByPos(sal::static_int_cast< USHORT >(GetValue())); + if (ePres==SFX_ITEM_PRESENTATION_COMPLETE) { + String aStr; + + SdrItemPool::TakeItemName(Which(), aStr); + aStr += sal_Unicode(' '); + rText.Insert(aStr, 0); + } + return ePres; +} + +sal_Bool SdrTextVertAdjustItem::QueryValue( uno::Any& rVal, BYTE /*nMemberId*/) const +{ + rVal <<= (drawing::TextVerticalAdjust)GetValue(); + return sal_True; +} + +sal_Bool SdrTextVertAdjustItem::PutValue( const uno::Any& rVal, BYTE /*nMemberId*/) +{ + drawing::TextVerticalAdjust eAdj; + if(!(rVal >>= eAdj)) + { + sal_Int32 nEnum = 0; + if(!(rVal >>= nEnum)) + return sal_False; + + eAdj = (drawing::TextVerticalAdjust)nEnum; + } + + SetValue( sal::static_int_cast< USHORT >( (SdrTextVertAdjust)eAdj ) ); + + return sal_True; +} + +TYPEINIT1_AUTOFACTORY(SdrTextHorzAdjustItem,SfxEnumItem); + +SfxPoolItem* __EXPORT SdrTextHorzAdjustItem::Clone(SfxItemPool* /*pPool*/) const { return new SdrTextHorzAdjustItem(*this); } + +SfxPoolItem* __EXPORT SdrTextHorzAdjustItem::Create(SvStream& rIn, USHORT /*nVer*/) const { return new SdrTextHorzAdjustItem(rIn); } + +USHORT __EXPORT SdrTextHorzAdjustItem::GetValueCount() const { return 5; } + +XubString __EXPORT SdrTextHorzAdjustItem::GetValueTextByPos(USHORT nPos) const +{ + return ImpGetResStr(STR_ItemValTEXTHADJLEFT+nPos); +} + +SfxItemPresentation __EXPORT SdrTextHorzAdjustItem::GetPresentation(SfxItemPresentation ePres, + SfxMapUnit /*eCoreMetric*/, SfxMapUnit /*ePresMetric*/, XubString& rText, const IntlWrapper *) const +{ + rText=GetValueTextByPos(sal::static_int_cast< USHORT >(GetValue())); + if (ePres==SFX_ITEM_PRESENTATION_COMPLETE) { + String aStr; + + SdrItemPool::TakeItemName(Which(), aStr); + aStr += sal_Unicode(' '); + rText.Insert(aStr, 0); + } + return ePres; +} + +sal_Bool SdrTextHorzAdjustItem::QueryValue( uno::Any& rVal, BYTE /*nMemberId*/) const +{ + rVal <<= (drawing::TextHorizontalAdjust)GetValue(); + return sal_True; +} + +sal_Bool SdrTextHorzAdjustItem::PutValue( const uno::Any& rVal, BYTE /*nMemberId*/) +{ + drawing::TextHorizontalAdjust eAdj; + if(!(rVal >>= eAdj)) + { + sal_Int32 nEnum = 0; + if(!(rVal >>= nEnum)) + return sal_False; + + eAdj = (drawing::TextHorizontalAdjust)nEnum; + } + + SetValue( sal::static_int_cast< USHORT >( (SdrTextHorzAdjust)eAdj ) ); + + return sal_True; +} + +TYPEINIT1_AUTOFACTORY(SdrTextAniKindItem,SfxEnumItem); + +SfxPoolItem* __EXPORT SdrTextAniKindItem::Clone(SfxItemPool* /*pPool*/) const { return new SdrTextAniKindItem(*this); } + +SfxPoolItem* __EXPORT SdrTextAniKindItem::Create(SvStream& rIn, USHORT /*nVer*/) const { return new SdrTextAniKindItem(rIn); } + +USHORT __EXPORT SdrTextAniKindItem::GetValueCount() const { return 5; } + +XubString __EXPORT SdrTextAniKindItem::GetValueTextByPos(USHORT nPos) const +{ + return ImpGetResStr(STR_ItemValTEXTANI_NONE+nPos); +} + +SfxItemPresentation __EXPORT SdrTextAniKindItem::GetPresentation(SfxItemPresentation ePres, + SfxMapUnit /*eCoreMetric*/, SfxMapUnit /*ePresMetric*/, XubString& rText, const IntlWrapper *) const +{ + rText=GetValueTextByPos(sal::static_int_cast< USHORT >(GetValue())); + if (ePres==SFX_ITEM_PRESENTATION_COMPLETE) { + String aStr; + + SdrItemPool::TakeItemName(Which(), aStr); + aStr += sal_Unicode(' '); + rText.Insert(aStr, 0); + } + return ePres; +} + +sal_Bool SdrTextAniKindItem::QueryValue( uno::Any& rVal, BYTE /*nMemberId*/) const +{ + rVal <<= (drawing::TextAnimationKind)GetValue(); + return sal_True; +} + +sal_Bool SdrTextAniKindItem::PutValue( const uno::Any& rVal, BYTE /*nMemberId*/) +{ + drawing::TextAnimationKind eKind; + if(!(rVal >>= eKind)) + { + sal_Int32 nEnum = 0; + if(!(rVal >>= nEnum)) + return sal_False; + eKind = (drawing::TextAnimationKind)nEnum; + } + + SetValue( sal::static_int_cast< USHORT >( (SdrTextAniKind)eKind ) ); + + return sal_True; +} + +TYPEINIT1_AUTOFACTORY(SdrTextAniDirectionItem,SfxEnumItem); + +SfxPoolItem* __EXPORT SdrTextAniDirectionItem::Clone(SfxItemPool* /*pPool*/) const { return new SdrTextAniDirectionItem(*this); } + +SfxPoolItem* __EXPORT SdrTextAniDirectionItem::Create(SvStream& rIn, USHORT /*nVer*/) const { return new SdrTextAniDirectionItem(rIn); } + +USHORT __EXPORT SdrTextAniDirectionItem::GetValueCount() const { return 4; } + +XubString __EXPORT SdrTextAniDirectionItem::GetValueTextByPos(USHORT nPos) const +{ + return ImpGetResStr(STR_ItemValTEXTANI_LEFT+nPos); +} + +SfxItemPresentation __EXPORT SdrTextAniDirectionItem::GetPresentation(SfxItemPresentation ePres, + SfxMapUnit /*eCoreMetric*/, SfxMapUnit /*ePresMetric*/, XubString& rText, const IntlWrapper *) const +{ + rText=GetValueTextByPos(sal::static_int_cast< USHORT >(GetValue())); + if (ePres==SFX_ITEM_PRESENTATION_COMPLETE) { + String aStr; + + SdrItemPool::TakeItemName(Which(), aStr); + aStr += sal_Unicode(' '); + rText.Insert(aStr, 0); + } + return ePres; +} + +sal_Bool SdrTextAniDirectionItem::QueryValue( uno::Any& rVal, BYTE /*nMemberId*/) const +{ + rVal <<= (drawing::TextAnimationDirection)GetValue(); + return sal_True; +} + +sal_Bool SdrTextAniDirectionItem::PutValue( const uno::Any& rVal, BYTE /*nMemberId*/) +{ + drawing::TextAnimationDirection eDir; + if(!(rVal >>= eDir)) + { + sal_Int32 nEnum = 0; + if(!(rVal >>= nEnum)) + return sal_False; + + eDir = (drawing::TextAnimationDirection)nEnum; + } + + SetValue( sal::static_int_cast< USHORT >( (SdrTextAniDirection)eDir ) ); + + return sal_True; +} + +TYPEINIT1_AUTOFACTORY(SdrTextAniDelayItem,SfxUInt16Item); + +SfxPoolItem* __EXPORT SdrTextAniDelayItem::Clone(SfxItemPool* /*pPool*/) const { return new SdrTextAniDelayItem(*this); } + +SfxPoolItem* __EXPORT SdrTextAniDelayItem::Create(SvStream& rIn, USHORT /*nVer*/) const { return new SdrTextAniDelayItem(rIn); } + +SfxItemPresentation __EXPORT SdrTextAniDelayItem::GetPresentation( + SfxItemPresentation ePres, SfxMapUnit /*eCoreMetric*/, SfxMapUnit /*ePresMetric*/, + XubString& rText, const IntlWrapper *) const +{ + rText = UniString::CreateFromInt32(GetValue()); + rText += sal_Unicode('m'); + rText += sal_Unicode('s'); + + if(ePres == SFX_ITEM_PRESENTATION_COMPLETE) + { + XubString aStr; + + SdrItemPool::TakeItemName(Which(), aStr); + aStr += sal_Unicode(' '); + rText.Insert(aStr, 0); + } + + return ePres; +} + +TYPEINIT1_AUTOFACTORY(SdrTextAniAmountItem,SfxInt16Item); + +SfxPoolItem* __EXPORT SdrTextAniAmountItem::Clone(SfxItemPool* /*pPool*/) const { return new SdrTextAniAmountItem(*this); } + +SfxPoolItem* __EXPORT SdrTextAniAmountItem::Create(SvStream& rIn, USHORT /*nVer*/) const { return new SdrTextAniAmountItem(rIn); } + +FASTBOOL __EXPORT SdrTextAniAmountItem::HasMetrics() const +{ + return GetValue()>0; +} + +FASTBOOL __EXPORT SdrTextAniAmountItem::ScaleMetrics(long nMul, long nDiv) +{ + if (GetValue()>0) { + BigInt aVal(GetValue()); + aVal*=nMul; + aVal+=nDiv/2; // fuer korrektes Runden + aVal/=nDiv; + SetValue(short(aVal)); + return TRUE; + } else return FALSE; +} + +SfxItemPresentation __EXPORT SdrTextAniAmountItem::GetPresentation( + SfxItemPresentation ePres, SfxMapUnit eCoreMetric, SfxMapUnit ePresMetric, + XubString& rText, const IntlWrapper *) const +{ + INT32 nValue(GetValue()); + + if(!nValue) + nValue = -1L; + + if(nValue < 0) + { + sal_Char aText[] = "pixel"; + + rText = UniString::CreateFromInt32(-nValue); + rText += UniString(aText, sizeof(aText-1)); + } + else + { + SdrFormatter aFmt((MapUnit)eCoreMetric, (MapUnit)ePresMetric); + XubString aStr; + + aFmt.TakeStr(nValue, rText); + aFmt.TakeUnitStr((MapUnit)ePresMetric, aStr); + rText += aStr; + } + + if(ePres == SFX_ITEM_PRESENTATION_COMPLETE) + { + XubString aStr; + + SdrItemPool::TakeItemName(Which(), aStr); + aStr += sal_Unicode(' '); + rText.Insert(aStr, 0); + } + + return ePres; +} + +TYPEINIT1_AUTOFACTORY( SdrTextFixedCellHeightItem, SfxBoolItem ); +SdrTextFixedCellHeightItem::SdrTextFixedCellHeightItem( BOOL bUseFixedCellHeight ) + : SfxBoolItem( SDRATTR_TEXT_USEFIXEDCELLHEIGHT, bUseFixedCellHeight ) +{ +} +SdrTextFixedCellHeightItem::SdrTextFixedCellHeightItem( SvStream & rStream, sal_uInt16 nVersion ) + : SfxBoolItem( SDRATTR_TEXT_USEFIXEDCELLHEIGHT, FALSE ) +{ + if ( nVersion ) + { + sal_Bool bValue; + rStream >> bValue; + SetValue( bValue ); + } +} +SfxItemPresentation __EXPORT SdrTextFixedCellHeightItem::GetPresentation( SfxItemPresentation ePres, + SfxMapUnit /*eCoreMetric*/, SfxMapUnit /*ePresentationMetric*/, + String &rText, const IntlWrapper * ) const +{ + rText = GetValueTextByVal( GetValue() ); + if (ePres==SFX_ITEM_PRESENTATION_COMPLETE) + { + String aStr; + SdrItemPool::TakeItemName(Which(), aStr); + aStr += sal_Unicode(' '); + rText.Insert(aStr, 0); + } + return ePres; +} +SfxPoolItem* __EXPORT SdrTextFixedCellHeightItem::Create( SvStream& rIn, sal_uInt16 nItemVersion ) const +{ + return new SdrTextFixedCellHeightItem( rIn, nItemVersion ); +} +SvStream& __EXPORT SdrTextFixedCellHeightItem::Store( SvStream& rOut, sal_uInt16 nItemVersion ) const +{ + if ( nItemVersion ) + { + sal_Bool bValue = (sal_Bool)GetValue(); + rOut << bValue; + } + return rOut; +} +SfxPoolItem* __EXPORT SdrTextFixedCellHeightItem::Clone( SfxItemPool * /*pPool*/) const +{ + return new SdrTextFixedCellHeightItem( GetValue() ); +} +sal_uInt16 SdrTextFixedCellHeightItem::GetVersion( sal_uInt16 /*nFileFormatVersion*/) const +{ + return 1; +} +sal_Bool SdrTextFixedCellHeightItem::QueryValue( uno::Any& rVal, BYTE /*nMemberId*/) const +{ + sal_Bool bValue = (sal_Bool)GetValue(); + rVal <<= bValue; + return sal_True; +} +sal_Bool SdrTextFixedCellHeightItem::PutValue( const uno::Any& rVal, BYTE /*nMemberId*/) +{ + sal_Bool bValue = sal_Bool(); + if( !( rVal >>= bValue ) ) + return sal_False; + SetValue( bValue ); + return sal_True; +} +#ifdef SDR_ISPOOLABLE +int __EXPORT SdrTextFixedCellHeightItem::IsPoolable() const +{ + USHORT nId=Which(); + return nId < SDRATTR_NOTPERSIST_FIRST || nId > SDRATTR_NOTPERSIST_LAST; +} +#endif + +TYPEINIT1_AUTOFACTORY( SdrCustomShapeAdjustmentItem, SfxPoolItem ); + +SdrCustomShapeAdjustmentItem::SdrCustomShapeAdjustmentItem() : SfxPoolItem( SDRATTR_CUSTOMSHAPE_ADJUSTMENT ) +{ +} + +SdrCustomShapeAdjustmentItem::SdrCustomShapeAdjustmentItem( SvStream& rIn, sal_uInt16 nVersion ): + SfxPoolItem( SDRATTR_CUSTOMSHAPE_ADJUSTMENT ) +{ + if ( nVersion ) + { + SdrCustomShapeAdjustmentValue aVal; + sal_uInt32 i, nCount; + rIn >> nCount; + for ( i = 0; i < nCount; i++ ) + { + rIn >> aVal.nValue; + SetValue( i, aVal ); + } + } +} + +SdrCustomShapeAdjustmentItem::~SdrCustomShapeAdjustmentItem() +{ + void* pPtr; + for ( pPtr = aAdjustmentValueList.First(); pPtr; pPtr = aAdjustmentValueList.Next() ) + delete (SdrCustomShapeAdjustmentValue*)pPtr; +} + +int __EXPORT SdrCustomShapeAdjustmentItem::operator==( const SfxPoolItem& rCmp ) const +{ + int bRet = SfxPoolItem::operator==( rCmp ); + if ( bRet ) + { + bRet = ((SdrCustomShapeAdjustmentItem&)rCmp).GetCount() == GetCount(); + if ( bRet ) + { + sal_uInt32 i; + for ( i = 0; i < GetCount(); i++ ) + { + if ( ((SdrCustomShapeAdjustmentItem&)rCmp).GetValue( i ).nValue != GetValue( i ).nValue ) + { + bRet = 0; + break; + } + } + } + } + return bRet; +} + +SfxItemPresentation __EXPORT SdrCustomShapeAdjustmentItem::GetPresentation( + SfxItemPresentation ePresentation, SfxMapUnit /*eCoreMetric*/, + SfxMapUnit /*ePresentationMetric*/, XubString &rText, const IntlWrapper *) const +{ + sal_uInt32 i, nCount = GetCount(); + rText.Append( UniString::CreateFromInt32( nCount ) ); + for ( i = 0; i < nCount; i++ ) + { + rText += sal_Unicode( ' ' ); + rText.Append( UniString::CreateFromInt32( GetValue( i ).nValue ) ); + } + if ( ePresentation == SFX_ITEM_PRESENTATION_COMPLETE ) + { + XubString aStr; + + SdrItemPool::TakeItemName( Which(), aStr ); + aStr += sal_Unicode( ' ' ); + rText.Insert( aStr, 0 ); + } + return ePresentation; +} + +SfxPoolItem* __EXPORT SdrCustomShapeAdjustmentItem::Create( SvStream& rIn, sal_uInt16 nItemVersion ) const +{ + return new SdrCustomShapeAdjustmentItem( rIn, nItemVersion ); +} + +SvStream& __EXPORT SdrCustomShapeAdjustmentItem::Store( SvStream& rOut, sal_uInt16 nItemVersion ) const +{ + if ( nItemVersion ) + { + sal_uInt32 i, nCount = GetCount(); + rOut << nCount; + for ( i = 0; i < nCount; i++ ) + rOut << GetValue( i ).nValue; + } + return rOut; +} + +SfxPoolItem* __EXPORT SdrCustomShapeAdjustmentItem::Clone( SfxItemPool * /*pPool*/) const +{ + sal_uInt32 i; + SdrCustomShapeAdjustmentItem* pItem = new SdrCustomShapeAdjustmentItem; + for ( i = 0; i < GetCount(); i++ ) + { + const SdrCustomShapeAdjustmentValue& rVal = GetValue( i ); + pItem->SetValue( i, rVal ); + } + return pItem; +} + +#ifdef SDR_ISPOOLABLE +int __EXPORT SdrCustomShapeAdjustmentItem::IsPoolable() const +{ + USHORT nId=Which(); + return nId < SDRATTR_NOTPERSIST_FIRST || nId > SDRATTR_NOTPERSIST_LAST; +} +#endif + +const SdrCustomShapeAdjustmentValue& SdrCustomShapeAdjustmentItem::GetValue( sal_uInt32 nIndex ) const +{ +#ifdef DBG_UTIL + if ( aAdjustmentValueList.Count() <= nIndex ) + DBG_ERROR( "SdrCustomShapeAdjustemntItem::GetValue - nIndex out of range (SJ)" ); +#endif + return *(SdrCustomShapeAdjustmentValue*)aAdjustmentValueList.GetObject( nIndex ); +} + +void SdrCustomShapeAdjustmentItem::SetValue( sal_uInt32 nIndex, const SdrCustomShapeAdjustmentValue& rVal ) +{ + sal_uInt32 i; + for ( i = GetCount(); i <= nIndex; i++ ) + { + SdrCustomShapeAdjustmentValue* pItem = new SdrCustomShapeAdjustmentValue; + aAdjustmentValueList.Insert( pItem, LIST_APPEND ); + } + SdrCustomShapeAdjustmentValue& rValue = *(SdrCustomShapeAdjustmentValue*)aAdjustmentValueList.GetObject( nIndex ); + rValue.nValue = rVal.nValue; +} + +sal_uInt16 SdrCustomShapeAdjustmentItem::GetVersion( sal_uInt16 /*nFileFormatVersion*/) const +{ + return 1; +} + +sal_Bool SdrCustomShapeAdjustmentItem::QueryValue( uno::Any& rVal, BYTE /*nMemberId*/) const +{ + sal_uInt32 i, nCount = GetCount(); + uno::Sequence< sal_Int32 > aSequence( nCount ); + if ( nCount ) + { + sal_Int32* pPtr = aSequence.getArray(); + for ( i = 0; i < nCount; i++ ) + *pPtr++ = GetValue( i ).nValue; + } + rVal <<= aSequence; + return sal_True; +} + +sal_Bool SdrCustomShapeAdjustmentItem::PutValue( const uno::Any& rVal, BYTE /*nMemberId*/) +{ + uno::Sequence< sal_Int32 > aSequence; + if( !( rVal >>= aSequence ) ) + return sal_False; + + void* pPtr; + for ( pPtr = aAdjustmentValueList.First(); pPtr; pPtr = aAdjustmentValueList.Next() ) + delete (SdrCustomShapeAdjustmentValue*)pPtr; + + sal_uInt32 i, nCount = aSequence.getLength(); + if ( nCount ) + { + const sal_Int32* pPtr2 = aSequence.getConstArray(); + for ( i = 0; i < nCount; i++ ) + { + SdrCustomShapeAdjustmentValue* pItem = new SdrCustomShapeAdjustmentValue; + pItem->nValue = *pPtr2++; + aAdjustmentValueList.Insert( pItem, LIST_APPEND ); + } + } + return sal_True; +} + + +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +// Edge +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +// EdgeKind +TYPEINIT1_AUTOFACTORY(SdrEdgeKindItem,SfxEnumItem); + +SfxPoolItem* __EXPORT SdrEdgeKindItem::Clone(SfxItemPool* /*pPool*/) const { return new SdrEdgeKindItem(*this); } + +SfxPoolItem* __EXPORT SdrEdgeKindItem::Create(SvStream& rIn, USHORT /*nVer*/) const { return new SdrEdgeKindItem(rIn); } + +USHORT __EXPORT SdrEdgeKindItem::GetValueCount() const { return 4; } + +XubString __EXPORT SdrEdgeKindItem::GetValueTextByPos(USHORT nPos) const +{ + return ImpGetResStr(STR_ItemValEDGE_ORTHOLINES+nPos); +} + +SfxItemPresentation __EXPORT SdrEdgeKindItem::GetPresentation(SfxItemPresentation ePres, + SfxMapUnit /*eCoreMetric*/, SfxMapUnit /*ePresMetric*/, XubString& rText, const IntlWrapper *) const +{ + rText=GetValueTextByPos(sal::static_int_cast< USHORT >(GetValue())); + if (ePres==SFX_ITEM_PRESENTATION_COMPLETE) { + String aStr; + + SdrItemPool::TakeItemName(Which(), aStr); + aStr += sal_Unicode(' '); + rText.Insert(aStr, 0); + } + return ePres; +} + +sal_Bool SdrEdgeKindItem::QueryValue( uno::Any& rVal, BYTE /*nMemberId*/) const +{ + drawing::ConnectorType eCT = drawing::ConnectorType_STANDARD; + + switch( GetValue() ) + { + case SDREDGE_ORTHOLINES : eCT = drawing::ConnectorType_STANDARD; break; + case SDREDGE_THREELINES : eCT = drawing::ConnectorType_LINES; break; + case SDREDGE_ONELINE : eCT = drawing::ConnectorType_LINE; break; + case SDREDGE_BEZIER : eCT = drawing::ConnectorType_CURVE; break; + case SDREDGE_ARC : eCT = drawing::ConnectorType_CURVE; break; + default: + DBG_ERROR( "SdrEdgeKindItem::QueryValue : unknown enum" ); + } + + rVal <<= eCT; + + return sal_True; +} + +sal_Bool SdrEdgeKindItem::PutValue( const uno::Any& rVal, BYTE /*nMemberId*/) +{ + drawing::ConnectorType eCT; + if(!(rVal >>= eCT)) + { + sal_Int32 nEnum = 0; + if(!(rVal >>= nEnum)) + return sal_False; + + eCT = (drawing::ConnectorType)nEnum; + } + + SdrEdgeKind eEK = SDREDGE_ORTHOLINES; + switch( eCT ) + { + case drawing::ConnectorType_STANDARD : eEK = SDREDGE_ORTHOLINES; break; + case drawing::ConnectorType_CURVE : eEK = SDREDGE_BEZIER; break; + case drawing::ConnectorType_LINE : eEK = SDREDGE_ONELINE; break; + case drawing::ConnectorType_LINES : eEK = SDREDGE_THREELINES; break; + default: + DBG_ERROR( "SdrEdgeKindItem::PuValue : unknown enum" ); + } + SetValue( sal::static_int_cast< USHORT >( eEK ) ); + + return sal_True; +} + +sal_Bool SdrEdgeNode1HorzDistItem::QueryValue( uno::Any& rVal, BYTE /*nMemberId*/) const +{ + rVal <<= (sal_Int32)GetValue(); + return sal_True; +} + +sal_Bool SdrEdgeNode1HorzDistItem::PutValue( const uno::Any& rVal, BYTE /*nMemberId*/) +{ + sal_Int32 nValue = 0; + if(!(rVal >>= nValue)) + return sal_False; + + SetValue( nValue ); + return sal_True; +} + +BOOL SdrEdgeNode1VertDistItem::QueryValue( uno::Any& rVal, BYTE /*nMemberId*/) const +{ + rVal <<= (sal_Int32)GetValue(); + return sal_True; +} + +BOOL SdrEdgeNode1VertDistItem::PutValue( const uno::Any& rVal, BYTE /*nMemberId*/) +{ + sal_Int32 nValue = 0; + if(!(rVal >>= nValue)) + return sal_False; + + SetValue( nValue ); + return sal_True; +} + +BOOL SdrEdgeNode2HorzDistItem::QueryValue( uno::Any& rVal, BYTE /*nMemberId*/) const +{ + rVal <<= (sal_Int32)GetValue(); + return sal_True; +} + +BOOL SdrEdgeNode2HorzDistItem::PutValue( const uno::Any& rVal, BYTE /*nMemberId*/) +{ + sal_Int32 nValue = 0; + if(!(rVal >>= nValue)) + return sal_False; + + SetValue( nValue ); + return sal_True; +} + +BOOL SdrEdgeNode2VertDistItem::QueryValue( uno::Any& rVal, BYTE /*nMemberId*/) const +{ + rVal <<= (sal_Int32)GetValue(); + return sal_True; +} + +BOOL SdrEdgeNode2VertDistItem::PutValue( const uno::Any& rVal, BYTE /*nMemberId*/) +{ + sal_Int32 nValue = 0; + if(!(rVal >>= nValue)) + return sal_False; + + SetValue( nValue ); + return sal_True; +} + +BOOL SdrEdgeLine1DeltaItem::QueryValue( uno::Any& rVal, BYTE /*nMemberId*/) const +{ + rVal <<= (sal_Int32)GetValue(); + return sal_True; +} + +BOOL SdrEdgeLine1DeltaItem::PutValue( const uno::Any& rVal, BYTE /*nMemberId*/) +{ + sal_Int32 nValue = 0; + if(!(rVal >>= nValue)) + return sal_False; + + SetValue( nValue ); + return sal_True; +} + +BOOL SdrEdgeLine2DeltaItem::QueryValue( uno::Any& rVal, BYTE /*nMemberId*/) const +{ + rVal <<= (sal_Int32)GetValue(); + return sal_True; +} + +BOOL SdrEdgeLine2DeltaItem::PutValue( const uno::Any& rVal, BYTE /*nMemberId*/) +{ + sal_Int32 nValue = 0; + if(!(rVal >>= nValue)) + return sal_False; + + SetValue( nValue ); + return sal_True; +} + +BOOL SdrEdgeLine3DeltaItem::QueryValue( uno::Any& rVal, BYTE /*nMemberId*/) const +{ + rVal <<= (sal_Int32)GetValue(); + return sal_True; +} + +BOOL SdrEdgeLine3DeltaItem::PutValue( const uno::Any& rVal, BYTE /*nMemberId*/) +{ + sal_Int32 nValue = 0; + if(!(rVal >>= nValue)) + return sal_False; + + SetValue( nValue ); + return sal_True; +} + +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +// Measure +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +// MeasureKind +TYPEINIT1_AUTOFACTORY(SdrMeasureKindItem,SfxEnumItem); + +SfxPoolItem* __EXPORT SdrMeasureKindItem::Clone(SfxItemPool* /*pPool*/) const { return new SdrMeasureKindItem(*this); } + +SfxPoolItem* __EXPORT SdrMeasureKindItem::Create(SvStream& rIn, USHORT /*nVer*/) const { return new SdrMeasureKindItem(rIn); } + +USHORT __EXPORT SdrMeasureKindItem::GetValueCount() const { return 2; } + +XubString __EXPORT SdrMeasureKindItem::GetValueTextByPos(USHORT nPos) const +{ + return ImpGetResStr(STR_ItemValMEASURE_STD+nPos); +} + +SfxItemPresentation __EXPORT SdrMeasureKindItem::GetPresentation(SfxItemPresentation ePres, + SfxMapUnit /*eCoreMetric*/, SfxMapUnit /*ePresMetric*/, XubString& rText, const IntlWrapper *) const +{ + rText=GetValueTextByPos(sal::static_int_cast< USHORT >(GetValue())); + if (ePres==SFX_ITEM_PRESENTATION_COMPLETE) { + String aStr; + + SdrItemPool::TakeItemName(Which(), aStr); + aStr += sal_Unicode(' '); + rText.Insert(aStr, 0); + } + return ePres; +} + +sal_Bool SdrMeasureKindItem::QueryValue( uno::Any& rVal, BYTE /*nMemberId*/) const +{ + rVal <<= (drawing::MeasureKind)GetValue(); + return sal_True; +} + +sal_Bool SdrMeasureKindItem::PutValue( const uno::Any& rVal, BYTE /*nMemberId*/) +{ + drawing::MeasureKind eKind; + if(!(rVal >>= eKind)) + { + sal_Int32 nEnum = 0; + if(!(rVal >>= nEnum)) + return sal_False; + + eKind = (drawing::MeasureKind)nEnum; + } + + SetValue( sal::static_int_cast< USHORT >( (SdrMeasureKind)eKind ) ); + return sal_True; +} + +TYPEINIT1_AUTOFACTORY(SdrMeasureTextHPosItem,SfxEnumItem); + +SfxPoolItem* __EXPORT SdrMeasureTextHPosItem::Clone(SfxItemPool* /*pPool*/) const { return new SdrMeasureTextHPosItem(*this); } + +SfxPoolItem* __EXPORT SdrMeasureTextHPosItem::Create(SvStream& rIn, USHORT /*nVer*/) const { return new SdrMeasureTextHPosItem(rIn); } + +USHORT __EXPORT SdrMeasureTextHPosItem::GetValueCount() const { return 4; } + +XubString __EXPORT SdrMeasureTextHPosItem::GetValueTextByPos(USHORT nPos) const +{ + return ImpGetResStr(STR_ItemValMEASURE_TEXTHAUTO+nPos); +} + +SfxItemPresentation __EXPORT SdrMeasureTextHPosItem::GetPresentation(SfxItemPresentation ePres, + SfxMapUnit /*eCoreMetric*/, SfxMapUnit /*ePresMetric*/, XubString& rText, const IntlWrapper *) const +{ + rText=GetValueTextByPos(sal::static_int_cast< USHORT >(GetValue())); + if (ePres==SFX_ITEM_PRESENTATION_COMPLETE) { + String aStr; + + SdrItemPool::TakeItemName(Which(), aStr); + aStr += sal_Unicode(' '); + rText.Insert(aStr, 0); + } + return ePres; +} + +sal_Bool SdrMeasureTextHPosItem::QueryValue( uno::Any& rVal, BYTE /*nMemberId*/) const +{ + rVal <<= (drawing::MeasureTextHorzPos)GetValue(); + return sal_True; +} + +sal_Bool SdrMeasureTextHPosItem::PutValue( const uno::Any& rVal, BYTE /*nMemberId*/) +{ + drawing::MeasureTextHorzPos ePos; + if(!(rVal >>= ePos)) + { + sal_Int32 nEnum = 0; + if(!(rVal >>= nEnum)) + return sal_False; + + ePos = (drawing::MeasureTextHorzPos)nEnum; + } + + SetValue( sal::static_int_cast< USHORT >( (SdrMeasureTextHPos)ePos ) ); + return sal_True; +} + +TYPEINIT1_AUTOFACTORY(SdrMeasureTextVPosItem,SfxEnumItem); + +SfxPoolItem* __EXPORT SdrMeasureTextVPosItem::Clone(SfxItemPool* /*pPool*/) const { return new SdrMeasureTextVPosItem(*this); } + +SfxPoolItem* __EXPORT SdrMeasureTextVPosItem::Create(SvStream& rIn, USHORT /*nVer*/) const { return new SdrMeasureTextVPosItem(rIn); } + +USHORT __EXPORT SdrMeasureTextVPosItem::GetValueCount() const { return 5; } + +XubString __EXPORT SdrMeasureTextVPosItem::GetValueTextByPos(USHORT nPos) const +{ + return ImpGetResStr(STR_ItemValMEASURE_TEXTVAUTO+nPos); +} + +SfxItemPresentation __EXPORT SdrMeasureTextVPosItem::GetPresentation(SfxItemPresentation ePres, + SfxMapUnit /*eCoreMetric*/, SfxMapUnit /*ePresMetric*/, XubString& rText, const IntlWrapper *) const +{ + rText=GetValueTextByPos(sal::static_int_cast< USHORT >(GetValue())); + if (ePres==SFX_ITEM_PRESENTATION_COMPLETE) { + String aStr; + + SdrItemPool::TakeItemName(Which(), aStr); + aStr += sal_Unicode(' '); + rText.Insert(aStr, 0); + } + return ePres; +} + +sal_Bool SdrMeasureTextVPosItem::QueryValue( uno::Any& rVal, BYTE /*nMemberId*/) const +{ + rVal <<= (drawing::MeasureTextVertPos)GetValue(); + return sal_True; +} + +sal_Bool SdrMeasureTextVPosItem::PutValue( const uno::Any& rVal, BYTE /*nMemberId*/) +{ + drawing::MeasureTextVertPos ePos; + if(!(rVal >>= ePos)) + { + sal_Int32 nEnum = 0; + if(!(rVal >>= nEnum)) + return sal_False; + + ePos = (drawing::MeasureTextVertPos)nEnum; + } + + SetValue( sal::static_int_cast< USHORT >( (SdrMeasureTextHPos)ePos ) ); + return sal_True; +} + +TYPEINIT1_AUTOFACTORY(SdrMeasureUnitItem,SfxEnumItem); + +SfxPoolItem* __EXPORT SdrMeasureUnitItem::Clone(SfxItemPool* /*pPool*/) const { return new SdrMeasureUnitItem(*this); } + +SfxPoolItem* __EXPORT SdrMeasureUnitItem::Create(SvStream& rIn, USHORT /*nVer*/) const { return new SdrMeasureUnitItem(rIn); } + +USHORT __EXPORT SdrMeasureUnitItem::GetValueCount() const { return 14; } + +XubString __EXPORT SdrMeasureUnitItem::GetValueTextByPos(USHORT nPos) const +{ + XubString aRetval; + + if((FieldUnit)nPos == FUNIT_NONE) + { + sal_Char aText[] = "default"; + aRetval += UniString(aText, sizeof(aText-1)); + } + else + { + SdrFormatter::TakeUnitStr((FieldUnit)nPos, aRetval); + } + + return aRetval; +} + +SfxItemPresentation __EXPORT SdrMeasureUnitItem::GetPresentation(SfxItemPresentation ePres, + SfxMapUnit /*eCoreMetric*/, SfxMapUnit /*ePresMetric*/, XubString& rText, const IntlWrapper *) const +{ + rText=GetValueTextByPos(sal::static_int_cast< USHORT >(GetValue())); + if (ePres==SFX_ITEM_PRESENTATION_COMPLETE) { + String aStr; + + SdrItemPool::TakeItemName(Which(), aStr); + aStr += sal_Unicode(' '); + rText.Insert(aStr, 0); + } + return ePres; +} + +sal_Bool SdrMeasureUnitItem::QueryValue( uno::Any& rVal, BYTE /*nMemberId*/) const +{ + rVal <<= (sal_Int32)GetValue(); + return sal_True; +} + +sal_Bool SdrMeasureUnitItem::PutValue( const uno::Any& rVal, BYTE /*nMemberId*/) +{ + sal_Int32 nMeasure = 0; + if(!(rVal >>= nMeasure)) + return sal_False; + + SetValue( sal::static_int_cast< USHORT >( (FieldUnit)nMeasure ) ); + return sal_True; +} + +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +// Circ +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +// CircKind +TYPEINIT1_AUTOFACTORY(SdrCircKindItem,SfxEnumItem); + +SfxPoolItem* __EXPORT SdrCircKindItem::Clone(SfxItemPool* /*pPool*/) const { return new SdrCircKindItem(*this); } + +SfxPoolItem* __EXPORT SdrCircKindItem::Create(SvStream& rIn, USHORT /*nVer*/) const { return new SdrCircKindItem(rIn); } + +USHORT __EXPORT SdrCircKindItem::GetValueCount() const { return 4; } + +XubString __EXPORT SdrCircKindItem::GetValueTextByPos(USHORT nPos) const +{ + return ImpGetResStr(STR_ItemValCIRC_FULL+nPos); +} + +SfxItemPresentation __EXPORT SdrCircKindItem::GetPresentation(SfxItemPresentation ePres, + SfxMapUnit /*eCoreMetric*/, SfxMapUnit /*ePresMetric*/, XubString& rText, const IntlWrapper *) const +{ + rText=GetValueTextByPos(sal::static_int_cast< USHORT >(GetValue())); + if (ePres==SFX_ITEM_PRESENTATION_COMPLETE) { + String aStr; + + SdrItemPool::TakeItemName(Which(), aStr); + aStr += sal_Unicode(' '); + rText.Insert(aStr, 0); + } + return ePres; +} + +sal_Bool SdrCircKindItem::QueryValue( uno::Any& rVal, BYTE /*nMemberId*/) const +{ + rVal <<= (drawing::CircleKind)GetValue(); + return sal_True; +} + +sal_Bool SdrCircKindItem::PutValue( const uno::Any& rVal, BYTE /*nMemberId*/) +{ + drawing::CircleKind eKind; + if(!(rVal >>= eKind)) + { + sal_Int32 nEnum = 0; + if(!(rVal >>= nEnum)) + return sal_False; + + eKind = (drawing::CircleKind)nEnum; + } + + SetValue( sal::static_int_cast< USHORT >( (SdrCircKind)eKind ) ); + return sal_True; +} + +//------------------------------------------------------------ +// class SdrSignedPercentItem +//------------------------------------------------------------ + +TYPEINIT1_AUTOFACTORY( SdrSignedPercentItem, SfxInt16Item ); + + +SfxPoolItem* __EXPORT SdrSignedPercentItem::Clone(SfxItemPool* /*pPool*/) const +{ + return new SdrSignedPercentItem( Which(), GetValue() ); +} + +SfxPoolItem* __EXPORT SdrSignedPercentItem::Create( SvStream& rIn, USHORT /*nVer*/) const +{ + return new SdrSignedPercentItem( Which(), rIn ); +} + +SfxItemPresentation __EXPORT SdrSignedPercentItem::GetPresentation( + SfxItemPresentation ePres, SfxMapUnit /*eCoreMetric*/, SfxMapUnit /*ePresMetric*/, + XubString& rText, const IntlWrapper *) const +{ + rText = UniString::CreateFromInt32(GetValue()); + rText += sal_Unicode('%'); + + if(ePres == SFX_ITEM_PRESENTATION_COMPLETE) + { + XubString aStr; + + SdrItemPool::TakeItemName(Which(), aStr); + aStr += sal_Unicode(' '); + rText.Insert(aStr, 0); + } + + return ePres; +} + +#ifdef SDR_ISPOOLABLE + +int __EXPORT SdrSignedPercentItem::IsPoolable() const +{ + USHORT nId=Which(); + return nId < SDRATTR_NOTPERSIST_FIRST || nId > SDRATTR_NOTPERSIST_LAST; +} +#endif + +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +// SdrGrafRedItem +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +TYPEINIT1( SdrGrafRedItem, SdrSignedPercentItem ); + +SfxPoolItem* __EXPORT SdrGrafRedItem::Clone( SfxItemPool* /*pPool*/) const +{ + return new SdrGrafRedItem( *this ); +} + +SfxPoolItem* __EXPORT SdrGrafRedItem::Create( SvStream& rIn, USHORT /*nVer*/) const +{ + return new SdrGrafRedItem( rIn ); +} + +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +// SdrGrafGreenItem +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +TYPEINIT1( SdrGrafGreenItem, SdrSignedPercentItem ); + +SfxPoolItem* __EXPORT SdrGrafGreenItem::Clone( SfxItemPool* /*pPool*/) const +{ + return new SdrGrafGreenItem( *this ); +} + +SfxPoolItem* __EXPORT SdrGrafGreenItem::Create( SvStream& rIn, USHORT /*nVer*/) const +{ + return new SdrGrafGreenItem( rIn ); +} + +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +// SdrGrafBlueItem +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +TYPEINIT1( SdrGrafBlueItem, SdrSignedPercentItem ); + +SfxPoolItem* __EXPORT SdrGrafBlueItem::Clone( SfxItemPool* /*pPool*/) const +{ + return new SdrGrafBlueItem( *this ); +} + +SfxPoolItem* __EXPORT SdrGrafBlueItem::Create( SvStream& rIn, USHORT /*nVer*/) const +{ + return new SdrGrafBlueItem( rIn ); +} + +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +// SdrGrafLuminanceItem +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +TYPEINIT1( SdrGrafLuminanceItem, SdrSignedPercentItem ); + +SfxPoolItem* __EXPORT SdrGrafLuminanceItem::Clone( SfxItemPool* /*pPool*/) const +{ + return new SdrGrafLuminanceItem( *this ); +} + +SfxPoolItem* __EXPORT SdrGrafLuminanceItem::Create( SvStream& rIn, USHORT /*nVer*/) const +{ + return new SdrGrafLuminanceItem( rIn ); +} + +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +// SdrGrafContrastItem +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +TYPEINIT1( SdrGrafContrastItem, SdrSignedPercentItem ); + +SfxPoolItem* __EXPORT SdrGrafContrastItem::Clone( SfxItemPool* /*pPool*/) const +{ + return new SdrGrafContrastItem( *this ); +} + +SfxPoolItem* __EXPORT SdrGrafContrastItem::Create( SvStream& rIn, USHORT /*nVer*/) const +{ + return new SdrGrafContrastItem( rIn ); +} + +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +// SdrGrafGamma100Item +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +TYPEINIT1( SdrGrafGamma100Item, SfxUInt32Item ); + +SfxPoolItem* __EXPORT SdrGrafGamma100Item::Clone( SfxItemPool* /*pPool */) const +{ + return new SdrGrafGamma100Item( *this ); +} + +SfxPoolItem* __EXPORT SdrGrafGamma100Item::Create( SvStream& rIn, USHORT /*nVer*/) const +{ + return new SdrGrafGamma100Item( rIn ); +} + +sal_Bool SdrGrafGamma100Item::QueryValue( uno::Any& rVal, BYTE /*nMemberId*/) const +{ + rVal <<= ((double)GetValue()) / 100.0; + return sal_True; +} + +sal_Bool SdrGrafGamma100Item::PutValue( const uno::Any& rVal, BYTE /*nMemberId*/) +{ + double nGamma = 0; + if(!(rVal >>= nGamma)) + return sal_False; + + SetValue( (UINT32)(nGamma * 100.0 ) ); + return sal_True; +} + +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +// SdrGrafInvertItem +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +TYPEINIT1( SdrGrafInvertItem, SdrOnOffItem ); + +SfxPoolItem* __EXPORT SdrGrafInvertItem::Clone( SfxItemPool* /*pPool*/) const +{ + return new SdrGrafInvertItem( *this ); +} + +SfxPoolItem* __EXPORT SdrGrafInvertItem::Create( SvStream& rIn, USHORT /*nVer*/) const +{ + return new SdrGrafInvertItem( rIn ); +} + +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +// SdrGrafTransparenceItem +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +TYPEINIT1( SdrGrafTransparenceItem, SdrPercentItem ); + +SfxPoolItem* __EXPORT SdrGrafTransparenceItem::Clone( SfxItemPool* /*pPool*/) const +{ + return new SdrGrafTransparenceItem( *this ); +} + +SfxPoolItem* __EXPORT SdrGrafTransparenceItem::Create( SvStream& rIn, USHORT /*nVer*/) const +{ + return new SdrGrafTransparenceItem( rIn ); +} + +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +// SdrGrafModeItem +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +TYPEINIT1( SdrGrafModeItem, SfxEnumItem ); + +SfxPoolItem* __EXPORT SdrGrafModeItem::Clone(SfxItemPool* /*pPool*/) const +{ + return new SdrGrafModeItem( *this ); +} + +SfxPoolItem* __EXPORT SdrGrafModeItem::Create( SvStream& rIn, USHORT /*nVer*/) const +{ + return new SdrGrafModeItem( rIn ); +} + +USHORT __EXPORT SdrGrafModeItem::GetValueCount() const +{ + return 4; +} + +XubString __EXPORT SdrGrafModeItem::GetValueTextByPos(UINT16 nPos) const +{ + XubString aStr; + + switch(nPos) + { + case 1: + { + sal_Char aTextGreys[] = "Greys"; + aStr += UniString(aTextGreys, sizeof(aTextGreys-1)); + break; + } + case 2: + { + sal_Char aTextBlackWhite[] = "Black/White"; + aStr += UniString(aTextBlackWhite, sizeof(aTextBlackWhite-1)); + break; + } + case 3: + { + sal_Char aTextWatermark[] = "Watermark"; + aStr += UniString(aTextWatermark, sizeof(aTextWatermark-1)); + break; + } + default: + { + sal_Char aTextStandard[] = "Standard"; + aStr += UniString(aTextStandard, sizeof(aTextStandard-1)); + break; + } + } + + return aStr; +} + +SfxItemPresentation __EXPORT SdrGrafModeItem::GetPresentation( SfxItemPresentation ePres, + SfxMapUnit /*eCoreMetric*/, SfxMapUnit /*ePresMetric*/, + XubString& rText, const IntlWrapper *) const +{ + rText = GetValueTextByPos( sal::static_int_cast< USHORT >( GetValue() ) ); + + if( ePres == SFX_ITEM_PRESENTATION_COMPLETE ) + { + String aStr; + + SdrItemPool::TakeItemName( Which(), aStr ); + aStr += sal_Unicode(' '); + rText.Insert( aStr, 0 ); + } + + return ePres; +} + +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +// SdrGrafCropItem +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +TYPEINIT1( SdrGrafCropItem, SvxGrfCrop ); + +SfxPoolItem* SdrGrafCropItem::Clone( SfxItemPool* /*pPool*/) const +{ + return new SdrGrafCropItem( *this ); +} + +SfxPoolItem* SdrGrafCropItem::Create( SvStream& rIn, USHORT nVer ) const +{ + return( ( 0 == nVer ) ? Clone( NULL ) : SvxGrfCrop::Create( rIn, nVer ) ); +} + +USHORT SdrGrafCropItem::GetVersion( USHORT /*nFileVersion*/) const +{ + // GRFCROP_VERSION_MOVETOSVX is 1 + return GRFCROP_VERSION_MOVETOSVX; +} + +// eof |