diff options
Diffstat (limited to 'forms/source/richtext/clipboarddispatcher.cxx')
-rw-r--r-- | forms/source/richtext/clipboarddispatcher.cxx | 210 |
1 files changed, 0 insertions, 210 deletions
diff --git a/forms/source/richtext/clipboarddispatcher.cxx b/forms/source/richtext/clipboarddispatcher.cxx deleted file mode 100644 index 3d689ae79..000000000 --- a/forms/source/richtext/clipboarddispatcher.cxx +++ /dev/null @@ -1,210 +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_forms.hxx" -#include "clipboarddispatcher.hxx" -#include <editeng/editview.hxx> - -/** === begin UNO includes === **/ -#include <com/sun/star/lang/DisposedException.hpp> -/** === end UNO includes === **/ -#include <svtools/cliplistener.hxx> -#include <svtools/transfer.hxx> - -//........................................................................ -namespace frm -{ -//........................................................................ - - using namespace ::com::sun::star::uno; - using namespace ::com::sun::star::frame; - using namespace ::com::sun::star::lang; - using namespace ::com::sun::star::util; - using namespace ::com::sun::star::beans; - - //==================================================================== - namespace - { - static URL createClipboardURL( OClipboardDispatcher::ClipboardFunc _eFunc ) - { - URL aURL; - switch ( _eFunc ) - { - case OClipboardDispatcher::eCut: - aURL.Complete = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:Cut" ) ); - break; - case OClipboardDispatcher::eCopy: - aURL.Complete = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:Copy" ) ); - break; - case OClipboardDispatcher::ePaste: - aURL.Complete = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:Paste" ) ); - break; - } - return aURL; - } - } - - //==================================================================== - //= OClipboardDispatcher - //==================================================================== - //-------------------------------------------------------------------- - OClipboardDispatcher::OClipboardDispatcher( EditView& _rView, ClipboardFunc _eFunc ) - :ORichTextFeatureDispatcher( _rView, createClipboardURL( _eFunc ) ) - ,m_eFunc( _eFunc ) - ,m_bLastKnownEnabled( sal_True ) - { - } - - //-------------------------------------------------------------------- - sal_Bool OClipboardDispatcher::implIsEnabled( ) const - { - sal_Bool bEnabled = sal_False; - switch ( m_eFunc ) - { - case eCut: - bEnabled = !getEditView()->IsReadOnly() && getEditView()->HasSelection(); - break; - - case eCopy: - bEnabled = getEditView()->HasSelection(); - break; - - case ePaste: - bEnabled = !getEditView()->IsReadOnly(); - break; - } - return bEnabled; - } - - //-------------------------------------------------------------------- - FeatureStateEvent OClipboardDispatcher::buildStatusEvent() const - { - FeatureStateEvent aEvent( ORichTextFeatureDispatcher::buildStatusEvent() ); - aEvent.IsEnabled = implIsEnabled(); - return aEvent; - } - - //-------------------------------------------------------------------- - void OClipboardDispatcher::invalidateFeatureState_Broadcast() - { - sal_Bool bEnabled = implIsEnabled(); - if ( m_bLastKnownEnabled == bEnabled ) - // nothing changed -> no notification - return; - m_bLastKnownEnabled = bEnabled; - - ORichTextFeatureDispatcher::invalidateFeatureState_Broadcast(); - } - - //-------------------------------------------------------------------- - void SAL_CALL OClipboardDispatcher::dispatch( const URL& /*_rURL*/, const Sequence< PropertyValue >& /*Arguments*/ ) throw (RuntimeException) - { - ::osl::MutexGuard aGuard( m_aMutex ); - if ( !getEditView() ) - throw DisposedException(); - - switch ( m_eFunc ) - { - case eCut: - getEditView()->Cut(); - break; - - case eCopy: - getEditView()->Copy(); - break; - - case ePaste: - getEditView()->Paste(); - break; - } - } - - //==================================================================== - //= OPasteClipboardDispatcher - //==================================================================== - //-------------------------------------------------------------------- - OPasteClipboardDispatcher::OPasteClipboardDispatcher( EditView& _rView ) - :OClipboardDispatcher( _rView, ePaste ) - ,m_pClipListener( NULL ) - ,m_bPastePossible( sal_False ) - { - m_pClipListener = new TransferableClipboardListener( LINK( this, OPasteClipboardDispatcher, OnClipboardChanged ) ); - m_pClipListener->acquire(); - m_pClipListener->AddRemoveListener( _rView.GetWindow(), sal_True ); - - // initial state - TransferableDataHelper aDataHelper( TransferableDataHelper::CreateFromSystemClipboard( _rView.GetWindow() ) ); - m_bPastePossible = ( aDataHelper.HasFormat( SOT_FORMAT_STRING ) || aDataHelper.HasFormat( SOT_FORMAT_RTF ) ); - } - - //-------------------------------------------------------------------- - OPasteClipboardDispatcher::~OPasteClipboardDispatcher() - { - if ( !isDisposed() ) - { - acquire(); - dispose(); - } - } - - //-------------------------------------------------------------------- - IMPL_LINK( OPasteClipboardDispatcher, OnClipboardChanged, TransferableDataHelper*, _pDataHelper ) - { - OSL_ENSURE( _pDataHelper, "OPasteClipboardDispatcher::OnClipboardChanged: ooops!" ); - m_bPastePossible = _pDataHelper->HasFormat( SOT_FORMAT_STRING ) - || _pDataHelper->HasFormat( SOT_FORMAT_RTF ); - - invalidate(); - - return 0L; - } - - //-------------------------------------------------------------------- - void OPasteClipboardDispatcher::disposing( ::osl::ClearableMutexGuard& _rClearBeforeNotify ) - { - OSL_ENSURE( getEditView() && getEditView()->GetWindow(), "OPasteClipboardDispatcher::disposing: EditView should not (yet) be disfunctional here!" ); - if ( getEditView() && getEditView()->GetWindow() && m_pClipListener ) - m_pClipListener->AddRemoveListener( getEditView()->GetWindow(), sal_False ); - m_pClipListener->release(); - m_pClipListener = NULL; - - OClipboardDispatcher::disposing( _rClearBeforeNotify ); - } - - //-------------------------------------------------------------------- - sal_Bool OPasteClipboardDispatcher::implIsEnabled( ) const - { - return m_bPastePossible && OClipboardDispatcher::implIsEnabled(); - } - -//........................................................................ -} // namespace frm -//........................................................................ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |