summaryrefslogtreecommitdiff
path: root/sd/source/ui/view/drviews7.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'sd/source/ui/view/drviews7.cxx')
-rw-r--r--sd/source/ui/view/drviews7.cxx1711
1 files changed, 0 insertions, 1711 deletions
diff --git a/sd/source/ui/view/drviews7.cxx b/sd/source/ui/view/drviews7.cxx
deleted file mode 100644
index a00c763d6..000000000
--- a/sd/source/ui/view/drviews7.cxx
+++ /dev/null
@@ -1,1711 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sd.hxx"
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
-#include <com/sun/star/lang/Locale.hpp>
-#include <com/sun/star/linguistic2/XThesaurus.hpp>
-#include <svx/fmglob.hxx>
-#include <svx/globl3d.hxx>
-#include <svx/svdouno.hxx>
-#include <editeng/eeitem.hxx>
-#include <editeng/flditem.hxx>
-#include <editeng/outlobj.hxx>
-#include <svx/svxids.hrc>
-#include <svx/svdpagv.hxx>
-#include <svx/clipfmtitem.hxx>
-#include <svx/fmshell.hxx>
-#include <svl/eitem.hxx>
-#include <svl/aeitem.hxx>
-#include <svl/stritem.hxx>
-#include <svl/visitem.hxx>
-#include <svl/whiter.hxx>
-#include <sfx2/dispatch.hxx>
-#include <svx/svdograf.hxx>
-#include <editeng/unolingu.hxx>
-#include <svx/extrusionbar.hxx>
-#include <svx/fontworkbar.hxx>
-
-// #UndoRedo#
-#include <svl/slstitm.hxx>
-#include <sfx2/app.hxx>
-#include <svtools/insdlg.hxx>
-#include <unotools/moduleoptions.hxx>
-#include <svl/languageoptions.hxx>
-#include <comphelper/processfactory.hxx>
-#include <sfx2/request.hxx>
-
-
-#include <svx/pfiledlg.hxx>
-#include <svx/grafctrl.hxx>
-#include <svtools/cliplistener.hxx>
-#include <sfx2/viewfrm.hxx>
-
-#include "app.hrc"
-#include "glob.hrc"
-#include "res_bmp.hrc"
-#include "PresentationViewShell.hxx"
-
-#include "Outliner.hxx"
-#include "drawdoc.hxx"
-#include "sdresid.hxx"
-#include "sdpage.hxx"
-#include "Client.hxx"
-#include "DrawDocShell.hxx"
-#include "zoomlist.hxx"
-#include "slideshow.hxx"
-#include "drawview.hxx"
-#include "ViewShellBase.hxx"
-#include "ViewShellManager.hxx"
-#include "LayerTabBar.hxx"
-#include "fupoor.hxx"
-#include "Window.hxx"
-#include "fuediglu.hxx"
-#include "fubullet.hxx"
-#include "fuformatpaintbrush.hxx"
-
-using ::rtl::OUString;
-using namespace ::com::sun::star;
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::linguistic2;
-
-/** Create a list of clipboard formats that are supported both from the
- current clipboard content and the DrawViewShell.
- The list is stored in a new instance of SvxClipboardFmtItem.
-*/
-::std::auto_ptr<SvxClipboardFmtItem> GetSupportedClipboardFormats (
- TransferableDataHelper& rDataHelper)
-{
- ::std::auto_ptr<SvxClipboardFmtItem> pResult (
- new SvxClipboardFmtItem(SID_CLIPBOARD_FORMAT_ITEMS));
-
- sal_uInt32 nFormatCount (rDataHelper.GetFormatCount());
- for (sal_uInt32 i=0; i<nFormatCount; i++)
- {
- const SotFormatStringId nTestFormat = rDataHelper.GetFormat(i);
-
- // Check if the current format is the same as one that has already
- // been handled.
- bool bDuplicate (false);
- for (sal_uInt32 j=0; j<i; j++)
- {
- if (nTestFormat == rDataHelper.GetFormat(j))
- {
- bDuplicate = true;
- break;
- }
- }
-
- // Look up the format among those that are supported by the
- // DrawViewShell.
- if ( ! bDuplicate)
- {
- switch (nTestFormat)
- {
- case SOT_FORMATSTR_ID_EMBED_SOURCE:
- {
- String sName;
-
- TransferableObjectDescriptor aDescriptor;
- if (rDataHelper.GetTransferableObjectDescriptor(
- SOT_FORMATSTR_ID_OBJECTDESCRIPTOR, aDescriptor))
- {
- sName = aDescriptor.maTypeName;
- }
- if (sName.Len() > 0)
- pResult->AddClipbrdFormat(nTestFormat, sName);
- else
- pResult->AddClipbrdFormat(nTestFormat);
-
- break;
- }
-
- case SOT_FORMATSTR_ID_LINK_SOURCE:
- case SOT_FORMATSTR_ID_DRAWING:
- case SOT_FORMATSTR_ID_SVXB:
- case FORMAT_GDIMETAFILE:
- case FORMAT_BITMAP:
- case SOT_FORMATSTR_ID_NETSCAPE_BOOKMARK:
- case FORMAT_STRING:
- case SOT_FORMATSTR_ID_HTML:
- case FORMAT_RTF:
- case SOT_FORMATSTR_ID_EDITENGINE:
- pResult->AddClipbrdFormat(nTestFormat);
- break;
- }
- }
- }
-
- // Check some OLE formats whose names are handled differently.
- SotFormatStringId nFormat (SOT_FORMATSTR_ID_EMBED_SOURCE_OLE);
- bool bHasFormat (rDataHelper.HasFormat(nFormat));
- if ( ! bHasFormat)
- {
- bHasFormat = rDataHelper.HasFormat(nFormat);
- }
- if (bHasFormat)
- {
- String sName;
- String sSource;
- if (SvPasteObjectHelper::GetEmbeddedName (rDataHelper, sName, sSource, nFormat))
- pResult->AddClipbrdFormat (nFormat, sName);
- }
-
- return pResult;
-}
-
-namespace sd {
-
-IMPL_LINK( DrawViewShell, ClipboardChanged, TransferableDataHelper*, pDataHelper )
-{
- if ( pDataHelper )
- {
- mbPastePossible = ( pDataHelper->GetFormatCount() != 0 );
-
- // Update the list of supported clipboard formats according to the
- // new clipboard content.
- // There are some stack traces that indicate the possibility of the
- // DrawViewShell destructor called during the call to
- // GetSupportedClipboardFormats(). If that really has happened then
- // exit immediately.
- TransferableDataHelper aDataHelper (
- TransferableDataHelper::CreateFromSystemClipboard(GetActiveWindow()));
- ::std::auto_ptr<SvxClipboardFmtItem> pFormats (GetSupportedClipboardFormats(aDataHelper));
- if (mpDrawView == NULL)
- return 0;
- mpCurrentClipboardFormats = pFormats;
-
- SfxBindings& rBindings = GetViewFrame()->GetBindings();
- rBindings.Invalidate( SID_PASTE );
- rBindings.Invalidate( SID_PASTE_SPECIAL );
- rBindings.Invalidate( SID_CLIPBOARD_FORMAT_ITEMS );
- }
- return 0;
-}
-
-/*************************************************************************
-|*
-|* Status (Enabled/Disabled) von Menue-SfxSlots setzen
-|*
-\************************************************************************/
-
-void DrawViewShell::GetMenuState( SfxItemSet &rSet )
-{
- if (mpDrawView == NULL)
- {
- // This assertion and return are here to prevent crashes.
- DBG_ASSERT(mpDrawView!=NULL, "Please report this assertion to the Impress team.");
- return;
- }
-
- ViewShell::GetMenuState(rSet);
- sal_Bool bDisableVerticalText = !SvtLanguageOptions().IsVerticalTextEnabled();
-
- if ( bDisableVerticalText )
- {
- rSet.DisableItem( SID_DRAW_FONTWORK_VERTICAL );
- rSet.DisableItem( SID_DRAW_CAPTION_VERTICAL );
- rSet.DisableItem( SID_TEXT_FITTOSIZE_VERTICAL );
- rSet.DisableItem( SID_DRAW_TEXT_VERTICAL );
- }
-
- bool bConvertToPathPossible = mpDrawView->IsConvertToPathObjPossible(sal_False);
-
- const SdrMarkList& rMarkList = mpDrawView->GetMarkedObjectList();
- const sal_uLong nMarkCount = rMarkList.GetMarkCount();
-
- //format paintbrush
- FuFormatPaintBrush::GetMenuState( *this, rSet );
-
- // Stati der SfxChild-Windows (Animator, Fontwork etc.)
- SetChildWindowState( rSet );
-
- // Images der Toolboxen mappen (nur Zoom)
- UpdateToolboxImages( rSet, sal_False );
-
- if(HasCurrentFunction())
- {
- sal_uInt16 nSId = GetCurrentFunction()->GetSlotID();
-
- rSet.Put( SfxBoolItem( nSId, sal_True ) );
-
- // Bewirkt ein uncheck eines simulierten Slots
- sal_uInt16 nId = GetIdBySubId( nSId );
-
- // Images der Toolboxen mappen
- UpdateToolboxImages( rSet );
-
- if( nId != SID_ZOOM_TOOLBOX &&
- nSId != SID_DRAWTBX_INSERT &&
- nSId != SID_POSITION &&
- nSId != SID_OBJECT_ALIGN )
- {
- if( nId != SID_OBJECT_CHOOSE_MODE )
- rSet.Put( TbxImageItem( SID_OBJECT_CHOOSE_MODE, 0 ) );
- if( nId != SID_DRAWTBX_TEXT )
- rSet.Put( TbxImageItem( SID_DRAWTBX_TEXT, 0 ) );
- if( nId != SID_DRAWTBX_RECTANGLES )
- rSet.Put( TbxImageItem( SID_DRAWTBX_RECTANGLES, 0 ) );
- if( nId != SID_DRAWTBX_ELLIPSES )
- rSet.Put( TbxImageItem( SID_DRAWTBX_ELLIPSES, 0 ) );
- if( nId != SID_DRAWTBX_LINES )
- rSet.Put( TbxImageItem( SID_DRAWTBX_LINES, 0 ) );
- if( nId != SID_DRAWTBX_ARROWS )
- rSet.Put( TbxImageItem( SID_DRAWTBX_ARROWS, 0 ) );
- if( nId != SID_DRAWTBX_3D_OBJECTS )
- rSet.Put( TbxImageItem( SID_DRAWTBX_3D_OBJECTS, 0 ) );
- if( nId != SID_DRAWTBX_CONNECTORS )
- rSet.Put( TbxImageItem( SID_DRAWTBX_CONNECTORS, 0 ) );
- }
- }
-
- SdrPageView* pPageView = mpDrawView->GetSdrPageView();
-
- GetMenuStateSel(rSet);
-
- if (SFX_ITEM_AVAILABLE == rSet.GetItemState(SID_ASSIGN_LAYOUT))
- {
- bool bDisable = true;
- if( pPageView )
- {
- SdPage* pPage = dynamic_cast< SdPage* >( pPageView->GetPage() );
-
- if( pPage && !pPage->IsMasterPage() )
- {
- rSet.Put( SfxUInt32Item( SID_ASSIGN_LAYOUT, static_cast< sal_uInt32 >(pPage->GetAutoLayout()) ) );
- bDisable = false;
- }
- }
-
- if(bDisable)
- {
- rSet.DisableItem(SID_ASSIGN_LAYOUT);
- }
- }
-
- if (SFX_ITEM_AVAILABLE == rSet.GetItemState(SID_EXPAND_PAGE))
- {
- bool bDisable = true;
- if( pPageView )
- {
- SdPage* pPage = dynamic_cast< SdPage* >( pPageView->GetPage() );
-
- if( pPage && (pPage->GetPageKind() == PK_STANDARD) && !pPage->IsMasterPage() )
- {
- SdrObject* pObj = pPage->GetPresObj(PRESOBJ_OUTLINE);
-
- if (pObj!=NULL )
- {
- if( !pObj->IsEmptyPresObj() )
- {
- bDisable = false;
- }
- else
- {
- // check if the object is in edit, than its temporarely not empty
- SdrTextObj* pTextObj = dynamic_cast< SdrTextObj* >( pObj );
- if( pTextObj )
- {
- OutlinerParaObject* pParaObj = pTextObj->GetEditOutlinerParaObject();
- if( pParaObj )
- {
- delete pParaObj;
- bDisable = false;
- }
- }
- }
- }
- }
- }
-
- if(bDisable)
- {
- rSet.DisableItem(SID_EXPAND_PAGE);
- }
- }
-
- if (SFX_ITEM_AVAILABLE == rSet.GetItemState(SID_SUMMARY_PAGE))
- {
- bool bDisable = true;
- if( pPageView )
- {
- SdPage* pPage = dynamic_cast< SdPage* >( pPageView->GetPage() );
-
- if( pPage && (pPage->GetPageKind() == PK_STANDARD) && !pPage->IsMasterPage() )
- {
- SdrObject* pObj = pPage->GetPresObj(PRESOBJ_TITLE);
-
- if(pObj && !pObj->IsEmptyPresObj())
- {
- bDisable = false;
- }
- }
- }
-
- if(bDisable)
- {
- rSet.DisableItem(SID_SUMMARY_PAGE);
- }
- }
-
- if (SFX_ITEM_AVAILABLE == rSet.GetItemState(SID_ASSIGN_LAYOUT))
- {
- bool bDisable = true;
- if( pPageView )
- {
- SdPage* pPage = dynamic_cast< SdPage* >( pPageView->GetPage() );
-
- if( pPage && !pPage->IsMasterPage() )
- {
- rSet.Put( SfxUInt32Item(SID_ASSIGN_LAYOUT, pPage->GetAutoLayout()) );
- bDisable = false;
- }
- }
-
- if(bDisable)
- {
- rSet.DisableItem(SID_ASSIGN_LAYOUT);
- }
- }
-
- // Starten der Praesentation moeglich?
- if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_PRESENTATION ) ||
- SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_REHEARSE_TIMINGS ) )
- {
- sal_Bool bDisable = sal_True;
- sal_uInt16 nCount = GetDoc()->GetSdPageCount( PK_STANDARD );
-
- for( sal_uInt16 i = 0; i < nCount && bDisable; i++ )
- {
- SdPage* pPage = GetDoc()->GetSdPage(i, PK_STANDARD);
-
- if( !pPage->IsExcluded() )
- bDisable = sal_False;
- }
-
- if( bDisable || GetDocSh()->IsPreview())
- {
- rSet.DisableItem( SID_PRESENTATION );
- rSet.DisableItem( SID_REHEARSE_TIMINGS );
- }
- }
-
- // Klebepunkte
- if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_GLUE_EDITMODE ) ||
- SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_GLUE_INSERT_POINT ) ||
- SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_GLUE_PERCENT ) ||
- SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_GLUE_ESCDIR ) ||
- SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_GLUE_ESCDIR_LEFT ) ||
- SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_GLUE_ESCDIR_RIGHT ) ||
- SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_GLUE_ESCDIR_TOP ) ||
- SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_GLUE_ESCDIR_BOTTOM ) ||
- SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_GLUE_HORZALIGN_CENTER ) ||
- SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_GLUE_HORZALIGN_LEFT ) ||
- SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_GLUE_HORZALIGN_RIGHT ) ||
- SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_GLUE_VERTALIGN_CENTER ) ||
- SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_GLUE_VERTALIGN_TOP ) ||
- SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_GLUE_VERTALIGN_BOTTOM ) )
- {
- // Prozent
- TRISTATE eState = mpDrawView->IsMarkedGluePointsPercent();
- if( eState == STATE_DONTKNOW )
- rSet.InvalidateItem( SID_GLUE_PERCENT );
- else
- rSet.Put( SfxBoolItem( SID_GLUE_PERCENT, eState == STATE_CHECK ) );
-
- // Bei Prozent hat Alignment keinen Effekt
- if( eState == STATE_CHECK )
- {
- rSet.DisableItem( SID_GLUE_HORZALIGN_CENTER );
- rSet.DisableItem( SID_GLUE_HORZALIGN_LEFT );
- rSet.DisableItem( SID_GLUE_HORZALIGN_RIGHT );
- rSet.DisableItem( SID_GLUE_VERTALIGN_CENTER );
- rSet.DisableItem( SID_GLUE_VERTALIGN_TOP );
- rSet.DisableItem( SID_GLUE_VERTALIGN_BOTTOM );
- }
- else
- {
- // Horizontale Ausrichtung
- sal_uInt16 nHorz = mpDrawView->GetMarkedGluePointsAlign( sal_False );
- rSet.Put( SfxBoolItem( SID_GLUE_HORZALIGN_CENTER, nHorz == SDRHORZALIGN_CENTER ) );
- rSet.Put( SfxBoolItem( SID_GLUE_HORZALIGN_LEFT, nHorz == SDRHORZALIGN_LEFT ) );
- rSet.Put( SfxBoolItem( SID_GLUE_HORZALIGN_RIGHT, nHorz == SDRHORZALIGN_RIGHT ) );
- // Vertikale Ausrichtung
- sal_uInt16 nVert = mpDrawView->GetMarkedGluePointsAlign( sal_True );
- rSet.Put( SfxBoolItem( SID_GLUE_VERTALIGN_CENTER, nVert == SDRVERTALIGN_CENTER ) );
- rSet.Put( SfxBoolItem( SID_GLUE_VERTALIGN_TOP, nVert == SDRVERTALIGN_TOP ) );
- rSet.Put( SfxBoolItem( SID_GLUE_VERTALIGN_BOTTOM, nVert == SDRVERTALIGN_BOTTOM ) );
- }
-
- // Punkt einfuegen
- rSet.Put( SfxBoolItem( SID_GLUE_INSERT_POINT, mpDrawView->IsInsGluePointMode() ) );
-
- // Autrittsrichtung
- // Links
- eState = mpDrawView->IsMarkedGluePointsEscDir( SDRESC_LEFT );
- if( eState == STATE_DONTKNOW )
- rSet.InvalidateItem( SID_GLUE_ESCDIR_LEFT );
- else
- rSet.Put( SfxBoolItem( SID_GLUE_ESCDIR_LEFT, eState == STATE_CHECK ) );
- // Rechts
- eState = mpDrawView->IsMarkedGluePointsEscDir( SDRESC_RIGHT );
- if( eState == STATE_DONTKNOW )
- rSet.InvalidateItem( SID_GLUE_ESCDIR_RIGHT );
- else
- rSet.Put( SfxBoolItem( SID_GLUE_ESCDIR_RIGHT, eState == STATE_CHECK ) );
- // Oben
- eState = mpDrawView->IsMarkedGluePointsEscDir( SDRESC_TOP );
- if( eState == STATE_DONTKNOW )
- rSet.InvalidateItem( SID_GLUE_ESCDIR_TOP );
- else
- rSet.Put( SfxBoolItem( SID_GLUE_ESCDIR_TOP, eState == STATE_CHECK ) );
- // Unten
- eState = mpDrawView->IsMarkedGluePointsEscDir( SDRESC_BOTTOM );
- if( eState == STATE_DONTKNOW )
- rSet.InvalidateItem( SID_GLUE_ESCDIR_BOTTOM );
- else
- rSet.Put( SfxBoolItem( SID_GLUE_ESCDIR_BOTTOM, eState == STATE_CHECK ) );
- }
-
- if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_GRID_FRONT ) ||
- SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_HELPLINES_FRONT ) )
- {
- rSet.Put( SfxBoolItem( SID_GRID_FRONT, mpDrawView->IsGridFront() ) );
- rSet.Put( SfxBoolItem( SID_HELPLINES_FRONT, mpDrawView->IsHlplFront() ) );
- }
-
- if (!mpDrawView->IsFrameDragSingles())
- rSet.Put(SfxBoolItem(SID_BEZIER_EDIT, sal_True));
- else
- rSet.Put(SfxBoolItem(SID_BEZIER_EDIT, sal_False));
-
- if(dynamic_cast<FuEditGluePoints*>( GetCurrentFunction().get()))
- rSet.Put(SfxBoolItem(SID_GLUE_EDITMODE, sal_True));
- else
- rSet.Put(SfxBoolItem(SID_GLUE_EDITMODE, sal_False));
-
- if( !mpDrawView->IsMirrorAllowed( sal_True, sal_True ) )
- {
- rSet.DisableItem( SID_HORIZONTAL );
- rSet.DisableItem( SID_VERTICAL );
- }
-
- if( !mpDrawView->IsMirrorAllowed() )
- {
- rSet.DisableItem( SID_OBJECT_MIRROR );
-// rSet.DisableItem( SID_CONVERT_TO_3D_LATHE );
-// rSet.DisableItem( SID_CONVERT_TO_3D_LATHE_FAST );
- }
-
- // interactive transparence control
- if(!mpDrawView->IsTransparenceAllowed())
- {
- rSet.DisableItem( SID_OBJECT_TRANSPARENCE );
- }
-
- // interactive gradient control
- if(!mpDrawView->IsGradientAllowed())
- {
- rSet.DisableItem( SID_OBJECT_GRADIENT );
- }
-
- // Morphen ggf. disablen
- if ( !mpDrawView->IsMorphingAllowed() )
- rSet.DisableItem( SID_POLYGON_MORPHING );
-
- // Vectorize ggf. disablen
- if ( !mpDrawView->IsVectorizeAllowed() )
- rSet.DisableItem( SID_VECTORIZE );
-
- if( !mpDrawView->IsReverseOrderPossible() )
- {
- rSet.DisableItem( SID_REVERSE_ORDER );
- }
-
- if ( !bConvertToPathPossible &&
- !mpDrawView->IsCrookAllowed( mpDrawView->IsCrookNoContortion() ) )
- {
- // Implizite Wandlung in Kurve nicht moeglich
- rSet.DisableItem(SID_OBJECT_CROOK_ROTATE);
- rSet.DisableItem(SID_OBJECT_CROOK_SLANT);
- rSet.DisableItem(SID_OBJECT_CROOK_STRETCH);
- }
-
- if ( !mpDrawView->IsGroupEntered() )
- {
- rSet.DisableItem( SID_LEAVE_GROUP );
- rSet.Put( SfxBoolItem( SID_LEAVE_ALL_GROUPS, sal_False ) );
- rSet.ClearItem( SID_LEAVE_ALL_GROUPS );
- rSet.DisableItem( SID_LEAVE_ALL_GROUPS );
- }
- else
- rSet.Put( SfxBoolItem( SID_LEAVE_ALL_GROUPS, sal_True ) );
-
- if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_THESAURUS ) )
- {
- if ( !mpDrawView->IsTextEdit() )
- {
- rSet.DisableItem( SID_THESAURUS );
- }
- else
- {
- LanguageType eLang = GetDoc()->GetLanguage( EE_CHAR_LANGUAGE );
- Reference< XThesaurus > xThesaurus( LinguMgr::GetThesaurus() );
- Locale aLocale;
-
- SvxLanguageToLocale( aLocale, eLang );
-
- if (!xThesaurus.is() || eLang == LANGUAGE_NONE || !xThesaurus->hasLocale(aLocale) )
- rSet.DisableItem( SID_THESAURUS );
- }
- }
-
- if ( !mpDrawView->IsTextEdit() )
- {
- rSet.DisableItem( SID_THESAURUS );
- }
-
- if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_SELECTALL ) ||
- SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_SIZE_ALL ) )
- {
- if( pPageView && pPageView->GetObjList()->GetObjCount() == 0 )
- {
- // Sollte disabled sein, wenn kein Objekt auf der Zeichenflaeche ist:
- rSet.DisableItem( SID_SELECTALL );
- rSet.DisableItem( SID_SIZE_ALL );
- }
- }
-
- if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_CONTEXT ) )
- rSet.Put( SfxStringItem( SID_CONTEXT, mpDrawView->GetStatusText() ) );
-
- // clipboard (paste)
- if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_PASTE ) ||
- SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_PASTE_SPECIAL ) ||
- SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_CLIPBOARD_FORMAT_ITEMS ) )
- {
- if ( !mpClipEvtLstnr )
- {
- // avoid clipboard initialization for
- // read-only presentation views (workaround for NT4.0
- // clipboard prob...)
- if( !ISA(PresentationViewShell) )
- {
- // create listener
- mpClipEvtLstnr = new TransferableClipboardListener( LINK( this, DrawViewShell, ClipboardChanged ) );
- mpClipEvtLstnr->acquire();
- mpClipEvtLstnr->AddRemoveListener( GetActiveWindow(), sal_True );
-
- // get initial state
- TransferableDataHelper aDataHelper( TransferableDataHelper::CreateFromSystemClipboard( GetActiveWindow() ) );
- mbPastePossible = ( aDataHelper.GetFormatCount() != 0 );
- }
- else
- mbPastePossible = sal_False;
- }
-
- if( !mbPastePossible )
- {
- rSet.DisableItem( SID_PASTE );
- rSet.DisableItem( SID_PASTE_SPECIAL );
- rSet.DisableItem( SID_CLIPBOARD_FORMAT_ITEMS );
- }
- else if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_CLIPBOARD_FORMAT_ITEMS ) )
- {
- if (mpCurrentClipboardFormats.get() != NULL)
- rSet.Put(*mpCurrentClipboardFormats);
- }
- }
-
- if ( !bConvertToPathPossible )
- {
- rSet.DisableItem(SID_CHANGEBEZIER);
- }
-
- if (mpDrawView == NULL)
- {
- // The mpDrawView was not NULL but is now.
- // The reason for this may be that the DrawViewShell has been
- // destroyed in the mean time.
- // We can only return immediately and hope that the deleted
- // DrawViewShell is not called again.
- DBG_ASSERT(mpDrawView!=NULL, "Please report this assertion to the Impress team.");
- return;
- }
-
- if( !( mpDrawView->IsConvertToPolyObjPossible(sal_False) || mpDrawView->IsVectorizeAllowed() ) )
- rSet.DisableItem(SID_CHANGEPOLYGON);
-
- if( !( mpDrawView->IsConvertToPolyObjPossible(sal_False) || mpDrawView->IsConvertToContourPossible() ) )
- rSet.DisableItem(SID_CONVERT_TO_CONTOUR);
-
- if ( !mpDrawView->IsConvertTo3DObjPossible() )
- {
- rSet.DisableItem(SID_CONVERT_TO_3D);
- rSet.DisableItem(SID_CONVERT_TO_3D_LATHE);
- rSet.DisableItem(SID_CONVERT_TO_3D_LATHE_FAST);
- }
-
- if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_MANAGE_LINKS ) )
- {
- if ( GetDoc()->GetLinkCount() == 0 )
- {
- rSet.DisableItem(SID_MANAGE_LINKS);
- }
- }
-
- if (mePageKind == PK_HANDOUT)
- {
- rSet.DisableItem(SID_PRESENTATION_LAYOUT);
- rSet.DisableItem(SID_SELECT_BACKGROUND);
- }
-
- if (mePageKind == PK_NOTES)
- {
- rSet.DisableItem(SID_INSERTPAGE);
- rSet.DisableItem(SID_RENAMEPAGE);
- rSet.DisableItem(SID_RENAMEPAGE_QUICK);
- rSet.DisableItem(SID_DUPLICATE_PAGE);
- rSet.ClearItem(SID_ANIMATION_OBJECTS);
- rSet.DisableItem(SID_ANIMATION_OBJECTS);
- rSet.DisableItem(SID_ANIMATION_EFFECTS);
-
- if (meEditMode == EM_MASTERPAGE)
- rSet.DisableItem(SID_MODIFYPAGE);
-
- rSet.DisableItem(SID_SELECT_BACKGROUND);
- rSet.DisableItem(SID_INSERTLAYER);
- rSet.DisableItem(SID_LAYERMODE);
- rSet.DisableItem(SID_INSERTFILE);
- }
- else if (mePageKind == PK_HANDOUT)
- {
- rSet.DisableItem(SID_INSERTPAGE);
- rSet.DisableItem(SID_DUPLICATE_PAGE);
- rSet.ClearItem(SID_ANIMATION_OBJECTS);
- rSet.DisableItem(SID_ANIMATION_OBJECTS);
- rSet.DisableItem(SID_ANIMATION_EFFECTS);
- rSet.DisableItem(SID_RENAMEPAGE);
- rSet.DisableItem(SID_RENAMEPAGE_QUICK);
- rSet.DisableItem(SID_INSERTLAYER);
- rSet.DisableItem(SID_MODIFYLAYER);
- rSet.DisableItem(SID_RENAMELAYER);
- rSet.DisableItem(SID_LAYERMODE);
- rSet.DisableItem(SID_INSERTFILE);
- rSet.DisableItem(SID_PAGEMODE);
- rSet.DisableItem(SID_SELECT_BACKGROUND);
- }
- else
- {
- if (meEditMode == EM_MASTERPAGE)
- {
- rSet.DisableItem(SID_INSERTPAGE);
- rSet.DisableItem(SID_DUPLICATE_PAGE);
- rSet.DisableItem(SID_MODIFYPAGE);
- rSet.ClearItem(SID_ANIMATION_OBJECTS);
- rSet.DisableItem(SID_ANIMATION_OBJECTS);
- }
-
- rSet.Put (SfxBoolItem (SID_LAYERMODE, IsLayerModeActive()));
- }
-
- if ( ! IsLayerModeActive())
- {
- rSet.DisableItem( SID_INSERTLAYER );
- rSet.DisableItem( SID_MODIFYLAYER );
- rSet.DisableItem( SID_DELETE_LAYER );
- rSet.DisableItem( SID_RENAMELAYER );
- }
-
- if (meEditMode == EM_PAGE)
- {
- /**********************************************************************
- * Seiten-Modus
- **********************************************************************/
- rSet.Put(SfxBoolItem(SID_PAGEMODE, sal_True));
- rSet.Put(SfxBoolItem(SID_MASTERPAGE, sal_False));
- rSet.Put(SfxBoolItem(SID_SLIDE_MASTERPAGE, sal_False));
- rSet.Put(SfxBoolItem(SID_NOTES_MASTERPAGE, sal_False));
- rSet.Put(SfxBoolItem(SID_HANDOUT_MASTERPAGE, sal_False));
-
- if (mePageKind == PK_STANDARD &&
- rSet.GetItemState(SID_TITLE_MASTERPAGE) == SFX_ITEM_AVAILABLE)
- {
- // Gibt es eine Seite mit dem AutoLayout "Titel"?
- sal_Bool bDisable = sal_True;
- sal_uInt16 i = 0;
- sal_uInt16 nCount = GetDoc()->GetSdPageCount(PK_STANDARD);
-
- while (i < nCount && bDisable)
- {
- SdPage* pPage = GetDoc()->GetSdPage(i, PK_STANDARD);
-
- if (pPage->GetAutoLayout() == AUTOLAYOUT_TITLE)
- {
- bDisable = sal_False;
- }
-
- i++;
- }
-
- if (bDisable)
- {
- rSet.DisableItem(SID_TITLE_MASTERPAGE);
- }
- else
- {
- rSet.Put(SfxBoolItem(SID_TITLE_MASTERPAGE, sal_False));
- }
- }
- else
- {
- rSet.DisableItem(SID_TITLE_MASTERPAGE);
- }
-
- rSet.DisableItem (SID_INSERT_MASTER_PAGE);
- rSet.DisableItem (SID_DELETE_MASTER_PAGE);
- rSet.DisableItem (SID_RENAME_MASTER_PAGE);
- rSet.DisableItem (SID_CLOSE_MASTER_VIEW);
- }
- else
- {
- rSet.Put(SfxBoolItem(SID_PAGEMODE, sal_False));
- rSet.Put(SfxBoolItem(SID_MASTERPAGE, sal_True));
-
- /**********************************************************************
- * Hintergrundseiten-Modus
- **********************************************************************/
- if (mePageKind == PK_STANDARD)
- {
- rSet.Put(SfxBoolItem(SID_SLIDE_MASTERPAGE, sal_True));
- rSet.Put(SfxBoolItem(SID_NOTES_MASTERPAGE, sal_False));
- rSet.Put(SfxBoolItem(SID_HANDOUT_MASTERPAGE, sal_False));
-
- if (rSet.GetItemState(SID_TITLE_MASTERPAGE) == SFX_ITEM_AVAILABLE)
- {
- sal_Bool bCheck = sal_False;
- sal_Bool bDisable = sal_True;
- if( pPageView )
- {
- SdPage* pMPage = dynamic_cast< SdPage* >( pPageView->GetPage() );
-
- sal_uInt16 i = 0;
- sal_uInt16 nCount = GetDoc()->GetSdPageCount(PK_STANDARD);
-
- // Referenziert eine Seite mit dem AutoLayout "Titel" die
- // aktuelle MasterPage?
- while (i < nCount && !bCheck && bDisable)
- {
- SdPage* pPage = GetDoc()->GetSdPage(i, PK_STANDARD);
-
- // Seite referenziert aktuelle MasterPage
- if (pPage->GetAutoLayout() == AUTOLAYOUT_TITLE)
- {
- // Eine Seite hat das AutoLayout "Titel"
- bDisable = sal_False;
-
- SdPage& rRefMPage = (SdPage&)(pPage->TRG_GetMasterPage());
-
- if(&rRefMPage == pMPage)
- {
- // Eine Seite mit dem AutoLayout "Titel"
- // referenziert die aktuelle MasterPage
- bCheck = sal_True;
- }
- }
-
- i++;
- }
- }
-
- if (bCheck)
- {
- rSet.Put(SfxBoolItem(SID_SLIDE_MASTERPAGE, sal_False));
- }
-
- rSet.Put(SfxBoolItem(SID_TITLE_MASTERPAGE, bCheck));
-
- if (bDisable)
- {
- rSet.ClearItem(SID_TITLE_MASTERPAGE);
- rSet.DisableItem(SID_TITLE_MASTERPAGE);
- }
- }
- }
- else if (mePageKind == PK_NOTES)
- {
- rSet.Put(SfxBoolItem(SID_SLIDE_MASTERPAGE, sal_False));
- rSet.DisableItem(SID_TITLE_MASTERPAGE);
- rSet.Put(SfxBoolItem(SID_NOTES_MASTERPAGE, sal_True));
- rSet.Put(SfxBoolItem(SID_HANDOUT_MASTERPAGE, sal_False));
- }
- else if (mePageKind == PK_HANDOUT)
- {
- rSet.Put(SfxBoolItem(SID_SLIDE_MASTERPAGE, sal_False));
- rSet.DisableItem(SID_TITLE_MASTERPAGE);
- rSet.Put(SfxBoolItem(SID_NOTES_MASTERPAGE, sal_False));
- rSet.Put(SfxBoolItem(SID_HANDOUT_MASTERPAGE, sal_True));
- }
- }
-
- // Status der Lineale setzen
- if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_RULER ) )
- rSet.Put( SfxBoolItem( SID_RULER, HasRuler() ) );
-
- // nicht die letzte Seite oder eine Masterpage loeschen
- if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_DELETE_PAGE )
- || SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_DELETE_MASTER_PAGE ) )
- {
- if (maTabControl.GetPageCount() == 1 ||
- meEditMode == EM_MASTERPAGE ||
- mePageKind == PK_NOTES ||
- mePageKind == PK_HANDOUT ||
- (GetShellType()!=ST_DRAW&&IsLayerModeActive()))
- {
- if (rSet.GetItemState(SID_DELETE_PAGE) == SFX_ITEM_AVAILABLE)
- rSet.DisableItem(SID_DELETE_PAGE);
- if (rSet.GetItemState(SID_DELETE_MASTER_PAGE)==SFX_ITEM_AVAILABLE)
- rSet.DisableItem(SID_DELETE_MASTER_PAGE);
- }
- }
-
- // darf der aktuelle Layer geloescht werden?
- if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_DELETE_LAYER ) )
- {
- sal_uInt16 nCurrentLayer = GetLayerTabControl()->GetCurPageId();
- const String& rName = GetLayerTabControl()->GetPageText(nCurrentLayer);
-
- sal_Bool bDisableIt = !IsLayerModeActive();
- bDisableIt |= (rName == String(SdResId(STR_LAYER_LAYOUT)));
- bDisableIt |= (rName == String(SdResId(STR_LAYER_BCKGRND)));
- bDisableIt |= (rName == String(SdResId(STR_LAYER_BCKGRNDOBJ)));
- bDisableIt |= (rName == String(SdResId(STR_LAYER_CONTROLS)));
- bDisableIt |= (rName == String(SdResId(STR_LAYER_MEASURELINES)));
-
- if (bDisableIt)
- {
- rSet.DisableItem(SID_DELETE_LAYER);
- rSet.DisableItem(SID_RENAMELAYER);
- }
- }
-
- if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_CUT ) ||
- SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_COPY ) ||
- SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_OUTLINE_BULLET ))
- {
- OutlinerView* pOlView = mpDrawView->GetTextEditOutlinerView();
-
- // Sonderbehandlung f�r SID_OUTLINE_BULLET wenn Objekte
- // mit unterschiedlichen arten von NumBullet Items markiert
- // sind
- sal_Bool bHasOutliner = sal_False;
- sal_Bool bHasOther = sal_False;
- for(sal_uLong nNum = 0; nNum < nMarkCount; nNum++)
- {
- SdrObject* pObj = rMarkList.GetMark(nNum)->GetMarkedSdrObj();
- if( pObj->GetObjInventor() == SdrInventor )
- {
- if( pObj->GetObjIdentifier() == OBJ_OUTLINETEXT )
- {
- bHasOutliner = sal_True;
- if(bHasOther)
- break;
- }
- else
- {
- bHasOther = sal_True;
- if(bHasOutliner)
- break;
- }
- }
- }
-
- if( bHasOther && bHasOutliner )
- rSet.DisableItem( SID_OUTLINE_BULLET );
-
- if (pOlView)
- {
- if ( pOlView->GetSelected().Len() == 0 )
- {
- rSet.DisableItem( SID_CUT );
- rSet.DisableItem( SID_COPY );
- }
- }
-
- }
-
- FuBullet::GetSlotState( rSet, this, GetViewFrame() );
-
- if ( GetDocSh()->IsUIActive() )
- {
- rSet.DisableItem( SID_INSERT_OBJECT );
- rSet.DisableItem( SID_INSERT_PLUGIN );
- rSet.DisableItem( SID_INSERT_SOUND );
- rSet.DisableItem( SID_INSERT_VIDEO );
- rSet.DisableItem( SID_INSERT_FLOATINGFRAME );
- rSet.DisableItem( SID_INSERT_MATH );
- rSet.DisableItem( SID_INSERT_DIAGRAM );
- rSet.DisableItem( SID_ATTR_TABLE );
- rSet.DisableItem( SID_SIZE_REAL );
- rSet.DisableItem( SID_SIZE_OPTIMAL );
- rSet.DisableItem( SID_SIZE_ALL );
- rSet.DisableItem( SID_SIZE_PAGE_WIDTH );
- rSet.DisableItem( SID_SIZE_PAGE );
- rSet.DisableItem( SID_DUPLICATE_PAGE );
- rSet.DisableItem( SID_ZOOM_TOOLBOX );
- }
-
- // Zoom-Stati
- if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_ZOOM_IN ) ||
- SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_ZOOM_OUT )||
- SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_ZOOM_PANNING ) )
- {
- if( GetActiveWindow()->GetZoom() <= GetActiveWindow()->GetMinZoom() || GetDocSh()->IsUIActive() )
- {
- rSet.DisableItem( SID_ZOOM_IN );
- rSet.DisableItem( SID_ZOOM_PANNING );
- }
- if( GetActiveWindow()->GetZoom() >= GetActiveWindow()->GetMaxZoom() || GetDocSh()->IsUIActive() )
- rSet.DisableItem( SID_ZOOM_OUT );
- }
-
- if (!mpZoomList->IsNextPossible())
- {
- rSet.DisableItem(SID_ZOOM_NEXT);
- }
- if (!mpZoomList->IsPreviousPossible())
- {
- rSet.DisableItem(SID_ZOOM_PREV);
- }
-
- // EditText aktiv
- if (GetViewShellBase().GetViewShellManager()->GetShell(RID_DRAW_TEXT_TOOLBOX) != NULL)
- {
- sal_uInt16 nCurrentSId = SID_ATTR_CHAR;
-
- if(HasCurrentFunction())
- {
- nCurrentSId = GetCurrentFunction()->GetSlotID();
- }
- if( nCurrentSId != SID_TEXT_FITTOSIZE &&
- nCurrentSId != SID_TEXT_FITTOSIZE_VERTICAL &&
- nCurrentSId != SID_ATTR_CHAR_VERTICAL )
- nCurrentSId = SID_ATTR_CHAR;
-
- rSet.Put( SfxBoolItem( nCurrentSId, sal_True ) );
-
- // Kurzform von UpdateToolboxImages()
- rSet.Put( TbxImageItem( SID_DRAWTBX_TEXT, nCurrentSId ) );
- }
-
- if ( GetDocSh()->IsReadOnly() )
- {
- rSet.DisableItem( SID_AUTOSPELL_CHECK );
- }
- else
- {
- if (GetDoc()->GetOnlineSpell())
- {
- rSet.Put(SfxBoolItem(SID_AUTOSPELL_CHECK, sal_True));
- }
- else
- {
- rSet.Put(SfxBoolItem(SID_AUTOSPELL_CHECK, sal_False));
- }
- }
-
- SdrPageView* pPV = mpDrawView->GetSdrPageView();
- String aActiveLayer = mpDrawView->GetActiveLayer();
-
- if ( ( aActiveLayer.Len() != 0 && pPV && ( pPV->IsLayerLocked(aActiveLayer) ||
- !pPV->IsLayerVisible(aActiveLayer) ) ) ||
- SD_MOD()->GetWaterCan() )
- {
- rSet.DisableItem( SID_PASTE );
- rSet.DisableItem( SID_PASTE_SPECIAL );
- rSet.DisableItem( SID_CLIPBOARD_FORMAT_ITEMS );
-
- rSet.DisableItem( SID_INSERT_FLD_DATE_FIX );
- rSet.DisableItem( SID_INSERT_FLD_DATE_VAR );
- rSet.DisableItem( SID_INSERT_FLD_TIME_FIX );
- rSet.DisableItem( SID_INSERT_FLD_TIME_VAR );
- rSet.DisableItem( SID_INSERT_FLD_AUTHOR );
- rSet.DisableItem( SID_INSERT_FLD_PAGE );
- rSet.DisableItem( SID_INSERT_FLD_PAGES );
- rSet.DisableItem( SID_INSERT_FLD_FILE );
-
- rSet.DisableItem( SID_INSERT_GRAPHIC );
- rSet.DisableItem( SID_INSERT_AVMEDIA );
- rSet.DisableItem( SID_INSERT_DIAGRAM );
- rSet.DisableItem( SID_INSERT_OBJECT );
- rSet.DisableItem( SID_INSERT_PLUGIN );
- rSet.DisableItem( SID_INSERT_SOUND );
- rSet.DisableItem( SID_INSERT_VIDEO );
- rSet.DisableItem( SID_INSERT_FLOATINGFRAME );
-
- rSet.DisableItem( SID_INSERT_MATH );
- rSet.DisableItem( SID_INSERT_FRAME );
- rSet.DisableItem( SID_INSERTFILE );
- rSet.DisableItem( SID_ATTR_TABLE );
- rSet.DisableItem( SID_COPYOBJECTS );
-
- rSet.DisableItem( SID_SCAN );
- rSet.DisableItem( SID_TWAIN_SELECT );
- rSet.DisableItem( SID_TWAIN_TRANSFER );
-
-// rSet.DisableItem( SID_BEZIER_EDIT );
- rSet.DisableItem( SID_GLUE_EDITMODE );
- rSet.DisableItem( SID_OBJECT_ROTATE );
- rSet.DisableItem( SID_OBJECT_SHEAR );
- rSet.DisableItem( SID_OBJECT_MIRROR );
- rSet.DisableItem( SID_OBJECT_CROP );
- rSet.DisableItem( SID_ATTR_GRAF_CROP );
- rSet.DisableItem( SID_OBJECT_TRANSPARENCE );
- rSet.DisableItem( SID_OBJECT_GRADIENT );
- rSet.DisableItem( SID_OBJECT_CROOK_ROTATE );
- rSet.DisableItem( SID_OBJECT_CROOK_SLANT );
- rSet.DisableItem( SID_OBJECT_CROOK_STRETCH );
-
- // Alle objekterzeugenden Werkzeuge disablen
- rSet.ClearItem( SID_ATTR_CHAR );
- rSet.DisableItem( SID_ATTR_CHAR );
- rSet.ClearItem( SID_ATTR_CHAR_VERTICAL );
- rSet.DisableItem( SID_ATTR_CHAR_VERTICAL );
- rSet.ClearItem(SID_DRAW_LINE);
- rSet.DisableItem(SID_DRAW_LINE);
- rSet.ClearItem(SID_DRAW_MEASURELINE);
- rSet.DisableItem(SID_DRAW_MEASURELINE);
- rSet.ClearItem(SID_DRAW_XLINE);
- rSet.DisableItem(SID_DRAW_XLINE);
- rSet.ClearItem( SID_LINE_ARROW_START );
- rSet.DisableItem( SID_LINE_ARROW_START );
- rSet.ClearItem( SID_LINE_ARROW_END );
- rSet.DisableItem( SID_LINE_ARROW_END );
- rSet.ClearItem( SID_LINE_ARROWS );
- rSet.DisableItem( SID_LINE_ARROWS );
- rSet.ClearItem( SID_LINE_ARROW_CIRCLE );
- rSet.DisableItem( SID_LINE_ARROW_CIRCLE );
- rSet.ClearItem( SID_LINE_CIRCLE_ARROW );
- rSet.DisableItem( SID_LINE_CIRCLE_ARROW );
- rSet.ClearItem( SID_LINE_ARROW_SQUARE );
- rSet.DisableItem( SID_LINE_ARROW_SQUARE );
- rSet.ClearItem( SID_LINE_SQUARE_ARROW );
- rSet.DisableItem( SID_LINE_SQUARE_ARROW );
-
- rSet.ClearItem(SID_DRAW_RECT);
- rSet.DisableItem(SID_DRAW_RECT);
- rSet.ClearItem(SID_DRAW_RECT_NOFILL);
- rSet.DisableItem(SID_DRAW_RECT_NOFILL);
- rSet.ClearItem(SID_DRAW_RECT_ROUND);
- rSet.DisableItem(SID_DRAW_RECT_ROUND);
- rSet.ClearItem(SID_DRAW_RECT_ROUND_NOFILL);
- rSet.DisableItem(SID_DRAW_RECT_ROUND_NOFILL);
- rSet.ClearItem(SID_DRAW_SQUARE);
- rSet.DisableItem(SID_DRAW_SQUARE);
- rSet.ClearItem(SID_DRAW_SQUARE_NOFILL);
- rSet.DisableItem(SID_DRAW_SQUARE_NOFILL);
- rSet.ClearItem(SID_DRAW_SQUARE_ROUND);
- rSet.DisableItem(SID_DRAW_SQUARE_ROUND);
- rSet.ClearItem(SID_DRAW_SQUARE_ROUND_NOFILL);
- rSet.DisableItem(SID_DRAW_SQUARE_ROUND_NOFILL);
- rSet.ClearItem(SID_DRAW_ELLIPSE);
- rSet.DisableItem(SID_DRAW_ELLIPSE);
- rSet.ClearItem(SID_DRAW_ELLIPSE_NOFILL);
- rSet.DisableItem(SID_DRAW_ELLIPSE_NOFILL);
- rSet.ClearItem(SID_DRAW_CIRCLE);
- rSet.DisableItem(SID_DRAW_CIRCLE);
- rSet.ClearItem(SID_DRAW_CIRCLE_NOFILL);
- rSet.DisableItem(SID_DRAW_CIRCLE_NOFILL);
- rSet.ClearItem(SID_DRAW_CAPTION);
- rSet.DisableItem(SID_DRAW_CAPTION);
- rSet.ClearItem(SID_DRAW_FONTWORK);
- rSet.DisableItem(SID_DRAW_FONTWORK);
- rSet.ClearItem(SID_DRAW_FONTWORK_VERTICAL);
- rSet.DisableItem(SID_DRAW_FONTWORK_VERTICAL);
- rSet.ClearItem(SID_DRAW_CAPTION_VERTICAL);
- rSet.DisableItem(SID_DRAW_CAPTION_VERTICAL);
- rSet.ClearItem(SID_TEXT_FITTOSIZE);
- rSet.DisableItem(SID_TEXT_FITTOSIZE);
- rSet.ClearItem(SID_TEXT_FITTOSIZE_VERTICAL);
- rSet.DisableItem(SID_TEXT_FITTOSIZE_VERTICAL);
- rSet.ClearItem(SID_TOOL_CONNECTOR);
- rSet.DisableItem(SID_TOOL_CONNECTOR);
- rSet.ClearItem(SID_CONNECTOR_ARROW_START);
- rSet.DisableItem(SID_CONNECTOR_ARROW_START);
- rSet.ClearItem(SID_CONNECTOR_ARROW_END);
- rSet.DisableItem(SID_CONNECTOR_ARROW_END);
- rSet.ClearItem(SID_CONNECTOR_ARROWS);
- rSet.DisableItem(SID_CONNECTOR_ARROWS);
- rSet.ClearItem(SID_CONNECTOR_CIRCLE_START);
- rSet.DisableItem(SID_CONNECTOR_CIRCLE_START);
- rSet.ClearItem(SID_CONNECTOR_CIRCLE_END);
- rSet.DisableItem(SID_CONNECTOR_CIRCLE_END);
- rSet.ClearItem(SID_CONNECTOR_CIRCLES);
- rSet.DisableItem(SID_CONNECTOR_CIRCLES);
- rSet.ClearItem(SID_CONNECTOR_LINE);
- rSet.DisableItem(SID_CONNECTOR_LINE);
- rSet.ClearItem(SID_CONNECTOR_LINE_ARROW_START);
- rSet.DisableItem(SID_CONNECTOR_LINE_ARROW_START);
- rSet.ClearItem(SID_CONNECTOR_LINE_ARROW_END);
- rSet.DisableItem(SID_CONNECTOR_LINE_ARROW_END);
- rSet.ClearItem(SID_CONNECTOR_LINE_ARROWS);
- rSet.DisableItem(SID_CONNECTOR_LINE_ARROWS);
- rSet.ClearItem(SID_CONNECTOR_LINE_CIRCLE_START);
- rSet.DisableItem(SID_CONNECTOR_LINE_CIRCLE_START);
- rSet.ClearItem(SID_CONNECTOR_LINE_CIRCLE_END);
- rSet.DisableItem(SID_CONNECTOR_LINE_CIRCLE_END);
- rSet.ClearItem(SID_CONNECTOR_LINE_CIRCLES);
- rSet.DisableItem(SID_CONNECTOR_LINE_CIRCLES);
- rSet.ClearItem(SID_CONNECTOR_CURVE);
- rSet.DisableItem(SID_CONNECTOR_CURVE);
- rSet.ClearItem(SID_CONNECTOR_CURVE_ARROW_START);
- rSet.DisableItem(SID_CONNECTOR_CURVE_ARROW_START);
- rSet.ClearItem(SID_CONNECTOR_CURVE_ARROW_END);
- rSet.DisableItem(SID_CONNECTOR_CURVE_ARROW_END);
- rSet.ClearItem(SID_CONNECTOR_CURVE_ARROWS);
- rSet.DisableItem(SID_CONNECTOR_CURVE_ARROWS);
- rSet.ClearItem(SID_CONNECTOR_CURVE_CIRCLE_START);
- rSet.DisableItem(SID_CONNECTOR_CURVE_CIRCLE_START);
- rSet.ClearItem(SID_CONNECTOR_CURVE_CIRCLE_END);
- rSet.DisableItem(SID_CONNECTOR_CURVE_CIRCLE_END);
- rSet.ClearItem(SID_CONNECTOR_CURVE_CIRCLES);
- rSet.DisableItem(SID_CONNECTOR_CURVE_CIRCLES);
- rSet.ClearItem(SID_CONNECTOR_LINES);
- rSet.DisableItem(SID_CONNECTOR_LINES);
- rSet.ClearItem(SID_CONNECTOR_LINES_ARROW_START);
- rSet.DisableItem(SID_CONNECTOR_LINES_ARROW_START);
- rSet.ClearItem(SID_CONNECTOR_LINES_ARROW_END);
- rSet.DisableItem(SID_CONNECTOR_LINES_ARROW_END);
- rSet.ClearItem(SID_CONNECTOR_LINES_ARROWS);
- rSet.DisableItem(SID_CONNECTOR_LINES_ARROWS);
- rSet.ClearItem(SID_CONNECTOR_LINES_CIRCLE_START);
- rSet.DisableItem(SID_CONNECTOR_LINES_CIRCLE_START);
- rSet.ClearItem(SID_CONNECTOR_LINES_CIRCLE_END);
- rSet.DisableItem(SID_CONNECTOR_LINES_CIRCLE_END);
- rSet.ClearItem(SID_CONNECTOR_LINES_CIRCLES);
- rSet.DisableItem(SID_CONNECTOR_LINES_CIRCLES);
- rSet.ClearItem(SID_DRAW_ARC);
- rSet.DisableItem(SID_DRAW_ARC);
- rSet.ClearItem(SID_DRAW_CIRCLEARC);
- rSet.DisableItem(SID_DRAW_CIRCLEARC);
- rSet.ClearItem(SID_DRAW_PIE);
- rSet.DisableItem(SID_DRAW_PIE);
- rSet.ClearItem(SID_DRAW_PIE_NOFILL);
- rSet.DisableItem(SID_DRAW_PIE_NOFILL);
- rSet.ClearItem(SID_DRAW_CIRCLEPIE);
- rSet.DisableItem(SID_DRAW_CIRCLEPIE);
- rSet.ClearItem(SID_DRAW_CIRCLEPIE_NOFILL);
- rSet.DisableItem(SID_DRAW_CIRCLEPIE_NOFILL);
- rSet.ClearItem(SID_DRAW_ELLIPSECUT);
- rSet.DisableItem(SID_DRAW_ELLIPSECUT);
- rSet.ClearItem(SID_DRAW_ELLIPSECUT_NOFILL);
- rSet.DisableItem(SID_DRAW_ELLIPSECUT_NOFILL);
- rSet.ClearItem(SID_DRAW_CIRCLECUT);
- rSet.DisableItem(SID_DRAW_CIRCLECUT);
- rSet.ClearItem(SID_DRAW_CIRCLECUT_NOFILL);
- rSet.DisableItem(SID_DRAW_CIRCLECUT_NOFILL);
- rSet.ClearItem(SID_DRAW_POLYGON);
- rSet.DisableItem(SID_DRAW_POLYGON);
- rSet.ClearItem(SID_DRAW_POLYGON_NOFILL);
- rSet.DisableItem(SID_DRAW_POLYGON_NOFILL);
- rSet.ClearItem(SID_DRAW_FREELINE);
- rSet.DisableItem(SID_DRAW_FREELINE);
- rSet.ClearItem(SID_DRAW_FREELINE_NOFILL);
- rSet.DisableItem(SID_DRAW_FREELINE_NOFILL);
- rSet.ClearItem(SID_DRAW_XPOLYGON);
- rSet.DisableItem(SID_DRAW_XPOLYGON);
- rSet.ClearItem(SID_DRAW_XPOLYGON_NOFILL);
- rSet.DisableItem(SID_DRAW_XPOLYGON_NOFILL);
- rSet.ClearItem(SID_DRAW_BEZIER_FILL);
- rSet.DisableItem(SID_DRAW_BEZIER_FILL);
- rSet.ClearItem(SID_DRAW_BEZIER_NOFILL);
- rSet.DisableItem(SID_DRAW_BEZIER_NOFILL);
- rSet.ClearItem(SID_3D_CUBE);
- rSet.DisableItem(SID_3D_CUBE);
- rSet.ClearItem(SID_3D_SHELL);
- rSet.DisableItem(SID_3D_SHELL);
- rSet.ClearItem(SID_3D_SPHERE);
- rSet.DisableItem(SID_3D_SPHERE);
- rSet.ClearItem(SID_3D_HALF_SPHERE);
- rSet.DisableItem(SID_3D_HALF_SPHERE);
- rSet.ClearItem(SID_3D_CYLINDER);
- rSet.DisableItem(SID_3D_CYLINDER);
- rSet.ClearItem(SID_3D_CONE);
- rSet.DisableItem(SID_3D_CONE);
- rSet.ClearItem(SID_3D_TORUS);
- rSet.DisableItem(SID_3D_TORUS);
- rSet.ClearItem(SID_3D_PYRAMID);
- rSet.DisableItem(SID_3D_PYRAMID);
- }
-
- // Sind die Module verfuegbar?
-
- if (!SvtModuleOptions().IsCalc())
- {
- // remove menu entry if module is not available
- rSet.Put( SfxVisibilityItem( SID_ATTR_TABLE, sal_False ) );
- }
- if (!SvtModuleOptions().IsChart())
- {
- rSet.DisableItem( SID_INSERT_DIAGRAM );
- }
- if (!SvtModuleOptions().IsMath())
- {
- rSet.DisableItem( SID_INSERT_MATH );
- }
-
- rtl::Reference< sd::SlideShow > xSlideshow( SlideShow::GetSlideShow( GetViewShellBase() ) );
- if( (xSlideshow.is() && xSlideshow->isRunning() && (xSlideshow->getAnimationMode() != ANIMATIONMODE_PREVIEW) ) || GetDocSh()->IsPreview() )
- {
- // Eigene Slots
- rSet.DisableItem( SID_PRESENTATION );
- rSet.DisableItem( SID_ZOOM_IN );
- rSet.DisableItem( SID_ZOOM_OUT );
- rSet.DisableItem( SID_ZOOM_PANNING );
- rSet.DisableItem( SID_ZOOM_NEXT );
- rSet.DisableItem( SID_ZOOM_PREV );
- rSet.DisableItem( SID_SIZE_REAL );
- rSet.DisableItem( SID_SIZE_OPTIMAL );
- rSet.DisableItem( SID_SIZE_ALL );
- rSet.DisableItem( SID_SIZE_PAGE_WIDTH );
- rSet.DisableItem( SID_SIZE_PAGE );
- rSet.DisableItem( SID_INSERTPAGE );
- rSet.DisableItem( SID_DUPLICATE_PAGE );
- rSet.DisableItem( SID_MODIFYPAGE );
- rSet.DisableItem( SID_RENAMEPAGE );
- rSet.DisableItem( SID_RENAMEPAGE_QUICK );
- rSet.DisableItem( SID_DELETE_PAGE );
- rSet.DisableItem( SID_PAGESETUP );
-
- if( xSlideshow.is() && xSlideshow->isRunning() )
- {
- rSet.ClearItem(SID_OBJECT_ALIGN);
- rSet.ClearItem(SID_ZOOM_TOOLBOX);
- rSet.ClearItem(SID_OBJECT_CHOOSE_MODE);
- rSet.ClearItem(SID_DRAWTBX_TEXT);
- rSet.ClearItem(SID_DRAWTBX_RECTANGLES);
- rSet.ClearItem(SID_DRAWTBX_ELLIPSES);
- rSet.ClearItem(SID_DRAWTBX_LINES);
- rSet.ClearItem(SID_DRAWTBX_ARROWS);
- rSet.ClearItem(SID_DRAWTBX_3D_OBJECTS);
- rSet.ClearItem(SID_DRAWTBX_CONNECTORS);
- rSet.ClearItem(SID_OBJECT_CHOOSE_MODE );
- rSet.ClearItem(SID_DRAWTBX_INSERT);
- rSet.ClearItem(SID_INSERTFILE);
- rSet.ClearItem(SID_OBJECT_ROTATE);
- rSet.ClearItem(SID_OBJECT_ALIGN);
- rSet.ClearItem(SID_POSITION);
- rSet.ClearItem(SID_FM_CONFIG);
- rSet.ClearItem(SID_ANIMATION_EFFECTS);
- rSet.ClearItem(SID_ANIMATION_OBJECTS);
- rSet.ClearItem(SID_3D_WIN);
-
- rSet.DisableItem(SID_OBJECT_ALIGN);
- rSet.DisableItem(SID_ZOOM_TOOLBOX);
- rSet.DisableItem(SID_OBJECT_CHOOSE_MODE);
- rSet.DisableItem(SID_DRAWTBX_TEXT);
- rSet.DisableItem(SID_DRAWTBX_RECTANGLES);
- rSet.DisableItem(SID_DRAWTBX_ELLIPSES);
- rSet.DisableItem(SID_DRAWTBX_LINES);
- rSet.DisableItem(SID_DRAWTBX_ARROWS);
- rSet.DisableItem(SID_DRAWTBX_3D_OBJECTS);
- rSet.DisableItem(SID_DRAWTBX_CONNECTORS);
- rSet.DisableItem(SID_OBJECT_CHOOSE_MODE );
- rSet.DisableItem(SID_DRAWTBX_INSERT);
- rSet.DisableItem(SID_INSERTFILE);
- rSet.DisableItem(SID_OBJECT_ROTATE);
- rSet.DisableItem(SID_OBJECT_ALIGN);
- rSet.DisableItem(SID_POSITION);
- rSet.DisableItem(SID_FM_CONFIG);
- rSet.DisableItem(SID_ANIMATION_EFFECTS);
- rSet.DisableItem(SID_ANIMATION_OBJECTS);
- rSet.DisableItem(SID_3D_WIN);
- }
- }
-
- ///////////////////////////////////////////////////////////////////////
- // Menuoption: Change->Convert->To Bitmap, Change->Convert->To Metafile
- // disable, if there only Bitmap or Metafiles marked
- // Menuoption: Format->Area, Format->Line
- // disabled, if the marked objects not able to handle
- // these attributes
- //
-
- bool bSingleGraphicSelected = false;
-
- if (!mpDrawView->AreObjectsMarked())
- {
- rSet.DisableItem (SID_CONVERT_TO_METAFILE);
- rSet.DisableItem (SID_CONVERT_TO_BITMAP);
- }
- else
- {
- // get marklist
- SdrMarkList aMarkList = mpDrawView->GetMarkedObjectList();
-
- sal_Bool bFoundBitmap = sal_False;
- sal_Bool bFoundMetafile = sal_False;
- sal_Bool bFoundObjNoLine = sal_False;
- sal_Bool bFoundObjNoArea = sal_False;
- sal_Bool bFoundNoGraphicObj = sal_False;
- sal_Bool bFoundAny = sal_False;
- bool bFoundTable = false;
-
-// const int nMarkCount = (int) aMarkList.GetMarkCount();
- for (sal_uLong i=0; i < nMarkCount && !bFoundAny; i++)
- {
- SdrObject* pObj= aMarkList.GetMark(i)->GetMarkedSdrObj();
- sal_uInt16 nId = pObj->GetObjIdentifier();
- sal_uInt32 nInv = pObj->GetObjInventor();
-
- if(nInv == SdrInventor)
- {
- // 2D objects
- switch( nId )
- {
- case OBJ_PATHLINE :
- case OBJ_PLIN :
- case OBJ_LINE:
- case OBJ_FREELINE :
- case OBJ_EDGE:
- case OBJ_CARC :
- bFoundObjNoArea = sal_True;
- bFoundNoGraphicObj = sal_True;
- break;
- case OBJ_OLE2 :
- bFoundObjNoLine = sal_True;
- bFoundObjNoArea = sal_True;
- bFoundNoGraphicObj = sal_True;
- break;
- case OBJ_GRAF :
- bSingleGraphicSelected = nMarkCount == 1;
- switch ( ((SdrGrafObj*)pObj)->GetGraphicType() )
- {
- case GRAPHIC_BITMAP :
- bFoundBitmap = sal_True;
- break;
- case GRAPHIC_GDIMETAFILE :
- bFoundMetafile = sal_True;
- break;
- default:
- break;
- }
- break;
- case OBJ_TABLE:
- bFoundTable = true;
- break;
- default :
- bFoundAny = sal_True;
- }
- }
- else if(nInv == E3dInventor)
- {
- // 3D objects
- bFoundAny = sal_True;
- }
- }
-
- if( bFoundTable )
- rSet.DisableItem( SID_ATTRIBUTES_LINE );
-
- if (!bFoundAny)
- {
- // Disable menuitem for area-dialog
- if( bFoundObjNoArea ) // #i25616#
- rSet.DisableItem( SID_ATTRIBUTES_AREA );
-
- // Disable menuitem for line-dialog
- if( bFoundObjNoLine )
- rSet.DisableItem( SID_ATTRIBUTES_LINE );
-
- if( bFoundBitmap && !bFoundMetafile && !bFoundNoGraphicObj ) // only Bitmaps marked
- rSet.DisableItem( SID_CONVERT_TO_BITMAP );
- else if( !bFoundBitmap && bFoundMetafile && !bFoundNoGraphicObj ) // only Metafiles marked
- rSet.DisableItem( SID_CONVERT_TO_METAFILE );
- else if( !bFoundBitmap && !bFoundMetafile && !bFoundNoGraphicObj ) // nothing to do
- {
- rSet.DisableItem( SID_CONVERT_TO_BITMAP );
- rSet.DisableItem( SID_CONVERT_TO_METAFILE );
- }
- }
- }
-
- if( !bSingleGraphicSelected )
- {
- rSet.DisableItem (SID_OBJECT_CROP);
- rSet.DisableItem (SID_ATTR_GRAF_CROP);
- }
-
- ///////////////////////////////////////////////////////////////////////
- // Menuoption: Edit->Hyperlink
- // Disable, if there is no hyperlink
- //
- sal_Bool bDisableEditHyperlink = sal_True;
- if( mpDrawView->AreObjectsMarked() && ( mpDrawView->GetMarkedObjectList().GetMarkCount() == 1 ) )
- {
- if( mpDrawView->IsTextEdit() )
- {
- OutlinerView* pOLV = mpDrawView->GetTextEditOutlinerView();
- if (pOLV)
- {
- const SvxFieldItem* pFieldItem = pOLV->GetFieldAtSelection();
- if (pFieldItem)
- {
- ESelection aSel = pOLV->GetSelection();
- if ( abs( aSel.nEndPos - aSel.nStartPos ) == 1 )
- {
- const SvxFieldData* pField = pFieldItem->GetField();
- if ( pField->ISA(SvxURLField) )
- bDisableEditHyperlink = sal_False;
- }
- }
- }
- }
- else
- {
- SdrUnoObj* pUnoCtrl = PTR_CAST(SdrUnoObj, mpDrawView->GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj());
-
- if ( pUnoCtrl && FmFormInventor == pUnoCtrl->GetObjInventor() )
- {
- uno::Reference< awt::XControlModel > xControlModel( pUnoCtrl->GetUnoControlModel() );
- if( xControlModel.is() )
- {
- uno::Reference< beans::XPropertySet > xPropSet( xControlModel, uno::UNO_QUERY );
- if( xPropSet.is() )
- {
- uno::Reference< beans::XPropertySetInfo > xPropInfo( xPropSet->getPropertySetInfo() );
- if( xPropInfo.is() && xPropInfo->hasPropertyByName(
- rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "TargetURL"))))
- {
- bDisableEditHyperlink = sal_False;
- }
- }
- }
- }
- }
- }
-
- //highlight selected custom shape
- {
- sal_uInt16 nCurrentSId = 0;
- if(HasCurrentFunction())
- nCurrentSId = GetCurrentFunction()->GetSlotID();
-
- if ( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_DRAWTBX_CS_BASIC ) )
- rSet.Put(SfxBoolItem(SID_DRAWTBX_CS_BASIC, SID_DRAWTBX_CS_BASIC == nCurrentSId ));
- if ( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_DRAWTBX_CS_SYMBOL ) )
- rSet.Put(SfxBoolItem(SID_DRAWTBX_CS_SYMBOL, SID_DRAWTBX_CS_SYMBOL == nCurrentSId ));
- if ( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_DRAWTBX_CS_ARROW ) )
- rSet.Put(SfxBoolItem(SID_DRAWTBX_CS_ARROW, SID_DRAWTBX_CS_ARROW == nCurrentSId ));
- if ( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_DRAWTBX_CS_FLOWCHART ) )
- rSet.Put(SfxBoolItem(SID_DRAWTBX_CS_FLOWCHART, SID_DRAWTBX_CS_FLOWCHART == nCurrentSId ));
- if ( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_DRAWTBX_CS_CALLOUT ) )
- rSet.Put(SfxBoolItem(SID_DRAWTBX_CS_CALLOUT,SID_DRAWTBX_CS_CALLOUT == nCurrentSId ));
- if ( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_DRAWTBX_CS_STAR ) )
- rSet.Put(SfxBoolItem(SID_DRAWTBX_CS_STAR, SID_DRAWTBX_CS_STAR == nCurrentSId ));
- }
-
- if ( bDisableEditHyperlink || GetDocSh()->IsReadOnly() )
- rSet.DisableItem( SID_EDIT_HYPERLINK );
-
- if ( bDisableEditHyperlink )
- rSet.DisableItem( SID_OPEN_HYPERLINK );
-
-#if defined WNT || defined UNX
- if( !mxScannerManager.is() )
- {
- rSet.DisableItem( SID_TWAIN_SELECT );
- rSet.DisableItem( SID_TWAIN_TRANSFER );
- }
-#endif
-
- // Set the state of two entries in the 'Slide' context sub-menu
- // concerning the visibility of master page background and master page
- // shapes.
- if (rSet.GetItemState(SID_DISPLAY_MASTER_BACKGROUND) == SFX_ITEM_AVAILABLE
- || rSet.GetItemState(SID_DISPLAY_MASTER_OBJECTS) == SFX_ITEM_AVAILABLE)
- {
- SdPage* pPage = GetActualPage();
- if (pPage != NULL
- && GetDoc() != NULL)
- {
- SetOfByte aVisibleLayers = pPage->TRG_GetMasterPageVisibleLayers();
- SdrLayerAdmin& rLayerAdmin = GetDoc()->GetLayerAdmin();
- sal_uInt8 aBackgroundId = rLayerAdmin.GetLayerID(String(SdResId(STR_LAYER_BCKGRND)), sal_False);
- sal_uInt8 aObjectId = rLayerAdmin.GetLayerID(String(SdResId(STR_LAYER_BCKGRNDOBJ)), sal_False);
- rSet.Put(SfxBoolItem(SID_DISPLAY_MASTER_BACKGROUND,
- aVisibleLayers.IsSet(aBackgroundId)));
- rSet.Put(SfxBoolItem(SID_DISPLAY_MASTER_OBJECTS,
- aVisibleLayers.IsSet(aObjectId)));
- }
- }
-
- GetModeSwitchingMenuState (rSet);
-}
-
-void DrawViewShell::GetModeSwitchingMenuState (SfxItemSet &rSet)
-{
- //draview
- rSet.Put(SfxBoolItem(SID_DIAMODE, sal_False));
- rSet.Put(SfxBoolItem(SID_OUTLINEMODE, sal_False));
- if (mePageKind == PK_NOTES)
- {
- rSet.Put(SfxBoolItem(SID_DRAWINGMODE, sal_False));
- rSet.Put(SfxBoolItem(SID_NOTESMODE, sal_True));
- rSet.Put(SfxBoolItem(SID_HANDOUTMODE, sal_False));
- }
- else if (mePageKind == PK_HANDOUT)
- {
- rSet.Put(SfxBoolItem(SID_DRAWINGMODE, sal_False));
- rSet.Put(SfxBoolItem(SID_NOTESMODE, sal_False));
- rSet.Put(SfxBoolItem(SID_HANDOUTMODE, sal_True));
- }
- else
- {
- rSet.Put(SfxBoolItem(SID_DRAWINGMODE, sal_True));
- rSet.Put(SfxBoolItem(SID_NOTESMODE, sal_False));
- rSet.Put(SfxBoolItem(SID_HANDOUTMODE, sal_False));
- }
-
- // Removed [GetDocSh()->GetCurrentFunction() ||] from the following
- // clause because the current function of the docshell can only be
- // search and replace or spell checking and in that case switching the
- // view mode is allowed.
- const bool bIsRunning = SlideShow::IsRunning(GetViewShellBase());
-
- if (GetViewFrame()->GetFrame().IsInPlace() || bIsRunning)
- {
- if ( !GetViewFrame()->GetFrame().IsInPlace() )
- {
- rSet.ClearItem( SID_DRAWINGMODE );
- rSet.DisableItem( SID_DRAWINGMODE );
- }
-
- rSet.ClearItem( SID_NOTESMODE );
- rSet.DisableItem( SID_NOTESMODE );
-
- rSet.ClearItem( SID_HANDOUTMODE );
- rSet.DisableItem( SID_HANDOUTMODE );
-
- rSet.ClearItem( SID_OUTLINEMODE );
- rSet.DisableItem( SID_OUTLINEMODE );
-
- rSet.ClearItem( SID_DIAMODE );
- rSet.DisableItem( SID_DIAMODE );
- }
-
- if (GetDocSh()->GetCreateMode() == SFX_CREATE_MODE_EMBEDDED)
- {
- // Outplace-Edit: Kein Umschalten erlauben
- rSet.ClearItem( SID_OUTLINEMODE );
- rSet.DisableItem( SID_OUTLINEMODE );
-
- rSet.ClearItem( SID_DIAMODE );
- rSet.DisableItem( SID_DIAMODE );
-
- rSet.ClearItem( SID_NOTESMODE );
- rSet.DisableItem( SID_NOTESMODE );
-
- rSet.ClearItem( SID_HANDOUTMODE );
- rSet.DisableItem( SID_HANDOUTMODE );
- }
-
- svx::ExtrusionBar::getState( mpDrawView, rSet );
- svx::FontworkBar::getState( mpDrawView, rSet );
-}
-
-
-
-void DrawViewShell::GetState (SfxItemSet& rSet)
-{
- // Iterate over all requested items in the set.
- SfxWhichIter aIter( rSet );
- sal_uInt16 nWhich = aIter.FirstWhich();
- while (nWhich)
- {
- switch (nWhich)
- {
- case SID_SEARCH_ITEM:
- case SID_SEARCH_OPTIONS:
- // Forward this request to the the common (old) code of the
- // document shell.
- GetDocSh()->GetState (rSet);
- break;
- default:
- OSL_TRACE ("DrawViewShell::GetState(): can not handle which id %d", nWhich);
- break;
- }
- nWhich = aIter.NextWhich();
- }
-}
-
-
-
-
-void DrawViewShell::Execute (SfxRequest& rReq)
-{
- if(SlideShow::IsRunning(GetViewShellBase()))
- {
- // Do not execute anything during a native slide show.
- return;
- }
-
- switch (rReq.GetSlot())
- {
- case SID_SEARCH_ITEM:
- // Forward this request to the the common (old) code of the
- // document shell.
- GetDocSh()->Execute (rReq);
- break;
-
- case SID_SPELL_DIALOG:
- {
- SfxViewFrame* pViewFrame = GetViewFrame();
- if (rReq.GetArgs() != NULL)
- pViewFrame->SetChildWindow (SID_SPELL_DIALOG,
- ((const SfxBoolItem&) (rReq.GetArgs()->
- Get(SID_SPELL_DIALOG))).GetValue());
- else
- pViewFrame->ToggleChildWindow(SID_SPELL_DIALOG);
-
- pViewFrame->GetBindings().Invalidate(SID_SPELL_DIALOG);
- rReq.Ignore ();
- }
- break;
-
- default:
- OSL_TRACE ("DrawViewShell::Execute(): can not handle slot %d", rReq.GetSlot());
- break;
- }
-}
-
-} // end of namespace sd
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */