Branch data Line data Source code
1 : : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : : /*************************************************************************
3 : : *
4 : : * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 : : *
6 : : * Copyright 2000, 2010 Oracle and/or its affiliates.
7 : : *
8 : : * OpenOffice.org - a multi-platform office productivity suite
9 : : *
10 : : * This file is part of OpenOffice.org.
11 : : *
12 : : * OpenOffice.org is free software: you can redistribute it and/or modify
13 : : * it under the terms of the GNU Lesser General Public License version 3
14 : : * only, as published by the Free Software Foundation.
15 : : *
16 : : * OpenOffice.org is distributed in the hope that it will be useful,
17 : : * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 : : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 : : * GNU Lesser General Public License version 3 for more details
20 : : * (a copy is included in the LICENSE file that accompanied this code).
21 : : *
22 : : * You should have received a copy of the GNU Lesser General Public License
23 : : * version 3 along with OpenOffice.org. If not, see
24 : : * <http://www.openoffice.org/license.html>
25 : : * for a copy of the LGPLv3 License.
26 : : *
27 : : ************************************************************************/
28 : :
29 : : #include <com/sun/star/lang/XMultiServiceFactory.hpp>
30 : : #include <com/sun/star/lang/Locale.hpp>
31 : : #include <com/sun/star/linguistic2/XThesaurus.hpp>
32 : : #include <svx/fmglob.hxx>
33 : : #include <svx/globl3d.hxx>
34 : : #include <svx/svdouno.hxx>
35 : : #include <editeng/eeitem.hxx>
36 : : #include <editeng/flditem.hxx>
37 : : #include <editeng/outlobj.hxx>
38 : : #include <svx/svxids.hrc>
39 : : #include <svx/svdpagv.hxx>
40 : : #include <svx/clipfmtitem.hxx>
41 : : #include <svx/fmshell.hxx>
42 : : #include <svl/eitem.hxx>
43 : : #include <svl/aeitem.hxx>
44 : : #include <svl/stritem.hxx>
45 : : #include <svl/visitem.hxx>
46 : : #include <svl/whiter.hxx>
47 : : #include <sfx2/dispatch.hxx>
48 : : #include <svx/svdograf.hxx>
49 : : #include <editeng/unolingu.hxx>
50 : : #include <svx/extrusionbar.hxx>
51 : : #include <svx/fontworkbar.hxx>
52 : :
53 : : // #UndoRedo#
54 : : #include <svl/slstitm.hxx>
55 : : #include <sfx2/app.hxx>
56 : : #include <svtools/insdlg.hxx>
57 : : #include <unotools/moduleoptions.hxx>
58 : : #include <svl/languageoptions.hxx>
59 : : #include <comphelper/processfactory.hxx>
60 : : #include <sfx2/request.hxx>
61 : :
62 : :
63 : : #include <svx/pfiledlg.hxx>
64 : : #include <svx/grafctrl.hxx>
65 : : #include <svtools/cliplistener.hxx>
66 : : #include <sfx2/viewfrm.hxx>
67 : :
68 : : #include "app.hrc"
69 : : #include "glob.hrc"
70 : : #include "res_bmp.hrc"
71 : : #include "PresentationViewShell.hxx"
72 : :
73 : : #include "Outliner.hxx"
74 : : #include "drawdoc.hxx"
75 : : #include "sdresid.hxx"
76 : : #include "sdpage.hxx"
77 : : #include "Client.hxx"
78 : : #include "DrawDocShell.hxx"
79 : : #include "zoomlist.hxx"
80 : : #include "slideshow.hxx"
81 : : #include "drawview.hxx"
82 : : #include "ViewShellBase.hxx"
83 : : #include "ViewShellManager.hxx"
84 : : #include "LayerTabBar.hxx"
85 : : #include "fupoor.hxx"
86 : : #include "Window.hxx"
87 : : #include "fuediglu.hxx"
88 : : #include "fubullet.hxx"
89 : : #include "fuformatpaintbrush.hxx"
90 : :
91 : : using ::rtl::OUString;
92 : : using namespace ::com::sun::star;
93 : : using namespace ::com::sun::star::uno;
94 : : using namespace ::com::sun::star::lang;
95 : : using namespace ::com::sun::star::linguistic2;
96 : :
97 : : /** Create a list of clipboard formats that are supported both from the
98 : : current clipboard content and the DrawViewShell.
99 : : The list is stored in a new instance of SvxClipboardFmtItem.
100 : : */
101 : : SAL_WNODEPRECATED_DECLARATIONS_PUSH
102 : 0 : ::std::auto_ptr<SvxClipboardFmtItem> GetSupportedClipboardFormats (
103 : : TransferableDataHelper& rDataHelper)
104 : : {
105 : : ::std::auto_ptr<SvxClipboardFmtItem> pResult (
106 [ # # ][ # # ]: 0 : new SvxClipboardFmtItem(SID_CLIPBOARD_FORMAT_ITEMS));
107 : :
108 [ # # ]: 0 : sal_uInt32 nFormatCount (rDataHelper.GetFormatCount());
109 [ # # ]: 0 : for (sal_uInt32 i=0; i<nFormatCount; i++)
110 : : {
111 [ # # ]: 0 : const SotFormatStringId nTestFormat = rDataHelper.GetFormat(i);
112 : :
113 : : // Check if the current format is the same as one that has already
114 : : // been handled.
115 : 0 : bool bDuplicate (false);
116 [ # # ]: 0 : for (sal_uInt32 j=0; j<i; j++)
117 : : {
118 [ # # ][ # # ]: 0 : if (nTestFormat == rDataHelper.GetFormat(j))
119 : : {
120 : 0 : bDuplicate = true;
121 : 0 : break;
122 : : }
123 : : }
124 : :
125 : : // Look up the format among those that are supported by the
126 : : // DrawViewShell.
127 [ # # ]: 0 : if ( ! bDuplicate)
128 : : {
129 [ # # # ]: 0 : switch (nTestFormat)
130 : : {
131 : : case SOT_FORMATSTR_ID_EMBED_SOURCE:
132 : : {
133 [ # # ]: 0 : String sName;
134 : :
135 [ # # ]: 0 : TransferableObjectDescriptor aDescriptor;
136 [ # # ]: 0 : if (rDataHelper.GetTransferableObjectDescriptor(
137 [ # # ]: 0 : SOT_FORMATSTR_ID_OBJECTDESCRIPTOR, aDescriptor))
138 : : {
139 [ # # ]: 0 : sName = aDescriptor.maTypeName;
140 : : }
141 [ # # ]: 0 : if (sName.Len() > 0)
142 [ # # ][ # # ]: 0 : pResult->AddClipbrdFormat(nTestFormat, sName);
143 : : else
144 [ # # ]: 0 : pResult->AddClipbrdFormat(nTestFormat);
145 : :
146 [ # # ][ # # ]: 0 : break;
147 : : }
148 : :
149 : : case SOT_FORMATSTR_ID_LINK_SOURCE:
150 : : case SOT_FORMATSTR_ID_DRAWING:
151 : : case SOT_FORMATSTR_ID_SVXB:
152 : : case FORMAT_GDIMETAFILE:
153 : : case FORMAT_BITMAP:
154 : : case SOT_FORMATSTR_ID_NETSCAPE_BOOKMARK:
155 : : case FORMAT_STRING:
156 : : case SOT_FORMATSTR_ID_HTML:
157 : : case FORMAT_RTF:
158 : : case SOT_FORMATSTR_ID_EDITENGINE:
159 [ # # ]: 0 : pResult->AddClipbrdFormat(nTestFormat);
160 : 0 : break;
161 : : }
162 : : }
163 : : }
164 : :
165 : : // Check some OLE formats whose names are handled differently.
166 : 0 : SotFormatStringId nFormat (SOT_FORMATSTR_ID_EMBED_SOURCE_OLE);
167 [ # # ]: 0 : bool bHasFormat (rDataHelper.HasFormat(nFormat));
168 [ # # ]: 0 : if ( ! bHasFormat)
169 : : {
170 [ # # ]: 0 : bHasFormat = rDataHelper.HasFormat(nFormat);
171 : : }
172 [ # # ]: 0 : if (bHasFormat)
173 : : {
174 [ # # ]: 0 : String sName;
175 [ # # ]: 0 : String sSource;
176 [ # # ][ # # ]: 0 : if (SvPasteObjectHelper::GetEmbeddedName (rDataHelper, sName, sSource, nFormat))
177 [ # # ][ # # ]: 0 : pResult->AddClipbrdFormat (nFormat, sName);
[ # # ][ # # ]
178 : : }
179 : :
180 : 0 : return pResult;
181 : : }
182 : : SAL_WNODEPRECATED_DECLARATIONS_POP
183 : :
184 : : namespace sd {
185 : :
186 : 0 : IMPL_LINK( DrawViewShell, ClipboardChanged, TransferableDataHelper*, pDataHelper )
187 : : {
188 [ # # ]: 0 : if ( pDataHelper )
189 : : {
190 [ # # ]: 0 : mbPastePossible = ( pDataHelper->GetFormatCount() != 0 );
191 : :
192 : : // Update the list of supported clipboard formats according to the
193 : : // new clipboard content.
194 : : // There are some stack traces that indicate the possibility of the
195 : : // DrawViewShell destructor called during the call to
196 : : // GetSupportedClipboardFormats(). If that really has happened then
197 : : // exit immediately.
198 : : TransferableDataHelper aDataHelper (
199 [ # # ][ # # ]: 0 : TransferableDataHelper::CreateFromSystemClipboard(GetActiveWindow()));
200 : : SAL_WNODEPRECATED_DECLARATIONS_PUSH
201 [ # # ][ # # ]: 0 : ::std::auto_ptr<SvxClipboardFmtItem> pFormats (GetSupportedClipboardFormats(aDataHelper));
202 : : SAL_WNODEPRECATED_DECLARATIONS_POP
203 [ # # ]: 0 : if (mpDrawView == NULL)
204 : 0 : return 0;
205 : 0 : mpCurrentClipboardFormats = pFormats;
206 : :
207 [ # # ]: 0 : SfxBindings& rBindings = GetViewFrame()->GetBindings();
208 [ # # ]: 0 : rBindings.Invalidate( SID_PASTE );
209 [ # # ]: 0 : rBindings.Invalidate( SID_PASTE_SPECIAL );
210 [ # # ][ # # ]: 0 : rBindings.Invalidate( SID_CLIPBOARD_FORMAT_ITEMS );
[ # # ][ # # ]
[ # # ]
211 : : }
212 : 0 : return 0;
213 : : }
214 : :
215 : : /*************************************************************************
216 : : |*
217 : : |* Status (Enabled/Disabled) von Menue-SfxSlots setzen
218 : : |*
219 : : \************************************************************************/
220 : :
221 : 6385 : void DrawViewShell::GetMenuState( SfxItemSet &rSet )
222 : : {
223 [ + - ]: 6385 : if (mpDrawView == NULL)
224 : : {
225 : : // This assertion and return are here to prevent crashes.
226 : : DBG_ASSERT(mpDrawView!=NULL, "Please report this assertion to the Impress team.");
227 : : return;
228 : : }
229 : :
230 [ + - ]: 6385 : ViewShell::GetMenuState(rSet);
231 [ + - ][ + - ]: 6385 : sal_Bool bDisableVerticalText = !SvtLanguageOptions().IsVerticalTextEnabled();
[ + - ]
232 : :
233 [ + - ]: 6385 : if ( bDisableVerticalText )
234 : : {
235 [ + - ]: 6385 : rSet.DisableItem( SID_DRAW_FONTWORK_VERTICAL );
236 [ + - ]: 6385 : rSet.DisableItem( SID_DRAW_CAPTION_VERTICAL );
237 [ + - ]: 6385 : rSet.DisableItem( SID_TEXT_FITTOSIZE_VERTICAL );
238 [ + - ]: 6385 : rSet.DisableItem( SID_DRAW_TEXT_VERTICAL );
239 : : }
240 : :
241 [ + - ]: 6385 : bool bConvertToPathPossible = mpDrawView->IsConvertToPathObjPossible(sal_False);
242 : :
243 : 6385 : const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList();
244 : 6385 : const sal_uLong nMarkCount = rMarkList.GetMarkCount();
245 : :
246 : : //format paintbrush
247 [ + - ]: 6385 : FuFormatPaintBrush::GetMenuState( *this, rSet );
248 : :
249 : : // Stati der SfxChild-Windows (Animator, Fontwork etc.)
250 [ + - ]: 6385 : SetChildWindowState( rSet );
251 : :
252 : : // Images der Toolboxen mappen (nur Zoom)
253 [ + - ]: 6385 : UpdateToolboxImages( rSet, sal_False );
254 : :
255 [ + - ][ + - ]: 6385 : if(HasCurrentFunction())
256 : : {
257 [ + - ][ + - ]: 6385 : sal_uInt16 nSId = GetCurrentFunction()->GetSlotID();
258 : :
259 [ + - ][ + - ]: 6385 : rSet.Put( SfxBoolItem( nSId, sal_True ) );
[ + - ]
260 : :
261 : : // Bewirkt ein uncheck eines simulierten Slots
262 [ + - ]: 6385 : sal_uInt16 nId = GetIdBySubId( nSId );
263 : :
264 : : // Images der Toolboxen mappen
265 [ + - ]: 6385 : UpdateToolboxImages( rSet );
266 : :
267 [ + - ][ + - ]: 6385 : if( nId != SID_ZOOM_TOOLBOX &&
[ + - ][ + - ]
268 : : nSId != SID_DRAWTBX_INSERT &&
269 : : nSId != SID_POSITION &&
270 : : nSId != SID_OBJECT_ALIGN )
271 : : {
272 [ + - ]: 6385 : if( nId != SID_OBJECT_CHOOSE_MODE )
273 [ + - ][ + - ]: 6385 : rSet.Put( TbxImageItem( SID_OBJECT_CHOOSE_MODE, 0 ) );
[ + - ]
274 [ + - ]: 6385 : if( nId != SID_DRAWTBX_TEXT )
275 [ + - ][ + - ]: 6385 : rSet.Put( TbxImageItem( SID_DRAWTBX_TEXT, 0 ) );
[ + - ]
276 [ + - ]: 6385 : if( nId != SID_DRAWTBX_RECTANGLES )
277 [ + - ][ + - ]: 6385 : rSet.Put( TbxImageItem( SID_DRAWTBX_RECTANGLES, 0 ) );
[ + - ]
278 [ + - ]: 6385 : if( nId != SID_DRAWTBX_ELLIPSES )
279 [ + - ][ + - ]: 6385 : rSet.Put( TbxImageItem( SID_DRAWTBX_ELLIPSES, 0 ) );
[ + - ]
280 [ + - ]: 6385 : if( nId != SID_DRAWTBX_LINES )
281 [ + - ][ + - ]: 6385 : rSet.Put( TbxImageItem( SID_DRAWTBX_LINES, 0 ) );
[ + - ]
282 [ + - ]: 6385 : if( nId != SID_DRAWTBX_ARROWS )
283 [ + - ][ + - ]: 6385 : rSet.Put( TbxImageItem( SID_DRAWTBX_ARROWS, 0 ) );
[ + - ]
284 [ + - ]: 6385 : if( nId != SID_DRAWTBX_3D_OBJECTS )
285 [ + - ][ + - ]: 6385 : rSet.Put( TbxImageItem( SID_DRAWTBX_3D_OBJECTS, 0 ) );
[ + - ]
286 [ + - ]: 6385 : if( nId != SID_DRAWTBX_CONNECTORS )
287 [ + - ][ + - ]: 6385 : rSet.Put( TbxImageItem( SID_DRAWTBX_CONNECTORS, 0 ) );
[ + - ]
288 : : }
289 : : }
290 : :
291 : 6385 : SdrPageView* pPageView = mpDrawView->GetSdrPageView();
292 : :
293 [ + - ]: 6385 : GetMenuStateSel(rSet);
294 : :
295 [ + - ][ + + ]: 6385 : if (SFX_ITEM_AVAILABLE == rSet.GetItemState(SID_ASSIGN_LAYOUT))
296 : : {
297 : 29 : bool bDisable = true;
298 [ + - ]: 29 : if( pPageView )
299 : : {
300 [ - + ]: 29 : SdPage* pPage = dynamic_cast< SdPage* >( pPageView->GetPage() );
301 : :
302 [ + - ][ + - ]: 29 : if( pPage && !pPage->IsMasterPage() )
[ + - ]
303 : : {
304 [ + - ][ + - ]: 29 : rSet.Put( SfxUInt32Item( SID_ASSIGN_LAYOUT, static_cast< sal_uInt32 >(pPage->GetAutoLayout()) ) );
[ + - ]
305 : 29 : bDisable = false;
306 : : }
307 : : }
308 : :
309 [ - + ]: 29 : if(bDisable)
310 : : {
311 [ # # ]: 0 : rSet.DisableItem(SID_ASSIGN_LAYOUT);
312 : : }
313 : : }
314 : :
315 [ + - ][ + + ]: 6385 : if (SFX_ITEM_AVAILABLE == rSet.GetItemState(SID_EXPAND_PAGE))
316 : : {
317 : 29 : bool bDisable = true;
318 [ + - ]: 29 : if( pPageView )
319 : : {
320 [ - + ]: 29 : SdPage* pPage = dynamic_cast< SdPage* >( pPageView->GetPage() );
321 : :
322 [ + - ][ + - ]: 29 : if( pPage && (pPage->GetPageKind() == PK_STANDARD) && !pPage->IsMasterPage() )
[ + - ][ + - ]
323 : : {
324 [ + - ]: 29 : SdrObject* pObj = pPage->GetPresObj(PRESOBJ_OUTLINE);
325 : :
326 [ - + ]: 29 : if (pObj!=NULL )
327 : : {
328 [ # # ][ # # ]: 0 : if( !pObj->IsEmptyPresObj() )
329 : : {
330 : 0 : bDisable = false;
331 : : }
332 : : else
333 : : {
334 : : // check if the object is in edit, than its temporarely not empty
335 [ # # ]: 0 : SdrTextObj* pTextObj = dynamic_cast< SdrTextObj* >( pObj );
336 [ # # ]: 0 : if( pTextObj )
337 : : {
338 [ # # ]: 0 : OutlinerParaObject* pParaObj = pTextObj->GetEditOutlinerParaObject();
339 [ # # ]: 0 : if( pParaObj )
340 : : {
341 [ # # ][ # # ]: 0 : delete pParaObj;
342 : 0 : bDisable = false;
343 : : }
344 : : }
345 : : }
346 : : }
347 : : }
348 : : }
349 : :
350 [ + - ]: 29 : if(bDisable)
351 : : {
352 [ + - ]: 29 : rSet.DisableItem(SID_EXPAND_PAGE);
353 : : }
354 : : }
355 : :
356 [ + - ][ - + ]: 6385 : if (SFX_ITEM_AVAILABLE == rSet.GetItemState(SID_SUMMARY_PAGE))
357 : : {
358 : 0 : bool bDisable = true;
359 [ # # ]: 0 : if( pPageView )
360 : : {
361 [ # # ]: 0 : SdPage* pPage = dynamic_cast< SdPage* >( pPageView->GetPage() );
362 : :
363 [ # # ][ # # ]: 0 : if( pPage && (pPage->GetPageKind() == PK_STANDARD) && !pPage->IsMasterPage() )
[ # # ][ # # ]
364 : : {
365 [ # # ]: 0 : SdrObject* pObj = pPage->GetPresObj(PRESOBJ_TITLE);
366 : :
367 [ # # ][ # # ]: 0 : if(pObj && !pObj->IsEmptyPresObj())
[ # # ][ # # ]
368 : : {
369 : 0 : bDisable = false;
370 : : }
371 : : }
372 : : }
373 : :
374 [ # # ]: 0 : if(bDisable)
375 : : {
376 [ # # ]: 0 : rSet.DisableItem(SID_SUMMARY_PAGE);
377 : : }
378 : : }
379 : :
380 [ + - ][ - + ]: 6385 : if (SFX_ITEM_AVAILABLE == rSet.GetItemState(SID_ASSIGN_LAYOUT))
381 : : {
382 : 0 : bool bDisable = true;
383 [ # # ]: 0 : if( pPageView )
384 : : {
385 [ # # ]: 0 : SdPage* pPage = dynamic_cast< SdPage* >( pPageView->GetPage() );
386 : :
387 [ # # ][ # # ]: 0 : if( pPage && !pPage->IsMasterPage() )
[ # # ]
388 : : {
389 [ # # ][ # # ]: 0 : rSet.Put( SfxUInt32Item(SID_ASSIGN_LAYOUT, pPage->GetAutoLayout()) );
[ # # ]
390 : 0 : bDisable = false;
391 : : }
392 : : }
393 : :
394 [ # # ]: 0 : if(bDisable)
395 : : {
396 [ # # ]: 0 : rSet.DisableItem(SID_ASSIGN_LAYOUT);
397 : : }
398 : : }
399 : :
400 : : // Starten der Praesentation moeglich?
401 [ + - ][ + + ]: 12741 : if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_PRESENTATION ) ||
[ - + ][ + + ]
402 [ + - ]: 6356 : SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_REHEARSE_TIMINGS ) )
403 : : {
404 : 29 : sal_Bool bDisable = sal_True;
405 [ + - ][ + - ]: 29 : sal_uInt16 nCount = GetDoc()->GetSdPageCount( PK_STANDARD );
406 : :
407 [ + + ][ + + ]: 58 : for( sal_uInt16 i = 0; i < nCount && bDisable; i++ )
[ + + ]
408 : : {
409 [ + - ][ + - ]: 29 : SdPage* pPage = GetDoc()->GetSdPage(i, PK_STANDARD);
410 : :
411 [ + - ]: 29 : if( !pPage->IsExcluded() )
412 : 29 : bDisable = sal_False;
413 : : }
414 : :
415 [ + - ][ + - ]: 29 : if( bDisable || GetDocSh()->IsPreview())
[ + - ][ - + ]
[ - + ]
416 : : {
417 [ # # ]: 0 : rSet.DisableItem( SID_PRESENTATION );
418 [ # # ]: 0 : rSet.DisableItem( SID_REHEARSE_TIMINGS );
419 : : }
420 : : }
421 : :
422 : : // Klebepunkte
423 [ + - ][ + + ]: 86998 : if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_GLUE_EDITMODE ) ||
[ + - ][ + - ]
[ + - ][ + - ]
[ + - ][ + - ]
[ + - ][ + - ]
[ + - ][ + - ]
[ + - ][ + - ]
[ - + ][ + + ]
424 [ + - ]: 6201 : SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_GLUE_INSERT_POINT ) ||
425 [ + - ]: 6201 : SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_GLUE_PERCENT ) ||
426 [ + - ]: 6201 : SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_GLUE_ESCDIR ) ||
427 [ + - ]: 6201 : SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_GLUE_ESCDIR_LEFT ) ||
428 [ + - ]: 6201 : SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_GLUE_ESCDIR_RIGHT ) ||
429 [ + - ]: 6201 : SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_GLUE_ESCDIR_TOP ) ||
430 [ + - ]: 6201 : SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_GLUE_ESCDIR_BOTTOM ) ||
431 [ + - ]: 6201 : SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_GLUE_HORZALIGN_CENTER ) ||
432 [ + - ]: 6201 : SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_GLUE_HORZALIGN_LEFT ) ||
433 [ + - ]: 6201 : SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_GLUE_HORZALIGN_RIGHT ) ||
434 [ + - ]: 6201 : SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_GLUE_VERTALIGN_CENTER ) ||
435 [ + - ]: 6201 : SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_GLUE_VERTALIGN_TOP ) ||
436 [ + - ]: 6201 : SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_GLUE_VERTALIGN_BOTTOM ) )
437 : : {
438 : : // Prozent
439 [ + - ]: 184 : TRISTATE eState = mpDrawView->IsMarkedGluePointsPercent();
440 [ - + ]: 184 : if( eState == STATE_DONTKNOW )
441 [ # # ]: 0 : rSet.InvalidateItem( SID_GLUE_PERCENT );
442 : : else
443 [ + - ][ + - ]: 184 : rSet.Put( SfxBoolItem( SID_GLUE_PERCENT, eState == STATE_CHECK ) );
[ + - ]
444 : :
445 : : // Bei Prozent hat Alignment keinen Effekt
446 [ + - ]: 184 : if( eState == STATE_CHECK )
447 : : {
448 [ + - ]: 184 : rSet.DisableItem( SID_GLUE_HORZALIGN_CENTER );
449 [ + - ]: 184 : rSet.DisableItem( SID_GLUE_HORZALIGN_LEFT );
450 [ + - ]: 184 : rSet.DisableItem( SID_GLUE_HORZALIGN_RIGHT );
451 [ + - ]: 184 : rSet.DisableItem( SID_GLUE_VERTALIGN_CENTER );
452 [ + - ]: 184 : rSet.DisableItem( SID_GLUE_VERTALIGN_TOP );
453 [ + - ]: 184 : rSet.DisableItem( SID_GLUE_VERTALIGN_BOTTOM );
454 : : }
455 : : else
456 : : {
457 : : // Horizontale Ausrichtung
458 [ # # ]: 0 : sal_uInt16 nHorz = mpDrawView->GetMarkedGluePointsAlign( sal_False );
459 [ # # ][ # # ]: 0 : rSet.Put( SfxBoolItem( SID_GLUE_HORZALIGN_CENTER, nHorz == SDRHORZALIGN_CENTER ) );
[ # # ]
460 [ # # ][ # # ]: 0 : rSet.Put( SfxBoolItem( SID_GLUE_HORZALIGN_LEFT, nHorz == SDRHORZALIGN_LEFT ) );
[ # # ]
461 [ # # ][ # # ]: 0 : rSet.Put( SfxBoolItem( SID_GLUE_HORZALIGN_RIGHT, nHorz == SDRHORZALIGN_RIGHT ) );
[ # # ]
462 : : // Vertikale Ausrichtung
463 [ # # ]: 0 : sal_uInt16 nVert = mpDrawView->GetMarkedGluePointsAlign( sal_True );
464 [ # # ][ # # ]: 0 : rSet.Put( SfxBoolItem( SID_GLUE_VERTALIGN_CENTER, nVert == SDRVERTALIGN_CENTER ) );
[ # # ]
465 [ # # ][ # # ]: 0 : rSet.Put( SfxBoolItem( SID_GLUE_VERTALIGN_TOP, nVert == SDRVERTALIGN_TOP ) );
[ # # ]
466 [ # # ][ # # ]: 0 : rSet.Put( SfxBoolItem( SID_GLUE_VERTALIGN_BOTTOM, nVert == SDRVERTALIGN_BOTTOM ) );
[ # # ]
467 : : }
468 : :
469 : : // Punkt einfuegen
470 [ + - ][ + - ]: 184 : rSet.Put( SfxBoolItem( SID_GLUE_INSERT_POINT, mpDrawView->IsInsGluePointMode() ) );
[ + - ]
471 : :
472 : : // Autrittsrichtung
473 : : // Links
474 [ + - ]: 184 : eState = mpDrawView->IsMarkedGluePointsEscDir( SDRESC_LEFT );
475 [ - + ]: 184 : if( eState == STATE_DONTKNOW )
476 [ # # ]: 0 : rSet.InvalidateItem( SID_GLUE_ESCDIR_LEFT );
477 : : else
478 [ + - ][ + - ]: 184 : rSet.Put( SfxBoolItem( SID_GLUE_ESCDIR_LEFT, eState == STATE_CHECK ) );
[ + - ]
479 : : // Rechts
480 [ + - ]: 184 : eState = mpDrawView->IsMarkedGluePointsEscDir( SDRESC_RIGHT );
481 [ - + ]: 184 : if( eState == STATE_DONTKNOW )
482 [ # # ]: 0 : rSet.InvalidateItem( SID_GLUE_ESCDIR_RIGHT );
483 : : else
484 [ + - ][ + - ]: 184 : rSet.Put( SfxBoolItem( SID_GLUE_ESCDIR_RIGHT, eState == STATE_CHECK ) );
[ + - ]
485 : : // Oben
486 [ + - ]: 184 : eState = mpDrawView->IsMarkedGluePointsEscDir( SDRESC_TOP );
487 [ - + ]: 184 : if( eState == STATE_DONTKNOW )
488 [ # # ]: 0 : rSet.InvalidateItem( SID_GLUE_ESCDIR_TOP );
489 : : else
490 [ + - ][ + - ]: 184 : rSet.Put( SfxBoolItem( SID_GLUE_ESCDIR_TOP, eState == STATE_CHECK ) );
[ + - ]
491 : : // Unten
492 [ + - ]: 184 : eState = mpDrawView->IsMarkedGluePointsEscDir( SDRESC_BOTTOM );
493 [ - + ]: 184 : if( eState == STATE_DONTKNOW )
494 [ # # ]: 0 : rSet.InvalidateItem( SID_GLUE_ESCDIR_BOTTOM );
495 : : else
496 [ + - ][ + - ]: 184 : rSet.Put( SfxBoolItem( SID_GLUE_ESCDIR_BOTTOM, eState == STATE_CHECK ) );
[ + - ]
497 : : }
498 : :
499 [ + - ][ + - ]: 12770 : if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_GRID_FRONT ) ||
[ - + ][ - + ]
500 [ + - ]: 6385 : SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_HELPLINES_FRONT ) )
501 : : {
502 [ # # ][ # # ]: 0 : rSet.Put( SfxBoolItem( SID_GRID_FRONT, mpDrawView->IsGridFront() ) );
[ # # ]
503 [ # # ][ # # ]: 0 : rSet.Put( SfxBoolItem( SID_HELPLINES_FRONT, mpDrawView->IsHlplFront() ) );
[ # # ]
504 : : }
505 : :
506 [ - + ]: 6385 : if (!mpDrawView->IsFrameDragSingles())
507 [ # # ][ # # ]: 0 : rSet.Put(SfxBoolItem(SID_BEZIER_EDIT, sal_True));
[ # # ]
508 : : else
509 [ + - ][ + - ]: 6385 : rSet.Put(SfxBoolItem(SID_BEZIER_EDIT, sal_False));
[ + - ]
510 : :
511 [ + - ][ + - ]: 6385 : if(dynamic_cast<FuEditGluePoints*>( GetCurrentFunction().get()))
[ - + ][ + - ]
[ + - ]
[ - + # # ]
512 [ # # ][ # # ]: 0 : rSet.Put(SfxBoolItem(SID_GLUE_EDITMODE, sal_True));
[ # # ]
513 : : else
514 [ + - ][ + - ]: 6385 : rSet.Put(SfxBoolItem(SID_GLUE_EDITMODE, sal_False));
[ + - ]
515 : :
516 [ + - ][ + + ]: 6385 : if( !mpDrawView->IsMirrorAllowed( sal_True, sal_True ) )
517 : : {
518 [ + - ]: 6382 : rSet.DisableItem( SID_HORIZONTAL );
519 [ + - ]: 6382 : rSet.DisableItem( SID_VERTICAL );
520 : : }
521 : :
522 [ + - ][ + + ]: 6385 : if( !mpDrawView->IsMirrorAllowed() )
523 : : {
524 [ + - ]: 6382 : rSet.DisableItem( SID_OBJECT_MIRROR );
525 : : // rSet.DisableItem( SID_CONVERT_TO_3D_LATHE );
526 : : // rSet.DisableItem( SID_CONVERT_TO_3D_LATHE_FAST );
527 : : }
528 : :
529 : : // interactive transparence control
530 [ + - ][ + + ]: 6385 : if(!mpDrawView->IsTransparenceAllowed())
531 : : {
532 [ + - ]: 6382 : rSet.DisableItem( SID_OBJECT_TRANSPARENCE );
533 : : }
534 : :
535 : : // interactive gradient control
536 [ + - ][ + - ]: 6385 : if(!mpDrawView->IsGradientAllowed())
537 : : {
538 [ + - ]: 6385 : rSet.DisableItem( SID_OBJECT_GRADIENT );
539 : : }
540 : :
541 : : // Morphen ggf. disablen
542 [ + - ][ + - ]: 6385 : if ( !mpDrawView->IsMorphingAllowed() )
543 [ + - ]: 6385 : rSet.DisableItem( SID_POLYGON_MORPHING );
544 : :
545 : : // Vectorize ggf. disablen
546 [ + - ][ + - ]: 6385 : if ( !mpDrawView->IsVectorizeAllowed() )
547 [ + - ]: 6385 : rSet.DisableItem( SID_VECTORIZE );
548 : :
549 [ + - ][ + - ]: 6385 : if( !mpDrawView->IsReverseOrderPossible() )
550 : : {
551 [ + - ]: 6385 : rSet.DisableItem( SID_REVERSE_ORDER );
552 : : }
553 : :
554 [ + + ][ + - ]: 12767 : if ( !bConvertToPathPossible &&
[ + + ]
555 [ + - ]: 6382 : !mpDrawView->IsCrookAllowed( mpDrawView->IsCrookNoContortion() ) )
556 : : {
557 : : // Implizite Wandlung in Kurve nicht moeglich
558 [ + - ]: 6382 : rSet.DisableItem(SID_OBJECT_CROOK_ROTATE);
559 [ + - ]: 6382 : rSet.DisableItem(SID_OBJECT_CROOK_SLANT);
560 [ + - ]: 6382 : rSet.DisableItem(SID_OBJECT_CROOK_STRETCH);
561 : : }
562 : :
563 [ + - ][ + - ]: 6385 : if ( !mpDrawView->IsGroupEntered() )
564 : : {
565 [ + - ]: 6385 : rSet.DisableItem( SID_LEAVE_GROUP );
566 [ + - ][ + - ]: 6385 : rSet.Put( SfxBoolItem( SID_LEAVE_ALL_GROUPS, sal_False ) );
[ + - ]
567 [ + - ]: 6385 : rSet.ClearItem( SID_LEAVE_ALL_GROUPS );
568 [ + - ]: 6385 : rSet.DisableItem( SID_LEAVE_ALL_GROUPS );
569 : : }
570 : : else
571 [ # # ][ # # ]: 0 : rSet.Put( SfxBoolItem( SID_LEAVE_ALL_GROUPS, sal_True ) );
[ # # ]
572 : :
573 [ + - ][ - + ]: 6385 : if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_THESAURUS ) )
574 : : {
575 [ # # ][ # # ]: 0 : if ( !mpDrawView->IsTextEdit() )
576 : : {
577 [ # # ]: 0 : rSet.DisableItem( SID_THESAURUS );
578 : : }
579 : : else
580 : : {
581 [ # # ][ # # ]: 0 : LanguageType eLang = GetDoc()->GetLanguage( EE_CHAR_LANGUAGE );
582 [ # # ]: 0 : Reference< XThesaurus > xThesaurus( LinguMgr::GetThesaurus() );
583 : 0 : Locale aLocale;
584 : :
585 [ # # ]: 0 : SvxLanguageToLocale( aLocale, eLang );
586 : :
587 [ # # ][ # # ]: 0 : if (!xThesaurus.is() || eLang == LANGUAGE_NONE || !xThesaurus->hasLocale(aLocale) )
[ # # ][ # # ]
[ # # ][ # # ]
588 [ # # ]: 0 : rSet.DisableItem( SID_THESAURUS );
589 : : }
590 : : }
591 : :
592 [ + - ][ + - ]: 6385 : if ( !mpDrawView->IsTextEdit() )
593 : : {
594 [ + - ]: 6385 : rSet.DisableItem( SID_THESAURUS );
595 : : }
596 : :
597 [ + - ][ + - ]: 12770 : if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_SELECTALL ) ||
[ - + ][ - + ]
598 [ + - ]: 6385 : SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_SIZE_ALL ) )
599 : : {
600 [ # # ][ # # ]: 0 : if( pPageView && pPageView->GetObjList()->GetObjCount() == 0 )
[ # # ][ # # ]
601 : : {
602 : : // Sollte disabled sein, wenn kein Objekt auf der Zeichenflaeche ist:
603 [ # # ]: 0 : rSet.DisableItem( SID_SELECTALL );
604 [ # # ]: 0 : rSet.DisableItem( SID_SIZE_ALL );
605 : : }
606 : : }
607 : :
608 [ + - ][ + + ]: 6385 : if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_CONTEXT ) )
609 [ + - ][ + - ]: 248 : rSet.Put( SfxStringItem( SID_CONTEXT, mpDrawView->GetStatusText() ) );
[ + - ][ + - ]
[ + - ]
610 : :
611 : : // clipboard (paste)
612 [ + - ][ + + ]: 18667 : if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_PASTE ) ||
[ + - ][ + + ]
[ + + ]
613 [ + - ]: 6141 : SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_PASTE_SPECIAL ) ||
614 [ + - ]: 6141 : SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_CLIPBOARD_FORMAT_ITEMS ) )
615 : : {
616 [ + + ]: 369 : if ( !mpClipEvtLstnr )
617 : : {
618 : : // avoid clipboard initialization for
619 : : // read-only presentation views (workaround for NT4.0
620 : : // clipboard prob...)
621 [ + - ][ + - ]: 125 : if( !ISA(PresentationViewShell) )
[ + - ]
622 : : {
623 : : // create listener
624 [ + - ][ + - ]: 125 : mpClipEvtLstnr = new TransferableClipboardListener( LINK( this, DrawViewShell, ClipboardChanged ) );
625 : 125 : mpClipEvtLstnr->acquire();
626 [ + - ][ + - ]: 125 : mpClipEvtLstnr->AddRemoveListener( GetActiveWindow(), sal_True );
627 : :
628 : : // get initial state
629 [ + - ][ + - ]: 125 : TransferableDataHelper aDataHelper( TransferableDataHelper::CreateFromSystemClipboard( GetActiveWindow() ) );
630 [ + - ][ + - ]: 125 : mbPastePossible = ( aDataHelper.GetFormatCount() != 0 );
631 : : }
632 : : else
633 : 0 : mbPastePossible = sal_False;
634 : : }
635 : :
636 [ + - ]: 369 : if( !mbPastePossible )
637 : : {
638 [ + - ]: 369 : rSet.DisableItem( SID_PASTE );
639 [ + - ]: 369 : rSet.DisableItem( SID_PASTE_SPECIAL );
640 [ + - ]: 369 : rSet.DisableItem( SID_CLIPBOARD_FORMAT_ITEMS );
641 : : }
642 [ # # ][ # # ]: 0 : else if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_CLIPBOARD_FORMAT_ITEMS ) )
643 : : {
644 [ # # ]: 0 : if (mpCurrentClipboardFormats.get() != NULL)
645 [ # # ]: 0 : rSet.Put(*mpCurrentClipboardFormats);
646 : : }
647 : : }
648 : :
649 [ + + ]: 6385 : if ( !bConvertToPathPossible )
650 : : {
651 [ + - ]: 6382 : rSet.DisableItem(SID_CHANGEBEZIER);
652 : : }
653 : :
654 [ + - ]: 6385 : if (mpDrawView == NULL)
655 : : {
656 : : // The mpDrawView was not NULL but is now.
657 : : // The reason for this may be that the DrawViewShell has been
658 : : // destroyed in the mean time.
659 : : // We can only return immediately and hope that the deleted
660 : : // DrawViewShell is not called again.
661 : : DBG_ASSERT(mpDrawView!=NULL, "Please report this assertion to the Impress team.");
662 : : return;
663 : : }
664 : :
665 [ + - ][ + + ]: 6385 : if( !( mpDrawView->IsConvertToPolyObjPossible(sal_False) || mpDrawView->IsVectorizeAllowed() ) )
[ + - ][ + - ]
[ + + ]
666 [ + - ]: 6382 : rSet.DisableItem(SID_CHANGEPOLYGON);
667 : :
668 [ + - ][ + + ]: 6385 : if( !( mpDrawView->IsConvertToPolyObjPossible(sal_False) || mpDrawView->IsConvertToContourPossible() ) )
[ + - ][ + - ]
[ + + ]
669 [ + - ]: 6382 : rSet.DisableItem(SID_CONVERT_TO_CONTOUR);
670 : :
671 [ + - ][ + + ]: 6385 : if ( !mpDrawView->IsConvertTo3DObjPossible() )
672 : : {
673 [ + - ]: 6382 : rSet.DisableItem(SID_CONVERT_TO_3D);
674 [ + - ]: 6382 : rSet.DisableItem(SID_CONVERT_TO_3D_LATHE);
675 [ + - ]: 6382 : rSet.DisableItem(SID_CONVERT_TO_3D_LATHE_FAST);
676 : : }
677 : :
678 [ + - ][ - + ]: 6385 : if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_MANAGE_LINKS ) )
679 : : {
680 [ # # ][ # # ]: 0 : if ( GetDoc()->GetLinkCount() == 0 )
[ # # ]
681 : : {
682 [ # # ]: 0 : rSet.DisableItem(SID_MANAGE_LINKS);
683 : : }
684 : : }
685 : :
686 [ - + ]: 6385 : if (mePageKind == PK_HANDOUT)
687 : : {
688 [ # # ]: 0 : rSet.DisableItem(SID_PRESENTATION_LAYOUT);
689 [ # # ]: 0 : rSet.DisableItem(SID_SELECT_BACKGROUND);
690 : : }
691 : :
692 [ - + ]: 6385 : if (mePageKind == PK_NOTES)
693 : : {
694 [ # # ]: 0 : rSet.DisableItem(SID_INSERTPAGE);
695 [ # # ]: 0 : rSet.DisableItem(SID_RENAMEPAGE);
696 [ # # ]: 0 : rSet.DisableItem(SID_RENAMEPAGE_QUICK);
697 [ # # ]: 0 : rSet.DisableItem(SID_DUPLICATE_PAGE);
698 [ # # ]: 0 : rSet.ClearItem(SID_ANIMATION_OBJECTS);
699 [ # # ]: 0 : rSet.DisableItem(SID_ANIMATION_OBJECTS);
700 [ # # ]: 0 : rSet.DisableItem(SID_ANIMATION_EFFECTS);
701 : :
702 [ # # ]: 0 : if (meEditMode == EM_MASTERPAGE)
703 [ # # ]: 0 : rSet.DisableItem(SID_MODIFYPAGE);
704 : :
705 [ # # ]: 0 : rSet.DisableItem(SID_SELECT_BACKGROUND);
706 [ # # ]: 0 : rSet.DisableItem(SID_INSERTLAYER);
707 [ # # ]: 0 : rSet.DisableItem(SID_LAYERMODE);
708 [ # # ]: 0 : rSet.DisableItem(SID_INSERTFILE);
709 : : }
710 [ - + ]: 6385 : else if (mePageKind == PK_HANDOUT)
711 : : {
712 [ # # ]: 0 : rSet.DisableItem(SID_INSERTPAGE);
713 [ # # ]: 0 : rSet.DisableItem(SID_DUPLICATE_PAGE);
714 [ # # ]: 0 : rSet.ClearItem(SID_ANIMATION_OBJECTS);
715 [ # # ]: 0 : rSet.DisableItem(SID_ANIMATION_OBJECTS);
716 [ # # ]: 0 : rSet.DisableItem(SID_ANIMATION_EFFECTS);
717 [ # # ]: 0 : rSet.DisableItem(SID_RENAMEPAGE);
718 [ # # ]: 0 : rSet.DisableItem(SID_RENAMEPAGE_QUICK);
719 [ # # ]: 0 : rSet.DisableItem(SID_INSERTLAYER);
720 [ # # ]: 0 : rSet.DisableItem(SID_MODIFYLAYER);
721 [ # # ]: 0 : rSet.DisableItem(SID_RENAMELAYER);
722 [ # # ]: 0 : rSet.DisableItem(SID_LAYERMODE);
723 [ # # ]: 0 : rSet.DisableItem(SID_INSERTFILE);
724 [ # # ]: 0 : rSet.DisableItem(SID_PAGEMODE);
725 [ # # ]: 0 : rSet.DisableItem(SID_SELECT_BACKGROUND);
726 : : }
727 : : else
728 : : {
729 [ - + ]: 6385 : if (meEditMode == EM_MASTERPAGE)
730 : : {
731 [ # # ]: 0 : rSet.DisableItem(SID_INSERTPAGE);
732 [ # # ]: 0 : rSet.DisableItem(SID_DUPLICATE_PAGE);
733 [ # # ]: 0 : rSet.DisableItem(SID_MODIFYPAGE);
734 [ # # ]: 0 : rSet.ClearItem(SID_ANIMATION_OBJECTS);
735 [ # # ]: 0 : rSet.DisableItem(SID_ANIMATION_OBJECTS);
736 : : }
737 : :
738 [ + - ][ + - ]: 6385 : rSet.Put (SfxBoolItem (SID_LAYERMODE, IsLayerModeActive()));
[ + - ][ + - ]
739 : : }
740 : :
741 [ + - ][ + + ]: 6385 : if ( ! IsLayerModeActive())
742 : : {
743 [ + - ]: 1348 : rSet.DisableItem( SID_INSERTLAYER );
744 [ + - ]: 1348 : rSet.DisableItem( SID_MODIFYLAYER );
745 [ + - ]: 1348 : rSet.DisableItem( SID_DELETE_LAYER );
746 [ + - ]: 1348 : rSet.DisableItem( SID_RENAMELAYER );
747 : : }
748 : :
749 [ + - ]: 6385 : if (meEditMode == EM_PAGE)
750 : : {
751 : : /**********************************************************************
752 : : * Seiten-Modus
753 : : **********************************************************************/
754 [ + - ][ + - ]: 6385 : rSet.Put(SfxBoolItem(SID_PAGEMODE, sal_True));
[ + - ]
755 [ + - ][ + - ]: 6385 : rSet.Put(SfxBoolItem(SID_MASTERPAGE, sal_False));
[ + - ]
756 [ + - ][ + - ]: 6385 : rSet.Put(SfxBoolItem(SID_SLIDE_MASTERPAGE, sal_False));
[ + - ]
757 [ + - ][ + - ]: 6385 : rSet.Put(SfxBoolItem(SID_NOTES_MASTERPAGE, sal_False));
[ + - ]
758 [ + - ][ + - ]: 6385 : rSet.Put(SfxBoolItem(SID_HANDOUT_MASTERPAGE, sal_False));
[ + - ]
759 : :
760 [ + - ][ - + ]: 12770 : if (mePageKind == PK_STANDARD &&
[ - + ]
761 [ + - ]: 6385 : rSet.GetItemState(SID_TITLE_MASTERPAGE) == SFX_ITEM_AVAILABLE)
762 : : {
763 : : // Gibt es eine Seite mit dem AutoLayout "Titel"?
764 : 0 : sal_Bool bDisable = sal_True;
765 : 0 : sal_uInt16 i = 0;
766 [ # # ][ # # ]: 0 : sal_uInt16 nCount = GetDoc()->GetSdPageCount(PK_STANDARD);
767 : :
768 [ # # ][ # # ]: 0 : while (i < nCount && bDisable)
[ # # ]
769 : : {
770 [ # # ][ # # ]: 0 : SdPage* pPage = GetDoc()->GetSdPage(i, PK_STANDARD);
771 : :
772 [ # # ]: 0 : if (pPage->GetAutoLayout() == AUTOLAYOUT_TITLE)
773 : : {
774 : 0 : bDisable = sal_False;
775 : : }
776 : :
777 : 0 : i++;
778 : : }
779 : :
780 [ # # ]: 0 : if (bDisable)
781 : : {
782 [ # # ]: 0 : rSet.DisableItem(SID_TITLE_MASTERPAGE);
783 : : }
784 : : else
785 : : {
786 [ # # ][ # # ]: 0 : rSet.Put(SfxBoolItem(SID_TITLE_MASTERPAGE, sal_False));
[ # # ]
787 : : }
788 : : }
789 : : else
790 : : {
791 [ + - ]: 6385 : rSet.DisableItem(SID_TITLE_MASTERPAGE);
792 : : }
793 : :
794 [ + - ]: 6385 : rSet.DisableItem (SID_INSERT_MASTER_PAGE);
795 [ + - ]: 6385 : rSet.DisableItem (SID_DELETE_MASTER_PAGE);
796 [ + - ]: 6385 : rSet.DisableItem (SID_RENAME_MASTER_PAGE);
797 [ + - ]: 6385 : rSet.DisableItem (SID_CLOSE_MASTER_VIEW);
798 : : }
799 : : else
800 : : {
801 [ # # ][ # # ]: 0 : rSet.Put(SfxBoolItem(SID_PAGEMODE, sal_False));
[ # # ]
802 [ # # ][ # # ]: 0 : rSet.Put(SfxBoolItem(SID_MASTERPAGE, sal_True));
[ # # ]
803 : :
804 : : /**********************************************************************
805 : : * Hintergrundseiten-Modus
806 : : **********************************************************************/
807 [ # # ]: 0 : if (mePageKind == PK_STANDARD)
808 : : {
809 [ # # ][ # # ]: 0 : rSet.Put(SfxBoolItem(SID_SLIDE_MASTERPAGE, sal_True));
[ # # ]
810 [ # # ][ # # ]: 0 : rSet.Put(SfxBoolItem(SID_NOTES_MASTERPAGE, sal_False));
[ # # ]
811 [ # # ][ # # ]: 0 : rSet.Put(SfxBoolItem(SID_HANDOUT_MASTERPAGE, sal_False));
[ # # ]
812 : :
813 [ # # ][ # # ]: 0 : if (rSet.GetItemState(SID_TITLE_MASTERPAGE) == SFX_ITEM_AVAILABLE)
814 : : {
815 : 0 : sal_Bool bCheck = sal_False;
816 : 0 : sal_Bool bDisable = sal_True;
817 [ # # ]: 0 : if( pPageView )
818 : : {
819 [ # # ]: 0 : SdPage* pMPage = dynamic_cast< SdPage* >( pPageView->GetPage() );
820 : :
821 : 0 : sal_uInt16 i = 0;
822 [ # # ][ # # ]: 0 : sal_uInt16 nCount = GetDoc()->GetSdPageCount(PK_STANDARD);
823 : :
824 : : // Referenziert eine Seite mit dem AutoLayout "Titel" die
825 : : // aktuelle MasterPage?
826 [ # # ][ # # ]: 0 : while (i < nCount && !bCheck && bDisable)
[ # # ][ # # ]
827 : : {
828 [ # # ][ # # ]: 0 : SdPage* pPage = GetDoc()->GetSdPage(i, PK_STANDARD);
829 : :
830 : : // Seite referenziert aktuelle MasterPage
831 [ # # ]: 0 : if (pPage->GetAutoLayout() == AUTOLAYOUT_TITLE)
832 : : {
833 : : // Eine Seite hat das AutoLayout "Titel"
834 : 0 : bDisable = sal_False;
835 : :
836 [ # # ]: 0 : SdPage& rRefMPage = (SdPage&)(pPage->TRG_GetMasterPage());
837 : :
838 [ # # ]: 0 : if(&rRefMPage == pMPage)
839 : : {
840 : : // Eine Seite mit dem AutoLayout "Titel"
841 : : // referenziert die aktuelle MasterPage
842 : 0 : bCheck = sal_True;
843 : : }
844 : : }
845 : :
846 : 0 : i++;
847 : : }
848 : : }
849 : :
850 [ # # ]: 0 : if (bCheck)
851 : : {
852 [ # # ][ # # ]: 0 : rSet.Put(SfxBoolItem(SID_SLIDE_MASTERPAGE, sal_False));
[ # # ]
853 : : }
854 : :
855 [ # # ][ # # ]: 0 : rSet.Put(SfxBoolItem(SID_TITLE_MASTERPAGE, bCheck));
[ # # ]
856 : :
857 [ # # ]: 0 : if (bDisable)
858 : : {
859 [ # # ]: 0 : rSet.ClearItem(SID_TITLE_MASTERPAGE);
860 [ # # ]: 0 : rSet.DisableItem(SID_TITLE_MASTERPAGE);
861 : : }
862 : : }
863 : : }
864 [ # # ]: 0 : else if (mePageKind == PK_NOTES)
865 : : {
866 [ # # ][ # # ]: 0 : rSet.Put(SfxBoolItem(SID_SLIDE_MASTERPAGE, sal_False));
[ # # ]
867 [ # # ]: 0 : rSet.DisableItem(SID_TITLE_MASTERPAGE);
868 [ # # ][ # # ]: 0 : rSet.Put(SfxBoolItem(SID_NOTES_MASTERPAGE, sal_True));
[ # # ]
869 [ # # ][ # # ]: 0 : rSet.Put(SfxBoolItem(SID_HANDOUT_MASTERPAGE, sal_False));
[ # # ]
870 : : }
871 [ # # ]: 0 : else if (mePageKind == PK_HANDOUT)
872 : : {
873 [ # # ][ # # ]: 0 : rSet.Put(SfxBoolItem(SID_SLIDE_MASTERPAGE, sal_False));
[ # # ]
874 [ # # ]: 0 : rSet.DisableItem(SID_TITLE_MASTERPAGE);
875 [ # # ][ # # ]: 0 : rSet.Put(SfxBoolItem(SID_NOTES_MASTERPAGE, sal_False));
[ # # ]
876 [ # # ][ # # ]: 0 : rSet.Put(SfxBoolItem(SID_HANDOUT_MASTERPAGE, sal_True));
[ # # ]
877 : : }
878 : : }
879 : :
880 : : // Status der Lineale setzen
881 [ + - ][ - + ]: 6385 : if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_RULER ) )
882 [ # # ][ # # ]: 0 : rSet.Put( SfxBoolItem( SID_RULER, HasRuler() ) );
[ # # ][ # # ]
883 : :
884 : : // nicht die letzte Seite oder eine Masterpage loeschen
885 [ + - ][ + - ]: 12770 : if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_DELETE_PAGE )
[ - + ][ - + ]
886 [ + - ]: 6385 : || SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_DELETE_MASTER_PAGE ) )
887 : : {
888 [ # # ][ # # ]: 0 : if (maTabControl.GetPageCount() == 1 ||
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
889 : : meEditMode == EM_MASTERPAGE ||
890 : : mePageKind == PK_NOTES ||
891 : : mePageKind == PK_HANDOUT ||
892 [ # # ][ # # ]: 0 : (GetShellType()!=ST_DRAW&&IsLayerModeActive()))
893 : : {
894 [ # # ][ # # ]: 0 : if (rSet.GetItemState(SID_DELETE_PAGE) == SFX_ITEM_AVAILABLE)
895 [ # # ]: 0 : rSet.DisableItem(SID_DELETE_PAGE);
896 [ # # ][ # # ]: 0 : if (rSet.GetItemState(SID_DELETE_MASTER_PAGE)==SFX_ITEM_AVAILABLE)
897 [ # # ]: 0 : rSet.DisableItem(SID_DELETE_MASTER_PAGE);
898 : : }
899 : : }
900 : :
901 : : // darf der aktuelle Layer geloescht werden?
902 [ + - ][ - + ]: 6385 : if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_DELETE_LAYER ) )
903 : : {
904 [ # # ]: 0 : sal_uInt16 nCurrentLayer = GetLayerTabControl()->GetCurPageId();
905 [ # # ][ # # ]: 0 : const String& rName = GetLayerTabControl()->GetPageText(nCurrentLayer);
906 : :
907 [ # # ]: 0 : sal_Bool bDisableIt = !IsLayerModeActive();
908 [ # # ][ # # ]: 0 : bDisableIt |= (rName == String(SdResId(STR_LAYER_LAYOUT)));
[ # # ][ # # ]
909 [ # # ][ # # ]: 0 : bDisableIt |= (rName == String(SdResId(STR_LAYER_BCKGRND)));
[ # # ][ # # ]
910 [ # # ][ # # ]: 0 : bDisableIt |= (rName == String(SdResId(STR_LAYER_BCKGRNDOBJ)));
[ # # ][ # # ]
911 [ # # ][ # # ]: 0 : bDisableIt |= (rName == String(SdResId(STR_LAYER_CONTROLS)));
[ # # ][ # # ]
912 [ # # ][ # # ]: 0 : bDisableIt |= (rName == String(SdResId(STR_LAYER_MEASURELINES)));
[ # # ][ # # ]
913 : :
914 [ # # ]: 0 : if (bDisableIt)
915 : : {
916 [ # # ]: 0 : rSet.DisableItem(SID_DELETE_LAYER);
917 [ # # ]: 0 : rSet.DisableItem(SID_RENAMELAYER);
918 [ # # ]: 0 : }
919 : : }
920 : :
921 [ + - ][ + + ]: 19153 : if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_CUT ) ||
[ + - ][ - + ]
[ + + ]
922 [ + - ]: 6384 : SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_COPY ) ||
923 [ + - ]: 6384 : SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_OUTLINE_BULLET ))
924 : : {
925 : 1 : OutlinerView* pOlView = mpDrawView->GetTextEditOutlinerView();
926 : :
927 : : // Sonderbehandlung f�r SID_OUTLINE_BULLET wenn Objekte
928 : : // mit unterschiedlichen arten von NumBullet Items markiert
929 : : // sind
930 : 1 : sal_Bool bHasOutliner = sal_False;
931 : 1 : sal_Bool bHasOther = sal_False;
932 [ + + ]: 2 : for(sal_uLong nNum = 0; nNum < nMarkCount; nNum++)
933 : : {
934 [ + - ][ + - ]: 1 : SdrObject* pObj = rMarkList.GetMark(nNum)->GetMarkedSdrObj();
935 [ + - ][ + - ]: 1 : if( pObj->GetObjInventor() == SdrInventor )
936 : : {
937 [ + - ][ - + ]: 1 : if( pObj->GetObjIdentifier() == OBJ_OUTLINETEXT )
938 : : {
939 : 0 : bHasOutliner = sal_True;
940 [ # # ]: 0 : if(bHasOther)
941 : 0 : break;
942 : : }
943 : : else
944 : : {
945 : 1 : bHasOther = sal_True;
946 [ - + ]: 1 : if(bHasOutliner)
947 : 0 : break;
948 : : }
949 : : }
950 : : }
951 : :
952 [ + - ][ - + ]: 1 : if( bHasOther && bHasOutliner )
953 [ # # ]: 0 : rSet.DisableItem( SID_OUTLINE_BULLET );
954 : :
955 [ - + ]: 1 : if (pOlView)
956 : : {
957 [ # # ][ # # ]: 0 : if ( pOlView->GetSelected().Len() == 0 )
[ # # ]
958 : : {
959 [ # # ]: 0 : rSet.DisableItem( SID_CUT );
960 [ # # ]: 0 : rSet.DisableItem( SID_COPY );
961 : : }
962 : : }
963 : :
964 : : }
965 : :
966 [ + - ][ + - ]: 6385 : FuBullet::GetSlotState( rSet, this, GetViewFrame() );
967 : :
968 [ + - ][ + - ]: 6385 : if ( GetDocSh()->IsUIActive() )
[ - + ]
969 : : {
970 [ # # ]: 0 : rSet.DisableItem( SID_INSERT_OBJECT );
971 [ # # ]: 0 : rSet.DisableItem( SID_INSERT_PLUGIN );
972 [ # # ]: 0 : rSet.DisableItem( SID_INSERT_SOUND );
973 [ # # ]: 0 : rSet.DisableItem( SID_INSERT_VIDEO );
974 [ # # ]: 0 : rSet.DisableItem( SID_INSERT_FLOATINGFRAME );
975 [ # # ]: 0 : rSet.DisableItem( SID_INSERT_MATH );
976 [ # # ]: 0 : rSet.DisableItem( SID_INSERT_DIAGRAM );
977 [ # # ]: 0 : rSet.DisableItem( SID_ATTR_TABLE );
978 [ # # ]: 0 : rSet.DisableItem( SID_SIZE_REAL );
979 [ # # ]: 0 : rSet.DisableItem( SID_SIZE_OPTIMAL );
980 [ # # ]: 0 : rSet.DisableItem( SID_SIZE_ALL );
981 [ # # ]: 0 : rSet.DisableItem( SID_SIZE_PAGE_WIDTH );
982 [ # # ]: 0 : rSet.DisableItem( SID_SIZE_PAGE );
983 [ # # ]: 0 : rSet.DisableItem( SID_DUPLICATE_PAGE );
984 [ # # ]: 0 : rSet.DisableItem( SID_ZOOM_TOOLBOX );
985 : : }
986 : :
987 : : // Zoom-Stati
988 [ + - ][ + - ]: 19155 : if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_ZOOM_IN ) ||
[ + - ][ - + ]
[ - + ]
989 [ + - ]: 6385 : SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_ZOOM_OUT )||
990 [ + - ]: 6385 : SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_ZOOM_PANNING ) )
991 : : {
992 [ # # ][ # # ]: 0 : if( GetActiveWindow()->GetZoom() <= GetActiveWindow()->GetMinZoom() || GetDocSh()->IsUIActive() )
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ]
993 : : {
994 [ # # ]: 0 : rSet.DisableItem( SID_ZOOM_IN );
995 [ # # ]: 0 : rSet.DisableItem( SID_ZOOM_PANNING );
996 : : }
997 [ # # ][ # # ]: 0 : if( GetActiveWindow()->GetZoom() >= GetActiveWindow()->GetMaxZoom() || GetDocSh()->IsUIActive() )
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ]
998 [ # # ]: 0 : rSet.DisableItem( SID_ZOOM_OUT );
999 : : }
1000 : :
1001 [ + - ][ + - ]: 6385 : if (!mpZoomList->IsNextPossible())
1002 : : {
1003 [ + - ]: 6385 : rSet.DisableItem(SID_ZOOM_NEXT);
1004 : : }
1005 [ + - ][ + + ]: 6385 : if (!mpZoomList->IsPreviousPossible())
1006 : : {
1007 [ + - ]: 138 : rSet.DisableItem(SID_ZOOM_PREV);
1008 : : }
1009 : :
1010 : : // EditText aktiv
1011 [ + - ][ + - ]: 6385 : if (GetViewShellBase().GetViewShellManager()->GetShell(RID_DRAW_TEXT_TOOLBOX) != NULL)
[ + - ][ + - ]
[ - + ]
1012 : : {
1013 : 0 : sal_uInt16 nCurrentSId = SID_ATTR_CHAR;
1014 : :
1015 [ # # ][ # # ]: 0 : if(HasCurrentFunction())
1016 : : {
1017 [ # # ][ # # ]: 0 : nCurrentSId = GetCurrentFunction()->GetSlotID();
1018 : : }
1019 [ # # ][ # # ]: 0 : if( nCurrentSId != SID_TEXT_FITTOSIZE &&
[ # # ]
1020 : : nCurrentSId != SID_TEXT_FITTOSIZE_VERTICAL &&
1021 : : nCurrentSId != SID_ATTR_CHAR_VERTICAL )
1022 : 0 : nCurrentSId = SID_ATTR_CHAR;
1023 : :
1024 [ # # ][ # # ]: 0 : rSet.Put( SfxBoolItem( nCurrentSId, sal_True ) );
[ # # ]
1025 : :
1026 : : // Kurzform von UpdateToolboxImages()
1027 [ # # ][ # # ]: 0 : rSet.Put( TbxImageItem( SID_DRAWTBX_TEXT, nCurrentSId ) );
[ # # ]
1028 : : }
1029 : :
1030 [ + - ][ + - ]: 6385 : if ( GetDocSh()->IsReadOnly() )
[ - + ]
1031 : : {
1032 [ # # ]: 0 : rSet.DisableItem( SID_AUTOSPELL_CHECK );
1033 : : }
1034 : : else
1035 : : {
1036 [ + - ][ + - ]: 6385 : if (GetDoc()->GetOnlineSpell())
1037 : : {
1038 [ + - ][ + - ]: 6385 : rSet.Put(SfxBoolItem(SID_AUTOSPELL_CHECK, sal_True));
[ + - ]
1039 : : }
1040 : : else
1041 : : {
1042 [ # # ][ # # ]: 0 : rSet.Put(SfxBoolItem(SID_AUTOSPELL_CHECK, sal_False));
[ # # ]
1043 : : }
1044 : : }
1045 : :
1046 : 6385 : SdrPageView* pPV = mpDrawView->GetSdrPageView();
1047 [ + - ]: 6385 : String aActiveLayer = mpDrawView->GetActiveLayer();
1048 : :
1049 [ + - ][ + - ]: 19155 : if ( ( aActiveLayer.Len() != 0 && pPV && ( pPV->IsLayerLocked(aActiveLayer) ||
[ + - ][ + - ]
[ + - - + ]
[ - + ]
1050 [ + - ]: 6385 : !pPV->IsLayerVisible(aActiveLayer) ) ) ||
1051 [ + - ]: 6385 : SD_MOD()->GetWaterCan() )
1052 : : {
1053 [ # # ]: 0 : rSet.DisableItem( SID_PASTE );
1054 [ # # ]: 0 : rSet.DisableItem( SID_PASTE_SPECIAL );
1055 [ # # ]: 0 : rSet.DisableItem( SID_CLIPBOARD_FORMAT_ITEMS );
1056 : :
1057 [ # # ]: 0 : rSet.DisableItem( SID_INSERT_FLD_DATE_FIX );
1058 [ # # ]: 0 : rSet.DisableItem( SID_INSERT_FLD_DATE_VAR );
1059 [ # # ]: 0 : rSet.DisableItem( SID_INSERT_FLD_TIME_FIX );
1060 [ # # ]: 0 : rSet.DisableItem( SID_INSERT_FLD_TIME_VAR );
1061 [ # # ]: 0 : rSet.DisableItem( SID_INSERT_FLD_AUTHOR );
1062 [ # # ]: 0 : rSet.DisableItem( SID_INSERT_FLD_PAGE );
1063 [ # # ]: 0 : rSet.DisableItem( SID_INSERT_FLD_PAGES );
1064 [ # # ]: 0 : rSet.DisableItem( SID_INSERT_FLD_FILE );
1065 : :
1066 [ # # ]: 0 : rSet.DisableItem( SID_INSERT_GRAPHIC );
1067 [ # # ]: 0 : rSet.DisableItem( SID_INSERT_AVMEDIA );
1068 [ # # ]: 0 : rSet.DisableItem( SID_INSERT_DIAGRAM );
1069 [ # # ]: 0 : rSet.DisableItem( SID_INSERT_OBJECT );
1070 [ # # ]: 0 : rSet.DisableItem( SID_INSERT_PLUGIN );
1071 [ # # ]: 0 : rSet.DisableItem( SID_INSERT_SOUND );
1072 [ # # ]: 0 : rSet.DisableItem( SID_INSERT_VIDEO );
1073 [ # # ]: 0 : rSet.DisableItem( SID_INSERT_FLOATINGFRAME );
1074 : :
1075 [ # # ]: 0 : rSet.DisableItem( SID_INSERT_MATH );
1076 [ # # ]: 0 : rSet.DisableItem( SID_INSERT_FRAME );
1077 [ # # ]: 0 : rSet.DisableItem( SID_INSERTFILE );
1078 [ # # ]: 0 : rSet.DisableItem( SID_ATTR_TABLE );
1079 [ # # ]: 0 : rSet.DisableItem( SID_COPYOBJECTS );
1080 : :
1081 [ # # ]: 0 : rSet.DisableItem( SID_SCAN );
1082 [ # # ]: 0 : rSet.DisableItem( SID_TWAIN_SELECT );
1083 [ # # ]: 0 : rSet.DisableItem( SID_TWAIN_TRANSFER );
1084 : :
1085 : : // rSet.DisableItem( SID_BEZIER_EDIT );
1086 [ # # ]: 0 : rSet.DisableItem( SID_GLUE_EDITMODE );
1087 [ # # ]: 0 : rSet.DisableItem( SID_OBJECT_ROTATE );
1088 [ # # ]: 0 : rSet.DisableItem( SID_OBJECT_SHEAR );
1089 [ # # ]: 0 : rSet.DisableItem( SID_OBJECT_MIRROR );
1090 [ # # ]: 0 : rSet.DisableItem( SID_OBJECT_CROP );
1091 [ # # ]: 0 : rSet.DisableItem( SID_ATTR_GRAF_CROP );
1092 [ # # ]: 0 : rSet.DisableItem( SID_OBJECT_TRANSPARENCE );
1093 [ # # ]: 0 : rSet.DisableItem( SID_OBJECT_GRADIENT );
1094 [ # # ]: 0 : rSet.DisableItem( SID_OBJECT_CROOK_ROTATE );
1095 [ # # ]: 0 : rSet.DisableItem( SID_OBJECT_CROOK_SLANT );
1096 [ # # ]: 0 : rSet.DisableItem( SID_OBJECT_CROOK_STRETCH );
1097 : :
1098 : : // Alle objekterzeugenden Werkzeuge disablen
1099 [ # # ]: 0 : rSet.ClearItem( SID_ATTR_CHAR );
1100 [ # # ]: 0 : rSet.DisableItem( SID_ATTR_CHAR );
1101 [ # # ]: 0 : rSet.ClearItem( SID_ATTR_CHAR_VERTICAL );
1102 [ # # ]: 0 : rSet.DisableItem( SID_ATTR_CHAR_VERTICAL );
1103 [ # # ]: 0 : rSet.ClearItem(SID_DRAW_LINE);
1104 [ # # ]: 0 : rSet.DisableItem(SID_DRAW_LINE);
1105 [ # # ]: 0 : rSet.ClearItem(SID_DRAW_MEASURELINE);
1106 [ # # ]: 0 : rSet.DisableItem(SID_DRAW_MEASURELINE);
1107 [ # # ]: 0 : rSet.ClearItem(SID_DRAW_XLINE);
1108 [ # # ]: 0 : rSet.DisableItem(SID_DRAW_XLINE);
1109 [ # # ]: 0 : rSet.ClearItem( SID_LINE_ARROW_START );
1110 [ # # ]: 0 : rSet.DisableItem( SID_LINE_ARROW_START );
1111 [ # # ]: 0 : rSet.ClearItem( SID_LINE_ARROW_END );
1112 [ # # ]: 0 : rSet.DisableItem( SID_LINE_ARROW_END );
1113 [ # # ]: 0 : rSet.ClearItem( SID_LINE_ARROWS );
1114 [ # # ]: 0 : rSet.DisableItem( SID_LINE_ARROWS );
1115 [ # # ]: 0 : rSet.ClearItem( SID_LINE_ARROW_CIRCLE );
1116 [ # # ]: 0 : rSet.DisableItem( SID_LINE_ARROW_CIRCLE );
1117 [ # # ]: 0 : rSet.ClearItem( SID_LINE_CIRCLE_ARROW );
1118 [ # # ]: 0 : rSet.DisableItem( SID_LINE_CIRCLE_ARROW );
1119 [ # # ]: 0 : rSet.ClearItem( SID_LINE_ARROW_SQUARE );
1120 [ # # ]: 0 : rSet.DisableItem( SID_LINE_ARROW_SQUARE );
1121 [ # # ]: 0 : rSet.ClearItem( SID_LINE_SQUARE_ARROW );
1122 [ # # ]: 0 : rSet.DisableItem( SID_LINE_SQUARE_ARROW );
1123 : :
1124 [ # # ]: 0 : rSet.ClearItem(SID_DRAW_RECT);
1125 [ # # ]: 0 : rSet.DisableItem(SID_DRAW_RECT);
1126 [ # # ]: 0 : rSet.ClearItem(SID_DRAW_RECT_NOFILL);
1127 [ # # ]: 0 : rSet.DisableItem(SID_DRAW_RECT_NOFILL);
1128 [ # # ]: 0 : rSet.ClearItem(SID_DRAW_RECT_ROUND);
1129 [ # # ]: 0 : rSet.DisableItem(SID_DRAW_RECT_ROUND);
1130 [ # # ]: 0 : rSet.ClearItem(SID_DRAW_RECT_ROUND_NOFILL);
1131 [ # # ]: 0 : rSet.DisableItem(SID_DRAW_RECT_ROUND_NOFILL);
1132 [ # # ]: 0 : rSet.ClearItem(SID_DRAW_SQUARE);
1133 [ # # ]: 0 : rSet.DisableItem(SID_DRAW_SQUARE);
1134 [ # # ]: 0 : rSet.ClearItem(SID_DRAW_SQUARE_NOFILL);
1135 [ # # ]: 0 : rSet.DisableItem(SID_DRAW_SQUARE_NOFILL);
1136 [ # # ]: 0 : rSet.ClearItem(SID_DRAW_SQUARE_ROUND);
1137 [ # # ]: 0 : rSet.DisableItem(SID_DRAW_SQUARE_ROUND);
1138 [ # # ]: 0 : rSet.ClearItem(SID_DRAW_SQUARE_ROUND_NOFILL);
1139 [ # # ]: 0 : rSet.DisableItem(SID_DRAW_SQUARE_ROUND_NOFILL);
1140 [ # # ]: 0 : rSet.ClearItem(SID_DRAW_ELLIPSE);
1141 [ # # ]: 0 : rSet.DisableItem(SID_DRAW_ELLIPSE);
1142 [ # # ]: 0 : rSet.ClearItem(SID_DRAW_ELLIPSE_NOFILL);
1143 [ # # ]: 0 : rSet.DisableItem(SID_DRAW_ELLIPSE_NOFILL);
1144 [ # # ]: 0 : rSet.ClearItem(SID_DRAW_CIRCLE);
1145 [ # # ]: 0 : rSet.DisableItem(SID_DRAW_CIRCLE);
1146 [ # # ]: 0 : rSet.ClearItem(SID_DRAW_CIRCLE_NOFILL);
1147 [ # # ]: 0 : rSet.DisableItem(SID_DRAW_CIRCLE_NOFILL);
1148 [ # # ]: 0 : rSet.ClearItem(SID_DRAW_CAPTION);
1149 [ # # ]: 0 : rSet.DisableItem(SID_DRAW_CAPTION);
1150 [ # # ]: 0 : rSet.ClearItem(SID_DRAW_FONTWORK);
1151 [ # # ]: 0 : rSet.DisableItem(SID_DRAW_FONTWORK);
1152 [ # # ]: 0 : rSet.ClearItem(SID_DRAW_FONTWORK_VERTICAL);
1153 [ # # ]: 0 : rSet.DisableItem(SID_DRAW_FONTWORK_VERTICAL);
1154 [ # # ]: 0 : rSet.ClearItem(SID_DRAW_CAPTION_VERTICAL);
1155 [ # # ]: 0 : rSet.DisableItem(SID_DRAW_CAPTION_VERTICAL);
1156 [ # # ]: 0 : rSet.ClearItem(SID_TEXT_FITTOSIZE);
1157 [ # # ]: 0 : rSet.DisableItem(SID_TEXT_FITTOSIZE);
1158 [ # # ]: 0 : rSet.ClearItem(SID_TEXT_FITTOSIZE_VERTICAL);
1159 [ # # ]: 0 : rSet.DisableItem(SID_TEXT_FITTOSIZE_VERTICAL);
1160 [ # # ]: 0 : rSet.ClearItem(SID_TOOL_CONNECTOR);
1161 [ # # ]: 0 : rSet.DisableItem(SID_TOOL_CONNECTOR);
1162 [ # # ]: 0 : rSet.ClearItem(SID_CONNECTOR_ARROW_START);
1163 [ # # ]: 0 : rSet.DisableItem(SID_CONNECTOR_ARROW_START);
1164 [ # # ]: 0 : rSet.ClearItem(SID_CONNECTOR_ARROW_END);
1165 [ # # ]: 0 : rSet.DisableItem(SID_CONNECTOR_ARROW_END);
1166 [ # # ]: 0 : rSet.ClearItem(SID_CONNECTOR_ARROWS);
1167 [ # # ]: 0 : rSet.DisableItem(SID_CONNECTOR_ARROWS);
1168 [ # # ]: 0 : rSet.ClearItem(SID_CONNECTOR_CIRCLE_START);
1169 [ # # ]: 0 : rSet.DisableItem(SID_CONNECTOR_CIRCLE_START);
1170 [ # # ]: 0 : rSet.ClearItem(SID_CONNECTOR_CIRCLE_END);
1171 [ # # ]: 0 : rSet.DisableItem(SID_CONNECTOR_CIRCLE_END);
1172 [ # # ]: 0 : rSet.ClearItem(SID_CONNECTOR_CIRCLES);
1173 [ # # ]: 0 : rSet.DisableItem(SID_CONNECTOR_CIRCLES);
1174 [ # # ]: 0 : rSet.ClearItem(SID_CONNECTOR_LINE);
1175 [ # # ]: 0 : rSet.DisableItem(SID_CONNECTOR_LINE);
1176 [ # # ]: 0 : rSet.ClearItem(SID_CONNECTOR_LINE_ARROW_START);
1177 [ # # ]: 0 : rSet.DisableItem(SID_CONNECTOR_LINE_ARROW_START);
1178 [ # # ]: 0 : rSet.ClearItem(SID_CONNECTOR_LINE_ARROW_END);
1179 [ # # ]: 0 : rSet.DisableItem(SID_CONNECTOR_LINE_ARROW_END);
1180 [ # # ]: 0 : rSet.ClearItem(SID_CONNECTOR_LINE_ARROWS);
1181 [ # # ]: 0 : rSet.DisableItem(SID_CONNECTOR_LINE_ARROWS);
1182 [ # # ]: 0 : rSet.ClearItem(SID_CONNECTOR_LINE_CIRCLE_START);
1183 [ # # ]: 0 : rSet.DisableItem(SID_CONNECTOR_LINE_CIRCLE_START);
1184 [ # # ]: 0 : rSet.ClearItem(SID_CONNECTOR_LINE_CIRCLE_END);
1185 [ # # ]: 0 : rSet.DisableItem(SID_CONNECTOR_LINE_CIRCLE_END);
1186 [ # # ]: 0 : rSet.ClearItem(SID_CONNECTOR_LINE_CIRCLES);
1187 [ # # ]: 0 : rSet.DisableItem(SID_CONNECTOR_LINE_CIRCLES);
1188 [ # # ]: 0 : rSet.ClearItem(SID_CONNECTOR_CURVE);
1189 [ # # ]: 0 : rSet.DisableItem(SID_CONNECTOR_CURVE);
1190 [ # # ]: 0 : rSet.ClearItem(SID_CONNECTOR_CURVE_ARROW_START);
1191 [ # # ]: 0 : rSet.DisableItem(SID_CONNECTOR_CURVE_ARROW_START);
1192 [ # # ]: 0 : rSet.ClearItem(SID_CONNECTOR_CURVE_ARROW_END);
1193 [ # # ]: 0 : rSet.DisableItem(SID_CONNECTOR_CURVE_ARROW_END);
1194 [ # # ]: 0 : rSet.ClearItem(SID_CONNECTOR_CURVE_ARROWS);
1195 [ # # ]: 0 : rSet.DisableItem(SID_CONNECTOR_CURVE_ARROWS);
1196 [ # # ]: 0 : rSet.ClearItem(SID_CONNECTOR_CURVE_CIRCLE_START);
1197 [ # # ]: 0 : rSet.DisableItem(SID_CONNECTOR_CURVE_CIRCLE_START);
1198 [ # # ]: 0 : rSet.ClearItem(SID_CONNECTOR_CURVE_CIRCLE_END);
1199 [ # # ]: 0 : rSet.DisableItem(SID_CONNECTOR_CURVE_CIRCLE_END);
1200 [ # # ]: 0 : rSet.ClearItem(SID_CONNECTOR_CURVE_CIRCLES);
1201 [ # # ]: 0 : rSet.DisableItem(SID_CONNECTOR_CURVE_CIRCLES);
1202 [ # # ]: 0 : rSet.ClearItem(SID_CONNECTOR_LINES);
1203 [ # # ]: 0 : rSet.DisableItem(SID_CONNECTOR_LINES);
1204 [ # # ]: 0 : rSet.ClearItem(SID_CONNECTOR_LINES_ARROW_START);
1205 [ # # ]: 0 : rSet.DisableItem(SID_CONNECTOR_LINES_ARROW_START);
1206 [ # # ]: 0 : rSet.ClearItem(SID_CONNECTOR_LINES_ARROW_END);
1207 [ # # ]: 0 : rSet.DisableItem(SID_CONNECTOR_LINES_ARROW_END);
1208 [ # # ]: 0 : rSet.ClearItem(SID_CONNECTOR_LINES_ARROWS);
1209 [ # # ]: 0 : rSet.DisableItem(SID_CONNECTOR_LINES_ARROWS);
1210 [ # # ]: 0 : rSet.ClearItem(SID_CONNECTOR_LINES_CIRCLE_START);
1211 [ # # ]: 0 : rSet.DisableItem(SID_CONNECTOR_LINES_CIRCLE_START);
1212 [ # # ]: 0 : rSet.ClearItem(SID_CONNECTOR_LINES_CIRCLE_END);
1213 [ # # ]: 0 : rSet.DisableItem(SID_CONNECTOR_LINES_CIRCLE_END);
1214 [ # # ]: 0 : rSet.ClearItem(SID_CONNECTOR_LINES_CIRCLES);
1215 [ # # ]: 0 : rSet.DisableItem(SID_CONNECTOR_LINES_CIRCLES);
1216 [ # # ]: 0 : rSet.ClearItem(SID_DRAW_ARC);
1217 [ # # ]: 0 : rSet.DisableItem(SID_DRAW_ARC);
1218 [ # # ]: 0 : rSet.ClearItem(SID_DRAW_CIRCLEARC);
1219 [ # # ]: 0 : rSet.DisableItem(SID_DRAW_CIRCLEARC);
1220 [ # # ]: 0 : rSet.ClearItem(SID_DRAW_PIE);
1221 [ # # ]: 0 : rSet.DisableItem(SID_DRAW_PIE);
1222 [ # # ]: 0 : rSet.ClearItem(SID_DRAW_PIE_NOFILL);
1223 [ # # ]: 0 : rSet.DisableItem(SID_DRAW_PIE_NOFILL);
1224 [ # # ]: 0 : rSet.ClearItem(SID_DRAW_CIRCLEPIE);
1225 [ # # ]: 0 : rSet.DisableItem(SID_DRAW_CIRCLEPIE);
1226 [ # # ]: 0 : rSet.ClearItem(SID_DRAW_CIRCLEPIE_NOFILL);
1227 [ # # ]: 0 : rSet.DisableItem(SID_DRAW_CIRCLEPIE_NOFILL);
1228 [ # # ]: 0 : rSet.ClearItem(SID_DRAW_ELLIPSECUT);
1229 [ # # ]: 0 : rSet.DisableItem(SID_DRAW_ELLIPSECUT);
1230 [ # # ]: 0 : rSet.ClearItem(SID_DRAW_ELLIPSECUT_NOFILL);
1231 [ # # ]: 0 : rSet.DisableItem(SID_DRAW_ELLIPSECUT_NOFILL);
1232 [ # # ]: 0 : rSet.ClearItem(SID_DRAW_CIRCLECUT);
1233 [ # # ]: 0 : rSet.DisableItem(SID_DRAW_CIRCLECUT);
1234 [ # # ]: 0 : rSet.ClearItem(SID_DRAW_CIRCLECUT_NOFILL);
1235 [ # # ]: 0 : rSet.DisableItem(SID_DRAW_CIRCLECUT_NOFILL);
1236 [ # # ]: 0 : rSet.ClearItem(SID_DRAW_POLYGON);
1237 [ # # ]: 0 : rSet.DisableItem(SID_DRAW_POLYGON);
1238 [ # # ]: 0 : rSet.ClearItem(SID_DRAW_POLYGON_NOFILL);
1239 [ # # ]: 0 : rSet.DisableItem(SID_DRAW_POLYGON_NOFILL);
1240 [ # # ]: 0 : rSet.ClearItem(SID_DRAW_FREELINE);
1241 [ # # ]: 0 : rSet.DisableItem(SID_DRAW_FREELINE);
1242 [ # # ]: 0 : rSet.ClearItem(SID_DRAW_FREELINE_NOFILL);
1243 [ # # ]: 0 : rSet.DisableItem(SID_DRAW_FREELINE_NOFILL);
1244 [ # # ]: 0 : rSet.ClearItem(SID_DRAW_XPOLYGON);
1245 [ # # ]: 0 : rSet.DisableItem(SID_DRAW_XPOLYGON);
1246 [ # # ]: 0 : rSet.ClearItem(SID_DRAW_XPOLYGON_NOFILL);
1247 [ # # ]: 0 : rSet.DisableItem(SID_DRAW_XPOLYGON_NOFILL);
1248 [ # # ]: 0 : rSet.ClearItem(SID_DRAW_BEZIER_FILL);
1249 [ # # ]: 0 : rSet.DisableItem(SID_DRAW_BEZIER_FILL);
1250 [ # # ]: 0 : rSet.ClearItem(SID_DRAW_BEZIER_NOFILL);
1251 [ # # ]: 0 : rSet.DisableItem(SID_DRAW_BEZIER_NOFILL);
1252 [ # # ]: 0 : rSet.ClearItem(SID_3D_CUBE);
1253 [ # # ]: 0 : rSet.DisableItem(SID_3D_CUBE);
1254 [ # # ]: 0 : rSet.ClearItem(SID_3D_SHELL);
1255 [ # # ]: 0 : rSet.DisableItem(SID_3D_SHELL);
1256 [ # # ]: 0 : rSet.ClearItem(SID_3D_SPHERE);
1257 [ # # ]: 0 : rSet.DisableItem(SID_3D_SPHERE);
1258 [ # # ]: 0 : rSet.ClearItem(SID_3D_HALF_SPHERE);
1259 [ # # ]: 0 : rSet.DisableItem(SID_3D_HALF_SPHERE);
1260 [ # # ]: 0 : rSet.ClearItem(SID_3D_CYLINDER);
1261 [ # # ]: 0 : rSet.DisableItem(SID_3D_CYLINDER);
1262 [ # # ]: 0 : rSet.ClearItem(SID_3D_CONE);
1263 [ # # ]: 0 : rSet.DisableItem(SID_3D_CONE);
1264 [ # # ]: 0 : rSet.ClearItem(SID_3D_TORUS);
1265 [ # # ]: 0 : rSet.DisableItem(SID_3D_TORUS);
1266 [ # # ]: 0 : rSet.ClearItem(SID_3D_PYRAMID);
1267 [ # # ]: 0 : rSet.DisableItem(SID_3D_PYRAMID);
1268 : : }
1269 : :
1270 : : // Sind die Module verfuegbar?
1271 : :
1272 [ + - ][ + - ]: 6385 : if (!SvtModuleOptions().IsCalc())
[ + - ][ - + ]
1273 : : {
1274 : : // remove menu entry if module is not available
1275 [ # # ][ # # ]: 0 : rSet.Put( SfxVisibilityItem( SID_ATTR_TABLE, sal_False ) );
[ # # ]
1276 : : }
1277 [ + - ][ + - ]: 6385 : if (!SvtModuleOptions().IsChart())
[ + - ][ - + ]
1278 : : {
1279 [ # # ]: 0 : rSet.DisableItem( SID_INSERT_DIAGRAM );
1280 : : }
1281 [ + - ][ + - ]: 6385 : if (!SvtModuleOptions().IsMath())
[ + - ][ - + ]
1282 : : {
1283 [ # # ]: 0 : rSet.DisableItem( SID_INSERT_MATH );
1284 : : }
1285 : :
1286 [ + - ][ + - ]: 6385 : rtl::Reference< sd::SlideShow > xSlideshow( SlideShow::GetSlideShow( GetViewShellBase() ) );
1287 [ + - ][ + - ]: 6385 : if( (xSlideshow.is() && xSlideshow->isRunning() && (xSlideshow->getAnimationMode() != ANIMATIONMODE_PREVIEW) ) || GetDocSh()->IsPreview() )
[ - + ][ # # ]
[ # # ][ + - ]
[ + - ][ - + ]
[ - + ]
1288 : : {
1289 : : // Eigene Slots
1290 [ # # ]: 0 : rSet.DisableItem( SID_PRESENTATION );
1291 [ # # ]: 0 : rSet.DisableItem( SID_ZOOM_IN );
1292 [ # # ]: 0 : rSet.DisableItem( SID_ZOOM_OUT );
1293 [ # # ]: 0 : rSet.DisableItem( SID_ZOOM_PANNING );
1294 [ # # ]: 0 : rSet.DisableItem( SID_ZOOM_NEXT );
1295 [ # # ]: 0 : rSet.DisableItem( SID_ZOOM_PREV );
1296 [ # # ]: 0 : rSet.DisableItem( SID_SIZE_REAL );
1297 [ # # ]: 0 : rSet.DisableItem( SID_SIZE_OPTIMAL );
1298 [ # # ]: 0 : rSet.DisableItem( SID_SIZE_ALL );
1299 [ # # ]: 0 : rSet.DisableItem( SID_SIZE_PAGE_WIDTH );
1300 [ # # ]: 0 : rSet.DisableItem( SID_SIZE_PAGE );
1301 [ # # ]: 0 : rSet.DisableItem( SID_INSERTPAGE );
1302 [ # # ]: 0 : rSet.DisableItem( SID_DUPLICATE_PAGE );
1303 [ # # ]: 0 : rSet.DisableItem( SID_MODIFYPAGE );
1304 [ # # ]: 0 : rSet.DisableItem( SID_RENAMEPAGE );
1305 [ # # ]: 0 : rSet.DisableItem( SID_RENAMEPAGE_QUICK );
1306 [ # # ]: 0 : rSet.DisableItem( SID_DELETE_PAGE );
1307 [ # # ]: 0 : rSet.DisableItem( SID_PAGESETUP );
1308 : :
1309 [ # # ][ # # ]: 0 : if( xSlideshow.is() && xSlideshow->isRunning() )
[ # # ][ # # ]
1310 : : {
1311 [ # # ]: 0 : rSet.ClearItem(SID_OBJECT_ALIGN);
1312 [ # # ]: 0 : rSet.ClearItem(SID_ZOOM_TOOLBOX);
1313 [ # # ]: 0 : rSet.ClearItem(SID_OBJECT_CHOOSE_MODE);
1314 [ # # ]: 0 : rSet.ClearItem(SID_DRAWTBX_TEXT);
1315 [ # # ]: 0 : rSet.ClearItem(SID_DRAWTBX_RECTANGLES);
1316 [ # # ]: 0 : rSet.ClearItem(SID_DRAWTBX_ELLIPSES);
1317 [ # # ]: 0 : rSet.ClearItem(SID_DRAWTBX_LINES);
1318 [ # # ]: 0 : rSet.ClearItem(SID_DRAWTBX_ARROWS);
1319 [ # # ]: 0 : rSet.ClearItem(SID_DRAWTBX_3D_OBJECTS);
1320 [ # # ]: 0 : rSet.ClearItem(SID_DRAWTBX_CONNECTORS);
1321 [ # # ]: 0 : rSet.ClearItem(SID_OBJECT_CHOOSE_MODE );
1322 [ # # ]: 0 : rSet.ClearItem(SID_DRAWTBX_INSERT);
1323 [ # # ]: 0 : rSet.ClearItem(SID_INSERTFILE);
1324 [ # # ]: 0 : rSet.ClearItem(SID_OBJECT_ROTATE);
1325 [ # # ]: 0 : rSet.ClearItem(SID_OBJECT_ALIGN);
1326 [ # # ]: 0 : rSet.ClearItem(SID_POSITION);
1327 [ # # ]: 0 : rSet.ClearItem(SID_FM_CONFIG);
1328 [ # # ]: 0 : rSet.ClearItem(SID_ANIMATION_EFFECTS);
1329 [ # # ]: 0 : rSet.ClearItem(SID_ANIMATION_OBJECTS);
1330 [ # # ]: 0 : rSet.ClearItem(SID_3D_WIN);
1331 : :
1332 [ # # ]: 0 : rSet.DisableItem(SID_OBJECT_ALIGN);
1333 [ # # ]: 0 : rSet.DisableItem(SID_ZOOM_TOOLBOX);
1334 [ # # ]: 0 : rSet.DisableItem(SID_OBJECT_CHOOSE_MODE);
1335 [ # # ]: 0 : rSet.DisableItem(SID_DRAWTBX_TEXT);
1336 [ # # ]: 0 : rSet.DisableItem(SID_DRAWTBX_RECTANGLES);
1337 [ # # ]: 0 : rSet.DisableItem(SID_DRAWTBX_ELLIPSES);
1338 [ # # ]: 0 : rSet.DisableItem(SID_DRAWTBX_LINES);
1339 [ # # ]: 0 : rSet.DisableItem(SID_DRAWTBX_ARROWS);
1340 [ # # ]: 0 : rSet.DisableItem(SID_DRAWTBX_3D_OBJECTS);
1341 [ # # ]: 0 : rSet.DisableItem(SID_DRAWTBX_CONNECTORS);
1342 [ # # ]: 0 : rSet.DisableItem(SID_OBJECT_CHOOSE_MODE );
1343 [ # # ]: 0 : rSet.DisableItem(SID_DRAWTBX_INSERT);
1344 [ # # ]: 0 : rSet.DisableItem(SID_INSERTFILE);
1345 [ # # ]: 0 : rSet.DisableItem(SID_OBJECT_ROTATE);
1346 [ # # ]: 0 : rSet.DisableItem(SID_OBJECT_ALIGN);
1347 [ # # ]: 0 : rSet.DisableItem(SID_POSITION);
1348 [ # # ]: 0 : rSet.DisableItem(SID_FM_CONFIG);
1349 [ # # ]: 0 : rSet.DisableItem(SID_ANIMATION_EFFECTS);
1350 [ # # ]: 0 : rSet.DisableItem(SID_ANIMATION_OBJECTS);
1351 [ # # ]: 0 : rSet.DisableItem(SID_3D_WIN);
1352 : : }
1353 : : }
1354 : :
1355 : : ///////////////////////////////////////////////////////////////////////
1356 : : // Menuoption: Change->Convert->To Bitmap, Change->Convert->To Metafile
1357 : : // disable, if there only Bitmap or Metafiles marked
1358 : : // Menuoption: Format->Area, Format->Line
1359 : : // disabled, if the marked objects not able to handle
1360 : : // these attributes
1361 : : //
1362 : :
1363 : 6385 : bool bSingleGraphicSelected = false;
1364 : :
1365 [ + + ]: 6385 : if (!mpDrawView->AreObjectsMarked())
1366 : : {
1367 [ + - ]: 6382 : rSet.DisableItem (SID_CONVERT_TO_METAFILE);
1368 [ + - ]: 6382 : rSet.DisableItem (SID_CONVERT_TO_BITMAP);
1369 : : }
1370 : : else
1371 : : {
1372 : : // get marklist
1373 [ + - ]: 3 : SdrMarkList aMarkList = mpDrawView->GetMarkedObjectList();
1374 : :
1375 : 3 : sal_Bool bFoundBitmap = sal_False;
1376 : 3 : sal_Bool bFoundMetafile = sal_False;
1377 : 3 : sal_Bool bFoundObjNoLine = sal_False;
1378 : 3 : sal_Bool bFoundObjNoArea = sal_False;
1379 : 3 : sal_Bool bFoundNoGraphicObj = sal_False;
1380 : 3 : sal_Bool bFoundAny = sal_False;
1381 : 3 : bool bFoundTable = false;
1382 : :
1383 : : // const int nMarkCount = (int) aMarkList.GetMarkCount();
1384 [ + + ][ + - ]: 6 : for (sal_uLong i=0; i < nMarkCount && !bFoundAny; i++)
[ + + ]
1385 : : {
1386 [ + - ][ + - ]: 3 : SdrObject* pObj= aMarkList.GetMark(i)->GetMarkedSdrObj();
1387 [ + - ]: 3 : sal_uInt16 nId = pObj->GetObjIdentifier();
1388 [ + - ]: 3 : sal_uInt32 nInv = pObj->GetObjInventor();
1389 : :
1390 [ + - ]: 3 : if(nInv == SdrInventor)
1391 : : {
1392 : : // 2D objects
1393 [ - - - - : 3 : switch( nId )
+ ]
1394 : : {
1395 : : case OBJ_PATHLINE :
1396 : : case OBJ_PLIN :
1397 : : case OBJ_LINE:
1398 : : case OBJ_FREELINE :
1399 : : case OBJ_EDGE:
1400 : : case OBJ_CARC :
1401 : 0 : bFoundObjNoArea = sal_True;
1402 : 0 : bFoundNoGraphicObj = sal_True;
1403 : 0 : break;
1404 : : case OBJ_OLE2 :
1405 : 0 : bFoundObjNoLine = sal_True;
1406 : 0 : bFoundObjNoArea = sal_True;
1407 : 0 : bFoundNoGraphicObj = sal_True;
1408 : 0 : break;
1409 : : case OBJ_GRAF :
1410 : 0 : bSingleGraphicSelected = nMarkCount == 1;
1411 [ # # ]: 0 : switch ( ((SdrGrafObj*)pObj)->GetGraphicType() )
[ # # # ]
1412 : : {
1413 : : case GRAPHIC_BITMAP :
1414 : 0 : bFoundBitmap = sal_True;
1415 : 0 : break;
1416 : : case GRAPHIC_GDIMETAFILE :
1417 : 0 : bFoundMetafile = sal_True;
1418 : 0 : break;
1419 : : default:
1420 : 0 : break;
1421 : : }
1422 : 0 : break;
1423 : : case OBJ_TABLE:
1424 : 0 : bFoundTable = true;
1425 : 0 : break;
1426 : : default :
1427 : 3 : bFoundAny = sal_True;
1428 : : }
1429 : : }
1430 [ # # ]: 0 : else if(nInv == E3dInventor)
1431 : : {
1432 : : // 3D objects
1433 : 0 : bFoundAny = sal_True;
1434 : : }
1435 : : }
1436 : :
1437 [ - + ]: 3 : if( bFoundTable )
1438 [ # # ]: 0 : rSet.DisableItem( SID_ATTRIBUTES_LINE );
1439 : :
1440 [ - + ]: 3 : if (!bFoundAny)
1441 : : {
1442 : : // Disable menuitem for area-dialog
1443 [ # # ]: 0 : if( bFoundObjNoArea ) // #i25616#
1444 [ # # ]: 0 : rSet.DisableItem( SID_ATTRIBUTES_AREA );
1445 : :
1446 : : // Disable menuitem for line-dialog
1447 [ # # ]: 0 : if( bFoundObjNoLine )
1448 [ # # ]: 0 : rSet.DisableItem( SID_ATTRIBUTES_LINE );
1449 : :
1450 [ # # ][ # # ]: 0 : if( bFoundBitmap && !bFoundMetafile && !bFoundNoGraphicObj ) // only Bitmaps marked
[ # # ]
1451 [ # # ]: 0 : rSet.DisableItem( SID_CONVERT_TO_BITMAP );
1452 [ # # ][ # # ]: 0 : else if( !bFoundBitmap && bFoundMetafile && !bFoundNoGraphicObj ) // only Metafiles marked
[ # # ]
1453 [ # # ]: 0 : rSet.DisableItem( SID_CONVERT_TO_METAFILE );
1454 [ # # ][ # # ]: 0 : else if( !bFoundBitmap && !bFoundMetafile && !bFoundNoGraphicObj ) // nothing to do
[ # # ]
1455 : : {
1456 [ # # ]: 0 : rSet.DisableItem( SID_CONVERT_TO_BITMAP );
1457 [ # # ]: 0 : rSet.DisableItem( SID_CONVERT_TO_METAFILE );
1458 : : }
1459 [ + - ]: 3 : }
1460 : : }
1461 : :
1462 [ + - ]: 6385 : if( !bSingleGraphicSelected )
1463 : : {
1464 [ + - ]: 6385 : rSet.DisableItem (SID_OBJECT_CROP);
1465 [ + - ]: 6385 : rSet.DisableItem (SID_ATTR_GRAF_CROP);
1466 : : }
1467 : :
1468 : : ///////////////////////////////////////////////////////////////////////
1469 : : // Menuoption: Edit->Hyperlink
1470 : : // Disable, if there is no hyperlink
1471 : : //
1472 : 6385 : sal_Bool bDisableEditHyperlink = sal_True;
1473 [ + + ][ + - ]: 6385 : if( mpDrawView->AreObjectsMarked() && ( mpDrawView->GetMarkedObjectList().GetMarkCount() == 1 ) )
[ + + ]
1474 : : {
1475 [ + - ][ - + ]: 3 : if( mpDrawView->IsTextEdit() )
1476 : : {
1477 : 0 : OutlinerView* pOLV = mpDrawView->GetTextEditOutlinerView();
1478 [ # # ]: 0 : if (pOLV)
1479 : : {
1480 [ # # ]: 0 : const SvxFieldItem* pFieldItem = pOLV->GetFieldAtSelection();
1481 [ # # ]: 0 : if (pFieldItem)
1482 : : {
1483 [ # # ]: 0 : ESelection aSel = pOLV->GetSelection();
1484 [ # # ]: 0 : if ( abs( aSel.nEndPos - aSel.nStartPos ) == 1 )
1485 : : {
1486 : 0 : const SvxFieldData* pField = pFieldItem->GetField();
1487 [ # # ][ # # ]: 0 : if ( pField->ISA(SvxURLField) )
[ # # ]
1488 : 0 : bDisableEditHyperlink = sal_False;
1489 : : }
1490 : : }
1491 : : }
1492 : : }
1493 : : else
1494 : : {
1495 [ + - ][ + - ]: 3 : SdrUnoObj* pUnoCtrl = PTR_CAST(SdrUnoObj, mpDrawView->GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj());
[ + - ][ + - ]
[ + - ][ + - ]
[ + - ][ - + ]
[ # # ][ # # ]
1496 : :
1497 [ - + ][ # # ]: 3 : if ( pUnoCtrl && FmFormInventor == pUnoCtrl->GetObjInventor() )
[ # # ][ - + ]
1498 : : {
1499 [ # # ]: 0 : uno::Reference< awt::XControlModel > xControlModel( pUnoCtrl->GetUnoControlModel() );
1500 [ # # ]: 0 : if( xControlModel.is() )
1501 : : {
1502 [ # # ]: 0 : uno::Reference< beans::XPropertySet > xPropSet( xControlModel, uno::UNO_QUERY );
1503 [ # # ]: 0 : if( xPropSet.is() )
1504 : : {
1505 [ # # ][ # # ]: 0 : uno::Reference< beans::XPropertySetInfo > xPropInfo( xPropSet->getPropertySetInfo() );
1506 [ # # ][ # # ]: 0 : if( xPropInfo.is() && xPropInfo->hasPropertyByName( "TargetURL") )
[ # # ][ # # ]
[ # # ][ # # ]
[ # # # #
# # ]
1507 : : {
1508 : 0 : bDisableEditHyperlink = sal_False;
1509 : 0 : }
1510 : 0 : }
1511 : 0 : }
1512 : : }
1513 : : }
1514 : : }
1515 : :
1516 : : //highlight selected custom shape
1517 : : {
1518 : 6385 : sal_uInt16 nCurrentSId = 0;
1519 [ + - ][ + - ]: 6385 : if(HasCurrentFunction())
1520 [ + - ][ + - ]: 6385 : nCurrentSId = GetCurrentFunction()->GetSlotID();
1521 : :
1522 [ + - ][ + + ]: 6385 : if ( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_DRAWTBX_CS_BASIC ) )
1523 [ + - ][ + - ]: 596 : rSet.Put(SfxBoolItem(SID_DRAWTBX_CS_BASIC, SID_DRAWTBX_CS_BASIC == nCurrentSId ));
[ + - ]
1524 [ + - ][ + + ]: 6385 : if ( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_DRAWTBX_CS_SYMBOL ) )
1525 [ + - ][ + - ]: 184 : rSet.Put(SfxBoolItem(SID_DRAWTBX_CS_SYMBOL, SID_DRAWTBX_CS_SYMBOL == nCurrentSId ));
[ + - ]
1526 [ + - ][ + + ]: 6385 : if ( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_DRAWTBX_CS_ARROW ) )
1527 [ + - ][ + - ]: 184 : rSet.Put(SfxBoolItem(SID_DRAWTBX_CS_ARROW, SID_DRAWTBX_CS_ARROW == nCurrentSId ));
[ + - ]
1528 [ + - ][ + + ]: 6385 : if ( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_DRAWTBX_CS_FLOWCHART ) )
1529 [ + - ][ + - ]: 184 : rSet.Put(SfxBoolItem(SID_DRAWTBX_CS_FLOWCHART, SID_DRAWTBX_CS_FLOWCHART == nCurrentSId ));
[ + - ]
1530 [ + - ][ + + ]: 6385 : if ( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_DRAWTBX_CS_CALLOUT ) )
1531 [ + - ][ + - ]: 184 : rSet.Put(SfxBoolItem(SID_DRAWTBX_CS_CALLOUT,SID_DRAWTBX_CS_CALLOUT == nCurrentSId ));
[ + - ]
1532 [ + - ][ + + ]: 6385 : if ( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_DRAWTBX_CS_STAR ) )
1533 [ + - ][ + - ]: 184 : rSet.Put(SfxBoolItem(SID_DRAWTBX_CS_STAR, SID_DRAWTBX_CS_STAR == nCurrentSId ));
[ + - ]
1534 : : }
1535 : :
1536 [ - + ][ # # ]: 6385 : if ( bDisableEditHyperlink || GetDocSh()->IsReadOnly() )
[ # # ][ # # ]
[ + - ]
1537 [ + - ]: 6385 : rSet.DisableItem( SID_EDIT_HYPERLINK );
1538 : :
1539 [ + - ]: 6385 : if ( bDisableEditHyperlink )
1540 [ + - ]: 6385 : rSet.DisableItem( SID_OPEN_HYPERLINK );
1541 : :
1542 : : #if defined WNT || defined UNX
1543 [ - + ]: 6385 : if( !mxScannerManager.is() )
1544 : : {
1545 [ # # ]: 0 : rSet.DisableItem( SID_TWAIN_SELECT );
1546 [ # # ]: 0 : rSet.DisableItem( SID_TWAIN_TRANSFER );
1547 : : }
1548 : : #endif
1549 : :
1550 : : // Set the state of two entries in the 'Slide' context sub-menu
1551 : : // concerning the visibility of master page background and master page
1552 : : // shapes.
1553 [ + - ][ + - ]: 12770 : if (rSet.GetItemState(SID_DISPLAY_MASTER_BACKGROUND) == SFX_ITEM_AVAILABLE
[ - + ][ - + ]
1554 [ + - ]: 6385 : || rSet.GetItemState(SID_DISPLAY_MASTER_OBJECTS) == SFX_ITEM_AVAILABLE)
1555 : : {
1556 [ # # ]: 0 : SdPage* pPage = GetActualPage();
1557 [ # # ][ # # ]: 0 : if (pPage != NULL
[ # # ]
1558 [ # # ]: 0 : && GetDoc() != NULL)
1559 : : {
1560 [ # # ]: 0 : SetOfByte aVisibleLayers = pPage->TRG_GetMasterPageVisibleLayers();
1561 [ # # ]: 0 : SdrLayerAdmin& rLayerAdmin = GetDoc()->GetLayerAdmin();
1562 [ # # ][ # # ]: 0 : sal_uInt8 aBackgroundId = rLayerAdmin.GetLayerID(String(SdResId(STR_LAYER_BCKGRND)), sal_False);
[ # # ][ # # ]
1563 [ # # ][ # # ]: 0 : sal_uInt8 aObjectId = rLayerAdmin.GetLayerID(String(SdResId(STR_LAYER_BCKGRNDOBJ)), sal_False);
[ # # ][ # # ]
1564 : : rSet.Put(SfxBoolItem(SID_DISPLAY_MASTER_BACKGROUND,
1565 [ # # ][ # # ]: 0 : aVisibleLayers.IsSet(aBackgroundId)));
[ # # ]
1566 : : rSet.Put(SfxBoolItem(SID_DISPLAY_MASTER_OBJECTS,
1567 [ # # ][ # # ]: 0 : aVisibleLayers.IsSet(aObjectId)));
[ # # ]
1568 : : }
1569 : : }
1570 : :
1571 [ + - ][ + - ]: 6385 : GetModeSwitchingMenuState (rSet);
1572 : : }
1573 : :
1574 : 6385 : void DrawViewShell::GetModeSwitchingMenuState (SfxItemSet &rSet)
1575 : : {
1576 : : //draview
1577 [ + - ]: 6385 : rSet.Put(SfxBoolItem(SID_DIAMODE, sal_False));
1578 [ + - ]: 6385 : rSet.Put(SfxBoolItem(SID_OUTLINEMODE, sal_False));
1579 [ - + ]: 6385 : if (mePageKind == PK_NOTES)
1580 : : {
1581 [ # # ]: 0 : rSet.Put(SfxBoolItem(SID_DRAWINGMODE, sal_False));
1582 [ # # ]: 0 : rSet.Put(SfxBoolItem(SID_NOTESMODE, sal_True));
1583 [ # # ]: 0 : rSet.Put(SfxBoolItem(SID_HANDOUTMODE, sal_False));
1584 : : }
1585 [ - + ]: 6385 : else if (mePageKind == PK_HANDOUT)
1586 : : {
1587 [ # # ]: 0 : rSet.Put(SfxBoolItem(SID_DRAWINGMODE, sal_False));
1588 [ # # ]: 0 : rSet.Put(SfxBoolItem(SID_NOTESMODE, sal_False));
1589 [ # # ]: 0 : rSet.Put(SfxBoolItem(SID_HANDOUTMODE, sal_True));
1590 : : }
1591 : : else
1592 : : {
1593 [ + - ]: 6385 : rSet.Put(SfxBoolItem(SID_DRAWINGMODE, sal_True));
1594 [ + - ]: 6385 : rSet.Put(SfxBoolItem(SID_NOTESMODE, sal_False));
1595 [ + - ]: 6385 : rSet.Put(SfxBoolItem(SID_HANDOUTMODE, sal_False));
1596 : : }
1597 : :
1598 : : // Removed [GetDocSh()->GetCurrentFunction() ||] from the following
1599 : : // clause because the current function of the docshell can only be
1600 : : // search and replace or spell checking and in that case switching the
1601 : : // view mode is allowed.
1602 : 6385 : const bool bIsRunning = SlideShow::IsRunning(GetViewShellBase());
1603 : :
1604 [ - + ][ - + ]: 6385 : if (GetViewFrame()->GetFrame().IsInPlace() || bIsRunning)
[ + - ]
1605 : : {
1606 [ # # ]: 0 : if ( !GetViewFrame()->GetFrame().IsInPlace() )
1607 : : {
1608 : 0 : rSet.ClearItem( SID_DRAWINGMODE );
1609 : 0 : rSet.DisableItem( SID_DRAWINGMODE );
1610 : : }
1611 : :
1612 : 0 : rSet.ClearItem( SID_NOTESMODE );
1613 : 0 : rSet.DisableItem( SID_NOTESMODE );
1614 : :
1615 : 0 : rSet.ClearItem( SID_HANDOUTMODE );
1616 : 0 : rSet.DisableItem( SID_HANDOUTMODE );
1617 : :
1618 : 0 : rSet.ClearItem( SID_OUTLINEMODE );
1619 : 0 : rSet.DisableItem( SID_OUTLINEMODE );
1620 : :
1621 : 0 : rSet.ClearItem( SID_DIAMODE );
1622 : 0 : rSet.DisableItem( SID_DIAMODE );
1623 : : }
1624 : :
1625 [ - + ]: 6385 : if (GetDocSh()->GetCreateMode() == SFX_CREATE_MODE_EMBEDDED)
1626 : : {
1627 : : // Outplace-Edit: Kein Umschalten erlauben
1628 : 0 : rSet.ClearItem( SID_OUTLINEMODE );
1629 : 0 : rSet.DisableItem( SID_OUTLINEMODE );
1630 : :
1631 : 0 : rSet.ClearItem( SID_DIAMODE );
1632 : 0 : rSet.DisableItem( SID_DIAMODE );
1633 : :
1634 : 0 : rSet.ClearItem( SID_NOTESMODE );
1635 : 0 : rSet.DisableItem( SID_NOTESMODE );
1636 : :
1637 : 0 : rSet.ClearItem( SID_HANDOUTMODE );
1638 : 0 : rSet.DisableItem( SID_HANDOUTMODE );
1639 : : }
1640 : :
1641 : 6385 : svx::ExtrusionBar::getState( mpDrawView, rSet );
1642 : 6385 : svx::FontworkBar::getState( mpDrawView, rSet );
1643 : 6385 : }
1644 : :
1645 : :
1646 : :
1647 : 0 : void DrawViewShell::GetState (SfxItemSet& rSet)
1648 : : {
1649 : : // Iterate over all requested items in the set.
1650 [ # # ]: 0 : SfxWhichIter aIter( rSet );
1651 [ # # ]: 0 : sal_uInt16 nWhich = aIter.FirstWhich();
1652 [ # # ]: 0 : while (nWhich)
1653 : : {
1654 [ # # ]: 0 : switch (nWhich)
1655 : : {
1656 : : case SID_SEARCH_ITEM:
1657 : : case SID_SEARCH_OPTIONS:
1658 : : // Forward this request to the the common (old) code of the
1659 : : // document shell.
1660 [ # # ][ # # ]: 0 : GetDocSh()->GetState (rSet);
1661 : 0 : break;
1662 : : default:
1663 : : OSL_TRACE ("DrawViewShell::GetState(): can not handle which id %d", nWhich);
1664 : 0 : break;
1665 : : }
1666 [ # # ]: 0 : nWhich = aIter.NextWhich();
1667 [ # # ]: 0 : }
1668 : 0 : }
1669 : :
1670 : :
1671 : :
1672 : :
1673 : 0 : void DrawViewShell::Execute (SfxRequest& rReq)
1674 : : {
1675 [ # # ]: 0 : if(SlideShow::IsRunning(GetViewShellBase()))
1676 : : {
1677 : : // Do not execute anything during a native slide show.
1678 : 0 : return;
1679 : : }
1680 : :
1681 [ # # # ]: 0 : switch (rReq.GetSlot())
1682 : : {
1683 : : case SID_SEARCH_ITEM:
1684 : : // Forward this request to the the common (old) code of the
1685 : : // document shell.
1686 : 0 : GetDocSh()->Execute (rReq);
1687 : 0 : break;
1688 : :
1689 : : case SID_SPELL_DIALOG:
1690 : : {
1691 : 0 : SfxViewFrame* pViewFrame = GetViewFrame();
1692 [ # # ]: 0 : if (rReq.GetArgs() != NULL)
1693 : : pViewFrame->SetChildWindow (SID_SPELL_DIALOG,
1694 : 0 : ((const SfxBoolItem&) (rReq.GetArgs()->
1695 : 0 : Get(SID_SPELL_DIALOG))).GetValue());
1696 : : else
1697 : 0 : pViewFrame->ToggleChildWindow(SID_SPELL_DIALOG);
1698 : :
1699 : 0 : pViewFrame->GetBindings().Invalidate(SID_SPELL_DIALOG);
1700 : 0 : rReq.Ignore ();
1701 : : }
1702 : 0 : break;
1703 : :
1704 : : default:
1705 : : OSL_TRACE ("DrawViewShell::Execute(): can not handle slot %d", rReq.GetSlot());
1706 : 0 : break;
1707 : : }
1708 : : }
1709 : :
1710 : : } // end of namespace sd
1711 : :
1712 : : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|