xref: /aoo4110/main/sd/source/ui/inc/sdtreelb.hxx (revision b1cdbd2c)
1*b1cdbd2cSJim Jagielski /**************************************************************
2*b1cdbd2cSJim Jagielski  *
3*b1cdbd2cSJim Jagielski  * Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski  * or more contributor license agreements.  See the NOTICE file
5*b1cdbd2cSJim Jagielski  * distributed with this work for additional information
6*b1cdbd2cSJim Jagielski  * regarding copyright ownership.  The ASF licenses this file
7*b1cdbd2cSJim Jagielski  * to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski  * "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski  * with the License.  You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski  *
11*b1cdbd2cSJim Jagielski  *   http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski  *
13*b1cdbd2cSJim Jagielski  * Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski  * software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski  * KIND, either express or implied.  See the License for the
17*b1cdbd2cSJim Jagielski  * specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski  * under the License.
19*b1cdbd2cSJim Jagielski  *
20*b1cdbd2cSJim Jagielski  *************************************************************/
21*b1cdbd2cSJim Jagielski 
22*b1cdbd2cSJim Jagielski 
23*b1cdbd2cSJim Jagielski 
24*b1cdbd2cSJim Jagielski #ifndef _SDTREELB_HXX
25*b1cdbd2cSJim Jagielski #define _SDTREELB_HXX
26*b1cdbd2cSJim Jagielski 
27*b1cdbd2cSJim Jagielski #include <svtools/transfer.hxx>
28*b1cdbd2cSJim Jagielski 
29*b1cdbd2cSJim Jagielski #ifndef _SD_SDRESID_HXX
30*b1cdbd2cSJim Jagielski #include "sdresid.hxx"
31*b1cdbd2cSJim Jagielski #endif
32*b1cdbd2cSJim Jagielski #include "pres.hxx"
33*b1cdbd2cSJim Jagielski #include "sddllapi.h"
34*b1cdbd2cSJim Jagielski #include <tools/string.hxx>
35*b1cdbd2cSJim Jagielski #include <svtools/svtreebx.hxx>
36*b1cdbd2cSJim Jagielski #include <svl/urlbmk.hxx>
37*b1cdbd2cSJim Jagielski #include <tools/ref.hxx>
38*b1cdbd2cSJim Jagielski #include "sdxfer.hxx"
39*b1cdbd2cSJim Jagielski #include <vector>
40*b1cdbd2cSJim Jagielski using namespace std;
41*b1cdbd2cSJim Jagielski #include <boost/scoped_ptr.hpp>
42*b1cdbd2cSJim Jagielski #include <boost/function.hpp>
43*b1cdbd2cSJim Jagielski 
44*b1cdbd2cSJim Jagielski class SdDrawDocument;
45*b1cdbd2cSJim Jagielski class SfxMedium;
46*b1cdbd2cSJim Jagielski class SfxViewFrame;
47*b1cdbd2cSJim Jagielski class SdNavigatorWin;
48*b1cdbd2cSJim Jagielski class SdrObject;
49*b1cdbd2cSJim Jagielski class SdrObjList;
50*b1cdbd2cSJim Jagielski class SdPage;
51*b1cdbd2cSJim Jagielski class SvLBoxEntry;
52*b1cdbd2cSJim Jagielski 
53*b1cdbd2cSJim Jagielski namespace sd {
54*b1cdbd2cSJim Jagielski class ViewShell;
55*b1cdbd2cSJim Jagielski 
56*b1cdbd2cSJim Jagielski class DrawDocShell;
57*b1cdbd2cSJim Jagielski #ifndef SV_DECL_DRAW_DOC_SHELL_DEFINED
58*b1cdbd2cSJim Jagielski #define SV_DECL_DRAW_DOC_SHELL_DEFINED
59*b1cdbd2cSJim Jagielski SV_DECL_REF(DrawDocShell)
60*b1cdbd2cSJim Jagielski #endif
61*b1cdbd2cSJim Jagielski }
62*b1cdbd2cSJim Jagielski 
63*b1cdbd2cSJim Jagielski /*************************************************************************
64*b1cdbd2cSJim Jagielski |*
65*b1cdbd2cSJim Jagielski |* Effekte-Tab-Dialog
66*b1cdbd2cSJim Jagielski |*
67*b1cdbd2cSJim Jagielski \************************************************************************/
68*b1cdbd2cSJim Jagielski 
69*b1cdbd2cSJim Jagielski class SD_DLLPUBLIC SdPageObjsTLB : public SvTreeListBox
70*b1cdbd2cSJim Jagielski {
71*b1cdbd2cSJim Jagielski private:
72*b1cdbd2cSJim Jagielski 
73*b1cdbd2cSJim Jagielski 	static sal_Bool  SD_DLLPRIVATE bIsInDrag;      // static, falls der Navigator im ExecuteDrag geloescht wird
74*b1cdbd2cSJim Jagielski 
75*b1cdbd2cSJim Jagielski 	//Solution: set contenttree in SdNavigatorWin
76*b1cdbd2cSJim Jagielski     sal_Bool                           bisInSdNavigatorWin;
77*b1cdbd2cSJim Jagielski public:
78*b1cdbd2cSJim Jagielski 
79*b1cdbd2cSJim Jagielski 	// nested class to implement the TransferableHelper
80*b1cdbd2cSJim Jagielski 	class SdPageObjsTransferable : public SdTransferable
81*b1cdbd2cSJim Jagielski 	{
82*b1cdbd2cSJim Jagielski 	public:
83*b1cdbd2cSJim Jagielski         SdPageObjsTransferable(
84*b1cdbd2cSJim Jagielski             SdPageObjsTLB& rParent,
85*b1cdbd2cSJim Jagielski             const INetBookmark& rBookmark,
86*b1cdbd2cSJim Jagielski             ::sd::DrawDocShell& rDocShell,
87*b1cdbd2cSJim Jagielski             NavigatorDragType eDragType,
88*b1cdbd2cSJim Jagielski             const ::com::sun::star::uno::Any& rTreeListBoxData );
89*b1cdbd2cSJim Jagielski 	    ::sd::DrawDocShell&     GetDocShell() const;
90*b1cdbd2cSJim Jagielski 	    NavigatorDragType   GetDragType() const;
91*b1cdbd2cSJim Jagielski 
92*b1cdbd2cSJim Jagielski     	static const ::com::sun::star::uno::Sequence< sal_Int8 >& getUnoTunnelId();
93*b1cdbd2cSJim Jagielski         static SdPageObjsTransferable* getImplementation( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& rxData ) throw();
94*b1cdbd2cSJim Jagielski         /** Return a temporary transferable data flavor that is used
95*b1cdbd2cSJim Jagielski             internally in the navigator for reordering entries.  Its
96*b1cdbd2cSJim Jagielski             lifetime ends with the office application.
97*b1cdbd2cSJim Jagielski         */
98*b1cdbd2cSJim Jagielski         static sal_uInt32 GetListBoxDropFormatId (void);
99*b1cdbd2cSJim Jagielski 
100*b1cdbd2cSJim Jagielski 	private:
101*b1cdbd2cSJim Jagielski         /** Temporary drop flavor id that is used internally in the
102*b1cdbd2cSJim Jagielski             navigator.
103*b1cdbd2cSJim Jagielski         */
104*b1cdbd2cSJim Jagielski         static sal_uInt32 mnListBoxDropFormatId;
105*b1cdbd2cSJim Jagielski 
106*b1cdbd2cSJim Jagielski 		SdPageObjsTLB&		mrParent;
107*b1cdbd2cSJim Jagielski 		INetBookmark		maBookmark;
108*b1cdbd2cSJim Jagielski 		::sd::DrawDocShell&     mrDocShell;
109*b1cdbd2cSJim Jagielski 		NavigatorDragType   meDragType;
110*b1cdbd2cSJim Jagielski         const ::com::sun::star::uno::Any maTreeListBoxData;
111*b1cdbd2cSJim Jagielski 		SD_DLLPRIVATE virtual				~SdPageObjsTransferable();
112*b1cdbd2cSJim Jagielski 
113*b1cdbd2cSJim Jagielski 		SD_DLLPRIVATE virtual void		AddSupportedFormats();
114*b1cdbd2cSJim Jagielski 		SD_DLLPRIVATE virtual sal_Bool	GetData( const ::com::sun::star::datatransfer::DataFlavor& rFlavor );
115*b1cdbd2cSJim Jagielski 		SD_DLLPRIVATE virtual void		DragFinished( sal_Int8 nDropAction );
116*b1cdbd2cSJim Jagielski 
117*b1cdbd2cSJim Jagielski         SD_DLLPRIVATE virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& rId ) throw( ::com::sun::star::uno::RuntimeException );
118*b1cdbd2cSJim Jagielski 	};
119*b1cdbd2cSJim Jagielski 
120*b1cdbd2cSJim Jagielski 	friend class SdPageObjsTLB::SdPageObjsTransferable;
121*b1cdbd2cSJim Jagielski 
122*b1cdbd2cSJim Jagielski     /** Determine whether the specified page belongs to the current show
123*b1cdbd2cSJim Jagielski         which is either the standard show or a custom show.
124*b1cdbd2cSJim Jagielski         @param pPage
125*b1cdbd2cSJim Jagielski             Pointer to the page for which to check whether it belongs to the
126*b1cdbd2cSJim Jagielski             show.
127*b1cdbd2cSJim Jagielski         @return
128*b1cdbd2cSJim Jagielski             Returns <FALSE/> if there is no custom show or if the current
129*b1cdbd2cSJim Jagielski             show does not contain the specified page at least once.
130*b1cdbd2cSJim Jagielski     */
131*b1cdbd2cSJim Jagielski     bool PageBelongsToCurrentShow (const SdPage* pPage) const;
132*b1cdbd2cSJim Jagielski 
133*b1cdbd2cSJim Jagielski protected:
134*b1cdbd2cSJim Jagielski 
135*b1cdbd2cSJim Jagielski 	Window* 				mpParent;
136*b1cdbd2cSJim Jagielski 	const SdDrawDocument*	mpDoc;
137*b1cdbd2cSJim Jagielski 	SdDrawDocument* 		mpBookmarkDoc;
138*b1cdbd2cSJim Jagielski 	SfxMedium*				mpMedium;
139*b1cdbd2cSJim Jagielski 	SfxMedium*				mpOwnMedium;
140*b1cdbd2cSJim Jagielski 	Image					maImgOle;
141*b1cdbd2cSJim Jagielski 	Image					maImgGraphic;
142*b1cdbd2cSJim Jagielski 	Image					maImgOleH;
143*b1cdbd2cSJim Jagielski 	Image					maImgGraphicH;
144*b1cdbd2cSJim Jagielski 	sal_Bool                    mbLinkableSelected;
145*b1cdbd2cSJim Jagielski 	sal_Bool					mbDragEnabled;
146*b1cdbd2cSJim Jagielski 	String					maDocName;
147*b1cdbd2cSJim Jagielski 	::sd::DrawDocShellRef		mxBookmarkDocShRef;	// Zum Laden von Bookmarks
148*b1cdbd2cSJim Jagielski 	::sd::DrawDocShell* 		mpDropDocSh;
149*b1cdbd2cSJim Jagielski 	SdNavigatorWin*			mpDropNavWin;
150*b1cdbd2cSJim Jagielski 	SfxViewFrame*           mpFrame;
151*b1cdbd2cSJim Jagielski 	vector<String>			maTreeItem;
152*b1cdbd2cSJim Jagielski 	sal_Bool					mbSaveTreeItemState;
153*b1cdbd2cSJim Jagielski 	String					maSelectionEntryText;
154*b1cdbd2cSJim Jagielski 
155*b1cdbd2cSJim Jagielski 	// DragSourceHelper
156*b1cdbd2cSJim Jagielski 	virtual void			StartDrag( sal_Int8 nAction, const Point& rPosPixel );
157*b1cdbd2cSJim Jagielski 
158*b1cdbd2cSJim Jagielski 	// DropTargetHelper
159*b1cdbd2cSJim Jagielski 	virtual sal_Int8		AcceptDrop( const AcceptDropEvent& rEvt );
160*b1cdbd2cSJim Jagielski 	virtual	sal_Int8		ExecuteDrop( const ExecuteDropEvent& rEvt );
161*b1cdbd2cSJim Jagielski 
162*b1cdbd2cSJim Jagielski 	virtual void			RequestingChilds( SvLBoxEntry* pParent );
163*b1cdbd2cSJim Jagielski 
164*b1cdbd2cSJim Jagielski     void                    DoDrag();
165*b1cdbd2cSJim Jagielski 	void					OnDragFinished( sal_uInt8 nDropAction );
166*b1cdbd2cSJim Jagielski 
167*b1cdbd2cSJim Jagielski     /** Return the name of the object.  When the object has no user supplied
168*b1cdbd2cSJim Jagielski         name and the bCreate flag is <TRUE/> then a name is created
169*b1cdbd2cSJim Jagielski         automatically.  Additionally the mbShowAllShapes flag is taken into
170*b1cdbd2cSJim Jagielski         account when there is no user supplied name.  When this flag is
171*b1cdbd2cSJim Jagielski         <FALSE/> then no name is created.
172*b1cdbd2cSJim Jagielski         @param pObject
173*b1cdbd2cSJim Jagielski             When this is NULL then an empty string is returned, regardless
174*b1cdbd2cSJim Jagielski             of the value of bCreate.
175*b1cdbd2cSJim Jagielski         @param bCreate
176*b1cdbd2cSJim Jagielski             This flag controls for objects without user supplied name
177*b1cdbd2cSJim Jagielski             whether a name is created.  When a name is created then this
178*b1cdbd2cSJim Jagielski             name is not stored in the object.
179*b1cdbd2cSJim Jagielski     */
180*b1cdbd2cSJim Jagielski     String GetObjectName (
181*b1cdbd2cSJim Jagielski         const SdrObject* pObject,
182*b1cdbd2cSJim Jagielski         const bool bCreate = true) const;
183*b1cdbd2cSJim Jagielski     void                    CloseBookmarkDoc();
184*b1cdbd2cSJim Jagielski 							DECL_STATIC_LINK(SdPageObjsTLB, ExecDragHdl, void*);
185*b1cdbd2cSJim Jagielski 
186*b1cdbd2cSJim Jagielski     /** Handle the reordering of entries in the navigator.  This method
187*b1cdbd2cSJim Jagielski         reorders both the involved shapes in their page as well as the
188*b1cdbd2cSJim Jagielski         associated list box entries.
189*b1cdbd2cSJim Jagielski     */
190*b1cdbd2cSJim Jagielski 	virtual sal_Bool NotifyMoving(
191*b1cdbd2cSJim Jagielski 		SvLBoxEntry*  pTarget,
192*b1cdbd2cSJim Jagielski 		SvLBoxEntry*  pEntry,
193*b1cdbd2cSJim Jagielski 		SvLBoxEntry*& rpNewParent,
194*b1cdbd2cSJim Jagielski 		sal_uLong&		  rNewChildPos);
195*b1cdbd2cSJim Jagielski 
196*b1cdbd2cSJim Jagielski     using Window::GetDropTarget;
197*b1cdbd2cSJim Jagielski     virtual SvLBoxEntry* GetDropTarget (const Point& rLocation);
198*b1cdbd2cSJim Jagielski 	virtual void 	InitEntry(SvLBoxEntry*,const XubString&,const Image&,const Image&,SvLBoxButtonKind );
199*b1cdbd2cSJim Jagielski 
200*b1cdbd2cSJim Jagielski public:
201*b1cdbd2cSJim Jagielski 
202*b1cdbd2cSJim Jagielski 							SdPageObjsTLB( Window* pParent, const SdResId& rSdResId );
203*b1cdbd2cSJim Jagielski 							~SdPageObjsTLB();
204*b1cdbd2cSJim Jagielski    // helper function for 	GetEntryAltText and GetEntryLongDescription
205*b1cdbd2cSJim Jagielski     String			getAltLongDescText( SvLBoxEntry* pEntry , sal_Bool isAltText) const;
206*b1cdbd2cSJim Jagielski     String  		GetEntryAltText( SvLBoxEntry* pEntry ) const;
207*b1cdbd2cSJim Jagielski     String  		GetEntryLongDescription( SvLBoxEntry* pEntry ) const;
208*b1cdbd2cSJim Jagielski 	virtual void			SelectHdl();
209*b1cdbd2cSJim Jagielski 	virtual void			KeyInput( const KeyEvent& rKEvt );
210*b1cdbd2cSJim Jagielski 
SetViewFrame(SfxViewFrame * pViewFrame)211*b1cdbd2cSJim Jagielski 	void					SetViewFrame( SfxViewFrame* pViewFrame ) { mpFrame = pViewFrame; }
GetViewFrame() const212*b1cdbd2cSJim Jagielski 	SfxViewFrame*			GetViewFrame() const { return mpFrame; }
213*b1cdbd2cSJim Jagielski 
214*b1cdbd2cSJim Jagielski 	void					Fill( const SdDrawDocument*, sal_Bool bAllPages, const String& rDocName );
215*b1cdbd2cSJim Jagielski 	void					Fill( const SdDrawDocument*, SfxMedium* pSfxMedium, const String& rDocName );
216*b1cdbd2cSJim Jagielski     void                    SetShowAllShapes (const bool bShowAllShapes, const bool bFill);
217*b1cdbd2cSJim Jagielski     bool                    GetShowAllShapes (void) const;
218*b1cdbd2cSJim Jagielski 	sal_Bool					IsEqualToDoc( const SdDrawDocument* pInDoc = NULL );
219*b1cdbd2cSJim Jagielski 	sal_Bool					HasSelectedChilds( const String& rName );
220*b1cdbd2cSJim Jagielski 	sal_Bool					SelectEntry( const String& rName );
221*b1cdbd2cSJim Jagielski 	String					GetSelectEntry();
222*b1cdbd2cSJim Jagielski 	//Solution: Mark Current Entry
223*b1cdbd2cSJim Jagielski 	void                    MarkCurEntry( const String& rName );
SetSdNavigatorWinFlag(sal_Bool isInSdNavigatorWin)224*b1cdbd2cSJim Jagielski 	void                    SetSdNavigatorWinFlag(sal_Bool isInSdNavigatorWin){bisInSdNavigatorWin =isInSdNavigatorWin;};
225*b1cdbd2cSJim Jagielski 	void                    FreshCurEntry();
226*b1cdbd2cSJim Jagielski 
227*b1cdbd2cSJim Jagielski 	void					Clear();
SetSaveTreeItemStateFlag(sal_Bool bState)228*b1cdbd2cSJim Jagielski 	void					SetSaveTreeItemStateFlag(sal_Bool bState){mbSaveTreeItemState = bState;}
229*b1cdbd2cSJim Jagielski 	void					SaveExpandedTreeItemState(SvLBoxEntry* pEntry, vector<String>& vectTreeItem);
230*b1cdbd2cSJim Jagielski 	List*					GetSelectEntryList( sal_uInt16 nDepth );
231*b1cdbd2cSJim Jagielski 	SdDrawDocument*			GetBookmarkDoc(SfxMedium* pMedium = NULL);
GetDropDocSh()232*b1cdbd2cSJim Jagielski 	::sd::DrawDocShell*			GetDropDocSh() { return(mpDropDocSh); }
233*b1cdbd2cSJim Jagielski 
IsLinkableSelected() const234*b1cdbd2cSJim Jagielski 	sal_Bool                    IsLinkableSelected() const { return mbLinkableSelected; }
235*b1cdbd2cSJim Jagielski 
236*b1cdbd2cSJim Jagielski 	static sal_Bool				IsInDrag();
237*b1cdbd2cSJim Jagielski 	using SvLBox::ExecuteDrop;
238*b1cdbd2cSJim Jagielski 
239*b1cdbd2cSJim Jagielski     using SvTreeListBox::SelectEntry;
240*b1cdbd2cSJim Jagielski 
241*b1cdbd2cSJim Jagielski     /** Return the view shell that is linked to the given doc shell.
242*b1cdbd2cSJim Jagielski         Call this method when the there is a chance that the doc shell
243*b1cdbd2cSJim Jagielski         has been disconnected from the view shell (but not the other
244*b1cdbd2cSJim Jagielski         way round.)
245*b1cdbd2cSJim Jagielski         @return
246*b1cdbd2cSJim Jagielski             May return <NULL/> when the link between view shell and
247*b1cdbd2cSJim Jagielski             doc shell has been severed.
248*b1cdbd2cSJim Jagielski     */
249*b1cdbd2cSJim Jagielski     static ::sd::ViewShell* GetViewShellForDocShell (::sd::DrawDocShell &rDocShell);
250*b1cdbd2cSJim Jagielski 
251*b1cdbd2cSJim Jagielski private:
252*b1cdbd2cSJim Jagielski     /** This flag controls whether all shapes are shown as children of pages
253*b1cdbd2cSJim Jagielski         and group shapes or only the named shapes.
254*b1cdbd2cSJim Jagielski     */
255*b1cdbd2cSJim Jagielski     bool mbShowAllShapes;
256*b1cdbd2cSJim Jagielski     /** This flag controls whether to show all pages.
257*b1cdbd2cSJim Jagielski     */
258*b1cdbd2cSJim Jagielski     bool mbShowAllPages;
259*b1cdbd2cSJim Jagielski 
260*b1cdbd2cSJim Jagielski     /** Return <TRUE/> when the current transferable may be dropped at the
261*b1cdbd2cSJim Jagielski         given list box entry.
262*b1cdbd2cSJim Jagielski     */
263*b1cdbd2cSJim Jagielski     bool IsDropAllowed (SvLBoxEntry* pEntry);
264*b1cdbd2cSJim Jagielski 
265*b1cdbd2cSJim Jagielski     /** This inner class is defined in sdtreelb.cxx and is basically a
266*b1cdbd2cSJim Jagielski         container for the icons used in the list box for the entries.
267*b1cdbd2cSJim Jagielski     */
268*b1cdbd2cSJim Jagielski     class IconProvider;
269*b1cdbd2cSJim Jagielski 
270*b1cdbd2cSJim Jagielski     /** Add one list box entry for the parent of the given shapes and one child entry for
271*b1cdbd2cSJim Jagielski         each of the given shapes.
272*b1cdbd2cSJim Jagielski         @param rList
273*b1cdbd2cSJim Jagielski             The container of shapes that are to be inserted.
274*b1cdbd2cSJim Jagielski         @param pShape
275*b1cdbd2cSJim Jagielski             The parent shape or NULL when the parent is a page.
276*b1cdbd2cSJim Jagielski         @param rsName
277*b1cdbd2cSJim Jagielski             The name to be displayed for the new parent node.
278*b1cdbd2cSJim Jagielski         @param bIsExcluded
279*b1cdbd2cSJim Jagielski             Some pages can be excluded (from the show?).
280*b1cdbd2cSJim Jagielski         @param pParentEntry
281*b1cdbd2cSJim Jagielski             The parent entry of the new parent entry.
282*b1cdbd2cSJim Jagielski         @param rIconProvider
283*b1cdbd2cSJim Jagielski             Icons used to visualize the different shape and page types.
284*b1cdbd2cSJim Jagielski     */
285*b1cdbd2cSJim Jagielski     void AddShapeList (
286*b1cdbd2cSJim Jagielski         const SdrObjList& rList,
287*b1cdbd2cSJim Jagielski         SdrObject* pShape,
288*b1cdbd2cSJim Jagielski         const ::rtl::OUString& rsName,
289*b1cdbd2cSJim Jagielski         const bool bIsExcluded,
290*b1cdbd2cSJim Jagielski         SvLBoxEntry* pParentEntry,
291*b1cdbd2cSJim Jagielski         const IconProvider& rIconProvider);
292*b1cdbd2cSJim Jagielski 
293*b1cdbd2cSJim Jagielski     /** Add the given object to a transferable object so that the object can
294*b1cdbd2cSJim Jagielski         be dragged and dropped without having a name.
295*b1cdbd2cSJim Jagielski     */
296*b1cdbd2cSJim Jagielski     void AddShapeToTransferable (
297*b1cdbd2cSJim Jagielski         SdTransferable& rTransferable,
298*b1cdbd2cSJim Jagielski         SdrObject& rObject) const;
299*b1cdbd2cSJim Jagielski };
300*b1cdbd2cSJim Jagielski 
301*b1cdbd2cSJim Jagielski #endif		// _SDTREELB_HXX
302