xref: /aoo41x/main/svx/source/svdraw/svdattr.cxx (revision cdf0e10c)
1 /*************************************************************************
2  *
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * Copyright 2000, 2010 Oracle and/or its affiliates.
6  *
7  * OpenOffice.org - a multi-platform office productivity suite
8  *
9  * This file is part of OpenOffice.org.
10  *
11  * OpenOffice.org is free software: you can redistribute it and/or modify
12  * it under the terms of the GNU Lesser General Public License version 3
13  * only, as published by the Free Software Foundation.
14  *
15  * OpenOffice.org is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU Lesser General Public License version 3 for more details
19  * (a copy is included in the LICENSE file that accompanied this code).
20  *
21  * You should have received a copy of the GNU Lesser General Public License
22  * version 3 along with OpenOffice.org.  If not, see
23  * <http://www.openoffice.org/license.html>
24  * for a copy of the LGPLv3 License.
25  *
26  ************************************************************************/
27 
28 // MARKER(update_precomp.py): autogen include statement, do not remove
29 #include "precompiled_svx.hxx"
30 
31 
32 #include <com/sun/star/drawing/TextFitToSizeType.hpp>
33 #include <com/sun/star/drawing/TextHorizontalAdjust.hpp>
34 #include <com/sun/star/drawing/TextVerticalAdjust.hpp>
35 #include <com/sun/star/drawing/TextAnimationKind.hpp>
36 #include <com/sun/star/uno/Any.hxx>
37 #include <com/sun/star/drawing/TextAnimationDirection.hpp>
38 #include <com/sun/star/drawing/ConnectorType.hpp>
39 #include <com/sun/star/drawing/MeasureKind.hpp>
40 #include <com/sun/star/drawing/MeasureTextHorzPos.hpp>
41 #include <com/sun/star/drawing/MeasureTextVertPos.hpp>
42 #include <com/sun/star/drawing/CircleKind.hpp>
43 #include <com/sun/star/uno/Sequence.hxx>
44 
45 #include <unotools/intlwrapper.hxx>
46 #include <comphelper/processfactory.hxx>
47 #include <vcl/svapp.hxx>
48 #include <svx/svdattr.hxx>
49 #include <svx/svdattrx.hxx>
50 #include <svx/svdpool.hxx>
51 
52 #include <svl/solar.hrc>
53 #include "editeng/xmlcnitm.hxx"
54 
55 #include <svx/svxids.hrc>
56 #include <svx/xtable.hxx>    // fuer RGB_Color()
57 #include "svx/svditext.hxx"
58 #include <svx/svdmodel.hxx>  // fuer DEGREE_CHAR
59 #include <svx/svdtrans.hxx>
60 #include "svx/svdglob.hxx"  // Stringcache
61 #include "svx/svdstr.hrc"
62 #include <svx/sdgcpitm.hxx>
63 #include <editeng/adjitem.hxx>
64 #include <svx/sdtfchim.hxx>
65 #include <editeng/writingmodeitem.hxx>
66 #include <tools/bigint.hxx>
67 #include <tools/stream.hxx>
68 
69 #include <svx/xfillit0.hxx>
70 #include <svx/xflclit.hxx>
71 #include <svx/xlineit0.hxx>
72 #include <svx/svx3ditems.hxx>
73 
74 #define ITEMID_BOX SDRATTR_TABLE_BORDER
75 #define ITEMID_BOXINFO SDRATTR_TABLE_BORDER_INNER
76 #include "editeng/boxitem.hxx"
77 
78 #define ITEMID_SHADOW SDRATTR_TABLE_BORDER_SHADOW
79 #include "editeng/shaditem.hxx"
80 
81 #define ITEMID_LINE 0
82 #include "editeng/bolnitem.hxx"
83 
84 using namespace ::rtl;
85 using namespace ::com::sun::star;
86 
87 /*************************************************************************
88 |*
89 |* Konstruktor
90 |*
91 \************************************************************************/
92 
93 SdrItemPool::SdrItemPool(
94 	SfxItemPool* _pMaster,
95 	sal_Bool bLoadRefCounts)
96 :	XOutdevItemPool(_pMaster, SDRATTR_START, SDRATTR_END, bLoadRefCounts)
97 {
98 	// preapare some constants
99 	const Color aNullCol(RGB_Color(COL_BLACK));
100 	const XubString aEmptyStr;
101 	const sal_Int32 nDefEdgeDist(500L); // Erstmal hart defaulted fuer Draw (100TH_MM). hier muss noch der MapMode beruecksichtigt werden.
102 
103 	// init the non-persistent items
104 	for(sal_uInt16 i(SDRATTR_NOTPERSIST_FIRST); i <= SDRATTR_NOTPERSIST_LAST; i++)
105 	{
106 		mpLocalItemInfos[i - SDRATTR_START]._nFlags=0;
107 	}
108 
109 	// init own PoolDefaults
110 	mppLocalPoolDefaults[SDRATTR_SHADOW            -SDRATTR_START]=new SdrShadowItem;
111 	mppLocalPoolDefaults[SDRATTR_SHADOWCOLOR       -SDRATTR_START]=new SdrShadowColorItem(aEmptyStr,aNullCol);
112 	mppLocalPoolDefaults[SDRATTR_SHADOWXDIST       -SDRATTR_START]=new SdrShadowXDistItem;
113 	mppLocalPoolDefaults[SDRATTR_SHADOWYDIST       -SDRATTR_START]=new SdrShadowYDistItem;
114 	mppLocalPoolDefaults[SDRATTR_SHADOWTRANSPARENCE-SDRATTR_START]=new SdrShadowTransparenceItem;
115 	mppLocalPoolDefaults[SDRATTR_SHADOW3D          -SDRATTR_START]=new SfxVoidItem(SDRATTR_SHADOW3D    );
116 	mppLocalPoolDefaults[SDRATTR_SHADOWPERSP       -SDRATTR_START]=new SfxVoidItem(SDRATTR_SHADOWPERSP );
117 	mppLocalPoolDefaults[SDRATTR_CAPTIONTYPE      -SDRATTR_START]=new SdrCaptionTypeItem      ;
118 	mppLocalPoolDefaults[SDRATTR_CAPTIONFIXEDANGLE-SDRATTR_START]=new SdrCaptionFixedAngleItem;
119 	mppLocalPoolDefaults[SDRATTR_CAPTIONANGLE     -SDRATTR_START]=new SdrCaptionAngleItem     ;
120 	mppLocalPoolDefaults[SDRATTR_CAPTIONGAP       -SDRATTR_START]=new SdrCaptionGapItem       ;
121 	mppLocalPoolDefaults[SDRATTR_CAPTIONESCDIR    -SDRATTR_START]=new SdrCaptionEscDirItem    ;
122 	mppLocalPoolDefaults[SDRATTR_CAPTIONESCISREL  -SDRATTR_START]=new SdrCaptionEscIsRelItem  ;
123 	mppLocalPoolDefaults[SDRATTR_CAPTIONESCREL    -SDRATTR_START]=new SdrCaptionEscRelItem    ;
124 	mppLocalPoolDefaults[SDRATTR_CAPTIONESCABS    -SDRATTR_START]=new SdrCaptionEscAbsItem    ;
125 	mppLocalPoolDefaults[SDRATTR_CAPTIONLINELEN   -SDRATTR_START]=new SdrCaptionLineLenItem   ;
126 	mppLocalPoolDefaults[SDRATTR_CAPTIONFITLINELEN-SDRATTR_START]=new SdrCaptionFitLineLenItem;
127 	mppLocalPoolDefaults[SDRATTR_ECKENRADIUS			-SDRATTR_START]=new SdrEckenradiusItem;
128 	mppLocalPoolDefaults[SDRATTR_TEXT_MINFRAMEHEIGHT	-SDRATTR_START]=new SdrTextMinFrameHeightItem;
129 	mppLocalPoolDefaults[SDRATTR_TEXT_AUTOGROWHEIGHT	-SDRATTR_START]=new SdrTextAutoGrowHeightItem;
130 	mppLocalPoolDefaults[SDRATTR_TEXT_FITTOSIZE		-SDRATTR_START]=new SdrTextFitToSizeTypeItem;
131 	mppLocalPoolDefaults[SDRATTR_TEXT_LEFTDIST		-SDRATTR_START]=new SdrTextLeftDistItem;
132 	mppLocalPoolDefaults[SDRATTR_TEXT_RIGHTDIST		-SDRATTR_START]=new SdrTextRightDistItem;
133 	mppLocalPoolDefaults[SDRATTR_TEXT_UPPERDIST		-SDRATTR_START]=new SdrTextUpperDistItem;
134 	mppLocalPoolDefaults[SDRATTR_TEXT_LOWERDIST		-SDRATTR_START]=new SdrTextLowerDistItem;
135 	mppLocalPoolDefaults[SDRATTR_TEXT_VERTADJUST		-SDRATTR_START]=new SdrTextVertAdjustItem;
136 	mppLocalPoolDefaults[SDRATTR_TEXT_MAXFRAMEHEIGHT	-SDRATTR_START]=new SdrTextMaxFrameHeightItem;
137 	mppLocalPoolDefaults[SDRATTR_TEXT_MINFRAMEWIDTH	-SDRATTR_START]=new SdrTextMinFrameWidthItem;
138 	mppLocalPoolDefaults[SDRATTR_TEXT_MAXFRAMEWIDTH	-SDRATTR_START]=new SdrTextMaxFrameWidthItem;
139 	mppLocalPoolDefaults[SDRATTR_TEXT_AUTOGROWWIDTH	-SDRATTR_START]=new SdrTextAutoGrowWidthItem;
140 	mppLocalPoolDefaults[SDRATTR_TEXT_HORZADJUST		-SDRATTR_START]=new SdrTextHorzAdjustItem;
141 	mppLocalPoolDefaults[SDRATTR_TEXT_ANIKIND			-SDRATTR_START]=new SdrTextAniKindItem;
142 	mppLocalPoolDefaults[SDRATTR_TEXT_ANIDIRECTION	-SDRATTR_START]=new SdrTextAniDirectionItem;
143 	mppLocalPoolDefaults[SDRATTR_TEXT_ANISTARTINSIDE	-SDRATTR_START]=new SdrTextAniStartInsideItem;
144 	mppLocalPoolDefaults[SDRATTR_TEXT_ANISTOPINSIDE	-SDRATTR_START]=new SdrTextAniStopInsideItem;
145 	mppLocalPoolDefaults[SDRATTR_TEXT_ANICOUNT		-SDRATTR_START]=new SdrTextAniCountItem;
146 	mppLocalPoolDefaults[SDRATTR_TEXT_ANIDELAY		-SDRATTR_START]=new SdrTextAniDelayItem;
147 	mppLocalPoolDefaults[SDRATTR_TEXT_ANIAMOUNT		-SDRATTR_START]=new SdrTextAniAmountItem;
148 	mppLocalPoolDefaults[SDRATTR_TEXT_CONTOURFRAME	-SDRATTR_START]=new SdrTextContourFrameItem;
149 	mppLocalPoolDefaults[SDRATTR_CUSTOMSHAPE_ADJUSTMENT -SDRATTR_START]=new SdrCustomShapeAdjustmentItem;
150 	mppLocalPoolDefaults[SDRATTR_XMLATTRIBUTES -SDRATTR_START]=new SvXMLAttrContainerItem( SDRATTR_XMLATTRIBUTES );
151 	mppLocalPoolDefaults[SDRATTR_TEXT_USEFIXEDCELLHEIGHT -SDRATTR_START]=new SdrTextFixedCellHeightItem;
152 	mppLocalPoolDefaults[SDRATTR_TEXT_WORDWRAP		   -SDRATTR_START]=new SdrTextWordWrapItem;
153 	mppLocalPoolDefaults[SDRATTR_TEXT_AUTOGROWSIZE	   -SDRATTR_START]=new SdrTextAutoGrowSizeItem;
154 	mppLocalPoolDefaults[SDRATTR_EDGEKIND         -SDRATTR_START]=new SdrEdgeKindItem;
155 	mppLocalPoolDefaults[SDRATTR_EDGENODE1HORZDIST-SDRATTR_START]=new SdrEdgeNode1HorzDistItem(nDefEdgeDist);
156 	mppLocalPoolDefaults[SDRATTR_EDGENODE1VERTDIST-SDRATTR_START]=new SdrEdgeNode1VertDistItem(nDefEdgeDist);
157 	mppLocalPoolDefaults[SDRATTR_EDGENODE2HORZDIST-SDRATTR_START]=new SdrEdgeNode2HorzDistItem(nDefEdgeDist);
158 	mppLocalPoolDefaults[SDRATTR_EDGENODE2VERTDIST-SDRATTR_START]=new SdrEdgeNode2VertDistItem(nDefEdgeDist);
159 	mppLocalPoolDefaults[SDRATTR_EDGENODE1GLUEDIST-SDRATTR_START]=new SdrEdgeNode1GlueDistItem;
160 	mppLocalPoolDefaults[SDRATTR_EDGENODE2GLUEDIST-SDRATTR_START]=new SdrEdgeNode2GlueDistItem;
161 	mppLocalPoolDefaults[SDRATTR_EDGELINEDELTAANZ -SDRATTR_START]=new SdrEdgeLineDeltaAnzItem;
162 	mppLocalPoolDefaults[SDRATTR_EDGELINE1DELTA   -SDRATTR_START]=new SdrEdgeLine1DeltaItem;
163 	mppLocalPoolDefaults[SDRATTR_EDGELINE2DELTA   -SDRATTR_START]=new SdrEdgeLine2DeltaItem;
164 	mppLocalPoolDefaults[SDRATTR_EDGELINE3DELTA   -SDRATTR_START]=new SdrEdgeLine3DeltaItem;
165 	mppLocalPoolDefaults[SDRATTR_MEASUREKIND             -SDRATTR_START]=new SdrMeasureKindItem;
166 	mppLocalPoolDefaults[SDRATTR_MEASURETEXTHPOS         -SDRATTR_START]=new SdrMeasureTextHPosItem;
167 	mppLocalPoolDefaults[SDRATTR_MEASURETEXTVPOS         -SDRATTR_START]=new SdrMeasureTextVPosItem;
168 	mppLocalPoolDefaults[SDRATTR_MEASURELINEDIST         -SDRATTR_START]=new SdrMeasureLineDistItem(800);
169 	mppLocalPoolDefaults[SDRATTR_MEASUREHELPLINEOVERHANG -SDRATTR_START]=new SdrMeasureHelplineOverhangItem(200);
170 	mppLocalPoolDefaults[SDRATTR_MEASUREHELPLINEDIST     -SDRATTR_START]=new SdrMeasureHelplineDistItem(100);
171 	mppLocalPoolDefaults[SDRATTR_MEASUREHELPLINE1LEN     -SDRATTR_START]=new SdrMeasureHelpline1LenItem;
172 	mppLocalPoolDefaults[SDRATTR_MEASUREHELPLINE2LEN     -SDRATTR_START]=new SdrMeasureHelpline2LenItem;
173 	mppLocalPoolDefaults[SDRATTR_MEASUREBELOWREFEDGE     -SDRATTR_START]=new SdrMeasureBelowRefEdgeItem;
174 	mppLocalPoolDefaults[SDRATTR_MEASURETEXTROTA90       -SDRATTR_START]=new SdrMeasureTextRota90Item;
175 	mppLocalPoolDefaults[SDRATTR_MEASURETEXTUPSIDEDOWN   -SDRATTR_START]=new SdrMeasureTextUpsideDownItem;
176 	mppLocalPoolDefaults[SDRATTR_MEASUREOVERHANG         -SDRATTR_START]=new SdrMeasureOverhangItem(600);
177 	mppLocalPoolDefaults[SDRATTR_MEASUREUNIT             -SDRATTR_START]=new SdrMeasureUnitItem;
178 	mppLocalPoolDefaults[SDRATTR_MEASURESCALE            -SDRATTR_START]=new SdrMeasureScaleItem;
179 	mppLocalPoolDefaults[SDRATTR_MEASURESHOWUNIT         -SDRATTR_START]=new SdrMeasureShowUnitItem;
180 	mppLocalPoolDefaults[SDRATTR_MEASUREFORMATSTRING     -SDRATTR_START]=new SdrMeasureFormatStringItem();
181 	mppLocalPoolDefaults[SDRATTR_MEASURETEXTAUTOANGLE    -SDRATTR_START]=new SdrMeasureTextAutoAngleItem();
182 	mppLocalPoolDefaults[SDRATTR_MEASURETEXTAUTOANGLEVIEW-SDRATTR_START]=new SdrMeasureTextAutoAngleViewItem();
183 	mppLocalPoolDefaults[SDRATTR_MEASURETEXTISFIXEDANGLE -SDRATTR_START]=new SdrMeasureTextIsFixedAngleItem();
184 	mppLocalPoolDefaults[SDRATTR_MEASURETEXTFIXEDANGLE   -SDRATTR_START]=new SdrMeasureTextFixedAngleItem();
185 	mppLocalPoolDefaults[SDRATTR_MEASUREDECIMALPLACES    -SDRATTR_START]=new SdrMeasureDecimalPlacesItem();
186 	mppLocalPoolDefaults[SDRATTR_CIRCKIND      -SDRATTR_START]=new SdrCircKindItem;
187 	mppLocalPoolDefaults[SDRATTR_CIRCSTARTANGLE-SDRATTR_START]=new SdrCircStartAngleItem;
188 	mppLocalPoolDefaults[SDRATTR_CIRCENDANGLE  -SDRATTR_START]=new SdrCircEndAngleItem;
189 	mppLocalPoolDefaults[SDRATTR_OBJMOVEPROTECT -SDRATTR_START]=new SdrObjMoveProtectItem;
190 	mppLocalPoolDefaults[SDRATTR_OBJSIZEPROTECT -SDRATTR_START]=new SdrObjSizeProtectItem;
191 	mppLocalPoolDefaults[SDRATTR_OBJPRINTABLE   -SDRATTR_START]=new SdrObjPrintableItem;
192 	mppLocalPoolDefaults[SDRATTR_OBJVISIBLE		-SDRATTR_START]=new SdrObjVisibleItem;
193 	mppLocalPoolDefaults[SDRATTR_LAYERID        -SDRATTR_START]=new SdrLayerIdItem;
194 	mppLocalPoolDefaults[SDRATTR_LAYERNAME      -SDRATTR_START]=new SdrLayerNameItem;
195 	mppLocalPoolDefaults[SDRATTR_OBJECTNAME     -SDRATTR_START]=new SdrObjectNameItem;
196 	mppLocalPoolDefaults[SDRATTR_ALLPOSITIONX   -SDRATTR_START]=new SdrAllPositionXItem;
197 	mppLocalPoolDefaults[SDRATTR_ALLPOSITIONY   -SDRATTR_START]=new SdrAllPositionYItem;
198 	mppLocalPoolDefaults[SDRATTR_ALLSIZEWIDTH   -SDRATTR_START]=new SdrAllSizeWidthItem;
199 	mppLocalPoolDefaults[SDRATTR_ALLSIZEHEIGHT  -SDRATTR_START]=new SdrAllSizeHeightItem;
200 	mppLocalPoolDefaults[SDRATTR_ONEPOSITIONX   -SDRATTR_START]=new SdrOnePositionXItem;
201 	mppLocalPoolDefaults[SDRATTR_ONEPOSITIONY   -SDRATTR_START]=new SdrOnePositionYItem;
202 	mppLocalPoolDefaults[SDRATTR_ONESIZEWIDTH   -SDRATTR_START]=new SdrOneSizeWidthItem;
203 	mppLocalPoolDefaults[SDRATTR_ONESIZEHEIGHT  -SDRATTR_START]=new SdrOneSizeHeightItem;
204 	mppLocalPoolDefaults[SDRATTR_LOGICSIZEWIDTH -SDRATTR_START]=new SdrLogicSizeWidthItem;
205 	mppLocalPoolDefaults[SDRATTR_LOGICSIZEHEIGHT-SDRATTR_START]=new SdrLogicSizeHeightItem;
206 	mppLocalPoolDefaults[SDRATTR_ROTATEANGLE    -SDRATTR_START]=new SdrRotateAngleItem;
207 	mppLocalPoolDefaults[SDRATTR_SHEARANGLE     -SDRATTR_START]=new SdrShearAngleItem;
208 	mppLocalPoolDefaults[SDRATTR_MOVEX          -SDRATTR_START]=new SdrMoveXItem;
209 	mppLocalPoolDefaults[SDRATTR_MOVEY          -SDRATTR_START]=new SdrMoveYItem;
210 	mppLocalPoolDefaults[SDRATTR_RESIZEXONE     -SDRATTR_START]=new SdrResizeXOneItem;
211 	mppLocalPoolDefaults[SDRATTR_RESIZEYONE     -SDRATTR_START]=new SdrResizeYOneItem;
212 	mppLocalPoolDefaults[SDRATTR_ROTATEONE      -SDRATTR_START]=new SdrRotateOneItem;
213 	mppLocalPoolDefaults[SDRATTR_HORZSHEARONE   -SDRATTR_START]=new SdrHorzShearOneItem;
214 	mppLocalPoolDefaults[SDRATTR_VERTSHEARONE   -SDRATTR_START]=new SdrVertShearOneItem;
215 	mppLocalPoolDefaults[SDRATTR_RESIZEXALL     -SDRATTR_START]=new SdrResizeXAllItem;
216 	mppLocalPoolDefaults[SDRATTR_RESIZEYALL     -SDRATTR_START]=new SdrResizeYAllItem;
217 	mppLocalPoolDefaults[SDRATTR_ROTATEALL      -SDRATTR_START]=new SdrRotateAllItem;
218 	mppLocalPoolDefaults[SDRATTR_HORZSHEARALL   -SDRATTR_START]=new SdrHorzShearAllItem;
219 	mppLocalPoolDefaults[SDRATTR_VERTSHEARALL   -SDRATTR_START]=new SdrVertShearAllItem;
220 	mppLocalPoolDefaults[SDRATTR_TRANSFORMREF1X -SDRATTR_START]=new SdrTransformRef1XItem;
221 	mppLocalPoolDefaults[SDRATTR_TRANSFORMREF1Y -SDRATTR_START]=new SdrTransformRef1YItem;
222 	mppLocalPoolDefaults[SDRATTR_TRANSFORMREF2X -SDRATTR_START]=new SdrTransformRef2XItem;
223 	mppLocalPoolDefaults[SDRATTR_TRANSFORMREF2Y -SDRATTR_START]=new SdrTransformRef2YItem;
224     mppLocalPoolDefaults[SDRATTR_TEXTDIRECTION  -SDRATTR_START]=new SvxWritingModeItem(com::sun::star::text::WritingMode_LR_TB, SDRATTR_TEXTDIRECTION);
225 	mppLocalPoolDefaults[ SDRATTR_GRAFRED				- SDRATTR_START] = new SdrGrafRedItem;
226 	mppLocalPoolDefaults[ SDRATTR_GRAFGREEN			- SDRATTR_START] = new SdrGrafGreenItem;
227 	mppLocalPoolDefaults[ SDRATTR_GRAFBLUE			- SDRATTR_START] = new SdrGrafBlueItem;
228 	mppLocalPoolDefaults[ SDRATTR_GRAFLUMINANCE		- SDRATTR_START] = new SdrGrafLuminanceItem;
229 	mppLocalPoolDefaults[ SDRATTR_GRAFCONTRAST		- SDRATTR_START] = new SdrGrafContrastItem;
230 	mppLocalPoolDefaults[ SDRATTR_GRAFGAMMA			- SDRATTR_START] = new SdrGrafGamma100Item;
231 	mppLocalPoolDefaults[ SDRATTR_GRAFTRANSPARENCE	- SDRATTR_START] = new SdrGrafTransparenceItem;
232 	mppLocalPoolDefaults[ SDRATTR_GRAFINVERT			- SDRATTR_START] = new SdrGrafInvertItem;
233 	mppLocalPoolDefaults[ SDRATTR_GRAFMODE			- SDRATTR_START] = new SdrGrafModeItem;
234 	mppLocalPoolDefaults[ SDRATTR_GRAFCROP			- SDRATTR_START] = new SdrGrafCropItem;
235 	mppLocalPoolDefaults[ SDRATTR_3DOBJ_PERCENT_DIAGONAL - SDRATTR_START ] = new Svx3DPercentDiagonalItem;
236 	mppLocalPoolDefaults[ SDRATTR_3DOBJ_BACKSCALE - SDRATTR_START ] = new Svx3DBackscaleItem;
237 	mppLocalPoolDefaults[ SDRATTR_3DOBJ_DEPTH - SDRATTR_START ] = new Svx3DDepthItem;
238 	mppLocalPoolDefaults[ SDRATTR_3DOBJ_HORZ_SEGS - SDRATTR_START ] = new Svx3DHorizontalSegmentsItem;
239 	mppLocalPoolDefaults[ SDRATTR_3DOBJ_VERT_SEGS - SDRATTR_START ] = new Svx3DVerticalSegmentsItem;
240 	mppLocalPoolDefaults[ SDRATTR_3DOBJ_END_ANGLE - SDRATTR_START ] = new Svx3DEndAngleItem;
241 	mppLocalPoolDefaults[ SDRATTR_3DOBJ_DOUBLE_SIDED - SDRATTR_START ] = new Svx3DDoubleSidedItem;
242 	mppLocalPoolDefaults[ SDRATTR_3DOBJ_NORMALS_KIND - SDRATTR_START ] = new Svx3DNormalsKindItem;
243 	mppLocalPoolDefaults[ SDRATTR_3DOBJ_NORMALS_INVERT - SDRATTR_START ] = new Svx3DNormalsInvertItem;
244 	mppLocalPoolDefaults[ SDRATTR_3DOBJ_TEXTURE_PROJ_X - SDRATTR_START ] = new Svx3DTextureProjectionXItem;
245 	mppLocalPoolDefaults[ SDRATTR_3DOBJ_TEXTURE_PROJ_Y - SDRATTR_START ] = new Svx3DTextureProjectionYItem;
246 	mppLocalPoolDefaults[ SDRATTR_3DOBJ_SHADOW_3D - SDRATTR_START ] = new Svx3DShadow3DItem;
247 	mppLocalPoolDefaults[ SDRATTR_3DOBJ_MAT_COLOR - SDRATTR_START ] = new Svx3DMaterialColorItem;
248 	mppLocalPoolDefaults[ SDRATTR_3DOBJ_MAT_EMISSION - SDRATTR_START ] = new Svx3DMaterialEmissionItem;
249 	mppLocalPoolDefaults[ SDRATTR_3DOBJ_MAT_SPECULAR - SDRATTR_START ] = new Svx3DMaterialSpecularItem;
250 	mppLocalPoolDefaults[ SDRATTR_3DOBJ_MAT_SPECULAR_INTENSITY - SDRATTR_START ] = new Svx3DMaterialSpecularIntensityItem;
251 	mppLocalPoolDefaults[ SDRATTR_3DOBJ_TEXTURE_KIND - SDRATTR_START ] = new Svx3DTextureKindItem;
252 	mppLocalPoolDefaults[ SDRATTR_3DOBJ_TEXTURE_MODE - SDRATTR_START ] = new Svx3DTextureModeItem;
253 	mppLocalPoolDefaults[ SDRATTR_3DOBJ_TEXTURE_FILTER - SDRATTR_START ] = new Svx3DTextureFilterItem;
254 	mppLocalPoolDefaults[ SDRATTR_3DOBJ_SMOOTH_NORMALS - SDRATTR_START ] = new Svx3DSmoothNormalsItem;
255 	mppLocalPoolDefaults[ SDRATTR_3DOBJ_SMOOTH_LIDS - SDRATTR_START ] = new Svx3DSmoothLidsItem;
256 	mppLocalPoolDefaults[ SDRATTR_3DOBJ_CHARACTER_MODE - SDRATTR_START ] = new Svx3DCharacterModeItem;
257 	mppLocalPoolDefaults[ SDRATTR_3DOBJ_CLOSE_FRONT - SDRATTR_START ] = new Svx3DCloseFrontItem;
258 	mppLocalPoolDefaults[ SDRATTR_3DOBJ_CLOSE_BACK - SDRATTR_START ] = new Svx3DCloseBackItem;
259 	mppLocalPoolDefaults[ SDRATTR_3DOBJ_REDUCED_LINE_GEOMETRY - SDRATTR_START ] = new Svx3DReducedLineGeometryItem;
260 	mppLocalPoolDefaults[ SDRATTR_3DSCENE_PERSPECTIVE - SDRATTR_START ] = new Svx3DPerspectiveItem;
261 	mppLocalPoolDefaults[ SDRATTR_3DSCENE_DISTANCE - SDRATTR_START ] = new Svx3DDistanceItem;
262 	mppLocalPoolDefaults[ SDRATTR_3DSCENE_FOCAL_LENGTH - SDRATTR_START ] = new Svx3DFocalLengthItem;
263 	mppLocalPoolDefaults[ SDRATTR_3DSCENE_TWO_SIDED_LIGHTING - SDRATTR_START ] = new Svx3DTwoSidedLightingItem;
264 	mppLocalPoolDefaults[ SDRATTR_3DSCENE_LIGHTCOLOR_1 - SDRATTR_START ] = new Svx3DLightcolor1Item;
265 	mppLocalPoolDefaults[ SDRATTR_3DSCENE_LIGHTCOLOR_2 - SDRATTR_START ] = new Svx3DLightcolor2Item;
266 	mppLocalPoolDefaults[ SDRATTR_3DSCENE_LIGHTCOLOR_3 - SDRATTR_START ] = new Svx3DLightcolor3Item;
267 	mppLocalPoolDefaults[ SDRATTR_3DSCENE_LIGHTCOLOR_4 - SDRATTR_START ] = new Svx3DLightcolor4Item;
268 	mppLocalPoolDefaults[ SDRATTR_3DSCENE_LIGHTCOLOR_5 - SDRATTR_START ] = new Svx3DLightcolor5Item;
269 	mppLocalPoolDefaults[ SDRATTR_3DSCENE_LIGHTCOLOR_6 - SDRATTR_START ] = new Svx3DLightcolor6Item;
270 	mppLocalPoolDefaults[ SDRATTR_3DSCENE_LIGHTCOLOR_7 - SDRATTR_START ] = new Svx3DLightcolor7Item;
271 	mppLocalPoolDefaults[ SDRATTR_3DSCENE_LIGHTCOLOR_8 - SDRATTR_START ] = new Svx3DLightcolor8Item;
272 	mppLocalPoolDefaults[ SDRATTR_3DSCENE_AMBIENTCOLOR - SDRATTR_START ] = new Svx3DAmbientcolorItem;
273 	mppLocalPoolDefaults[ SDRATTR_3DSCENE_LIGHTON_1 - SDRATTR_START ] = new Svx3DLightOnOff1Item;
274 	mppLocalPoolDefaults[ SDRATTR_3DSCENE_LIGHTON_2 - SDRATTR_START ] = new Svx3DLightOnOff2Item;
275 	mppLocalPoolDefaults[ SDRATTR_3DSCENE_LIGHTON_3 - SDRATTR_START ] = new Svx3DLightOnOff3Item;
276 	mppLocalPoolDefaults[ SDRATTR_3DSCENE_LIGHTON_4 - SDRATTR_START ] = new Svx3DLightOnOff4Item;
277 	mppLocalPoolDefaults[ SDRATTR_3DSCENE_LIGHTON_5 - SDRATTR_START ] = new Svx3DLightOnOff5Item;
278 	mppLocalPoolDefaults[ SDRATTR_3DSCENE_LIGHTON_6 - SDRATTR_START ] = new Svx3DLightOnOff6Item;
279 	mppLocalPoolDefaults[ SDRATTR_3DSCENE_LIGHTON_7 - SDRATTR_START ] = new Svx3DLightOnOff7Item;
280 	mppLocalPoolDefaults[ SDRATTR_3DSCENE_LIGHTON_8 - SDRATTR_START ] = new Svx3DLightOnOff8Item;
281 	mppLocalPoolDefaults[ SDRATTR_3DSCENE_LIGHTDIRECTION_1 - SDRATTR_START ] = new Svx3DLightDirection1Item;
282 	mppLocalPoolDefaults[ SDRATTR_3DSCENE_LIGHTDIRECTION_2 - SDRATTR_START ] = new Svx3DLightDirection2Item;
283 	mppLocalPoolDefaults[ SDRATTR_3DSCENE_LIGHTDIRECTION_3 - SDRATTR_START ] = new Svx3DLightDirection3Item;
284 	mppLocalPoolDefaults[ SDRATTR_3DSCENE_LIGHTDIRECTION_4 - SDRATTR_START ] = new Svx3DLightDirection4Item;
285 	mppLocalPoolDefaults[ SDRATTR_3DSCENE_LIGHTDIRECTION_5 - SDRATTR_START ] = new Svx3DLightDirection5Item;
286 	mppLocalPoolDefaults[ SDRATTR_3DSCENE_LIGHTDIRECTION_6 - SDRATTR_START ] = new Svx3DLightDirection6Item;
287 	mppLocalPoolDefaults[ SDRATTR_3DSCENE_LIGHTDIRECTION_7 - SDRATTR_START ] = new Svx3DLightDirection7Item;
288 	mppLocalPoolDefaults[ SDRATTR_3DSCENE_LIGHTDIRECTION_8 - SDRATTR_START ] = new Svx3DLightDirection8Item;
289 	mppLocalPoolDefaults[ SDRATTR_3DSCENE_SHADOW_SLANT - SDRATTR_START ] = new Svx3DShadowSlantItem;
290 	mppLocalPoolDefaults[ SDRATTR_3DSCENE_SHADE_MODE - SDRATTR_START ] = new Svx3DShadeModeItem;
291 	mppLocalPoolDefaults[ SDRATTR_CUSTOMSHAPE_ENGINE - SDRATTR_START ] = new SdrCustomShapeEngineItem;
292 	mppLocalPoolDefaults[ SDRATTR_CUSTOMSHAPE_DATA - SDRATTR_START ] = new SdrCustomShapeDataItem;
293 	mppLocalPoolDefaults[ SDRATTR_CUSTOMSHAPE_GEOMETRY - SDRATTR_START ] = new SdrCustomShapeGeometryItem;
294 	mppLocalPoolDefaults[ SDRATTR_CUSTOMSHAPE_REPLACEMENT_URL - SDRATTR_START ] = new SdrCustomShapeReplacementURLItem;
295 
296 	SvxBoxItem* pboxItem = new SvxBoxItem( SDRATTR_TABLE_BORDER );
297 	pboxItem->SetDistance( 100 );
298 	mppLocalPoolDefaults[ SDRATTR_TABLE_BORDER - SDRATTR_START ] = pboxItem;
299 
300 	SvxBoxInfoItem* pBoxInfoItem = new SvxBoxInfoItem( SDRATTR_TABLE_BORDER_INNER );
301 
302 	pBoxInfoItem->SetTable( sal_True );
303 	pBoxInfoItem->SetDist( sal_True);        // Abstandsfeld immer anzeigen
304 //	pBoxInfoItem->SetMinDist( sal_True );// Minimalgroesse in Tabellen und Absaetzen setzen
305 //	pBoxInfoItem->SetDefDist( MIN_BORDER_DIST );// Default-Abstand immer setzen
306 	pBoxInfoItem->SetValid( VALID_DISABLE, sal_True ); // Einzelne Linien koennen nur in Tabellen DontCare-Status haben
307 
308 	mppLocalPoolDefaults[ SDRATTR_TABLE_BORDER_INNER - SDRATTR_START ] =  pBoxInfoItem;
309 //	mppLocalPoolDefaults[ SDRATTR_TABLE_BORDER_SHADOW - SDRATTR_START ] = new SvxShadowItem( SDRATTR_TABLE_BORDER_SHADOW );
310     mppLocalPoolDefaults[ SDRATTR_TABLE_BORDER_TLBR - SDRATTR_START ] = new SvxLineItem( SDRATTR_TABLE_BORDER_TLBR );
311     mppLocalPoolDefaults[ SDRATTR_TABLE_BORDER_BLTR - SDRATTR_START ] = new SvxLineItem( SDRATTR_TABLE_BORDER_BLTR );
312 
313 	// set own ItemInfos
314 	mpLocalItemInfos[SDRATTR_SHADOW-SDRATTR_START]._nSID=SID_ATTR_FILL_SHADOW;
315 	mpLocalItemInfos[SDRATTR_TEXT_FITTOSIZE-SDRATTR_START]._nSID=SID_ATTR_TEXT_FITTOSIZE;
316 	mpLocalItemInfos[SDRATTR_GRAFCROP-SDRATTR_START]._nSID=SID_ATTR_GRAF_CROP;
317 
318 	mpLocalItemInfos[SDRATTR_TABLE_BORDER - SDRATTR_START ]._nSID = SID_ATTR_BORDER_OUTER;
319 	mpLocalItemInfos[SDRATTR_TABLE_BORDER_INNER - SDRATTR_START ]._nSID = SID_ATTR_BORDER_INNER;
320 //	mpLocalItemInfos[SDRATTR_TABLE_BORDER_SHADOW - SDRATTR_START ]._nSID = SID_ATTR_BORDER_SHADOW;
321 	mpLocalItemInfos[SDRATTR_TABLE_BORDER_TLBR - SDRATTR_START ]._nSID = SID_ATTR_BORDER_DIAG_TLBR;
322 	mpLocalItemInfos[SDRATTR_TABLE_BORDER_BLTR - SDRATTR_START ]._nSID = SID_ATTR_BORDER_DIAG_BLTR;
323 
324 	// it's my own creation level, set Defaults and ItemInfos
325 	SetDefaults(mppLocalPoolDefaults);
326 	SetItemInfos(mpLocalItemInfos);
327 }
328 
329 /*************************************************************************
330 |*
331 |* copy ctor, sorgt dafuer, dass die static defaults gecloned werden
332 |*            (Parameter 2 = sal_True)
333 |*
334 \************************************************************************/
335 
336 SdrItemPool::SdrItemPool(const SdrItemPool& rPool)
337 :	XOutdevItemPool(rPool)
338 {
339 }
340 
341 /*************************************************************************
342 |*
343 |* Clone()
344 |*
345 \************************************************************************/
346 
347 SfxItemPool* __EXPORT SdrItemPool::Clone() const
348 {
349 	return new SdrItemPool(*this);
350 }
351 
352 /*************************************************************************
353 |*
354 |* Destruktor
355 |*
356 \************************************************************************/
357 
358 SdrItemPool::~SdrItemPool()
359 {
360 	// dtor of SfxItemPool
361 	Delete();
362 
363 	// clear own static Defaults
364 	if(mppLocalPoolDefaults)
365 	{
366 		const sal_uInt16 nBeg(SDRATTR_SHADOW_FIRST - SDRATTR_START);
367 		const sal_uInt16 nEnd2(SDRATTR_END - SDRATTR_START);
368 
369 		for(sal_uInt16 i(nBeg); i <= nEnd2; i++)
370 		{
371 			SetRefCount(*mppLocalPoolDefaults[i],0);
372 			delete mppLocalPoolDefaults[i];
373 			mppLocalPoolDefaults[i] = 0L;
374 		}
375 	}
376 
377 	// split pools before detroying
378 	SetSecondaryPool(NULL);
379 }
380 
381 SfxItemPresentation __EXPORT SdrItemPool::GetPresentation(
382 			  const SfxPoolItem& rItem, SfxItemPresentation ePresentation,
383 			  SfxMapUnit ePresentationMetric, XubString& rText,
384               const IntlWrapper * pIntlWrapper) const
385 {
386 	if (!IsInvalidItem(&rItem)) {
387 		sal_uInt16 nWhich=rItem.Which();
388 		if (nWhich>=SDRATTR_SHADOW_FIRST && nWhich<=SDRATTR_END) {
389 			rItem.GetPresentation(SFX_ITEM_PRESENTATION_NAMELESS,
390 						GetMetric(nWhich),ePresentationMetric,rText,
391                         pIntlWrapper);
392 			String aStr;
393 
394 			TakeItemName(nWhich, aStr);
395 			aStr += sal_Unicode(' ');
396 			rText.Insert(aStr, 0);
397 
398 			return ePresentation;
399 		}
400 	}
401     return XOutdevItemPool::GetPresentation(rItem,ePresentation,ePresentationMetric,rText,pIntlWrapper);
402 }
403 
404 void SdrItemPool::TakeItemName(sal_uInt16 nWhich, String& rItemName)
405 {
406 	ResMgr* pResMgr = ImpGetResMgr();
407 	sal_uInt16	nResId = SIP_UNKNOWN_ATTR;
408 
409 	switch (nWhich)
410 	{
411 		case XATTR_LINESTYLE        : nResId = SIP_XA_LINESTYLE;break;
412 		case XATTR_LINEDASH         : nResId = SIP_XA_LINEDASH;break;
413 		case XATTR_LINEWIDTH        : nResId = SIP_XA_LINEWIDTH;break;
414 		case XATTR_LINECOLOR        : nResId = SIP_XA_LINECOLOR;break;
415 		case XATTR_LINESTART        : nResId = SIP_XA_LINESTART;break;
416 		case XATTR_LINEEND          : nResId = SIP_XA_LINEEND;break;
417 		case XATTR_LINESTARTWIDTH   : nResId = SIP_XA_LINESTARTWIDTH;break;
418 		case XATTR_LINEENDWIDTH     : nResId = SIP_XA_LINEENDWIDTH;break;
419 		case XATTR_LINESTARTCENTER  : nResId = SIP_XA_LINESTARTCENTER;break;
420 		case XATTR_LINEENDCENTER    : nResId = SIP_XA_LINEENDCENTER;break;
421 		case XATTR_LINETRANSPARENCE : nResId = SIP_XA_LINETRANSPARENCE;break;
422 		case XATTR_LINEJOINT		: nResId = SIP_XA_LINEJOINT;break;
423 		case XATTRSET_LINE          : nResId = SIP_XATTRSET_LINE;break;
424 
425 		case XATTR_FILLSTYLE			: nResId = SIP_XA_FILLSTYLE;break;
426 		case XATTR_FILLCOLOR			: nResId = SIP_XA_FILLCOLOR;break;
427 		case XATTR_FILLGRADIENT			: nResId = SIP_XA_FILLGRADIENT;break;
428 		case XATTR_FILLHATCH			: nResId = SIP_XA_FILLHATCH;break;
429 		case XATTR_FILLBITMAP			: nResId = SIP_XA_FILLBITMAP;break;
430 		case XATTR_FILLTRANSPARENCE		: nResId = SIP_XA_FILLTRANSPARENCE;break;
431 		case XATTR_GRADIENTSTEPCOUNT	: nResId = SIP_XA_GRADIENTSTEPCOUNT;break;
432 		case XATTR_FILLBMP_TILE			: nResId = SIP_XA_FILLBMP_TILE;break;
433 		case XATTR_FILLBMP_POS			: nResId = SIP_XA_FILLBMP_POS;break;
434 		case XATTR_FILLBMP_SIZEX		: nResId = SIP_XA_FILLBMP_SIZEX;break;
435 		case XATTR_FILLBMP_SIZEY		: nResId = SIP_XA_FILLBMP_SIZEY;break;
436 		case XATTR_FILLFLOATTRANSPARENCE: nResId = SIP_XA_FILLFLOATTRANSPARENCE;break;
437 		case XATTR_SECONDARYFILLCOLOR	: nResId = SIP_XA_SECONDARYFILLCOLOR;break;
438 		case XATTR_FILLBMP_SIZELOG		: nResId = SIP_XA_FILLBMP_SIZELOG;break;
439 		case XATTR_FILLBMP_TILEOFFSETX	: nResId = SIP_XA_FILLBMP_TILEOFFSETX;break;
440 		case XATTR_FILLBMP_TILEOFFSETY	: nResId = SIP_XA_FILLBMP_TILEOFFSETY;break;
441 		case XATTR_FILLBMP_STRETCH		: nResId = SIP_XA_FILLBMP_STRETCH;break;
442 		case XATTR_FILLBMP_POSOFFSETX	: nResId = SIP_XA_FILLBMP_POSOFFSETX;break;
443 		case XATTR_FILLBMP_POSOFFSETY	: nResId = SIP_XA_FILLBMP_POSOFFSETY;break;
444 		case XATTR_FILLBACKGROUND		: nResId = SIP_XA_FILLBACKGROUND;break;
445 
446 		case XATTRSET_FILL             : nResId = SIP_XATTRSET_FILL;break;
447 
448 		case XATTR_FORMTXTSTYLE     : nResId = SIP_XA_FORMTXTSTYLE;break;
449 		case XATTR_FORMTXTADJUST    : nResId = SIP_XA_FORMTXTADJUST;break;
450 		case XATTR_FORMTXTDISTANCE  : nResId = SIP_XA_FORMTXTDISTANCE;break;
451 		case XATTR_FORMTXTSTART     : nResId = SIP_XA_FORMTXTSTART;break;
452 		case XATTR_FORMTXTMIRROR    : nResId = SIP_XA_FORMTXTMIRROR;break;
453 		case XATTR_FORMTXTOUTLINE   : nResId = SIP_XA_FORMTXTOUTLINE;break;
454 		case XATTR_FORMTXTSHADOW    : nResId = SIP_XA_FORMTXTSHADOW;break;
455 		case XATTR_FORMTXTSHDWCOLOR : nResId = SIP_XA_FORMTXTSHDWCOLOR;break;
456 		case XATTR_FORMTXTSHDWXVAL  : nResId = SIP_XA_FORMTXTSHDWXVAL;break;
457 		case XATTR_FORMTXTSHDWYVAL  : nResId = SIP_XA_FORMTXTSHDWYVAL;break;
458 		case XATTR_FORMTXTSTDFORM   : nResId = SIP_XA_FORMTXTSTDFORM;break;
459 		case XATTR_FORMTXTHIDEFORM  : nResId = SIP_XA_FORMTXTHIDEFORM;break;
460 		case XATTR_FORMTXTSHDWTRANSP: nResId = SIP_XA_FORMTXTSHDWTRANSP;break;
461 
462 		case SDRATTR_SHADOW            : nResId = SIP_SA_SHADOW;break;
463 		case SDRATTR_SHADOWCOLOR       : nResId = SIP_SA_SHADOWCOLOR;break;
464 		case SDRATTR_SHADOWXDIST       : nResId = SIP_SA_SHADOWXDIST;break;
465 		case SDRATTR_SHADOWYDIST       : nResId = SIP_SA_SHADOWYDIST;break;
466 		case SDRATTR_SHADOWTRANSPARENCE: nResId = SIP_SA_SHADOWTRANSPARENCE;break;
467 		case SDRATTR_SHADOW3D          : nResId = SIP_SA_SHADOW3D;break;
468 		case SDRATTR_SHADOWPERSP       : nResId = SIP_SA_SHADOWPERSP;break;
469 
470 		case SDRATTR_CAPTIONTYPE      : nResId = SIP_SA_CAPTIONTYPE;break;
471 		case SDRATTR_CAPTIONFIXEDANGLE: nResId = SIP_SA_CAPTIONFIXEDANGLE;break;
472 		case SDRATTR_CAPTIONANGLE     : nResId = SIP_SA_CAPTIONANGLE;break;
473 		case SDRATTR_CAPTIONGAP       : nResId = SIP_SA_CAPTIONGAP;break;
474 		case SDRATTR_CAPTIONESCDIR    : nResId = SIP_SA_CAPTIONESCDIR;break;
475 		case SDRATTR_CAPTIONESCISREL  : nResId = SIP_SA_CAPTIONESCISREL;break;
476 		case SDRATTR_CAPTIONESCREL    : nResId = SIP_SA_CAPTIONESCREL;break;
477 		case SDRATTR_CAPTIONESCABS    : nResId = SIP_SA_CAPTIONESCABS;break;
478 		case SDRATTR_CAPTIONLINELEN   : nResId = SIP_SA_CAPTIONLINELEN;break;
479 		case SDRATTR_CAPTIONFITLINELEN: nResId = SIP_SA_CAPTIONFITLINELEN;break;
480 
481 		case SDRATTR_ECKENRADIUS			: nResId = SIP_SA_ECKENRADIUS;break;
482 		case SDRATTR_TEXT_MINFRAMEHEIGHT	: nResId = SIP_SA_TEXT_MINFRAMEHEIGHT;break;
483 		case SDRATTR_TEXT_AUTOGROWHEIGHT	: nResId = SIP_SA_TEXT_AUTOGROWHEIGHT;break;
484 		case SDRATTR_TEXT_FITTOSIZE			: nResId = SIP_SA_TEXT_FITTOSIZE;break;
485 		case SDRATTR_TEXT_LEFTDIST			: nResId = SIP_SA_TEXT_LEFTDIST;break;
486 		case SDRATTR_TEXT_RIGHTDIST			: nResId = SIP_SA_TEXT_RIGHTDIST;break;
487 		case SDRATTR_TEXT_UPPERDIST			: nResId = SIP_SA_TEXT_UPPERDIST;break;
488 		case SDRATTR_TEXT_LOWERDIST			: nResId = SIP_SA_TEXT_LOWERDIST;break;
489 		case SDRATTR_TEXT_VERTADJUST		: nResId = SIP_SA_TEXT_VERTADJUST;break;
490 		case SDRATTR_TEXT_MAXFRAMEHEIGHT	: nResId = SIP_SA_TEXT_MAXFRAMEHEIGHT;break;
491 		case SDRATTR_TEXT_MINFRAMEWIDTH		: nResId = SIP_SA_TEXT_MINFRAMEWIDTH;break;
492 		case SDRATTR_TEXT_MAXFRAMEWIDTH		: nResId = SIP_SA_TEXT_MAXFRAMEWIDTH;break;
493 		case SDRATTR_TEXT_AUTOGROWWIDTH		: nResId = SIP_SA_TEXT_AUTOGROWWIDTH;break;
494 		case SDRATTR_TEXT_HORZADJUST		: nResId = SIP_SA_TEXT_HORZADJUST;break;
495 		case SDRATTR_TEXT_ANIKIND			: nResId = SIP_SA_TEXT_ANIKIND;break;
496 		case SDRATTR_TEXT_ANIDIRECTION		: nResId = SIP_SA_TEXT_ANIDIRECTION;break;
497 		case SDRATTR_TEXT_ANISTARTINSIDE	: nResId = SIP_SA_TEXT_ANISTARTINSIDE;break;
498 		case SDRATTR_TEXT_ANISTOPINSIDE		: nResId = SIP_SA_TEXT_ANISTOPINSIDE;break;
499 		case SDRATTR_TEXT_ANICOUNT			: nResId = SIP_SA_TEXT_ANICOUNT;break;
500 		case SDRATTR_TEXT_ANIDELAY			: nResId = SIP_SA_TEXT_ANIDELAY;break;
501 		case SDRATTR_TEXT_ANIAMOUNT			: nResId = SIP_SA_TEXT_ANIAMOUNT;break;
502 		case SDRATTR_TEXT_CONTOURFRAME		: nResId = SIP_SA_TEXT_CONTOURFRAME;break;
503 		case SDRATTR_CUSTOMSHAPE_ADJUSTMENT	: nResId = SIP_SA_CUSTOMSHAPE_ADJUSTMENT;break;
504 		case SDRATTR_XMLATTRIBUTES			: nResId = SIP_SA_XMLATTRIBUTES;break;
505 		case SDRATTR_TEXT_USEFIXEDCELLHEIGHT: nResId = SIP_SA_TEXT_USEFIXEDCELLHEIGHT;break;
506 		case SDRATTR_TEXT_WORDWRAP			: nResId = SIP_SA_WORDWRAP;break;
507 		case SDRATTR_TEXT_AUTOGROWSIZE		: nResId = SIP_SA_AUTOGROWSIZE;break;
508 
509 		case SDRATTR_EDGEKIND           : nResId = SIP_SA_EDGEKIND;break;
510 		case SDRATTR_EDGENODE1HORZDIST  : nResId = SIP_SA_EDGENODE1HORZDIST;break;
511 		case SDRATTR_EDGENODE1VERTDIST  : nResId = SIP_SA_EDGENODE1VERTDIST;break;
512 		case SDRATTR_EDGENODE2HORZDIST  : nResId = SIP_SA_EDGENODE2HORZDIST;break;
513 		case SDRATTR_EDGENODE2VERTDIST  : nResId = SIP_SA_EDGENODE2VERTDIST;break;
514 		case SDRATTR_EDGENODE1GLUEDIST  : nResId = SIP_SA_EDGENODE1GLUEDIST;break;
515 		case SDRATTR_EDGENODE2GLUEDIST  : nResId = SIP_SA_EDGENODE2GLUEDIST;break;
516 		case SDRATTR_EDGELINEDELTAANZ   : nResId = SIP_SA_EDGELINEDELTAANZ;break;
517 		case SDRATTR_EDGELINE1DELTA     : nResId = SIP_SA_EDGELINE1DELTA;break;
518 		case SDRATTR_EDGELINE2DELTA     : nResId = SIP_SA_EDGELINE2DELTA;break;
519 		case SDRATTR_EDGELINE3DELTA     : nResId = SIP_SA_EDGELINE3DELTA;break;
520 
521 		case SDRATTR_MEASUREKIND             : nResId = SIP_SA_MEASUREKIND;break;
522 		case SDRATTR_MEASURETEXTHPOS         : nResId = SIP_SA_MEASURETEXTHPOS;break;
523 		case SDRATTR_MEASURETEXTVPOS         : nResId = SIP_SA_MEASURETEXTVPOS;break;
524 		case SDRATTR_MEASURELINEDIST         : nResId = SIP_SA_MEASURELINEDIST;break;
525 		case SDRATTR_MEASUREHELPLINEOVERHANG : nResId = SIP_SA_MEASUREHELPLINEOVERHANG;break;
526 		case SDRATTR_MEASUREHELPLINEDIST     : nResId = SIP_SA_MEASUREHELPLINEDIST;break;
527 		case SDRATTR_MEASUREHELPLINE1LEN     : nResId = SIP_SA_MEASUREHELPLINE1LEN;break;
528 		case SDRATTR_MEASUREHELPLINE2LEN     : nResId = SIP_SA_MEASUREHELPLINE2LEN;break;
529 		case SDRATTR_MEASUREBELOWREFEDGE     : nResId = SIP_SA_MEASUREBELOWREFEDGE;break;
530 		case SDRATTR_MEASURETEXTROTA90       : nResId = SIP_SA_MEASURETEXTROTA90;break;
531 		case SDRATTR_MEASURETEXTUPSIDEDOWN   : nResId = SIP_SA_MEASURETEXTUPSIDEDOWN;break;
532 		case SDRATTR_MEASUREOVERHANG         : nResId = SIP_SA_MEASUREOVERHANG;break;
533 		case SDRATTR_MEASUREUNIT             : nResId = SIP_SA_MEASUREUNIT;break;
534 		case SDRATTR_MEASURESCALE            : nResId = SIP_SA_MEASURESCALE;break;
535 		case SDRATTR_MEASURESHOWUNIT         : nResId = SIP_SA_MEASURESHOWUNIT;break;
536 		case SDRATTR_MEASUREFORMATSTRING     : nResId = SIP_SA_MEASUREFORMATSTRING;break;
537 		case SDRATTR_MEASURETEXTAUTOANGLE    : nResId = SIP_SA_MEASURETEXTAUTOANGLE;break;
538 		case SDRATTR_MEASURETEXTAUTOANGLEVIEW: nResId = SIP_SA_MEASURETEXTAUTOANGLEVIEW;break;
539 		case SDRATTR_MEASURETEXTISFIXEDANGLE : nResId = SIP_SA_MEASURETEXTISFIXEDANGLE;break;
540 		case SDRATTR_MEASURETEXTFIXEDANGLE   : nResId = SIP_SA_MEASURETEXTFIXEDANGLE;break;
541 		case SDRATTR_MEASUREDECIMALPLACES    : nResId = SIP_SA_MEASUREDECIMALPLACES;break;
542 
543 		case SDRATTR_CIRCKIND      : nResId = SIP_SA_CIRCKIND;break;
544 		case SDRATTR_CIRCSTARTANGLE: nResId = SIP_SA_CIRCSTARTANGLE;break;
545 		case SDRATTR_CIRCENDANGLE  : nResId = SIP_SA_CIRCENDANGLE;break;
546 
547 		case SDRATTR_OBJMOVEPROTECT : nResId = SIP_SA_OBJMOVEPROTECT;break;
548 		case SDRATTR_OBJSIZEPROTECT : nResId = SIP_SA_OBJSIZEPROTECT;break;
549 		case SDRATTR_OBJPRINTABLE   : nResId = SIP_SA_OBJPRINTABLE;break;
550 		case SDRATTR_OBJVISIBLE		: nResId = SIP_SA_OBJVISIBLE;break;
551 		case SDRATTR_LAYERID        : nResId = SIP_SA_LAYERID;break;
552 		case SDRATTR_LAYERNAME      : nResId = SIP_SA_LAYERNAME;break;
553 		case SDRATTR_OBJECTNAME     : nResId = SIP_SA_OBJECTNAME;break;
554 		case SDRATTR_ALLPOSITIONX   : nResId = SIP_SA_ALLPOSITIONX;break;
555 		case SDRATTR_ALLPOSITIONY   : nResId = SIP_SA_ALLPOSITIONY;break;
556 		case SDRATTR_ALLSIZEWIDTH   : nResId = SIP_SA_ALLSIZEWIDTH;break;
557 		case SDRATTR_ALLSIZEHEIGHT  : nResId = SIP_SA_ALLSIZEHEIGHT;break;
558 		case SDRATTR_ONEPOSITIONX   : nResId = SIP_SA_ONEPOSITIONX;break;
559 		case SDRATTR_ONEPOSITIONY   : nResId = SIP_SA_ONEPOSITIONY;break;
560 		case SDRATTR_ONESIZEWIDTH   : nResId = SIP_SA_ONESIZEWIDTH;break;
561 		case SDRATTR_ONESIZEHEIGHT  : nResId = SIP_SA_ONESIZEHEIGHT;break;
562 		case SDRATTR_LOGICSIZEWIDTH : nResId = SIP_SA_LOGICSIZEWIDTH;break;
563 		case SDRATTR_LOGICSIZEHEIGHT: nResId = SIP_SA_LOGICSIZEHEIGHT;break;
564 		case SDRATTR_ROTATEANGLE    : nResId = SIP_SA_ROTATEANGLE;break;
565 		case SDRATTR_SHEARANGLE     : nResId = SIP_SA_SHEARANGLE;break;
566 		case SDRATTR_MOVEX          : nResId = SIP_SA_MOVEX;break;
567 		case SDRATTR_MOVEY          : nResId = SIP_SA_MOVEY;break;
568 		case SDRATTR_RESIZEXONE     : nResId = SIP_SA_RESIZEXONE;break;
569 		case SDRATTR_RESIZEYONE     : nResId = SIP_SA_RESIZEYONE;break;
570 		case SDRATTR_ROTATEONE      : nResId = SIP_SA_ROTATEONE;break;
571 		case SDRATTR_HORZSHEARONE   : nResId = SIP_SA_HORZSHEARONE;break;
572 		case SDRATTR_VERTSHEARONE   : nResId = SIP_SA_VERTSHEARONE;break;
573 		case SDRATTR_RESIZEXALL     : nResId = SIP_SA_RESIZEXALL;break;
574 		case SDRATTR_RESIZEYALL     : nResId = SIP_SA_RESIZEYALL;break;
575 		case SDRATTR_ROTATEALL      : nResId = SIP_SA_ROTATEALL;break;
576 		case SDRATTR_HORZSHEARALL   : nResId = SIP_SA_HORZSHEARALL;break;
577 		case SDRATTR_VERTSHEARALL   : nResId = SIP_SA_VERTSHEARALL;break;
578 		case SDRATTR_TRANSFORMREF1X : nResId = SIP_SA_TRANSFORMREF1X;break;
579 		case SDRATTR_TRANSFORMREF1Y : nResId = SIP_SA_TRANSFORMREF1Y;break;
580 		case SDRATTR_TRANSFORMREF2X : nResId = SIP_SA_TRANSFORMREF2X;break;
581 		case SDRATTR_TRANSFORMREF2Y : nResId = SIP_SA_TRANSFORMREF2Y;break;
582 
583 		case SDRATTR_GRAFRED			: nResId = SIP_SA_GRAFRED;break;
584 		case SDRATTR_GRAFGREEN			: nResId = SIP_SA_GRAFGREEN;break;
585 		case SDRATTR_GRAFBLUE			: nResId = SIP_SA_GRAFBLUE;break;
586 		case SDRATTR_GRAFLUMINANCE		: nResId = SIP_SA_GRAFLUMINANCE;break;
587 		case SDRATTR_GRAFCONTRAST		: nResId = SIP_SA_GRAFCONTRAST;break;
588 		case SDRATTR_GRAFGAMMA			: nResId = SIP_SA_GRAFGAMMA;break;
589 		case SDRATTR_GRAFTRANSPARENCE	: nResId = SIP_SA_GRAFTRANSPARENCE;break;
590 		case SDRATTR_GRAFINVERT 		: nResId = SIP_SA_GRAFINVERT;break;
591 		case SDRATTR_GRAFMODE			: nResId = SIP_SA_GRAFMODE;break;
592 		case SDRATTR_GRAFCROP			: nResId = SIP_SA_GRAFCROP;break;
593 
594 		case EE_PARA_HYPHENATE  : nResId = SIP_EE_PARA_HYPHENATE;break;
595 		case EE_PARA_BULLETSTATE: nResId = SIP_EE_PARA_BULLETSTATE;break;
596 		case EE_PARA_OUTLLRSPACE: nResId = SIP_EE_PARA_OUTLLRSPACE;break;
597 		case EE_PARA_OUTLLEVEL  : nResId = SIP_EE_PARA_OUTLLEVEL;break;
598 		case EE_PARA_BULLET     : nResId = SIP_EE_PARA_BULLET;break;
599 		case EE_PARA_LRSPACE    : nResId = SIP_EE_PARA_LRSPACE;break;
600 		case EE_PARA_ULSPACE    : nResId = SIP_EE_PARA_ULSPACE;break;
601 		case EE_PARA_SBL        : nResId = SIP_EE_PARA_SBL;break;
602 		case EE_PARA_JUST       : nResId = SIP_EE_PARA_JUST;break;
603 		case EE_PARA_TABS       : nResId = SIP_EE_PARA_TABS;break;
604 
605 		case EE_CHAR_COLOR      : nResId = SIP_EE_CHAR_COLOR;break;
606 		case EE_CHAR_FONTINFO   : nResId = SIP_EE_CHAR_FONTINFO;break;
607 		case EE_CHAR_FONTHEIGHT : nResId = SIP_EE_CHAR_FONTHEIGHT;break;
608 		case EE_CHAR_FONTWIDTH  : nResId = SIP_EE_CHAR_FONTWIDTH;break;
609 		case EE_CHAR_WEIGHT     : nResId = SIP_EE_CHAR_WEIGHT;break;
610 		case EE_CHAR_UNDERLINE  : nResId = SIP_EE_CHAR_UNDERLINE;break;
611 		case EE_CHAR_OVERLINE   : nResId = SIP_EE_CHAR_OVERLINE;break;
612 		case EE_CHAR_STRIKEOUT  : nResId = SIP_EE_CHAR_STRIKEOUT;break;
613 		case EE_CHAR_ITALIC     : nResId = SIP_EE_CHAR_ITALIC;break;
614 		case EE_CHAR_OUTLINE    : nResId = SIP_EE_CHAR_OUTLINE;break;
615 		case EE_CHAR_SHADOW     : nResId = SIP_EE_CHAR_SHADOW;break;
616 		case EE_CHAR_ESCAPEMENT : nResId = SIP_EE_CHAR_ESCAPEMENT;break;
617 		case EE_CHAR_PAIRKERNING: nResId = SIP_EE_CHAR_PAIRKERNING;break;
618 		case EE_CHAR_KERNING    : nResId = SIP_EE_CHAR_KERNING;break;
619 		case EE_CHAR_WLM        : nResId = SIP_EE_CHAR_WLM;break;
620 		case EE_FEATURE_TAB     : nResId = SIP_EE_FEATURE_TAB;break;
621 		case EE_FEATURE_LINEBR  : nResId = SIP_EE_FEATURE_LINEBR;break;
622 		case EE_FEATURE_NOTCONV : nResId = SIP_EE_FEATURE_NOTCONV;break;
623 		case EE_FEATURE_FIELD   : nResId = SIP_EE_FEATURE_FIELD;break;
624 	} // switch
625 
626 	rItemName = String( ResId( nResId, *pResMgr ) );
627 }
628 
629 ////////////////////////////////////////////////////////////////////////////////
630 // FractionItem
631 ////////////////////////////////////////////////////////////////////////////////
632 
633 TYPEINIT1_AUTOFACTORY(SdrFractionItem,SfxPoolItem);
634 
635 SdrFractionItem::SdrFractionItem(sal_uInt16 nId, SvStream& rIn):
636 	SfxPoolItem(nId)
637 {
638 	sal_Int32 nMul,nDiv;
639 	rIn>>nMul;
640 	rIn>>nDiv;
641 	nValue=Fraction(nMul,nDiv);
642 }
643 
644 int __EXPORT SdrFractionItem::operator==(const SfxPoolItem& rCmp) const
645 {
646 	return SfxPoolItem::operator==(rCmp) &&
647 		   ((SdrFractionItem&)rCmp).GetValue()==nValue;
648 }
649 
650 SfxItemPresentation __EXPORT SdrFractionItem::GetPresentation(
651 	SfxItemPresentation ePresentation, SfxMapUnit /*eCoreMetric*/,
652     SfxMapUnit /*ePresentationMetric*/, XubString &rText, const IntlWrapper *) const
653 {
654 	if(nValue.IsValid())
655 	{
656 		sal_Int32 nDiv = nValue.GetDenominator();
657 		rText = UniString::CreateFromInt32(nValue.GetNumerator());
658 
659 		if(nDiv != 1)
660 		{
661 			rText += sal_Unicode('/');
662 			rText += UniString::CreateFromInt32(nDiv);
663 		}
664 	}
665 	else
666 	{
667 		rText = UniString();
668 		rText += sal_Unicode('?');
669 	}
670 
671 	if(ePresentation == SFX_ITEM_PRESENTATION_COMPLETE)
672 	{
673 		XubString aStr;
674 
675 		SdrItemPool::TakeItemName(Which(), aStr);
676 		aStr += sal_Unicode(' ');
677 		rText.Insert(aStr, 0);
678 	}
679 
680 	return ePresentation;
681 }
682 
683 SfxPoolItem* __EXPORT SdrFractionItem::Create(SvStream& rIn, sal_uInt16 /*nVer*/) const
684 {
685 	return new SdrFractionItem(Which(),rIn);
686 }
687 
688 SvStream& __EXPORT SdrFractionItem::Store(SvStream& rOut, sal_uInt16 /*nItemVers*/) const
689 {
690 	rOut<<sal_Int32(nValue.GetNumerator());
691 	rOut<<sal_Int32(nValue.GetDenominator());
692 	return rOut;
693 }
694 
695 SfxPoolItem* __EXPORT SdrFractionItem::Clone(SfxItemPool * /*pPool*/) const
696 {
697 	return new SdrFractionItem(Which(),GetValue());
698 }
699 
700 #ifdef SDR_ISPOOLABLE
701 int __EXPORT SdrFractionItem::IsPoolable() const
702 {
703 	sal_uInt16 nId=Which();
704 	return nId<SDRATTR_NOTPERSIST_FIRST || nId>SDRATTR_NOTPERSIST_LAST;
705 }
706 #endif
707 
708 ////////////////////////////////////////////////////////////////////////////////
709 // ScaleItem
710 ////////////////////////////////////////////////////////////////////////////////
711 
712 TYPEINIT1_AUTOFACTORY(SdrScaleItem,SdrFractionItem);
713 
714 SfxItemPresentation __EXPORT SdrScaleItem::GetPresentation(
715 	SfxItemPresentation ePresentation, SfxMapUnit /*eCoreMetric*/,
716     SfxMapUnit /*ePresentationMetric*/, XubString &rText, const IntlWrapper *) const
717 {
718 	if(GetValue().IsValid())
719 	{
720 		sal_Int32 nDiv = GetValue().GetDenominator();
721 
722 		rText = UniString::CreateFromInt32(GetValue().GetNumerator());
723 		rText += sal_Unicode(':');
724 		rText += UniString::CreateFromInt32(nDiv);
725 	}
726 	else
727 	{
728 		rText = UniString();
729 		rText += sal_Unicode('?');
730 	}
731 
732 	if(ePresentation == SFX_ITEM_PRESENTATION_COMPLETE)
733 	{
734 		XubString aStr;
735 
736 		SdrItemPool::TakeItemName(Which(), aStr);
737 		aStr += sal_Unicode(' ');
738 		rText.Insert(aStr, 0);
739 	}
740 
741 	return ePresentation;
742 }
743 
744 SfxPoolItem* __EXPORT SdrScaleItem::Create(SvStream& rIn, sal_uInt16 /*nVer*/) const
745 {
746 	return new SdrScaleItem(Which(),rIn);
747 }
748 
749 SfxPoolItem* __EXPORT SdrScaleItem::Clone(SfxItemPool * /*pPool*/) const
750 {
751 	return new SdrScaleItem(Which(),GetValue());
752 }
753 
754 ////////////////////////////////////////////////////////////////////////////////
755 // OnOffItem
756 ////////////////////////////////////////////////////////////////////////////////
757 
758 TYPEINIT1_AUTOFACTORY(SdrOnOffItem,SfxBoolItem);
759 
760 SfxPoolItem* __EXPORT SdrOnOffItem::Clone(SfxItemPool* /*pPool*/) const
761 {
762 	return new SdrOnOffItem(Which(),GetValue());
763 }
764 
765 SfxPoolItem* __EXPORT SdrOnOffItem::Create(SvStream& rIn, sal_uInt16 /*nVer*/) const
766 {
767 	return new SdrOnOffItem(Which(),rIn);
768 }
769 
770 XubString __EXPORT SdrOnOffItem::GetValueTextByVal(sal_Bool bVal) const
771 {
772 	if (bVal) return ImpGetResStr(STR_ItemValON);
773 	else return ImpGetResStr(STR_ItemValOFF);
774 }
775 
776 SfxItemPresentation __EXPORT SdrOnOffItem::GetPresentation(SfxItemPresentation ePres,
777                       SfxMapUnit /*eCoreMetric*/, SfxMapUnit /*ePresMetric*/, XubString& rText, const IntlWrapper *) const
778 {
779 	rText=GetValueTextByVal(GetValue());
780 	if (ePres==SFX_ITEM_PRESENTATION_COMPLETE) {
781 		String aStr;
782 
783 		SdrItemPool::TakeItemName(Which(), aStr);
784 		aStr += sal_Unicode(' ');
785 		rText.Insert(aStr, 0);
786 	}
787 	return ePres;
788 }
789 
790 #ifdef SDR_ISPOOLABLE
791 int __EXPORT SdrOnOffItem::IsPoolable() const
792 {
793 	sal_uInt16 nId=Which();
794 	return nId<SDRATTR_NOTPERSIST_FIRST || nId>SDRATTR_NOTPERSIST_LAST;
795 }
796 #endif
797 
798 TYPEINIT1_AUTOFACTORY(SdrYesNoItem,SfxBoolItem);
799 
800 SfxPoolItem* __EXPORT SdrYesNoItem::Clone(SfxItemPool* /*pPool*/) const
801 {
802 	return new SdrYesNoItem(Which(),GetValue());
803 }
804 
805 SfxPoolItem* __EXPORT SdrYesNoItem::Create(SvStream& rIn, sal_uInt16 /*nVer*/) const
806 {
807 	return new SdrYesNoItem(Which(),rIn);
808 }
809 
810 XubString __EXPORT SdrYesNoItem::GetValueTextByVal(sal_Bool bVal) const
811 {
812 	if (bVal) return ImpGetResStr(STR_ItemValYES);
813 	else return ImpGetResStr(STR_ItemValNO);
814 }
815 
816 SfxItemPresentation __EXPORT SdrYesNoItem::GetPresentation(SfxItemPresentation ePres,
817                       SfxMapUnit /*eCoreMetric*/, SfxMapUnit /*ePresMetric*/, XubString& rText, const IntlWrapper *) const
818 {
819 	rText=GetValueTextByVal(GetValue());
820 	if (ePres==SFX_ITEM_PRESENTATION_COMPLETE) {
821 		String aStr;
822 
823 		SdrItemPool::TakeItemName(Which(), aStr);
824 		aStr += sal_Unicode(' ');
825 		rText.Insert(aStr, 0);
826 	}
827 	return ePres;
828 }
829 
830 #ifdef SDR_ISPOOLABLE
831 int __EXPORT SdrYesNoItem::IsPoolable() const
832 {
833 	sal_uInt16 nId=Which();
834 	return nId<SDRATTR_NOTPERSIST_FIRST || nId>SDRATTR_NOTPERSIST_LAST;
835 }
836 #endif
837 
838 //------------------------------------------------------------
839 // class SdrPercentItem
840 //------------------------------------------------------------
841 
842 TYPEINIT1_AUTOFACTORY(SdrPercentItem,SfxUInt16Item);
843 
844 SfxPoolItem* __EXPORT SdrPercentItem::Clone(SfxItemPool* /*pPool*/) const
845 {
846 	return new SdrPercentItem(Which(),GetValue());
847 }
848 
849 SfxPoolItem* __EXPORT SdrPercentItem::Create(SvStream& rIn, sal_uInt16 /*nVer*/) const
850 {
851 	return new SdrPercentItem(Which(),rIn);
852 }
853 
854 SfxItemPresentation __EXPORT SdrPercentItem::GetPresentation(
855 	SfxItemPresentation ePres, SfxMapUnit /*eCoreMetric*/,
856     SfxMapUnit /*ePresMetric*/, XubString& rText, const IntlWrapper *) const
857 {
858 	rText = UniString::CreateFromInt32(GetValue());
859 	rText += sal_Unicode('%');
860 
861 	if(ePres == SFX_ITEM_PRESENTATION_COMPLETE)
862 	{
863 		XubString aStr;
864 
865 		SdrItemPool::TakeItemName(Which(), aStr);
866 		aStr += sal_Unicode(' ');
867 		rText.Insert(aStr, 0);
868 	}
869 
870 	return ePres;
871 }
872 
873 #ifdef SDR_ISPOOLABLE
874 int __EXPORT SdrPercentItem::IsPoolable() const
875 {
876 	sal_uInt16 nId=Which();
877 	return nId<SDRATTR_NOTPERSIST_FIRST || nId>SDRATTR_NOTPERSIST_LAST;
878 }
879 #endif
880 
881 //------------------------------------------------------------
882 // class SdrAngleItem
883 //------------------------------------------------------------
884 
885 TYPEINIT1_AUTOFACTORY(SdrAngleItem,SfxInt32Item);
886 
887 SfxPoolItem* __EXPORT SdrAngleItem::Clone(SfxItemPool* /*pPool*/) const
888 {
889 	return new SdrAngleItem(Which(),GetValue());
890 }
891 
892 SfxPoolItem* __EXPORT SdrAngleItem::Create(SvStream& rIn, sal_uInt16 /*nVer*/) const
893 {
894 	return new SdrAngleItem(Which(),rIn);
895 }
896 
897 SfxItemPresentation __EXPORT SdrAngleItem::GetPresentation(
898 	SfxItemPresentation ePres, SfxMapUnit /*eCoreMetric*/, SfxMapUnit /*ePresMetric*/,
899     XubString& rText, const IntlWrapper * pIntlWrapper) const
900 {
901 	sal_Int32 nValue(GetValue());
902 	sal_Bool bNeg(nValue < 0);
903 
904 	if(bNeg)
905 		nValue = -nValue;
906 
907 	rText = UniString::CreateFromInt32(nValue);
908 
909 	if(nValue)
910 	{
911 		sal_Unicode aUnicodeNull('0');
912 		xub_StrLen nAnz(2);
913 
914         const IntlWrapper* pMyIntlWrapper = NULL;
915 //        DBG_ASSERT( pIntlWrapper, "SdrAngleItem::GetPresentation: using default App-IntlWrapper" );
916         if(!pIntlWrapper)
917             pIntlWrapper = pMyIntlWrapper = new IntlWrapper(
918                 ::comphelper::getProcessServiceFactory(),
919                 Application::GetSettings().GetLanguage() );
920 
921         if(pIntlWrapper->getLocaleData()->isNumLeadingZero())
922 			nAnz++;
923 
924 		while(rText.Len() < nAnz)
925 			rText.Insert(aUnicodeNull, 0);
926 
927 		xub_StrLen nLen = rText.Len();
928 		sal_Bool bNull1(rText.GetChar(nLen-1) == aUnicodeNull);
929 		sal_Bool bNull2(bNull1 && rText.GetChar(nLen-2) == aUnicodeNull);
930 
931 		if(bNull2)
932 		{
933 			// keine Nachkommastellen
934 			rText.Erase(nLen-2);
935 		}
936 		else
937 		{
938             sal_Unicode cDec =
939                 pIntlWrapper->getLocaleData()->getNumDecimalSep().GetChar(0);
940 			rText.Insert(cDec, nLen-2);
941 
942 			if(bNull1)
943 				rText.Erase(nLen);
944 		}
945 
946 		if(bNeg)
947 			rText.Insert(sal_Unicode('-'), 0);
948 
949         if ( pMyIntlWrapper )
950         {
951             delete pMyIntlWrapper;
952             pIntlWrapper = NULL;
953         }
954 	}
955 
956 	rText += sal_Unicode(DEGREE_CHAR);
957 
958 	if(ePres == SFX_ITEM_PRESENTATION_COMPLETE)
959 	{
960 		XubString aStr;
961 
962 		SdrItemPool::TakeItemName(Which(), aStr);
963 		aStr += sal_Unicode(' ');
964 		rText.Insert(aStr, 0);
965 	}
966 
967 	return ePres;
968 }
969 
970 #ifdef SDR_ISPOOLABLE
971 int __EXPORT SdrAngleItem::IsPoolable() const
972 {
973 	sal_uInt16 nId=Which();
974 	return nId<SDRATTR_NOTPERSIST_FIRST || nId>SDRATTR_NOTPERSIST_LAST;
975 }
976 #endif
977 
978 //------------------------------------------------------------
979 // class SdrMetricItem
980 //------------------------------------------------------------
981 
982 TYPEINIT1_AUTOFACTORY(SdrMetricItem,SfxInt32Item);
983 
984 SfxPoolItem* __EXPORT SdrMetricItem::Clone(SfxItemPool* /*pPool*/) const
985 {
986 	return new SdrMetricItem(Which(),GetValue());
987 }
988 
989 SfxPoolItem* __EXPORT SdrMetricItem::Create(SvStream& rIn, sal_uInt16 /*nVer*/) const
990 {
991 	return new SdrMetricItem(Which(),rIn);
992 }
993 
994 FASTBOOL __EXPORT SdrMetricItem::HasMetrics() const
995 {
996 	return sal_True;
997 }
998 
999 FASTBOOL __EXPORT SdrMetricItem::ScaleMetrics(long nMul, long nDiv)
1000 {
1001 	if (GetValue()!=0) {
1002 		BigInt aVal(GetValue());
1003 		aVal*=nMul;
1004 		aVal+=nDiv/2; // fuer korrektes Runden
1005 		aVal/=nDiv;
1006 		SetValue(long(aVal));
1007 	}
1008 	return sal_True;
1009 }
1010 
1011 SfxItemPresentation __EXPORT SdrMetricItem::GetPresentation(SfxItemPresentation ePres,
1012                       SfxMapUnit eCoreMetric, SfxMapUnit ePresMetric, XubString& rText, const IntlWrapper *) const
1013 {
1014 	long nValue=GetValue();
1015 	SdrFormatter aFmt((MapUnit)eCoreMetric,(MapUnit)ePresMetric);
1016 	aFmt.TakeStr(nValue,rText);
1017 	String aStr;
1018 	aFmt.TakeUnitStr((MapUnit)ePresMetric,aStr);
1019 	rText+=aStr;
1020 	if (ePres==SFX_ITEM_PRESENTATION_COMPLETE) {
1021 		String aStr2;
1022 
1023 		SdrItemPool::TakeItemName(Which(), aStr2);
1024 		aStr2 += sal_Unicode(' ');
1025 		rText.Insert(aStr2, 0);
1026 	}
1027 	return ePres;
1028 }
1029 
1030 #ifdef SDR_ISPOOLABLE
1031 int __EXPORT SdrMetricItem::IsPoolable() const
1032 {
1033 	sal_uInt16 nId=Which();
1034 	return nId<SDRATTR_NOTPERSIST_FIRST || nId>SDRATTR_NOTPERSIST_LAST;
1035 }
1036 #endif
1037 
1038 ////////////////////////////////////////////////////////////////////////////////
1039 // Items des Legendenobjekts
1040 ////////////////////////////////////////////////////////////////////////////////
1041 
1042 TYPEINIT1_AUTOFACTORY(SdrCaptionTypeItem,SfxEnumItem);
1043 
1044 SfxPoolItem* __EXPORT SdrCaptionTypeItem::Clone(SfxItemPool* /*pPool*/) const                { return new SdrCaptionTypeItem(*this); }
1045 
1046 SfxPoolItem* __EXPORT SdrCaptionTypeItem::Create(SvStream& rIn, sal_uInt16 /*nVer*/) const       { return new SdrCaptionTypeItem(rIn); }
1047 
1048 sal_uInt16 __EXPORT SdrCaptionTypeItem::GetValueCount() const { return 4; }
1049 
1050 XubString __EXPORT SdrCaptionTypeItem::GetValueTextByPos(sal_uInt16 nPos) const
1051 {
1052 	return ImpGetResStr(STR_ItemValCAPTIONTYPE1+nPos);
1053 }
1054 
1055 SfxItemPresentation __EXPORT SdrCaptionTypeItem::GetPresentation(SfxItemPresentation ePres,
1056                       SfxMapUnit /*eCoreMetric*/, SfxMapUnit /*ePresMetric*/, XubString& rText, const IntlWrapper *) const
1057 {
1058 	rText=GetValueTextByPos(sal::static_int_cast< sal_uInt16 >(GetValue()));
1059 	if (ePres==SFX_ITEM_PRESENTATION_COMPLETE) {
1060 		String aStr;
1061 
1062 		SdrItemPool::TakeItemName(Which(), aStr);
1063 		aStr += sal_Unicode(' ');
1064 		rText.Insert(aStr, 0);
1065 	}
1066 	return ePres;
1067 }
1068 
1069 TYPEINIT1_AUTOFACTORY(SdrCaptionEscDirItem,SfxEnumItem);
1070 
1071 SfxPoolItem* __EXPORT SdrCaptionEscDirItem::Clone(SfxItemPool* /*pPool*/) const              { return new SdrCaptionEscDirItem(*this); }
1072 
1073 SfxPoolItem* __EXPORT SdrCaptionEscDirItem::Create(SvStream& rIn, sal_uInt16 /*nVer*/) const     { return new SdrCaptionEscDirItem(rIn); }
1074 
1075 sal_uInt16 __EXPORT SdrCaptionEscDirItem::GetValueCount() const { return 3; }
1076 
1077 XubString __EXPORT SdrCaptionEscDirItem::GetValueTextByPos(sal_uInt16 nPos) const
1078 {
1079 	return ImpGetResStr(STR_ItemValCAPTIONESCHORI+nPos);
1080 }
1081 
1082 SfxItemPresentation __EXPORT SdrCaptionEscDirItem::GetPresentation(SfxItemPresentation ePres,
1083                       SfxMapUnit /*eCoreMetric*/, SfxMapUnit /*ePresMetric*/, XubString& rText, const IntlWrapper *) const
1084 {
1085 	rText=GetValueTextByPos(sal::static_int_cast< sal_uInt16 >(GetValue()));
1086 	if (ePres==SFX_ITEM_PRESENTATION_COMPLETE) {
1087 		String aStr;
1088 
1089 		SdrItemPool::TakeItemName(Which(), aStr);
1090 		aStr += sal_Unicode(' ');
1091 		rText.Insert(aStr, 0);
1092 	}
1093 	return ePres;
1094 }
1095 
1096 ////////////////////////////////////////////////////////////////////////////////
1097 // MiscItems
1098 ////////////////////////////////////////////////////////////////////////////////
1099 
1100 // FitToSize
1101 TYPEINIT1_AUTOFACTORY(SdrTextFitToSizeTypeItem,SfxEnumItem);
1102 
1103 SfxPoolItem* __EXPORT SdrTextFitToSizeTypeItem::Clone(SfxItemPool* /*pPool*/) const         { return new SdrTextFitToSizeTypeItem(*this); }
1104 
1105 SfxPoolItem* __EXPORT SdrTextFitToSizeTypeItem::Create(SvStream& rIn, sal_uInt16 /*nVer*/) const { return new SdrTextFitToSizeTypeItem(rIn); }
1106 
1107 sal_uInt16 __EXPORT SdrTextFitToSizeTypeItem::GetValueCount() const { return 4; }
1108 
1109 XubString __EXPORT SdrTextFitToSizeTypeItem::GetValueTextByPos(sal_uInt16 nPos) const
1110 {
1111 	return ImpGetResStr(STR_ItemValFITTOSIZENONE+nPos);
1112 }
1113 
1114 SfxItemPresentation __EXPORT SdrTextFitToSizeTypeItem::GetPresentation(SfxItemPresentation ePres,
1115                       SfxMapUnit /*eCoreMetric*/, SfxMapUnit /*ePresMetric*/, XubString& rText, const IntlWrapper *) const
1116 {
1117 	rText=GetValueTextByPos(sal::static_int_cast< sal_uInt16 >(GetValue()));
1118 	if (ePres==SFX_ITEM_PRESENTATION_COMPLETE) {
1119 		String aStr;
1120 
1121 		SdrItemPool::TakeItemName(Which(), aStr);
1122 		aStr += sal_Unicode(' ');
1123 		rText.Insert(aStr, 0);
1124 	}
1125 	return ePres;
1126 }
1127 
1128 int  __EXPORT SdrTextFitToSizeTypeItem::HasBoolValue() const { return sal_True; }
1129 
1130 sal_Bool __EXPORT SdrTextFitToSizeTypeItem::GetBoolValue() const { return GetValue()!=SDRTEXTFIT_NONE; }
1131 
1132 void __EXPORT SdrTextFitToSizeTypeItem::SetBoolValue(sal_Bool bVal) { SetValue(sal::static_int_cast< sal_uInt16 >(bVal ? SDRTEXTFIT_PROPORTIONAL : SDRTEXTFIT_NONE)); }
1133 
1134 sal_Bool SdrTextFitToSizeTypeItem::QueryValue( uno::Any& rVal, sal_uInt8 /*nMemberId*/) const
1135 {
1136 	drawing::TextFitToSizeType eFS = (drawing::TextFitToSizeType)GetValue();
1137 	rVal <<= eFS;
1138 
1139 	return sal_True;
1140 }
1141 
1142 sal_Bool SdrTextFitToSizeTypeItem::PutValue( const uno::Any& rVal, sal_uInt8 /*nMemberId*/)
1143 {
1144 	drawing::TextFitToSizeType eFS;
1145 	if(!(rVal >>= eFS))
1146 	{
1147 		sal_Int32 nEnum = 0;
1148 		if(!(rVal >>= nEnum))
1149 			return sal_False;
1150 
1151 		eFS = (drawing::TextFitToSizeType) nEnum;
1152 	}
1153 
1154 	SetValue( sal::static_int_cast< sal_uInt16 >( (SdrFitToSizeType)eFS ) );
1155 
1156 	return sal_True;
1157 }
1158 
1159 TYPEINIT1_AUTOFACTORY(SdrTextVertAdjustItem,SfxEnumItem);
1160 
1161 SfxPoolItem* __EXPORT SdrTextVertAdjustItem::Clone(SfxItemPool* /*pPool*/) const            { return new SdrTextVertAdjustItem(*this); }
1162 
1163 SfxPoolItem* __EXPORT SdrTextVertAdjustItem::Create(SvStream& rIn, sal_uInt16 /*nVer*/) const   { return new SdrTextVertAdjustItem(rIn); }
1164 
1165 sal_uInt16 __EXPORT SdrTextVertAdjustItem::GetValueCount() const { return 5; }
1166 
1167 XubString __EXPORT SdrTextVertAdjustItem::GetValueTextByPos(sal_uInt16 nPos) const
1168 {
1169 	return ImpGetResStr(STR_ItemValTEXTVADJTOP+nPos);
1170 }
1171 
1172 SfxItemPresentation __EXPORT SdrTextVertAdjustItem::GetPresentation(SfxItemPresentation ePres,
1173                       SfxMapUnit /*eCoreMetric*/, SfxMapUnit /*ePresMetric*/, XubString& rText, const IntlWrapper *) const
1174 {
1175 	rText=GetValueTextByPos(sal::static_int_cast< sal_uInt16 >(GetValue()));
1176 	if (ePres==SFX_ITEM_PRESENTATION_COMPLETE) {
1177 		String aStr;
1178 
1179 		SdrItemPool::TakeItemName(Which(), aStr);
1180 		aStr += sal_Unicode(' ');
1181 		rText.Insert(aStr, 0);
1182 	}
1183 	return ePres;
1184 }
1185 
1186 sal_Bool SdrTextVertAdjustItem::QueryValue( uno::Any& rVal, sal_uInt8 /*nMemberId*/) const
1187 {
1188 	rVal <<= (drawing::TextVerticalAdjust)GetValue();
1189 	return sal_True;
1190 }
1191 
1192 sal_Bool SdrTextVertAdjustItem::PutValue( const uno::Any& rVal, sal_uInt8 /*nMemberId*/)
1193 {
1194 	drawing::TextVerticalAdjust eAdj;
1195 	if(!(rVal >>= eAdj))
1196 	{
1197 		sal_Int32 nEnum = 0;
1198 		if(!(rVal >>= nEnum))
1199 			return sal_False;
1200 
1201 		eAdj = (drawing::TextVerticalAdjust)nEnum;
1202 	}
1203 
1204 	SetValue( sal::static_int_cast< sal_uInt16 >( (SdrTextVertAdjust)eAdj ) );
1205 
1206 	return sal_True;
1207 }
1208 
1209 TYPEINIT1_AUTOFACTORY(SdrTextHorzAdjustItem,SfxEnumItem);
1210 
1211 SfxPoolItem* __EXPORT SdrTextHorzAdjustItem::Clone(SfxItemPool* /*pPool*/) const            { return new SdrTextHorzAdjustItem(*this); }
1212 
1213 SfxPoolItem* __EXPORT SdrTextHorzAdjustItem::Create(SvStream& rIn, sal_uInt16 /*nVer*/) const   { return new SdrTextHorzAdjustItem(rIn); }
1214 
1215 sal_uInt16 __EXPORT SdrTextHorzAdjustItem::GetValueCount() const { return 5; }
1216 
1217 XubString __EXPORT SdrTextHorzAdjustItem::GetValueTextByPos(sal_uInt16 nPos) const
1218 {
1219 	return ImpGetResStr(STR_ItemValTEXTHADJLEFT+nPos);
1220 }
1221 
1222 SfxItemPresentation __EXPORT SdrTextHorzAdjustItem::GetPresentation(SfxItemPresentation ePres,
1223                       SfxMapUnit /*eCoreMetric*/, SfxMapUnit /*ePresMetric*/, XubString& rText, const IntlWrapper *) const
1224 {
1225 	rText=GetValueTextByPos(sal::static_int_cast< sal_uInt16 >(GetValue()));
1226 	if (ePres==SFX_ITEM_PRESENTATION_COMPLETE) {
1227 		String aStr;
1228 
1229 		SdrItemPool::TakeItemName(Which(), aStr);
1230 		aStr += sal_Unicode(' ');
1231 		rText.Insert(aStr, 0);
1232 	}
1233 	return ePres;
1234 }
1235 
1236 sal_Bool SdrTextHorzAdjustItem::QueryValue( uno::Any& rVal, sal_uInt8 /*nMemberId*/) const
1237 {
1238 	rVal <<= (drawing::TextHorizontalAdjust)GetValue();
1239 	return sal_True;
1240 }
1241 
1242 sal_Bool SdrTextHorzAdjustItem::PutValue( const uno::Any& rVal, sal_uInt8 /*nMemberId*/)
1243 {
1244 	drawing::TextHorizontalAdjust eAdj;
1245 	if(!(rVal >>= eAdj))
1246 	{
1247 		sal_Int32 nEnum = 0;
1248 		if(!(rVal >>= nEnum))
1249 			return sal_False;
1250 
1251 		eAdj = (drawing::TextHorizontalAdjust)nEnum;
1252 	}
1253 
1254 	SetValue( sal::static_int_cast< sal_uInt16 >( (SdrTextHorzAdjust)eAdj ) );
1255 
1256 	return sal_True;
1257 }
1258 
1259 TYPEINIT1_AUTOFACTORY(SdrTextAniKindItem,SfxEnumItem);
1260 
1261 SfxPoolItem* __EXPORT SdrTextAniKindItem::Clone(SfxItemPool* /*pPool*/) const            { return new SdrTextAniKindItem(*this); }
1262 
1263 SfxPoolItem* __EXPORT SdrTextAniKindItem::Create(SvStream& rIn, sal_uInt16 /*nVer*/) const   { return new SdrTextAniKindItem(rIn); }
1264 
1265 sal_uInt16 __EXPORT SdrTextAniKindItem::GetValueCount() const { return 5; }
1266 
1267 XubString __EXPORT SdrTextAniKindItem::GetValueTextByPos(sal_uInt16 nPos) const
1268 {
1269 	return ImpGetResStr(STR_ItemValTEXTANI_NONE+nPos);
1270 }
1271 
1272 SfxItemPresentation __EXPORT SdrTextAniKindItem::GetPresentation(SfxItemPresentation ePres,
1273                       SfxMapUnit /*eCoreMetric*/, SfxMapUnit /*ePresMetric*/, XubString& rText, const IntlWrapper *) const
1274 {
1275 	rText=GetValueTextByPos(sal::static_int_cast< sal_uInt16 >(GetValue()));
1276 	if (ePres==SFX_ITEM_PRESENTATION_COMPLETE) {
1277 		String aStr;
1278 
1279 		SdrItemPool::TakeItemName(Which(), aStr);
1280 		aStr += sal_Unicode(' ');
1281 		rText.Insert(aStr, 0);
1282 	}
1283 	return ePres;
1284 }
1285 
1286 sal_Bool SdrTextAniKindItem::QueryValue( uno::Any& rVal, sal_uInt8 /*nMemberId*/) const
1287 {
1288 	rVal <<= (drawing::TextAnimationKind)GetValue();
1289 	return sal_True;
1290 }
1291 
1292 sal_Bool SdrTextAniKindItem::PutValue( const uno::Any& rVal, sal_uInt8 /*nMemberId*/)
1293 {
1294 	drawing::TextAnimationKind eKind;
1295 	if(!(rVal >>= eKind))
1296 	{
1297 		sal_Int32 nEnum = 0;
1298 		if(!(rVal >>= nEnum))
1299 			return sal_False;
1300 		eKind = (drawing::TextAnimationKind)nEnum;
1301 	}
1302 
1303 	SetValue( sal::static_int_cast< sal_uInt16 >( (SdrTextAniKind)eKind ) );
1304 
1305 	return sal_True;
1306 }
1307 
1308 TYPEINIT1_AUTOFACTORY(SdrTextAniDirectionItem,SfxEnumItem);
1309 
1310 SfxPoolItem* __EXPORT SdrTextAniDirectionItem::Clone(SfxItemPool* /*pPool*/) const            { return new SdrTextAniDirectionItem(*this); }
1311 
1312 SfxPoolItem* __EXPORT SdrTextAniDirectionItem::Create(SvStream& rIn, sal_uInt16 /*nVer*/) const   { return new SdrTextAniDirectionItem(rIn); }
1313 
1314 sal_uInt16 __EXPORT SdrTextAniDirectionItem::GetValueCount() const { return 4; }
1315 
1316 XubString __EXPORT SdrTextAniDirectionItem::GetValueTextByPos(sal_uInt16 nPos) const
1317 {
1318 	return ImpGetResStr(STR_ItemValTEXTANI_LEFT+nPos);
1319 }
1320 
1321 SfxItemPresentation __EXPORT SdrTextAniDirectionItem::GetPresentation(SfxItemPresentation ePres,
1322                       SfxMapUnit /*eCoreMetric*/, SfxMapUnit /*ePresMetric*/, XubString& rText, const IntlWrapper *) const
1323 {
1324 	rText=GetValueTextByPos(sal::static_int_cast< sal_uInt16 >(GetValue()));
1325 	if (ePres==SFX_ITEM_PRESENTATION_COMPLETE) {
1326 		String aStr;
1327 
1328 		SdrItemPool::TakeItemName(Which(), aStr);
1329 		aStr += sal_Unicode(' ');
1330 		rText.Insert(aStr, 0);
1331 	}
1332 	return ePres;
1333 }
1334 
1335 sal_Bool SdrTextAniDirectionItem::QueryValue( uno::Any& rVal, sal_uInt8 /*nMemberId*/) const
1336 {
1337 	rVal <<= (drawing::TextAnimationDirection)GetValue();
1338 	return sal_True;
1339 }
1340 
1341 sal_Bool SdrTextAniDirectionItem::PutValue( const uno::Any& rVal, sal_uInt8 /*nMemberId*/)
1342 {
1343 	drawing::TextAnimationDirection eDir;
1344 	if(!(rVal >>= eDir))
1345 	{
1346 		sal_Int32 nEnum = 0;
1347 		if(!(rVal >>= nEnum))
1348 			return sal_False;
1349 
1350 		eDir = (drawing::TextAnimationDirection)nEnum;
1351 	}
1352 
1353 	SetValue( sal::static_int_cast< sal_uInt16 >( (SdrTextAniDirection)eDir ) );
1354 
1355 	return sal_True;
1356 }
1357 
1358 TYPEINIT1_AUTOFACTORY(SdrTextAniDelayItem,SfxUInt16Item);
1359 
1360 SfxPoolItem* __EXPORT SdrTextAniDelayItem::Clone(SfxItemPool* /*pPool*/) const            { return new SdrTextAniDelayItem(*this); }
1361 
1362 SfxPoolItem* __EXPORT SdrTextAniDelayItem::Create(SvStream& rIn, sal_uInt16 /*nVer*/) const   { return new SdrTextAniDelayItem(rIn); }
1363 
1364 SfxItemPresentation __EXPORT SdrTextAniDelayItem::GetPresentation(
1365 	SfxItemPresentation ePres, SfxMapUnit /*eCoreMetric*/, SfxMapUnit /*ePresMetric*/,
1366     XubString& rText, const IntlWrapper *) const
1367 {
1368 	rText = UniString::CreateFromInt32(GetValue());
1369 	rText += sal_Unicode('m');
1370 	rText += sal_Unicode('s');
1371 
1372 	if(ePres == SFX_ITEM_PRESENTATION_COMPLETE)
1373 	{
1374 		XubString aStr;
1375 
1376 		SdrItemPool::TakeItemName(Which(), aStr);
1377 		aStr += sal_Unicode(' ');
1378 		rText.Insert(aStr, 0);
1379 	}
1380 
1381 	return ePres;
1382 }
1383 
1384 TYPEINIT1_AUTOFACTORY(SdrTextAniAmountItem,SfxInt16Item);
1385 
1386 SfxPoolItem* __EXPORT SdrTextAniAmountItem::Clone(SfxItemPool* /*pPool*/) const            { return new SdrTextAniAmountItem(*this); }
1387 
1388 SfxPoolItem* __EXPORT SdrTextAniAmountItem::Create(SvStream& rIn, sal_uInt16 /*nVer*/) const   { return new SdrTextAniAmountItem(rIn); }
1389 
1390 FASTBOOL __EXPORT SdrTextAniAmountItem::HasMetrics() const
1391 {
1392 	return GetValue()>0;
1393 }
1394 
1395 FASTBOOL __EXPORT SdrTextAniAmountItem::ScaleMetrics(long nMul, long nDiv)
1396 {
1397 	if (GetValue()>0) {
1398 		BigInt aVal(GetValue());
1399 		aVal*=nMul;
1400 		aVal+=nDiv/2; // fuer korrektes Runden
1401 		aVal/=nDiv;
1402 		SetValue(short(aVal));
1403 		return sal_True;
1404 	} else return sal_False;
1405 }
1406 
1407 SfxItemPresentation __EXPORT SdrTextAniAmountItem::GetPresentation(
1408 	SfxItemPresentation ePres, SfxMapUnit eCoreMetric, SfxMapUnit ePresMetric,
1409     XubString& rText, const IntlWrapper *) const
1410 {
1411 	sal_Int32 nValue(GetValue());
1412 
1413 	if(!nValue)
1414 		nValue = -1L;
1415 
1416 	if(nValue < 0)
1417 	{
1418 		sal_Char aText[] = "pixel";
1419 
1420 		rText = UniString::CreateFromInt32(-nValue);
1421 		rText += UniString(aText, sizeof(aText-1));
1422 	}
1423 	else
1424 	{
1425 		SdrFormatter aFmt((MapUnit)eCoreMetric, (MapUnit)ePresMetric);
1426 		XubString aStr;
1427 
1428 		aFmt.TakeStr(nValue, rText);
1429 		aFmt.TakeUnitStr((MapUnit)ePresMetric, aStr);
1430 		rText += aStr;
1431 	}
1432 
1433 	if(ePres == SFX_ITEM_PRESENTATION_COMPLETE)
1434 	{
1435 		XubString aStr;
1436 
1437 		SdrItemPool::TakeItemName(Which(), aStr);
1438 		aStr += sal_Unicode(' ');
1439 		rText.Insert(aStr, 0);
1440 	}
1441 
1442 	return ePres;
1443 }
1444 
1445 TYPEINIT1_AUTOFACTORY( SdrTextFixedCellHeightItem, SfxBoolItem );
1446 SdrTextFixedCellHeightItem::SdrTextFixedCellHeightItem( sal_Bool bUseFixedCellHeight )
1447 	: SfxBoolItem( SDRATTR_TEXT_USEFIXEDCELLHEIGHT, bUseFixedCellHeight )
1448 {
1449 }
1450 SdrTextFixedCellHeightItem::SdrTextFixedCellHeightItem( SvStream & rStream, sal_uInt16 nVersion )
1451 	: SfxBoolItem( SDRATTR_TEXT_USEFIXEDCELLHEIGHT, sal_False )
1452 {
1453 	if ( nVersion )
1454 	{
1455 		sal_Bool bValue;
1456 		rStream >> bValue;
1457 		SetValue( bValue );
1458 	}
1459 }
1460 SfxItemPresentation __EXPORT SdrTextFixedCellHeightItem::GetPresentation( SfxItemPresentation ePres,
1461 									SfxMapUnit /*eCoreMetric*/, SfxMapUnit /*ePresentationMetric*/,
1462                                         String &rText, const IntlWrapper * ) const
1463 {
1464 	rText = GetValueTextByVal( GetValue() );
1465 	if (ePres==SFX_ITEM_PRESENTATION_COMPLETE)
1466 	{
1467 		String aStr;
1468 		SdrItemPool::TakeItemName(Which(), aStr);
1469 		aStr += sal_Unicode(' ');
1470 		rText.Insert(aStr, 0);
1471 	}
1472 	return ePres;
1473 }
1474 SfxPoolItem* __EXPORT SdrTextFixedCellHeightItem::Create( SvStream& rIn, sal_uInt16 nItemVersion ) const
1475 {
1476 	return new SdrTextFixedCellHeightItem( rIn, nItemVersion );
1477 }
1478 SvStream& __EXPORT SdrTextFixedCellHeightItem::Store( SvStream& rOut, sal_uInt16 nItemVersion ) const
1479 {
1480 	if ( nItemVersion )
1481 	{
1482 		sal_Bool bValue = (sal_Bool)GetValue();
1483 		rOut << bValue;
1484 	}
1485 	return rOut;
1486 }
1487 SfxPoolItem* __EXPORT SdrTextFixedCellHeightItem::Clone( SfxItemPool * /*pPool*/) const
1488 {
1489 	return new SdrTextFixedCellHeightItem( GetValue() );
1490 }
1491 sal_uInt16 SdrTextFixedCellHeightItem::GetVersion( sal_uInt16 /*nFileFormatVersion*/) const
1492 {
1493 	return 1;
1494 }
1495 sal_Bool SdrTextFixedCellHeightItem::QueryValue( uno::Any& rVal, sal_uInt8 /*nMemberId*/) const
1496 {
1497 	sal_Bool bValue = (sal_Bool)GetValue();
1498 	rVal <<= bValue;
1499 	return sal_True;
1500 }
1501 sal_Bool SdrTextFixedCellHeightItem::PutValue( const uno::Any& rVal, sal_uInt8 /*nMemberId*/)
1502 {
1503 	sal_Bool bValue = sal_Bool();
1504 	if( !( rVal >>= bValue ) )
1505 		return sal_False;
1506 	SetValue( bValue );
1507 	return sal_True;
1508 }
1509 #ifdef SDR_ISPOOLABLE
1510 int __EXPORT SdrTextFixedCellHeightItem::IsPoolable() const
1511 {
1512 	sal_uInt16 nId=Which();
1513 	return nId < SDRATTR_NOTPERSIST_FIRST || nId > SDRATTR_NOTPERSIST_LAST;
1514 }
1515 #endif
1516 
1517 TYPEINIT1_AUTOFACTORY( SdrCustomShapeAdjustmentItem, SfxPoolItem );
1518 
1519 SdrCustomShapeAdjustmentItem::SdrCustomShapeAdjustmentItem() : SfxPoolItem( SDRATTR_CUSTOMSHAPE_ADJUSTMENT )
1520 {
1521 }
1522 
1523 SdrCustomShapeAdjustmentItem::SdrCustomShapeAdjustmentItem( SvStream& rIn, sal_uInt16 nVersion ):
1524 	SfxPoolItem( SDRATTR_CUSTOMSHAPE_ADJUSTMENT )
1525 {
1526 	if ( nVersion )
1527 	{
1528 		SdrCustomShapeAdjustmentValue aVal;
1529 		sal_uInt32 i, nCount;
1530 		rIn >> nCount;
1531 		for ( i = 0; i < nCount; i++ )
1532 		{
1533 			rIn >> aVal.nValue;
1534 			SetValue( i, aVal );
1535 		}
1536 	}
1537 }
1538 
1539 SdrCustomShapeAdjustmentItem::~SdrCustomShapeAdjustmentItem()
1540 {
1541 	void* pPtr;
1542 	for ( pPtr = aAdjustmentValueList.First(); pPtr; pPtr = aAdjustmentValueList.Next() )
1543 		delete (SdrCustomShapeAdjustmentValue*)pPtr;
1544 }
1545 
1546 int __EXPORT SdrCustomShapeAdjustmentItem::operator==( const SfxPoolItem& rCmp ) const
1547 {
1548 	int bRet = SfxPoolItem::operator==( rCmp );
1549 	if ( bRet )
1550 	{
1551 		bRet = ((SdrCustomShapeAdjustmentItem&)rCmp).GetCount() == GetCount();
1552 		if ( bRet )
1553 		{
1554 			sal_uInt32 i;
1555 			for ( i = 0; i < GetCount(); i++ )
1556 			{
1557 				if ( ((SdrCustomShapeAdjustmentItem&)rCmp).GetValue( i ).nValue != GetValue( i ).nValue )
1558 				{
1559 					bRet = 0;
1560 					break;
1561 				}
1562 			}
1563 		}
1564 	}
1565 	return bRet;
1566 }
1567 
1568 SfxItemPresentation __EXPORT SdrCustomShapeAdjustmentItem::GetPresentation(
1569 	SfxItemPresentation ePresentation, SfxMapUnit /*eCoreMetric*/,
1570     SfxMapUnit /*ePresentationMetric*/, XubString &rText, const IntlWrapper *) const
1571 {
1572 	sal_uInt32 i, nCount = GetCount();
1573 	rText.Append( UniString::CreateFromInt32( nCount ) );
1574 	for ( i = 0; i < nCount; i++ )
1575 	{
1576 		rText += sal_Unicode( ' ' );
1577 		rText.Append( UniString::CreateFromInt32( GetValue( i ).nValue ) );
1578 	}
1579 	if ( ePresentation == SFX_ITEM_PRESENTATION_COMPLETE )
1580 	{
1581 		XubString aStr;
1582 
1583 		SdrItemPool::TakeItemName( Which(), aStr );
1584 		aStr += sal_Unicode( ' ' );
1585 		rText.Insert( aStr, 0 );
1586 	}
1587 	return ePresentation;
1588 }
1589 
1590 SfxPoolItem* __EXPORT SdrCustomShapeAdjustmentItem::Create( SvStream& rIn, sal_uInt16 nItemVersion ) const
1591 {
1592 	return new SdrCustomShapeAdjustmentItem( rIn, nItemVersion );
1593 }
1594 
1595 SvStream& __EXPORT SdrCustomShapeAdjustmentItem::Store( SvStream& rOut, sal_uInt16 nItemVersion ) const
1596 {
1597 	if ( nItemVersion )
1598 	{
1599 		sal_uInt32 i, nCount = GetCount();
1600 		rOut << nCount;
1601 		for ( i = 0; i < nCount; i++ )
1602 			rOut << GetValue( i ).nValue;
1603 	}
1604 	return rOut;
1605 }
1606 
1607 SfxPoolItem* __EXPORT SdrCustomShapeAdjustmentItem::Clone( SfxItemPool * /*pPool*/) const
1608 {
1609 	sal_uInt32 i;
1610 	SdrCustomShapeAdjustmentItem* pItem = new SdrCustomShapeAdjustmentItem;
1611 	for ( i = 0; i < GetCount(); i++ )
1612 	{
1613 		const SdrCustomShapeAdjustmentValue& rVal = GetValue( i );
1614 		pItem->SetValue( i, rVal );
1615 	}
1616 	return pItem;
1617 }
1618 
1619 #ifdef SDR_ISPOOLABLE
1620 int __EXPORT SdrCustomShapeAdjustmentItem::IsPoolable() const
1621 {
1622 	sal_uInt16 nId=Which();
1623 	return nId < SDRATTR_NOTPERSIST_FIRST || nId > SDRATTR_NOTPERSIST_LAST;
1624 }
1625 #endif
1626 
1627 const SdrCustomShapeAdjustmentValue& SdrCustomShapeAdjustmentItem::GetValue( sal_uInt32 nIndex ) const
1628 {
1629 #ifdef DBG_UTIL
1630 	if ( aAdjustmentValueList.Count() <= nIndex )
1631 		DBG_ERROR( "SdrCustomShapeAdjustemntItem::GetValue - nIndex out of range (SJ)" );
1632 #endif
1633 	return *(SdrCustomShapeAdjustmentValue*)aAdjustmentValueList.GetObject( nIndex );
1634 }
1635 
1636 void SdrCustomShapeAdjustmentItem::SetValue( sal_uInt32 nIndex, const SdrCustomShapeAdjustmentValue& rVal )
1637 {
1638 	sal_uInt32 i;
1639 	for ( i = GetCount(); i <= nIndex; i++ )
1640 	{
1641 		SdrCustomShapeAdjustmentValue* pItem = new SdrCustomShapeAdjustmentValue;
1642 		aAdjustmentValueList.Insert( pItem, LIST_APPEND );
1643 	}
1644 	SdrCustomShapeAdjustmentValue& rValue = *(SdrCustomShapeAdjustmentValue*)aAdjustmentValueList.GetObject( nIndex );
1645 	rValue.nValue = rVal.nValue;
1646 }
1647 
1648 sal_uInt16 SdrCustomShapeAdjustmentItem::GetVersion( sal_uInt16 /*nFileFormatVersion*/) const
1649 {
1650 	return 1;
1651 }
1652 
1653 sal_Bool SdrCustomShapeAdjustmentItem::QueryValue( uno::Any& rVal, sal_uInt8 /*nMemberId*/) const
1654 {
1655 	sal_uInt32 i, nCount = GetCount();
1656 	uno::Sequence< sal_Int32 > aSequence( nCount );
1657 	if ( nCount )
1658 	{
1659 		sal_Int32* pPtr = aSequence.getArray();
1660 		for ( i = 0; i < nCount; i++ )
1661 			*pPtr++ = GetValue( i ).nValue;
1662 	}
1663 	rVal <<= aSequence;
1664 	return sal_True;
1665 }
1666 
1667 sal_Bool SdrCustomShapeAdjustmentItem::PutValue( const uno::Any& rVal, sal_uInt8 /*nMemberId*/)
1668 {
1669 	uno::Sequence< sal_Int32 > aSequence;
1670 	if( !( rVal >>= aSequence ) )
1671 		return sal_False;
1672 
1673 	void* pPtr;
1674 	for ( pPtr = aAdjustmentValueList.First(); pPtr; pPtr = aAdjustmentValueList.Next() )
1675 		delete (SdrCustomShapeAdjustmentValue*)pPtr;
1676 
1677 	sal_uInt32 i, nCount = aSequence.getLength();
1678 	if ( nCount )
1679 	{
1680 		const sal_Int32* pPtr2 = aSequence.getConstArray();
1681 		for ( i = 0; i < nCount; i++ )
1682 		{
1683 			SdrCustomShapeAdjustmentValue* pItem = new SdrCustomShapeAdjustmentValue;
1684 			pItem->nValue = *pPtr2++;
1685 			aAdjustmentValueList.Insert( pItem, LIST_APPEND );
1686 		}
1687 	}
1688 	return sal_True;
1689 }
1690 
1691 
1692 //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1693 // Edge
1694 //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1695 
1696 // EdgeKind
1697 TYPEINIT1_AUTOFACTORY(SdrEdgeKindItem,SfxEnumItem);
1698 
1699 SfxPoolItem* __EXPORT SdrEdgeKindItem::Clone(SfxItemPool* /*pPool*/) const            { return new SdrEdgeKindItem(*this); }
1700 
1701 SfxPoolItem* __EXPORT SdrEdgeKindItem::Create(SvStream& rIn, sal_uInt16 /*nVer*/) const   { return new SdrEdgeKindItem(rIn); }
1702 
1703 sal_uInt16 __EXPORT SdrEdgeKindItem::GetValueCount() const { return 4; }
1704 
1705 XubString __EXPORT SdrEdgeKindItem::GetValueTextByPos(sal_uInt16 nPos) const
1706 {
1707 	return ImpGetResStr(STR_ItemValEDGE_ORTHOLINES+nPos);
1708 }
1709 
1710 SfxItemPresentation __EXPORT SdrEdgeKindItem::GetPresentation(SfxItemPresentation ePres,
1711                       SfxMapUnit /*eCoreMetric*/, SfxMapUnit /*ePresMetric*/, XubString& rText, const IntlWrapper *) const
1712 {
1713 	rText=GetValueTextByPos(sal::static_int_cast< sal_uInt16 >(GetValue()));
1714 	if (ePres==SFX_ITEM_PRESENTATION_COMPLETE) {
1715 		String aStr;
1716 
1717 		SdrItemPool::TakeItemName(Which(), aStr);
1718 		aStr += sal_Unicode(' ');
1719 		rText.Insert(aStr, 0);
1720 	}
1721 	return ePres;
1722 }
1723 
1724 sal_Bool SdrEdgeKindItem::QueryValue( uno::Any& rVal, sal_uInt8 /*nMemberId*/) const
1725 {
1726 	drawing::ConnectorType eCT = drawing::ConnectorType_STANDARD;
1727 
1728 	switch( GetValue() )
1729 	{
1730 		case SDREDGE_ORTHOLINES :   eCT = drawing::ConnectorType_STANDARD; break;
1731 		case SDREDGE_THREELINES :   eCT = drawing::ConnectorType_LINES;	break;
1732 		case SDREDGE_ONELINE :		eCT = drawing::ConnectorType_LINE;	break;
1733 		case SDREDGE_BEZIER :		eCT = drawing::ConnectorType_CURVE;	break;
1734 		case SDREDGE_ARC :          eCT = drawing::ConnectorType_CURVE;	break;
1735 		default:
1736 			DBG_ERROR( "SdrEdgeKindItem::QueryValue : unknown enum" );
1737 	}
1738 
1739 	rVal <<= eCT;
1740 
1741 	return sal_True;
1742 }
1743 
1744 sal_Bool SdrEdgeKindItem::PutValue( const uno::Any& rVal, sal_uInt8 /*nMemberId*/)
1745 {
1746 	drawing::ConnectorType eCT;
1747 	if(!(rVal >>= eCT))
1748 	{
1749 		sal_Int32 nEnum = 0;
1750 		if(!(rVal >>= nEnum))
1751 			return sal_False;
1752 
1753 		eCT = (drawing::ConnectorType)nEnum;
1754 	}
1755 
1756 	SdrEdgeKind eEK = SDREDGE_ORTHOLINES;
1757 	switch( eCT )
1758 	{
1759 		case drawing::ConnectorType_STANDARD :	eEK = SDREDGE_ORTHOLINES;	break;
1760 		case drawing::ConnectorType_CURVE :		eEK = SDREDGE_BEZIER;		break;
1761 		case drawing::ConnectorType_LINE :       eEK = SDREDGE_ONELINE;		break;
1762 		case drawing::ConnectorType_LINES :      eEK = SDREDGE_THREELINES;   break;
1763 		default:
1764 			DBG_ERROR( "SdrEdgeKindItem::PuValue : unknown enum" );
1765 	}
1766 	SetValue( sal::static_int_cast< sal_uInt16 >( eEK ) );
1767 
1768 	return sal_True;
1769 }
1770 
1771 sal_Bool SdrEdgeNode1HorzDistItem::QueryValue( uno::Any& rVal, sal_uInt8 /*nMemberId*/) const
1772 {
1773 	rVal <<= (sal_Int32)GetValue();
1774 	return sal_True;
1775 }
1776 
1777 sal_Bool SdrEdgeNode1HorzDistItem::PutValue( const uno::Any& rVal, sal_uInt8 /*nMemberId*/)
1778 {
1779 	sal_Int32 nValue = 0;
1780 	if(!(rVal >>= nValue))
1781 		return sal_False;
1782 
1783 	SetValue( nValue );
1784 	return sal_True;
1785 }
1786 
1787 sal_Bool SdrEdgeNode1VertDistItem::QueryValue( uno::Any& rVal, sal_uInt8 /*nMemberId*/) const
1788 {
1789 	rVal <<= (sal_Int32)GetValue();
1790 	return sal_True;
1791 }
1792 
1793 sal_Bool SdrEdgeNode1VertDistItem::PutValue( const uno::Any& rVal, sal_uInt8 /*nMemberId*/)
1794 {
1795 	sal_Int32 nValue = 0;
1796 	if(!(rVal >>= nValue))
1797 		return sal_False;
1798 
1799 	SetValue( nValue );
1800 	return sal_True;
1801 }
1802 
1803 sal_Bool SdrEdgeNode2HorzDistItem::QueryValue( uno::Any& rVal, sal_uInt8 /*nMemberId*/) const
1804 {
1805 	rVal <<= (sal_Int32)GetValue();
1806 	return sal_True;
1807 }
1808 
1809 sal_Bool SdrEdgeNode2HorzDistItem::PutValue( const uno::Any& rVal, sal_uInt8 /*nMemberId*/)
1810 {
1811 	sal_Int32 nValue = 0;
1812 	if(!(rVal >>= nValue))
1813 		return sal_False;
1814 
1815 	SetValue( nValue );
1816 	return sal_True;
1817 }
1818 
1819 sal_Bool SdrEdgeNode2VertDistItem::QueryValue( uno::Any& rVal, sal_uInt8 /*nMemberId*/) const
1820 {
1821 	rVal <<= (sal_Int32)GetValue();
1822 	return sal_True;
1823 }
1824 
1825 sal_Bool SdrEdgeNode2VertDistItem::PutValue( const uno::Any& rVal, sal_uInt8 /*nMemberId*/)
1826 {
1827 	sal_Int32 nValue = 0;
1828 	if(!(rVal >>= nValue))
1829 		return sal_False;
1830 
1831 	SetValue( nValue );
1832 	return sal_True;
1833 }
1834 
1835 sal_Bool SdrEdgeLine1DeltaItem::QueryValue( uno::Any& rVal, sal_uInt8 /*nMemberId*/) const
1836 {
1837 	rVal <<= (sal_Int32)GetValue();
1838 	return sal_True;
1839 }
1840 
1841 sal_Bool SdrEdgeLine1DeltaItem::PutValue( const uno::Any& rVal, sal_uInt8 /*nMemberId*/)
1842 {
1843 	sal_Int32 nValue = 0;
1844 	if(!(rVal >>= nValue))
1845 		return sal_False;
1846 
1847 	SetValue( nValue );
1848 	return sal_True;
1849 }
1850 
1851 sal_Bool SdrEdgeLine2DeltaItem::QueryValue( uno::Any& rVal, sal_uInt8 /*nMemberId*/) const
1852 {
1853 	rVal <<= (sal_Int32)GetValue();
1854 	return sal_True;
1855 }
1856 
1857 sal_Bool SdrEdgeLine2DeltaItem::PutValue( const uno::Any& rVal, sal_uInt8 /*nMemberId*/)
1858 {
1859 	sal_Int32 nValue = 0;
1860 	if(!(rVal >>= nValue))
1861 		return sal_False;
1862 
1863 	SetValue( nValue );
1864 	return sal_True;
1865 }
1866 
1867 sal_Bool SdrEdgeLine3DeltaItem::QueryValue( uno::Any& rVal, sal_uInt8 /*nMemberId*/) const
1868 {
1869 	rVal <<= (sal_Int32)GetValue();
1870 	return sal_True;
1871 }
1872 
1873 sal_Bool SdrEdgeLine3DeltaItem::PutValue( const uno::Any& rVal, sal_uInt8 /*nMemberId*/)
1874 {
1875 	sal_Int32 nValue = 0;
1876 	if(!(rVal >>= nValue))
1877 		return sal_False;
1878 
1879 	SetValue( nValue );
1880 	return sal_True;
1881 }
1882 
1883 //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1884 // Measure
1885 //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1886 
1887 // MeasureKind
1888 TYPEINIT1_AUTOFACTORY(SdrMeasureKindItem,SfxEnumItem);
1889 
1890 SfxPoolItem* __EXPORT SdrMeasureKindItem::Clone(SfxItemPool* /*pPool*/) const            { return new SdrMeasureKindItem(*this); }
1891 
1892 SfxPoolItem* __EXPORT SdrMeasureKindItem::Create(SvStream& rIn, sal_uInt16 /*nVer*/) const   { return new SdrMeasureKindItem(rIn); }
1893 
1894 sal_uInt16 __EXPORT SdrMeasureKindItem::GetValueCount() const { return 2; }
1895 
1896 XubString __EXPORT SdrMeasureKindItem::GetValueTextByPos(sal_uInt16 nPos) const
1897 {
1898 	return ImpGetResStr(STR_ItemValMEASURE_STD+nPos);
1899 }
1900 
1901 SfxItemPresentation __EXPORT SdrMeasureKindItem::GetPresentation(SfxItemPresentation ePres,
1902                       SfxMapUnit /*eCoreMetric*/, SfxMapUnit /*ePresMetric*/, XubString& rText, const IntlWrapper *) const
1903 {
1904 	rText=GetValueTextByPos(sal::static_int_cast< sal_uInt16 >(GetValue()));
1905 	if (ePres==SFX_ITEM_PRESENTATION_COMPLETE) {
1906 		String aStr;
1907 
1908 		SdrItemPool::TakeItemName(Which(), aStr);
1909 		aStr += sal_Unicode(' ');
1910 		rText.Insert(aStr, 0);
1911 	}
1912 	return ePres;
1913 }
1914 
1915 sal_Bool SdrMeasureKindItem::QueryValue( uno::Any& rVal, sal_uInt8 /*nMemberId*/) const
1916 {
1917 	rVal <<= (drawing::MeasureKind)GetValue();
1918 	return sal_True;
1919 }
1920 
1921 sal_Bool SdrMeasureKindItem::PutValue( const uno::Any& rVal, sal_uInt8 /*nMemberId*/)
1922 {
1923 	drawing::MeasureKind eKind;
1924 	if(!(rVal >>= eKind))
1925 	{
1926 		sal_Int32 nEnum = 0;
1927 		if(!(rVal >>= nEnum))
1928 			return sal_False;
1929 
1930 		eKind = (drawing::MeasureKind)nEnum;
1931 	}
1932 
1933 	SetValue( sal::static_int_cast< sal_uInt16 >( (SdrMeasureKind)eKind ) );
1934 	return sal_True;
1935 }
1936 
1937 TYPEINIT1_AUTOFACTORY(SdrMeasureTextHPosItem,SfxEnumItem);
1938 
1939 SfxPoolItem* __EXPORT SdrMeasureTextHPosItem::Clone(SfxItemPool* /*pPool*/) const            { return new SdrMeasureTextHPosItem(*this); }
1940 
1941 SfxPoolItem* __EXPORT SdrMeasureTextHPosItem::Create(SvStream& rIn, sal_uInt16 /*nVer*/) const   { return new SdrMeasureTextHPosItem(rIn); }
1942 
1943 sal_uInt16 __EXPORT SdrMeasureTextHPosItem::GetValueCount() const { return 4; }
1944 
1945 XubString __EXPORT SdrMeasureTextHPosItem::GetValueTextByPos(sal_uInt16 nPos) const
1946 {
1947 	return ImpGetResStr(STR_ItemValMEASURE_TEXTHAUTO+nPos);
1948 }
1949 
1950 SfxItemPresentation __EXPORT SdrMeasureTextHPosItem::GetPresentation(SfxItemPresentation ePres,
1951                       SfxMapUnit /*eCoreMetric*/, SfxMapUnit /*ePresMetric*/, XubString& rText, const IntlWrapper *) const
1952 {
1953 	rText=GetValueTextByPos(sal::static_int_cast< sal_uInt16 >(GetValue()));
1954 	if (ePres==SFX_ITEM_PRESENTATION_COMPLETE) {
1955 		String aStr;
1956 
1957 		SdrItemPool::TakeItemName(Which(), aStr);
1958 		aStr += sal_Unicode(' ');
1959 		rText.Insert(aStr, 0);
1960 	}
1961 	return ePres;
1962 }
1963 
1964 sal_Bool SdrMeasureTextHPosItem::QueryValue( uno::Any& rVal, sal_uInt8 /*nMemberId*/) const
1965 {
1966 	rVal <<= (drawing::MeasureTextHorzPos)GetValue();
1967 	return sal_True;
1968 }
1969 
1970 sal_Bool SdrMeasureTextHPosItem::PutValue( const uno::Any& rVal, sal_uInt8 /*nMemberId*/)
1971 {
1972 	drawing::MeasureTextHorzPos ePos;
1973 	if(!(rVal >>= ePos))
1974 	{
1975 		sal_Int32 nEnum = 0;
1976 		if(!(rVal >>= nEnum))
1977 			return sal_False;
1978 
1979 		ePos = (drawing::MeasureTextHorzPos)nEnum;
1980 	}
1981 
1982 	SetValue( sal::static_int_cast< sal_uInt16 >( (SdrMeasureTextHPos)ePos ) );
1983 	return sal_True;
1984 }
1985 
1986 TYPEINIT1_AUTOFACTORY(SdrMeasureTextVPosItem,SfxEnumItem);
1987 
1988 SfxPoolItem* __EXPORT SdrMeasureTextVPosItem::Clone(SfxItemPool* /*pPool*/) const            { return new SdrMeasureTextVPosItem(*this); }
1989 
1990 SfxPoolItem* __EXPORT SdrMeasureTextVPosItem::Create(SvStream& rIn, sal_uInt16 /*nVer*/) const   { return new SdrMeasureTextVPosItem(rIn); }
1991 
1992 sal_uInt16 __EXPORT SdrMeasureTextVPosItem::GetValueCount() const { return 5; }
1993 
1994 XubString __EXPORT SdrMeasureTextVPosItem::GetValueTextByPos(sal_uInt16 nPos) const
1995 {
1996 	return ImpGetResStr(STR_ItemValMEASURE_TEXTVAUTO+nPos);
1997 }
1998 
1999 SfxItemPresentation __EXPORT SdrMeasureTextVPosItem::GetPresentation(SfxItemPresentation ePres,
2000                       SfxMapUnit /*eCoreMetric*/, SfxMapUnit /*ePresMetric*/, XubString& rText, const IntlWrapper *) const
2001 {
2002 	rText=GetValueTextByPos(sal::static_int_cast< sal_uInt16 >(GetValue()));
2003 	if (ePres==SFX_ITEM_PRESENTATION_COMPLETE) {
2004 		String aStr;
2005 
2006 		SdrItemPool::TakeItemName(Which(), aStr);
2007 		aStr += sal_Unicode(' ');
2008 		rText.Insert(aStr, 0);
2009 	}
2010 	return ePres;
2011 }
2012 
2013 sal_Bool SdrMeasureTextVPosItem::QueryValue( uno::Any& rVal, sal_uInt8 /*nMemberId*/) const
2014 {
2015 	rVal <<= (drawing::MeasureTextVertPos)GetValue();
2016 	return sal_True;
2017 }
2018 
2019 sal_Bool SdrMeasureTextVPosItem::PutValue( const uno::Any& rVal, sal_uInt8 /*nMemberId*/)
2020 {
2021 	drawing::MeasureTextVertPos ePos;
2022 	if(!(rVal >>= ePos))
2023 	{
2024 		sal_Int32 nEnum = 0;
2025 		if(!(rVal >>= nEnum))
2026 			return sal_False;
2027 
2028 		ePos = (drawing::MeasureTextVertPos)nEnum;
2029 	}
2030 
2031 	SetValue( sal::static_int_cast< sal_uInt16 >( (SdrMeasureTextHPos)ePos ) );
2032 	return sal_True;
2033 }
2034 
2035 TYPEINIT1_AUTOFACTORY(SdrMeasureUnitItem,SfxEnumItem);
2036 
2037 SfxPoolItem* __EXPORT SdrMeasureUnitItem::Clone(SfxItemPool* /*pPool*/) const            { return new SdrMeasureUnitItem(*this); }
2038 
2039 SfxPoolItem* __EXPORT SdrMeasureUnitItem::Create(SvStream& rIn, sal_uInt16 /*nVer*/) const   { return new SdrMeasureUnitItem(rIn); }
2040 
2041 sal_uInt16 __EXPORT SdrMeasureUnitItem::GetValueCount() const { return 14; }
2042 
2043 XubString __EXPORT SdrMeasureUnitItem::GetValueTextByPos(sal_uInt16 nPos) const
2044 {
2045 	XubString aRetval;
2046 
2047 	if((FieldUnit)nPos == FUNIT_NONE)
2048 	{
2049 		sal_Char aText[] = "default";
2050 		aRetval += UniString(aText, sizeof(aText-1));
2051 	}
2052 	else
2053 	{
2054 		SdrFormatter::TakeUnitStr((FieldUnit)nPos, aRetval);
2055 	}
2056 
2057 	return aRetval;
2058 }
2059 
2060 SfxItemPresentation __EXPORT SdrMeasureUnitItem::GetPresentation(SfxItemPresentation ePres,
2061                       SfxMapUnit /*eCoreMetric*/, SfxMapUnit /*ePresMetric*/, XubString& rText, const IntlWrapper *) const
2062 {
2063 	rText=GetValueTextByPos(sal::static_int_cast< sal_uInt16 >(GetValue()));
2064 	if (ePres==SFX_ITEM_PRESENTATION_COMPLETE) {
2065 		String aStr;
2066 
2067 		SdrItemPool::TakeItemName(Which(), aStr);
2068 		aStr += sal_Unicode(' ');
2069 		rText.Insert(aStr, 0);
2070 	}
2071 	return ePres;
2072 }
2073 
2074 sal_Bool SdrMeasureUnitItem::QueryValue( uno::Any& rVal, sal_uInt8 /*nMemberId*/) const
2075 {
2076 	rVal <<= (sal_Int32)GetValue();
2077 	return sal_True;
2078 }
2079 
2080 sal_Bool SdrMeasureUnitItem::PutValue( const uno::Any& rVal, sal_uInt8 /*nMemberId*/)
2081 {
2082 	sal_Int32 nMeasure = 0;
2083 	if(!(rVal >>= nMeasure))
2084 		return sal_False;
2085 
2086 	SetValue( sal::static_int_cast< sal_uInt16 >( (FieldUnit)nMeasure ) );
2087 	return sal_True;
2088 }
2089 
2090 //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2091 // Circ
2092 //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2093 
2094 // CircKind
2095 TYPEINIT1_AUTOFACTORY(SdrCircKindItem,SfxEnumItem);
2096 
2097 SfxPoolItem* __EXPORT SdrCircKindItem::Clone(SfxItemPool* /*pPool*/) const          { return new SdrCircKindItem(*this); }
2098 
2099 SfxPoolItem* __EXPORT SdrCircKindItem::Create(SvStream& rIn, sal_uInt16 /*nVer*/) const { return new SdrCircKindItem(rIn); }
2100 
2101 sal_uInt16 __EXPORT SdrCircKindItem::GetValueCount() const { return 4; }
2102 
2103 XubString __EXPORT SdrCircKindItem::GetValueTextByPos(sal_uInt16 nPos) const
2104 {
2105 	return ImpGetResStr(STR_ItemValCIRC_FULL+nPos);
2106 }
2107 
2108 SfxItemPresentation __EXPORT SdrCircKindItem::GetPresentation(SfxItemPresentation ePres,
2109                       SfxMapUnit /*eCoreMetric*/, SfxMapUnit /*ePresMetric*/, XubString& rText, const IntlWrapper *) const
2110 {
2111 	rText=GetValueTextByPos(sal::static_int_cast< sal_uInt16 >(GetValue()));
2112 	if (ePres==SFX_ITEM_PRESENTATION_COMPLETE) {
2113 		String aStr;
2114 
2115 		SdrItemPool::TakeItemName(Which(), aStr);
2116 		aStr += sal_Unicode(' ');
2117 		rText.Insert(aStr, 0);
2118 	}
2119 	return ePres;
2120 }
2121 
2122 sal_Bool SdrCircKindItem::QueryValue( uno::Any& rVal, sal_uInt8 /*nMemberId*/) const
2123 {
2124 	rVal <<= (drawing::CircleKind)GetValue();
2125 	return sal_True;
2126 }
2127 
2128 sal_Bool SdrCircKindItem::PutValue( const uno::Any& rVal, sal_uInt8 /*nMemberId*/)
2129 {
2130 	drawing::CircleKind eKind;
2131 	if(!(rVal >>= eKind))
2132 	{
2133 		sal_Int32 nEnum = 0;
2134 		if(!(rVal >>= nEnum))
2135 			return sal_False;
2136 
2137 		eKind = (drawing::CircleKind)nEnum;
2138 	}
2139 
2140 	SetValue( sal::static_int_cast< sal_uInt16 >( (SdrCircKind)eKind ) );
2141 	return sal_True;
2142 }
2143 
2144 //------------------------------------------------------------
2145 // class SdrSignedPercentItem
2146 //------------------------------------------------------------
2147 
2148 TYPEINIT1_AUTOFACTORY( SdrSignedPercentItem, SfxInt16Item );
2149 
2150 
2151 SfxPoolItem* __EXPORT SdrSignedPercentItem::Clone(SfxItemPool* /*pPool*/) const
2152 {
2153 	return new SdrSignedPercentItem( Which(), GetValue() );
2154 }
2155 
2156 SfxPoolItem* __EXPORT SdrSignedPercentItem::Create( SvStream& rIn, sal_uInt16 /*nVer*/) const
2157 {
2158 	return new SdrSignedPercentItem( Which(), rIn );
2159 }
2160 
2161 SfxItemPresentation __EXPORT SdrSignedPercentItem::GetPresentation(
2162 	SfxItemPresentation ePres, SfxMapUnit /*eCoreMetric*/, SfxMapUnit /*ePresMetric*/,
2163     XubString& rText, const IntlWrapper *) const
2164 {
2165 	rText = UniString::CreateFromInt32(GetValue());
2166 	rText += sal_Unicode('%');
2167 
2168 	if(ePres == SFX_ITEM_PRESENTATION_COMPLETE)
2169 	{
2170 		XubString aStr;
2171 
2172 		SdrItemPool::TakeItemName(Which(), aStr);
2173 		aStr += sal_Unicode(' ');
2174 		rText.Insert(aStr, 0);
2175 	}
2176 
2177 	return ePres;
2178 }
2179 
2180 #ifdef SDR_ISPOOLABLE
2181 
2182 int __EXPORT SdrSignedPercentItem::IsPoolable() const
2183 {
2184 	sal_uInt16 nId=Which();
2185 	return nId < SDRATTR_NOTPERSIST_FIRST || nId > SDRATTR_NOTPERSIST_LAST;
2186 }
2187 #endif
2188 
2189 //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2190 // SdrGrafRedItem
2191 //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2192 
2193 TYPEINIT1( SdrGrafRedItem, SdrSignedPercentItem );
2194 
2195 SfxPoolItem* __EXPORT SdrGrafRedItem::Clone( SfxItemPool* /*pPool*/) const
2196 {
2197 	return new SdrGrafRedItem( *this );
2198 }
2199 
2200 SfxPoolItem* __EXPORT SdrGrafRedItem::Create( SvStream& rIn, sal_uInt16 /*nVer*/) const
2201 {
2202 	return new SdrGrafRedItem( rIn );
2203 }
2204 
2205 //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2206 // SdrGrafGreenItem
2207 //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2208 
2209 TYPEINIT1( SdrGrafGreenItem, SdrSignedPercentItem );
2210 
2211 SfxPoolItem* __EXPORT SdrGrafGreenItem::Clone( SfxItemPool* /*pPool*/) const
2212 {
2213 	return new SdrGrafGreenItem( *this );
2214 }
2215 
2216 SfxPoolItem* __EXPORT SdrGrafGreenItem::Create( SvStream& rIn, sal_uInt16 /*nVer*/) const
2217 {
2218 	return new SdrGrafGreenItem( rIn );
2219 }
2220 
2221 //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2222 // SdrGrafBlueItem
2223 //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2224 
2225 TYPEINIT1( SdrGrafBlueItem, SdrSignedPercentItem );
2226 
2227 SfxPoolItem* __EXPORT SdrGrafBlueItem::Clone( SfxItemPool* /*pPool*/) const
2228 {
2229 	return new SdrGrafBlueItem( *this );
2230 }
2231 
2232 SfxPoolItem* __EXPORT SdrGrafBlueItem::Create( SvStream& rIn, sal_uInt16 /*nVer*/) const
2233 {
2234 	return new SdrGrafBlueItem( rIn );
2235 }
2236 
2237 //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2238 // SdrGrafLuminanceItem
2239 //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2240 
2241 TYPEINIT1( SdrGrafLuminanceItem, SdrSignedPercentItem );
2242 
2243 SfxPoolItem* __EXPORT SdrGrafLuminanceItem::Clone( SfxItemPool* /*pPool*/) const
2244 {
2245 	return new SdrGrafLuminanceItem( *this );
2246 }
2247 
2248 SfxPoolItem* __EXPORT SdrGrafLuminanceItem::Create( SvStream& rIn, sal_uInt16 /*nVer*/) const
2249 {
2250 	return new SdrGrafLuminanceItem( rIn );
2251 }
2252 
2253 //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2254 // SdrGrafContrastItem
2255 //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2256 
2257 TYPEINIT1( SdrGrafContrastItem, SdrSignedPercentItem );
2258 
2259 SfxPoolItem* __EXPORT SdrGrafContrastItem::Clone( SfxItemPool* /*pPool*/) const
2260 {
2261 	return new SdrGrafContrastItem( *this );
2262 }
2263 
2264 SfxPoolItem* __EXPORT SdrGrafContrastItem::Create( SvStream& rIn, sal_uInt16 /*nVer*/) const
2265 {
2266 	return new SdrGrafContrastItem( rIn );
2267 }
2268 
2269 //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2270 // SdrGrafGamma100Item
2271 //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2272 
2273 TYPEINIT1( SdrGrafGamma100Item, SfxUInt32Item );
2274 
2275 SfxPoolItem* __EXPORT SdrGrafGamma100Item::Clone( SfxItemPool* /*pPool */) const
2276 {
2277 	return new SdrGrafGamma100Item( *this );
2278 }
2279 
2280 SfxPoolItem* __EXPORT SdrGrafGamma100Item::Create( SvStream& rIn, sal_uInt16 /*nVer*/) const
2281 {
2282 	return new SdrGrafGamma100Item( rIn );
2283 }
2284 
2285 sal_Bool SdrGrafGamma100Item::QueryValue( uno::Any& rVal, sal_uInt8 /*nMemberId*/) const
2286 {
2287 	rVal <<= ((double)GetValue()) / 100.0;
2288 	return sal_True;
2289 }
2290 
2291 sal_Bool SdrGrafGamma100Item::PutValue( const uno::Any& rVal, sal_uInt8 /*nMemberId*/)
2292 {
2293 	double nGamma = 0;
2294 	if(!(rVal >>= nGamma))
2295 		return sal_False;
2296 
2297 	SetValue( (sal_uInt32)(nGamma * 100.0  ) );
2298 	return sal_True;
2299 }
2300 
2301 //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2302 // SdrGrafInvertItem
2303 //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2304 
2305 TYPEINIT1( SdrGrafInvertItem, SdrOnOffItem );
2306 
2307 SfxPoolItem* __EXPORT SdrGrafInvertItem::Clone( SfxItemPool* /*pPool*/) const
2308 {
2309 	return new SdrGrafInvertItem( *this );
2310 }
2311 
2312 SfxPoolItem* __EXPORT SdrGrafInvertItem::Create( SvStream& rIn, sal_uInt16 /*nVer*/) const
2313 {
2314 	return new SdrGrafInvertItem( rIn );
2315 }
2316 
2317 //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2318 // SdrGrafTransparenceItem
2319 //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2320 
2321 TYPEINIT1( SdrGrafTransparenceItem, SdrPercentItem );
2322 
2323 SfxPoolItem* __EXPORT SdrGrafTransparenceItem::Clone( SfxItemPool* /*pPool*/) const
2324 {
2325 	return new SdrGrafTransparenceItem( *this );
2326 }
2327 
2328 SfxPoolItem* __EXPORT SdrGrafTransparenceItem::Create( SvStream& rIn, sal_uInt16 /*nVer*/) const
2329 {
2330 	return new SdrGrafTransparenceItem( rIn );
2331 }
2332 
2333 //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2334 // SdrGrafModeItem
2335 //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2336 
2337 TYPEINIT1( SdrGrafModeItem, SfxEnumItem );
2338 
2339 SfxPoolItem* __EXPORT SdrGrafModeItem::Clone(SfxItemPool* /*pPool*/) const
2340 {
2341 	return new SdrGrafModeItem( *this );
2342 }
2343 
2344 SfxPoolItem* __EXPORT SdrGrafModeItem::Create( SvStream& rIn, sal_uInt16 /*nVer*/) const
2345 {
2346 	return new SdrGrafModeItem( rIn );
2347 }
2348 
2349 sal_uInt16 __EXPORT SdrGrafModeItem::GetValueCount() const
2350 {
2351 	return 4;
2352 }
2353 
2354 XubString __EXPORT SdrGrafModeItem::GetValueTextByPos(sal_uInt16 nPos) const
2355 {
2356 	XubString aStr;
2357 
2358 	switch(nPos)
2359 	{
2360 		case 1:
2361 		{
2362 			sal_Char aTextGreys[] = "Greys";
2363 			aStr += UniString(aTextGreys, sizeof(aTextGreys-1));
2364 			break;
2365 		}
2366 		case 2:
2367 		{
2368 			sal_Char aTextBlackWhite[] = "Black/White";
2369 			aStr += UniString(aTextBlackWhite, sizeof(aTextBlackWhite-1));
2370 			break;
2371 		}
2372 		case 3:
2373 		{
2374 			sal_Char aTextWatermark[] = "Watermark";
2375 			aStr += UniString(aTextWatermark, sizeof(aTextWatermark-1));
2376 			break;
2377 		}
2378 		default:
2379 		{
2380 			sal_Char aTextStandard[] = "Standard";
2381 			aStr += UniString(aTextStandard, sizeof(aTextStandard-1));
2382 			break;
2383 		}
2384 	}
2385 
2386 	return aStr;
2387 }
2388 
2389 SfxItemPresentation __EXPORT SdrGrafModeItem::GetPresentation( SfxItemPresentation ePres,
2390 															   SfxMapUnit /*eCoreMetric*/, SfxMapUnit /*ePresMetric*/,
2391                                                                XubString& rText, const IntlWrapper *) const
2392 {
2393 	rText = GetValueTextByPos( sal::static_int_cast< sal_uInt16 >( GetValue() ) );
2394 
2395 	if( ePres == SFX_ITEM_PRESENTATION_COMPLETE )
2396 	{
2397 		String aStr;
2398 
2399 		SdrItemPool::TakeItemName( Which(), aStr );
2400 		aStr += sal_Unicode(' ');
2401 		rText.Insert( aStr, 0 );
2402 	}
2403 
2404 	return ePres;
2405 }
2406 
2407 //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2408 // SdrGrafCropItem
2409 //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2410 
2411 TYPEINIT1( SdrGrafCropItem, SvxGrfCrop );
2412 
2413 SfxPoolItem* SdrGrafCropItem::Clone( SfxItemPool* /*pPool*/) const
2414 {
2415 	return new SdrGrafCropItem( *this );
2416 }
2417 
2418 SfxPoolItem* SdrGrafCropItem::Create( SvStream& rIn, sal_uInt16 nVer ) const
2419 {
2420 	return( ( 0 == nVer ) ? Clone( NULL ) : SvxGrfCrop::Create( rIn, nVer ) );
2421 }
2422 
2423 sal_uInt16 SdrGrafCropItem::GetVersion( sal_uInt16 /*nFileVersion*/) const
2424 {
2425 	// GRFCROP_VERSION_MOVETOSVX is 1
2426 	return GRFCROP_VERSION_MOVETOSVX;
2427 }
2428 
2429 // eof
2430