Bump version to 21.06.18.1
[LibreOffice.git] / sd / source / ui / view / drviewsj.cxx
blob6bbf88338f064d206168f2215f26fcf8da3e8ed4
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
20 #include <DrawViewShell.hxx>
21 #include <com/sun/star/embed/EmbedMisc.hpp>
22 #include <com/sun/star/embed/XEmbeddedObject.hpp>
23 #include <com/sun/star/presentation/ClickAction.hpp>
24 #include <sfx2/objsh.hxx>
25 #include <svx/svxids.hrc>
26 #include <svx/sdmetitm.hxx>
27 #include <editeng/flditem.hxx>
28 #include <svx/svdogrp.hxx>
29 #include <svx/svdograf.hxx>
30 #include <svx/svdoole2.hxx>
31 #include <svx/sdtfsitm.hxx>
32 #include <svx/svdopath.hxx>
33 #include <svx/obj3d.hxx>
34 #include <svx/scene3d.hxx>
36 #include <app.hrc>
38 #include <anminfo.hxx>
39 #include <drawdoc.hxx>
40 #include <drawview.hxx>
42 using namespace com::sun::star;
44 namespace sd {
46 /**
47 * Set state (Enabled/Disabled) of Menu-SfxSlots
49 void DrawViewShell::GetMenuStateSel( SfxItemSet &rSet )
51 // Status of menu entries (Buttons,...)
53 // Single selection
54 const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList();
55 const size_t nMarkCount = rMarkList.GetMarkCount();
57 if ( nMarkCount == 1 )
59 if( SfxItemState::DEFAULT == rSet.GetItemState( SID_BEZIER_EDIT ) ||
60 SfxItemState::DEFAULT == rSet.GetItemState( SID_UNGROUP ) ||
61 SfxItemState::DEFAULT == rSet.GetItemState( SID_ENTER_GROUP ) ||
62 SfxItemState::DEFAULT == rSet.GetItemState( SID_NAME_GROUP ) ||
64 // #i68101#
65 SfxItemState::DEFAULT == rSet.GetItemState( SID_OBJECT_TITLE_DESCRIPTION ) ||
67 SfxItemState::DEFAULT == rSet.GetItemState( SID_ATTR_FILL_STYLE ) ||
68 SfxItemState::DEFAULT == rSet.GetItemState( SID_ATTR_FILL_TRANSPARENCE ) ||
69 SfxItemState::DEFAULT == rSet.GetItemState( SID_ATTR_FILL_FLOATTRANSPARENCE ) ||
70 SfxItemState::DEFAULT == rSet.GetItemState( SID_CHANGEBEZIER ) ||
71 SfxItemState::DEFAULT == rSet.GetItemState( SID_CHANGEPOLYGON ) ||
72 SfxItemState::DEFAULT == rSet.GetItemState( SID_LINEEND_POLYGON ) ||
73 SfxItemState::DEFAULT == rSet.GetItemState( OBJ_TITLETEXT ) ||
74 SfxItemState::DEFAULT == rSet.GetItemState( OBJ_OUTLINETEXT ) ||
75 SfxItemState::DEFAULT == rSet.GetItemState( SID_MEASURE_DLG ) ||
76 SfxItemState::DEFAULT == rSet.GetItemState( SID_CONNECTION_DLG ) ||
77 SfxItemState::DEFAULT == rSet.GetItemState( SID_CONNECTION_NEW_ROUTING ) ||
78 SfxItemState::DEFAULT == rSet.GetItemState( SID_OBJECT_SHEAR ) ||
79 SfxItemState::DEFAULT == rSet.GetItemState( SID_OBJECT_ALIGN_LEFT ) ||
80 SfxItemState::DEFAULT == rSet.GetItemState( SID_OBJECT_ALIGN_CENTER ) ||
81 SfxItemState::DEFAULT == rSet.GetItemState( SID_OBJECT_ALIGN_RIGHT ) ||
82 SfxItemState::DEFAULT == rSet.GetItemState( SID_OBJECT_ALIGN_UP ) ||
83 SfxItemState::DEFAULT == rSet.GetItemState( SID_OBJECT_ALIGN_MIDDLE ) ||
84 SfxItemState::DEFAULT == rSet.GetItemState( SID_OBJECT_ALIGN_DOWN ) ||
85 SfxItemState::DEFAULT == rSet.GetItemState( SID_FRAME_TO_TOP ) ||
86 SfxItemState::DEFAULT == rSet.GetItemState( SID_MOREFRONT ) ||
87 SfxItemState::DEFAULT == rSet.GetItemState( SID_FRAME_UP ) ||
88 SfxItemState::DEFAULT == rSet.GetItemState( SID_MOREBACK ) ||
89 SfxItemState::DEFAULT == rSet.GetItemState( SID_FRAME_DOWN ) ||
90 SfxItemState::DEFAULT == rSet.GetItemState( SID_FRAME_TO_BOTTOM ) ||
91 SfxItemState::DEFAULT == rSet.GetItemState( SID_BEFORE_OBJ ) ||
92 SfxItemState::DEFAULT == rSet.GetItemState( SID_BEHIND_OBJ ) ||
93 SfxItemState::DEFAULT == rSet.GetItemState( SID_REVERSE_ORDER ) ||
94 SfxItemState::DEFAULT == rSet.GetItemState( SID_ORIGINAL_SIZE ) ||
95 SfxItemState::DEFAULT == rSet.GetItemState( SID_SAVE_GRAPHIC ) ||
96 SfxItemState::DEFAULT == rSet.GetItemState( SID_COMPRESS_GRAPHIC ) ||
97 SfxItemState::DEFAULT == rSet.GetItemState( SID_TEXTATTR_DLG ) ||
98 SfxItemState::DEFAULT == rSet.GetItemState( SID_EXECUTE_ANIMATION_EFFECT ))
100 const SdrObject* pObj = rMarkList.GetMark(0)->GetMarkedSdrObj();
101 const SdrGrafObj* pSdrGrafObj = dynamic_cast< const SdrGrafObj* >(pObj);
102 const SdrOle2Obj* pSdrOle2Obj = dynamic_cast< const SdrOle2Obj* >(pObj);
103 const SdAnimationInfo* pAnimationInfo
104 = SdDrawDocument::GetAnimationInfo(rMarkList.GetMark(0)->GetMarkedSdrObj());
105 SdrInventor nInv = pObj->GetObjInventor();
106 sal_uInt16 nId = pObj->GetObjIdentifier();
107 SdrObjTransformInfoRec aInfoRec;
108 pObj->TakeObjInfo( aInfoRec );
110 // don't show original size entry if not possible
111 if(pSdrOle2Obj)
113 if (pSdrOle2Obj->GetObjRef().is() &&
114 (pSdrOle2Obj->GetObjRef()->getStatus( pSdrOle2Obj->GetAspect() ) & embed::EmbedMisc::MS_EMBED_RECOMPOSEONRESIZE) )
115 rSet.DisableItem(SID_ORIGINAL_SIZE);
118 if(!pSdrGrafObj)
120 rSet.DisableItem(SID_SAVE_GRAPHIC);
121 rSet.DisableItem(SID_COMPRESS_GRAPHIC);
124 if (!pAnimationInfo
125 || pAnimationInfo->meClickAction == presentation::ClickAction::ClickAction_NONE
126 // Sound does not work in edit mode
127 || pAnimationInfo->meClickAction == presentation::ClickAction::ClickAction_SOUND
128 // No point in exiting the presentation in edit mode
129 || pAnimationInfo->meClickAction
130 == presentation::ClickAction::ClickAction_STOPPRESENTATION)
132 rSet.DisableItem(SID_EXECUTE_ANIMATION_EFFECT);
135 /* If it is not a group object or 3D object, we disable "enter
136 group". */
137 if( !( ( dynamic_cast< const SdrObjGroup *>( pObj ) != nullptr && nInv == SdrInventor::Default ) ||
138 ( dynamic_cast< const E3dScene* >(pObj) != nullptr ) ) )
140 rSet.DisableItem( SID_ENTER_GROUP );
143 // If it is not a group object, we disable "ungroup"
144 if(dynamic_cast< const SdrObjGroup *>( pObj ) == nullptr || nInv != SdrInventor::Default)
146 rSet.DisableItem(SID_UNGROUP);
149 if( nInv == SdrInventor::Default &&
150 (nId == OBJ_LINE ||
151 nId == OBJ_PLIN ||
152 nId == OBJ_PATHLINE ||
153 nId == OBJ_FREELINE ))
155 //rSet.DisableItem( SID_ATTRIBUTES_AREA ); // remove again!
156 rSet.DisableItem( SID_ATTR_FILL_STYLE );
157 rSet.DisableItem( SID_ATTR_FILL_TRANSPARENCE );
158 rSet.DisableItem( SID_ATTR_FILL_FLOATTRANSPARENCE );
160 if( (dynamic_cast< const SdrPathObj *>( pObj ) == nullptr&& !aInfoRec.bCanConvToPath) || dynamic_cast< const SdrObjGroup *>( pObj ) != nullptr ) // As long as JOE handles it incorrectly!
161 { // JOE: a group object may can be converted into a PathObj
162 rSet.DisableItem( SID_LINEEND_POLYGON );
164 if(nInv == SdrInventor::Default &&
165 (nId == OBJ_PATHFILL || nId == OBJ_PATHLINE || !aInfoRec.bCanConvToPath))
166 rSet.DisableItem( SID_CHANGEBEZIER );
168 if( nInv == SdrInventor::Default &&
169 ( nId == OBJ_POLY || nId == OBJ_PLIN || !aInfoRec.bCanConvToPoly ) &&
170 !GetView()->IsVectorizeAllowed() )
172 rSet.DisableItem( SID_CHANGEPOLYGON );
175 if(nInv == SdrInventor::Default && nId == OBJ_TABLE )
177 rSet.DisableItem( SID_TEXTATTR_DLG );
180 if( nInv != SdrInventor::Default || nId != OBJ_MEASURE )
181 rSet.DisableItem( SID_MEASURE_DLG );
183 if( nInv != SdrInventor::Default || nId != OBJ_EDGE )
184 rSet.DisableItem( SID_CONNECTION_DLG );
185 else
187 bool bDisable = true;
188 SfxItemSet aAttrSet( GetDoc()->GetPool() );
189 GetView()->GetAttributes( aAttrSet );
191 if( aAttrSet.GetItemState( SDRATTR_EDGELINE1DELTA ) >= SfxItemState::DEFAULT &&
192 aAttrSet.GetItemState( SDRATTR_EDGELINE2DELTA ) >= SfxItemState::DEFAULT &&
193 aAttrSet.GetItemState( SDRATTR_EDGELINE3DELTA ) >= SfxItemState::DEFAULT )
195 ::tools::Long nVal1 = aAttrSet.Get( SDRATTR_EDGELINE1DELTA ).GetValue();
196 ::tools::Long nVal2 = aAttrSet.Get( SDRATTR_EDGELINE2DELTA ).GetValue();
197 ::tools::Long nVal3 = aAttrSet.Get( SDRATTR_EDGELINE3DELTA ).GetValue();
199 if( nVal1 != 0 || nVal2 != 0 || nVal3 != 0 )
200 bDisable = false;
203 if( bDisable )
204 rSet.DisableItem( SID_CONNECTION_NEW_ROUTING );
207 if ( nInv == SdrInventor::E3d ||
208 (!mpDrawView->IsConvertToPathObjPossible() &&
209 !mpDrawView->IsShearAllowed() &&
210 !mpDrawView->IsDistortAllowed()) )
212 rSet.DisableItem( SID_OBJECT_SHEAR );
215 if(dynamic_cast< const E3dCompoundObject *>( pObj ) != nullptr)
217 rSet.DisableItem( SID_OBJECT_ALIGN );
218 rSet.DisableItem( SID_OBJECT_ALIGN_LEFT );
219 rSet.DisableItem( SID_OBJECT_ALIGN_CENTER );
220 rSet.DisableItem( SID_OBJECT_ALIGN_RIGHT );
221 rSet.DisableItem( SID_OBJECT_ALIGN_UP );
222 rSet.DisableItem( SID_OBJECT_ALIGN_MIDDLE );
223 rSet.DisableItem( SID_OBJECT_ALIGN_DOWN );
224 rSet.DisableItem( SID_FRAME_TO_TOP );
225 rSet.DisableItem( SID_MOREFRONT );
226 rSet.DisableItem( SID_FRAME_UP );
227 rSet.DisableItem( SID_MOREBACK );
228 rSet.DisableItem( SID_FRAME_DOWN );
229 rSet.DisableItem( SID_FRAME_TO_BOTTOM );
230 rSet.DisableItem( SID_BEFORE_OBJ );
231 rSet.DisableItem( SID_BEHIND_OBJ );
232 rSet.DisableItem( SID_REVERSE_ORDER );
233 rSet.DisableItem( SID_POSITION );
237 if( SfxItemState::DEFAULT == rSet.GetItemState( SID_DISMANTLE ) ||
238 SfxItemState::DEFAULT == rSet.GetItemState( SID_BREAK ) )
240 if ( !mpDrawView->IsDismantlePossible() )
242 rSet.DisableItem( SID_DISMANTLE );
245 if ( !mpDrawView->IsDismantlePossible(true) &&
246 !mpDrawView->IsImportMtfPossible() &&
247 !mpDrawView->IsBreak3DObjPossible() )
249 rSet.DisableItem( SID_BREAK );
252 if( SfxItemState::DEFAULT == rSet.GetItemState( SID_MODIFY_FIELD ) )
254 OutlinerView* pOLV = mpDrawView->GetTextEditOutlinerView();
256 if( pOLV )
258 const SvxFieldItem* pFldItem = pOLV->GetFieldAtSelection();
260 if( !( pFldItem && (nullptr != dynamic_cast< const SvxDateField *>( pFldItem->GetField() ) ||
261 nullptr != dynamic_cast< const SvxAuthorField *>( pFldItem->GetField() ) ||
262 nullptr != dynamic_cast< const SvxExtFileField *>( pFldItem->GetField() ) ||
263 nullptr != dynamic_cast< const SvxExtTimeField *>( pFldItem->GetField() ) ) ) )
265 rSet.DisableItem( SID_MODIFY_FIELD );
268 else
269 rSet.DisableItem( SID_MODIFY_FIELD );
271 if( SfxItemState::DEFAULT == rSet.GetItemState( SID_OUTLINE_TEXT_AUTOFIT ) )
273 const SdrObject* pObj = rMarkList.GetMark(0)->GetMarkedSdrObj();
274 const SdrTextFitToSizeTypeItem* pItem = pObj->GetMergedItemSet().GetItem<SdrTextFitToSizeTypeItem>(SDRATTR_TEXT_FITTOSIZE);
275 const bool bSet = pItem && pItem->GetValue() != drawing::TextFitToSizeType_NONE;
276 rSet.Put(SfxBoolItem(SID_OUTLINE_TEXT_AUTOFIT, bSet));
279 rSet.DisableItem(SID_GROUP);
280 rSet.DisableItem(SID_TEXT_COMBINE);
281 rSet.DisableItem(SID_COMBINE);
282 rSet.DisableItem(SID_DISTRIBUTE_HLEFT);
283 rSet.DisableItem(SID_DISTRIBUTE_HCENTER);
284 rSet.DisableItem(SID_DISTRIBUTE_HDISTANCE);
285 rSet.DisableItem(SID_DISTRIBUTE_HRIGHT);
286 rSet.DisableItem(SID_DISTRIBUTE_VTOP);
287 rSet.DisableItem(SID_DISTRIBUTE_VCENTER);
288 rSet.DisableItem(SID_DISTRIBUTE_VDISTANCE);
289 rSet.DisableItem(SID_DISTRIBUTE_VBOTTOM);
290 rSet.DisableItem(SID_POLY_MERGE);
291 rSet.DisableItem(SID_POLY_SUBSTRACT);
292 rSet.DisableItem(SID_POLY_INTERSECT);
293 rSet.DisableItem(SID_EQUALIZEWIDTH);
294 rSet.DisableItem(SID_EQUALIZEHEIGHT);
295 rSet.DisableItem(SID_CONNECT);
297 // multi-selection
298 else if( nMarkCount > 1 )
300 // distribute dialog for 3+n objects
301 if(nMarkCount <= 2)
303 rSet.DisableItem(SID_DISTRIBUTE_HLEFT);
304 rSet.DisableItem(SID_DISTRIBUTE_HCENTER);
305 rSet.DisableItem(SID_DISTRIBUTE_HDISTANCE);
306 rSet.DisableItem(SID_DISTRIBUTE_HRIGHT);
307 rSet.DisableItem(SID_DISTRIBUTE_VTOP);
308 rSet.DisableItem(SID_DISTRIBUTE_VCENTER);
309 rSet.DisableItem(SID_DISTRIBUTE_VDISTANCE);
310 rSet.DisableItem(SID_DISTRIBUTE_VBOTTOM);
313 rSet.DisableItem( SID_LINEEND_POLYGON );
314 rSet.DisableItem( SID_ENTER_GROUP );
315 // Now names for objects have to be unique
316 rSet.DisableItem( SID_NAME_GROUP );
317 // #i68101#
318 rSet.DisableItem( SID_OBJECT_TITLE_DESCRIPTION );
319 rSet.DisableItem( SID_MODIFY_FIELD );
322 bool bText = false;
323 bool bLine = false;
324 bool bGroup = false;
325 bool bDrawObj = false;
326 bool b3dObj = false;
327 bool bTable = false;
328 bool bMeasureObj = false;
329 bool bEdgeObj = false; // Connector
330 bool bE3dCompoundObject = false;
332 for( size_t i = 0; i < nMarkCount && !bText && i < 50; ++i )
334 SdrObject* pObj = rMarkList.GetMark(i)->GetMarkedSdrObj();
335 SdrInventor nInv = pObj->GetObjInventor();
336 sal_uInt16 nId = pObj->GetObjIdentifier();
338 if (nInv == SdrInventor::Default)
340 switch (nId)
342 case OBJ_TEXT: bText = true; break;
344 case OBJ_LINE: bLine = true; break;
346 case OBJ_EDGE: bEdgeObj = true; break;
348 case OBJ_MEASURE: bMeasureObj = true; break;
350 case OBJ_RECT:
351 case OBJ_CIRC:
352 case OBJ_FREELINE:
353 case OBJ_FREEFILL:
354 case OBJ_PATHFILL:
355 case OBJ_PATHLINE:
356 case OBJ_SECT:
357 case OBJ_CARC:
358 case OBJ_CCUT: bDrawObj = true; break;
360 case OBJ_GRUP: bGroup = true; break;
362 case OBJ_GRAF: break;
364 case OBJ_TABLE: bTable = true; break;
367 else if (nInv == SdrInventor::E3d)
369 if(dynamic_cast< const E3dScene *>( pObj ) != nullptr)
370 b3dObj = true;
371 else if(dynamic_cast< const E3dCompoundObject* >(pObj) != nullptr)
372 bE3dCompoundObject = true;
375 if( bLine && !bText && !bDrawObj &&!b3dObj)
377 rSet.DisableItem( SID_ATTR_FILL_STYLE );
378 rSet.DisableItem( SID_ATTR_FILL_TRANSPARENCE );
379 rSet.DisableItem( SID_ATTR_FILL_FLOATTRANSPARENCE );
381 if( !bEdgeObj )
382 rSet.DisableItem( SID_CONNECTION_DLG );
384 if (b3dObj)
386 rSet.DisableItem( SID_COMBINE );
387 rSet.DisableItem(SID_POLY_MERGE);
388 rSet.DisableItem(SID_POLY_SUBSTRACT);
389 rSet.DisableItem(SID_POLY_INTERSECT);
390 rSet.DisableItem(SID_EQUALIZEWIDTH);
391 rSet.DisableItem(SID_EQUALIZEHEIGHT);
394 if (b3dObj ||
395 (!mpDrawView->IsConvertToPathObjPossible() &&
396 !mpDrawView->IsShearAllowed() &&
397 !mpDrawView->IsDistortAllowed()) )
399 rSet.DisableItem( SID_OBJECT_SHEAR );
402 if( !bGroup )
404 rSet.DisableItem( SID_UNGROUP );
406 if( bTable )
407 rSet.DisableItem( SID_TEXTATTR_DLG );
409 if( !bMeasureObj )
410 rSet.DisableItem( SID_MEASURE_DLG );
412 if(bE3dCompoundObject)
414 rSet.DisableItem( SID_OBJECT_ALIGN );
415 rSet.DisableItem( SID_OBJECT_ALIGN_LEFT );
416 rSet.DisableItem( SID_OBJECT_ALIGN_CENTER );
417 rSet.DisableItem( SID_OBJECT_ALIGN_RIGHT );
418 rSet.DisableItem( SID_OBJECT_ALIGN_UP );
419 rSet.DisableItem( SID_OBJECT_ALIGN_MIDDLE );
420 rSet.DisableItem( SID_OBJECT_ALIGN_DOWN );
421 rSet.DisableItem( SID_FRAME_TO_TOP );
422 rSet.DisableItem( SID_MOREFRONT );
423 rSet.DisableItem( SID_FRAME_UP );
424 rSet.DisableItem( SID_MOREBACK );
425 rSet.DisableItem( SID_FRAME_DOWN );
426 rSet.DisableItem( SID_FRAME_TO_BOTTOM );
427 rSet.DisableItem( SID_BEFORE_OBJ );
428 rSet.DisableItem( SID_BEHIND_OBJ );
429 rSet.DisableItem( SID_REVERSE_ORDER );
430 rSet.DisableItem( SID_POSITION );
434 if ( !mpDrawView->IsDismantlePossible() )
436 rSet.DisableItem( SID_DISMANTLE );
438 if ( !mpDrawView->IsDismantlePossible(true) &&
439 !mpDrawView->IsImportMtfPossible() &&
440 !mpDrawView->IsBreak3DObjPossible() )
442 rSet.DisableItem( SID_BREAK );
444 if ( !mpDrawView->IsCombinePossible() )
446 rSet.DisableItem(SID_COMBINE);
447 rSet.DisableItem(SID_POLY_MERGE);
448 rSet.DisableItem(SID_POLY_SUBSTRACT);
449 rSet.DisableItem(SID_POLY_INTERSECT);
450 rSet.DisableItem(SID_EQUALIZEWIDTH);
451 rSet.DisableItem(SID_EQUALIZEHEIGHT);
453 if ( !mpDrawView->IsCombinePossible(true) )
455 rSet.DisableItem( SID_CONNECT );
457 if ( !mpDrawView->IsGroupPossible() )
459 rSet.DisableItem( SID_GROUP );
461 if ( !mpDrawView->IsUnGroupPossible() )
463 rSet.DisableItem( SID_UNGROUP );
466 // select no object
467 else
469 rSet.DisableItem( SID_ENTER_GROUP );
470 rSet.DisableItem( SID_CUT );
471 rSet.DisableItem( SID_COPY );
472 rSet.DisableItem( SID_DELETE );
473 rSet.DisableItem( SID_ATTR_TRANSFORM );
475 rSet.DisableItem( SID_OBJECT_ALIGN );
476 rSet.DisableItem( SID_OBJECT_ALIGN_LEFT );
477 rSet.DisableItem( SID_OBJECT_ALIGN_CENTER );
478 rSet.DisableItem( SID_OBJECT_ALIGN_RIGHT );
479 rSet.DisableItem( SID_OBJECT_ALIGN_UP );
480 rSet.DisableItem( SID_OBJECT_ALIGN_MIDDLE );
481 rSet.DisableItem( SID_OBJECT_ALIGN_DOWN );
483 rSet.DisableItem( SID_FRAME_TO_TOP );
484 rSet.DisableItem( SID_MOREFRONT );
485 rSet.DisableItem( SID_FRAME_UP );
486 rSet.DisableItem( SID_MOREBACK );
487 rSet.DisableItem( SID_FRAME_DOWN );
488 rSet.DisableItem( SID_FRAME_TO_BOTTOM );
489 rSet.DisableItem( SID_BEFORE_OBJ );
490 rSet.DisableItem( SID_BEHIND_OBJ );
491 rSet.DisableItem( SID_POSITION );
493 rSet.DisableItem( SID_SIZE_OPTIMAL );
494 rSet.DisableItem( SID_LINEEND_POLYGON );
495 rSet.DisableItem( SID_COPYOBJECTS );
496 rSet.DisableItem( SID_HORIZONTAL );
497 rSet.DisableItem( SID_VERTICAL );
498 rSet.DisableItem( SID_FLIP_HORIZONTAL );
499 rSet.DisableItem( SID_FLIP_VERTICAL );
500 rSet.DisableItem( SID_GROUP );
501 rSet.DisableItem( SID_UNGROUP );
502 rSet.DisableItem( SID_NAME_GROUP );
504 // #i68101#
505 rSet.DisableItem( SID_OBJECT_TITLE_DESCRIPTION );
507 rSet.DisableItem( SID_DISMANTLE );
508 rSet.DisableItem( SID_BREAK );
509 rSet.DisableItem( SID_TEXT_COMBINE );
510 rSet.DisableItem( SID_COMBINE );
511 rSet.DisableItem(SID_DISTRIBUTE_DLG);
512 rSet.DisableItem(SID_DISTRIBUTE_HLEFT);
513 rSet.DisableItem(SID_DISTRIBUTE_HCENTER);
514 rSet.DisableItem(SID_DISTRIBUTE_HDISTANCE);
515 rSet.DisableItem(SID_DISTRIBUTE_HRIGHT);
516 rSet.DisableItem(SID_DISTRIBUTE_VTOP);
517 rSet.DisableItem(SID_DISTRIBUTE_VCENTER);
518 rSet.DisableItem(SID_DISTRIBUTE_VDISTANCE);
519 rSet.DisableItem(SID_DISTRIBUTE_VBOTTOM);
520 rSet.DisableItem(SID_POLY_MERGE);
521 rSet.DisableItem(SID_POLY_SUBSTRACT);
522 rSet.DisableItem(SID_POLY_INTERSECT);
523 rSet.DisableItem(SID_EQUALIZEWIDTH);
524 rSet.DisableItem(SID_EQUALIZEHEIGHT);
525 rSet.DisableItem( SID_CONNECT );
526 rSet.DisableItem( SID_ANIMATION_EFFECTS );
527 rSet.DisableItem( SID_EXECUTE_ANIMATION_EFFECT );
528 rSet.DisableItem( SID_MODIFY_FIELD );
529 rSet.DisableItem (SID_OBJECT_SHEAR);
532 if (GetObjectShell()->isContentExtractionLocked())
534 rSet.DisableItem(SID_COPY);
535 rSet.DisableItem(SID_CUT);
537 if(GetObjectShell()->isExportLocked())
539 rSet.DisableItem(SID_SAVE_GRAPHIC);
540 rSet.DisableItem(SID_EXTERNAL_EDIT);
542 if (GetDoc()->getImagePreferredDPI() <= 0)
544 rSet.DisableItem(SID_GRAPHIC_SIZE_CHECK);
548 } // end of namespace sd
550 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */