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