blob: 037b381529afbea3cf9e84504bad71c7ed0b689e [file] [log] [blame]
/**************************************************************
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*************************************************************/
#ifndef SC_DRWTRANS_HXX
#define SC_DRWTRANS_HXX
#include <com/sun/star/uno/Reference.hxx>
#include <com/sun/star/embed/XEmbeddedObject.hpp>
#include <svtools/transfer.hxx>
#include <sfx2/objsh.hxx>
#include "global.hxx"
#include "charthelper.hxx"
#include "rangelst.hxx"
class SdrModel;
class ScDocShell;
class INetBookmark;
class SdrObject;
class SdrView;
class ScDrawView;
class SdrOle2Obj;
class ScDrawTransferObj : public TransferableHelper
{
private:
SdrModel* pModel;
TransferableDataHelper aOleData;
TransferableObjectDescriptor aObjDesc;
//REMOVE SvEmbeddedObjectRef aDocShellRef;
//REMOVE SvEmbeddedObjectRef aDrawPersistRef;
SfxObjectShellRef aDocShellRef;
SfxObjectShellRef aDrawPersistRef;
// extracted from model in ctor:
Size aSrcSize;
INetBookmark* pBookmark;
sal_Bool bGraphic;
sal_Bool bGrIsBit;
sal_Bool bOleObj;
// source information for drag&drop:
// (view is needed to handle drawing obejcts)
SdrView* pDragSourceView;
sal_uInt16 nDragSourceFlags;
sal_Bool bDragWasInternal;
sal_uInt32 nSourceDocID;
ScRangeListVector m_aProtectedChartRangesVector;
void InitDocShell();
//REMOVE SvInPlaceObjectRef GetSingleObject();
SdrOle2Obj* GetSingleObject();
public:
ScDrawTransferObj( SdrModel* pClipModel, ScDocShell* pContainerShell,
const TransferableObjectDescriptor& rDesc );
virtual ~ScDrawTransferObj();
virtual void AddSupportedFormats();
virtual sal_Bool GetData( const ::com::sun::star::datatransfer::DataFlavor& rFlavor );
virtual sal_Bool WriteObject( SotStorageStreamRef& rxOStm, void* pUserObject, sal_uInt32 nUserObjectId,
const ::com::sun::star::datatransfer::DataFlavor& rFlavor );
virtual void ObjectReleased();
virtual void DragFinished( sal_Int8 nDropAction );
SdrModel* GetModel() { return pModel; }
void SetDrawPersist( const SfxObjectShellRef& rRef );
void SetDragSource( ScDrawView* pView );
void SetDragSourceObj( SdrObject* pObj, SCTAB nTab );
void SetDragSourceFlags( sal_uInt16 nFlags );
void SetDragWasInternal();
SdrView* GetDragSourceView() { return pDragSourceView; }
sal_uInt16 GetDragSourceFlags() const { return nDragSourceFlags; }
void SetSourceDocID( sal_uInt32 nVal )
{ nSourceDocID = nVal; }
sal_uInt32 GetSourceDocID() const { return nSourceDocID; }
static ScDrawTransferObj* GetOwnClipboard( Window* pUIWin );
virtual sal_Int64 SAL_CALL getSomething( const com::sun::star::uno::Sequence< sal_Int8 >& rId ) throw( com::sun::star::uno::RuntimeException );
static const com::sun::star::uno::Sequence< sal_Int8 >& getUnoTunnelId();
const ScRangeListVector& GetProtectedChartRangesVector() const { return m_aProtectedChartRangesVector; }
};
#endif