1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 * Copyright 2008 by Sun Microsystems, Inc.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * $RCSfile: sdxfer.hxx,v $
12 * This file is part of OpenOffice.org.
14 * OpenOffice.org is free software: you can redistribute it and/or modify
15 * it under the terms of the GNU Lesser General Public License version 3
16 * only, as published by the Free Software Foundation.
18 * OpenOffice.org is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU Lesser General Public License version 3 for more details
22 * (a copy is included in the LICENSE file that accompanied this code).
24 * You should have received a copy of the GNU Lesser General Public License
25 * version 3 along with OpenOffice.org. If not, see
26 * <http://www.openoffice.org/license.html>
27 * for a copy of the LGPLv3 License.
29 ************************************************************************/
31 #ifndef _SD_SDXFER_HXX
32 #define _SD_SDXFER_HXX
34 #include <svtools/transfer.hxx>
35 #include <vcl/graph.hxx>
36 #include <sfx2/objsh.hxx>
37 #include <svtools/lstner.hxx>
54 class SfxObjectShellRef
;
55 class SdTransferable
: public TransferableHelper
, public SfxListener
59 SdTransferable( SdDrawDocument
* pSrcDoc
, ::sd::View
* pWorkView
, BOOL bInitOnGetData
);
62 void SetDocShell( const SfxObjectShellRef
& rRef
) { maDocShellRef
= rRef
; }
63 const SfxObjectShellRef
& GetDocShell() const { return maDocShellRef
; }
65 void SetWorkDocument( const SdDrawDocument
* pWorkDoc
) { mpSdDrawDocument
= mpSdDrawDocumentIntern
= (SdDrawDocument
*) pWorkDoc
; }
66 const SdDrawDocument
* GetWorkDocument() const { return mpSdDrawDocument
; }
68 void SetView( const ::sd::View
* pView
) { mpSdView
= pView
; }
69 const ::sd::View
* GetView() const { return mpSdView
; }
71 void SetObjectDescriptor( const TransferableObjectDescriptor
& rObjDesc
);
73 void SetStartPos( const Point
& rStartPos
) { maStartPos
= rStartPos
; }
74 const Point
& GetStartPos() const { return maStartPos
; }
76 void SetInternalMove( BOOL bSet
) { mbInternalMove
= bSet
; }
77 BOOL
IsInternalMove() const { return mbInternalMove
; }
79 BOOL
HasSourceDoc( const SdDrawDocument
* pDoc
) const { return( mpSourceDoc
== pDoc
); }
81 void SetPageBookmarks( const List
& rPageBookmarks
, BOOL bPersistent
);
82 BOOL
IsPageTransferable() const { return mbPageTransferable
; }
83 BOOL
HasPageBookmarks() const { return( mpPageDocShell
&& ( maPageBookmarks
.Count() > 0 ) ); }
84 const List
& GetPageBookmarks() const { return maPageBookmarks
; }
85 ::sd::DrawDocShell
* GetPageDocShell() const { return mpPageDocShell
; }
87 sal_Bool
SetTableRTF( SdDrawDocument
*, const ::com::sun::star::datatransfer::DataFlavor
& );
89 static const ::com::sun::star::uno::Sequence
< sal_Int8
>& getUnoTunnelId();
90 static SdTransferable
* getImplementation( const ::com::sun::star::uno::Reference
< ::com::sun::star::uno::XInterface
>& rxData
) throw();
93 virtual void Notify( SfxBroadcaster
& rBC
, const SfxHint
& rHint
);
97 virtual void AddSupportedFormats();
98 virtual sal_Bool
GetData( const ::com::sun::star::datatransfer::DataFlavor
& rFlavor
);
99 virtual sal_Bool
WriteObject( SotStorageStreamRef
& rxOStm
, void* pUserObject
, sal_uInt32 nUserObjectId
, const ::com::sun::star::datatransfer::DataFlavor
& rFlavor
);
100 virtual void DragFinished( sal_Int8 nDropAction
);
101 virtual void ObjectReleased();
103 virtual sal_Int64 SAL_CALL
getSomething( const ::com::sun::star::uno::Sequence
< sal_Int8
>& rId
) throw( ::com::sun::star::uno::RuntimeException
);
107 SfxObjectShellRef maDocShellRef
;
108 ::sd::DrawDocShell
* mpPageDocShell
;
109 List maPageBookmarks
;
110 TransferableDataHelper
* mpOLEDataHelper
;
111 TransferableObjectDescriptor
* mpObjDesc
;
112 const ::sd::View
* mpSdView
;
113 ::sd::View
* mpSdViewIntern
;
114 SdDrawDocument
* mpSdDrawDocument
;
115 SdDrawDocument
* mpSdDrawDocumentIntern
;
116 SdDrawDocument
* mpSourceDoc
;
117 VirtualDevice
* mpVDev
;
118 INetBookmark
* mpBookmark
;
120 ImageMap
* mpImageMap
;
123 BOOL mbInternalMove
: 1;
124 BOOL mbOwnDocument
: 1;
127 BOOL mbPageTransferable
: 1;
128 BOOL mbPageTransferablePersistent
: 1;
133 SdTransferable( const SdTransferable
& );
134 SdTransferable
& operator=( const SdTransferable
& );
136 void CreateObjectReplacement( SdrObject
* pObj
);
141 #endif // _SD_SDXFER_HXX