xref: /trunk/main/sw/inc/docsh.hxx (revision 914d351e5f5b84e4342a86d6ab8d4aca7308b9bd)
11d2dbeb0SAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
31d2dbeb0SAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
41d2dbeb0SAndrew Rist  * or more contributor license agreements.  See the NOTICE file
51d2dbeb0SAndrew Rist  * distributed with this work for additional information
61d2dbeb0SAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
71d2dbeb0SAndrew Rist  * to you under the Apache License, Version 2.0 (the
81d2dbeb0SAndrew Rist  * "License"); you may not use this file except in compliance
91d2dbeb0SAndrew Rist  * with the License.  You may obtain a copy of the License at
10cdf0e10cSrcweir  *
111d2dbeb0SAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12cdf0e10cSrcweir  *
131d2dbeb0SAndrew Rist  * Unless required by applicable law or agreed to in writing,
141d2dbeb0SAndrew Rist  * software distributed under the License is distributed on an
151d2dbeb0SAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
161d2dbeb0SAndrew Rist  * KIND, either express or implied.  See the License for the
171d2dbeb0SAndrew Rist  * specific language governing permissions and limitations
181d2dbeb0SAndrew Rist  * under the License.
19cdf0e10cSrcweir  *
201d2dbeb0SAndrew Rist  *************************************************************/
211d2dbeb0SAndrew Rist 
221d2dbeb0SAndrew Rist 
23cdf0e10cSrcweir #ifndef _SWDOCSH_HXX
24cdf0e10cSrcweir #define _SWDOCSH_HXX
25cdf0e10cSrcweir 
26cdf0e10cSrcweir #include <rtl/ref.hxx>
27cdf0e10cSrcweir #include <com/sun/star/frame/XController.hpp>
28cdf0e10cSrcweir #include <com/sun/star/uno/Sequence.h>
29cdf0e10cSrcweir #include <vcl/timer.hxx>
30cdf0e10cSrcweir #include <sfx2/docfac.hxx>
31cdf0e10cSrcweir #include <sfx2/objsh.hxx>
32cdf0e10cSrcweir #include "swdllapi.h"
33cdf0e10cSrcweir #include <swdll.hxx>
34cdf0e10cSrcweir #include <shellid.hxx>
35cdf0e10cSrcweir 
36cdf0e10cSrcweir #include <svl/lstner.hxx>
37cdf0e10cSrcweir #include <svtools/embedhlp.hxx>
38cdf0e10cSrcweir 
39cdf0e10cSrcweir class SwDoc;
40cdf0e10cSrcweir class SfxDocumentInfoDialog;
41cdf0e10cSrcweir class SfxStyleSheetBasePool;
42cdf0e10cSrcweir class SfxInPlaceClient;
43cdf0e10cSrcweir class FontList;
44cdf0e10cSrcweir class SwView;
45cdf0e10cSrcweir class SwWrtShell;
46cdf0e10cSrcweir class SwFEShell;
47cdf0e10cSrcweir class Reader;
48cdf0e10cSrcweir class SwReader;
49cdf0e10cSrcweir class SwCrsrShell;
50cdf0e10cSrcweir class SwSrcView;
51cdf0e10cSrcweir class SwPaM;
52cdf0e10cSrcweir class SwgReaderOption;
53cdf0e10cSrcweir class SwOLEObj;
54cdf0e10cSrcweir class IDocumentDeviceAccess;
55cdf0e10cSrcweir class IDocumentSettingAccess;
56cdf0e10cSrcweir class IDocumentTimerAccess;
57cdf0e10cSrcweir class IDocumentChartDataProviderAccess;
5826ea3662SArmin Le Grand class SwDocShell;
5926ea3662SArmin Le Grand class SwDrawModel;
60cdf0e10cSrcweir 
6126ea3662SArmin Le Grand // initialize DrawModel (in form of a SwDrawModel) and DocShell (in form of a SwDocShell)
6226ea3662SArmin Le Grand // as needed, one or both parameters may be zero
6326ea3662SArmin Le Grand void SW_DLLPRIVATE InitDrawModelAndDocShell(SwDocShell* pSwDocShell, SwDrawModel* pSwDrawModel);
64cdf0e10cSrcweir 
65cdf0e10cSrcweir class SW_DLLPUBLIC SwDocShell: public SfxObjectShell, public SfxListener
66cdf0e10cSrcweir {
67*baef7ff7SOliver-Rainer Wittmann     SwDoc* mpDoc; // Document
68*baef7ff7SOliver-Rainer Wittmann 
69cdf0e10cSrcweir     rtl::Reference< SfxStyleSheetBasePool > mxBasePool; // Durchreiche fuer Formate
70*baef7ff7SOliver-Rainer Wittmann 
71*baef7ff7SOliver-Rainer Wittmann     FontList* mpFontList; // aktuelle FontListe
72*baef7ff7SOliver-Rainer Wittmann     bool mbInUpdateFontList; //prevent nested calls of UpdateFontList
73cdf0e10cSrcweir 
74cdf0e10cSrcweir     // Nix geht ohne die WrtShell (historische Gruende)
75cdf0e10cSrcweir     // RuekwaertsPointer auf die View (historische Gruende)
76cdf0e10cSrcweir     // Dieser gilt solange bis im Activate ein neuer gesetzt wird
77cdf0e10cSrcweir     // oder dieser im Dtor der View geloescht wird
78cdf0e10cSrcweir     //
79*baef7ff7SOliver-Rainer Wittmann     SwView* mpView;
80*baef7ff7SOliver-Rainer Wittmann     SwWrtShell* mpWrtShell;
81cdf0e10cSrcweir 
82cdf0e10cSrcweir     Timer aFinishedTimer;   // Timer fuers ueberpriefen der
83cdf0e10cSrcweir                             // Grafik-Links. Sind alle da,
84cdf0e10cSrcweir                             // dann ist Doc voll. geladen
85cdf0e10cSrcweir 
86*baef7ff7SOliver-Rainer Wittmann     comphelper::EmbeddedObjectContainer* mpOLEChildList;
87*baef7ff7SOliver-Rainer Wittmann     sal_Int16 mnUpdateDocMode; // contains the com::sun::star::document::UpdateDocMode
88*baef7ff7SOliver-Rainer Wittmann 
89cdf0e10cSrcweir     // Methoden fuer den Zugriff aufs Doc
90cdf0e10cSrcweir     SW_DLLPRIVATE void                  AddLink();
91cdf0e10cSrcweir     SW_DLLPRIVATE void                  RemoveLink();
92cdf0e10cSrcweir 
93cdf0e10cSrcweir     // Hint abfangen fuer DocInfo
94cdf0e10cSrcweir     SW_DLLPRIVATE virtual void          Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
95cdf0e10cSrcweir 
96cdf0e10cSrcweir     // FileIO
97cdf0e10cSrcweir     SW_DLLPRIVATE virtual sal_Bool InitNew( const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xStorage );
98cdf0e10cSrcweir     SW_DLLPRIVATE virtual sal_Bool Load( SfxMedium& rMedium );
99cdf0e10cSrcweir     SW_DLLPRIVATE virtual sal_Bool LoadFrom( SfxMedium& rMedium );
100cdf0e10cSrcweir     SW_DLLPRIVATE virtual sal_Bool ConvertFrom( SfxMedium &rMedium );
101cdf0e10cSrcweir     SW_DLLPRIVATE virtual sal_Bool ConvertTo( SfxMedium &rMedium );
102cdf0e10cSrcweir     SW_DLLPRIVATE virtual sal_Bool SaveAs( SfxMedium& rMedium );
103cdf0e10cSrcweir     SW_DLLPRIVATE virtual sal_Bool SaveCompleted( const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xStorage );
104cdf0e10cSrcweir 
105cdf0e10cSrcweir     SW_DLLPRIVATE virtual sal_uInt16            PrepareClose( sal_Bool bUI = sal_True, sal_Bool bForBrowsing = sal_False );
106cdf0e10cSrcweir 
107cdf0e10cSrcweir     // DocInfo dem Doc melden
108cdf0e10cSrcweir     //
109cdf0e10cSrcweir     SW_DLLPRIVATE virtual SfxDocumentInfoDialog* CreateDocumentInfoDialog(
110cdf0e10cSrcweir                                     Window *pParent, const SfxItemSet &);
111cdf0e10cSrcweir     // OLE-Geraffel
112cdf0e10cSrcweir     SW_DLLPRIVATE virtual void          Draw( OutputDevice*, const JobSetup&, sal_uInt16);
113cdf0e10cSrcweir 
114cdf0e10cSrcweir     // Methoden fuer StyleSheets
115ff0525f2SOliver-Rainer Wittmann 
116ff0525f2SOliver-Rainer Wittmann     // @param nSlot
117ff0525f2SOliver-Rainer Wittmann     // Only used for nFamily == SFX_STYLE_FAMILY_PAGE. Identifies optional Slot by which the edit is triggered.
118ff0525f2SOliver-Rainer Wittmann     // Used to activate certain dialog pane
119ff0525f2SOliver-Rainer Wittmann     SW_DLLPRIVATE sal_uInt16 Edit(
120ff0525f2SOliver-Rainer Wittmann         const String &rName,
121ff0525f2SOliver-Rainer Wittmann         const String& rParent,
122ff0525f2SOliver-Rainer Wittmann         const sal_uInt16 nFamily,
123ff0525f2SOliver-Rainer Wittmann         sal_uInt16 nMask,
124ff0525f2SOliver-Rainer Wittmann         const sal_Bool bNew,
125ff0525f2SOliver-Rainer Wittmann         const sal_uInt16 nSlot = 0,
126cdf0e10cSrcweir         SwWrtShell* pActShell = 0,
127ff0525f2SOliver-Rainer Wittmann         const sal_Bool bBasic = sal_False );
128ff0525f2SOliver-Rainer Wittmann 
129cdf0e10cSrcweir     SW_DLLPRIVATE sal_uInt16                    Delete(const String &rName, sal_uInt16 nFamily);
13034760e49SOliver-Rainer Wittmann 
13134760e49SOliver-Rainer Wittmann     SW_DLLPRIVATE sal_uInt16 ApplyStyles(
13234760e49SOliver-Rainer Wittmann         const String &rName,
13334760e49SOliver-Rainer Wittmann         const sal_uInt16 nFamily,
13434760e49SOliver-Rainer Wittmann         SwWrtShell* pShell = 0,
13534760e49SOliver-Rainer Wittmann         const sal_uInt16 nMode = 0 );
13634760e49SOliver-Rainer Wittmann 
137cdf0e10cSrcweir     SW_DLLPRIVATE sal_uInt16                    DoWaterCan( const String &rName, sal_uInt16 nFamily);
138cdf0e10cSrcweir     SW_DLLPRIVATE sal_uInt16                    UpdateStyle(const String &rName, sal_uInt16 nFamily, SwWrtShell* pShell = 0);
139cdf0e10cSrcweir     SW_DLLPRIVATE sal_uInt16                    MakeByExample(const String &rName,
140cdf0e10cSrcweir                                             sal_uInt16 nFamily, sal_uInt16 nMask, SwWrtShell* pShell = 0);
141cdf0e10cSrcweir 
142cdf0e10cSrcweir     SW_DLLPRIVATE void                  SubInitNew();   // fuer InitNew und HtmlSourceModus
143cdf0e10cSrcweir 
144cdf0e10cSrcweir     SW_DLLPRIVATE void                  RemoveOLEObjects();
145cdf0e10cSrcweir     SW_DLLPRIVATE void                  CalcLayoutForOLEObjects();
146cdf0e10cSrcweir 
147cdf0e10cSrcweir     SW_DLLPRIVATE void                    Init_Impl();
148cdf0e10cSrcweir     SW_DLLPRIVATE DECL_STATIC_LINK( SwDocShell, IsLoadFinished, void* );
149cdf0e10cSrcweir 
150cdf0e10cSrcweir 
151cdf0e10cSrcweir     using SfxObjectShell::GetVisArea;
152cdf0e10cSrcweir     using SfxObjectShell::GetStyleFamilyBitmap;
153cdf0e10cSrcweir 
154cdf0e10cSrcweir protected:
155cdf0e10cSrcweir     /// override to update text fields
156cdf0e10cSrcweir     virtual void                DoFlushDocInfo();
157cdf0e10cSrcweir 
158*baef7ff7SOliver-Rainer Wittmann     // override <SfxObjectShell>'s method which is called in <SfxObjectShell::ImportFrom(..)>.
159*baef7ff7SOliver-Rainer Wittmann     // <SfxObjectShell::ImportFrom(..)> is used by current import of Microsoft Word documents in OOXML file format.
160*baef7ff7SOliver-Rainer Wittmann     virtual void BeforeLoading( SfxMedium&, const ::rtl::OUString &, const ::rtl::OUString & );
161*baef7ff7SOliver-Rainer Wittmann 
162cdf0e10cSrcweir public:
163cdf0e10cSrcweir     using SotObject::GetInterface;
164cdf0e10cSrcweir 
165cdf0e10cSrcweir     // aber selbst implementieren
166cdf0e10cSrcweir     SFX_DECL_INTERFACE(SW_DOCSHELL)
167cdf0e10cSrcweir     SFX_DECL_OBJECTFACTORY()
168cdf0e10cSrcweir     TYPEINFO();
169cdf0e10cSrcweir 
_GetInterface()170cdf0e10cSrcweir     static SfxInterface *_GetInterface() { return GetStaticInterface(); }
171cdf0e10cSrcweir 
172cdf0e10cSrcweir     static rtl::OUString GetEventName( sal_Int32 nId );
173cdf0e10cSrcweir 
174cdf0e10cSrcweir     //Das Doc wird fuer SO-Datenaustausch benoetigt!
175cdf0e10cSrcweir     SwDocShell( SfxObjectCreateMode eMode = SFX_CREATE_MODE_EMBEDDED );
176cdf0e10cSrcweir     SwDocShell( const sal_uInt64 i_nSfxCreationFlags );
177cdf0e10cSrcweir     SwDocShell( SwDoc *pDoc, SfxObjectCreateMode eMode = SFX_CREATE_MODE_STANDARD );
178cdf0e10cSrcweir     ~SwDocShell();
179cdf0e10cSrcweir 
180cdf0e10cSrcweir     // OLE 2.0-Benachrichtigung
181cdf0e10cSrcweir     DECL_LINK( Ole2ModifiedHdl, void * );
182cdf0e10cSrcweir 
183cdf0e10cSrcweir     // OLE-Geraffel
184cdf0e10cSrcweir     virtual void      SetVisArea( const Rectangle &rRect );
185cdf0e10cSrcweir     virtual Rectangle GetVisArea( sal_uInt16 nAspect ) const;
186cdf0e10cSrcweir     virtual Printer  *GetDocumentPrinter();
187cdf0e10cSrcweir     virtual OutputDevice* GetDocumentRefDev();
188cdf0e10cSrcweir     virtual void      OnDocumentPrinterChanged( Printer * pNewPrinter );
189cdf0e10cSrcweir     virtual sal_uLong     GetMiscStatus() const;
190cdf0e10cSrcweir 
191cdf0e10cSrcweir     virtual void            PrepareReload();
192cdf0e10cSrcweir     virtual void            SetModified( sal_Bool = sal_True );
193cdf0e10cSrcweir 
194cdf0e10cSrcweir     // Dispatcher
195cdf0e10cSrcweir     void                    Execute(SfxRequest &);
196cdf0e10cSrcweir     void                    ExecStyleSheet(SfxRequest&);
197cdf0e10cSrcweir     void                    ExecDB(SfxRequest&);
198cdf0e10cSrcweir 
199cdf0e10cSrcweir     void                    GetState(SfxItemSet &);
200cdf0e10cSrcweir     void                    StateAlways(SfxItemSet &);
201cdf0e10cSrcweir     void                    StateStyleSheet(SfxItemSet&, SwWrtShell* pSh = 0 );
202cdf0e10cSrcweir 
203cdf0e10cSrcweir     // Doc rausreichen aber VORSICHT
GetDoc()204*baef7ff7SOliver-Rainer Wittmann     inline SwDoc*                   GetDoc() { return mpDoc; }
GetDoc() const205*baef7ff7SOliver-Rainer Wittmann     inline const SwDoc*             GetDoc() const { return mpDoc; }
206cdf0e10cSrcweir     IDocumentDeviceAccess*          getIDocumentDeviceAccess();
207cdf0e10cSrcweir     const IDocumentSettingAccess*   getIDocumentSettingAccess() const;
208cdf0e10cSrcweir     IDocumentChartDataProviderAccess*       getIDocumentChartDataProviderAccess();
209cdf0e10cSrcweir 
210cdf0e10cSrcweir 
211cdf0e10cSrcweir     void                    UpdateFontList();
212cdf0e10cSrcweir     void                    UpdateChildWindows();
213cdf0e10cSrcweir 
214cdf0e10cSrcweir     // globaler IO
215cdf0e10cSrcweir     virtual sal_Bool            Save();
216cdf0e10cSrcweir 
217cdf0e10cSrcweir     // fuer VorlagenPI
218cdf0e10cSrcweir     virtual SfxStyleSheetBasePool*  GetStyleSheetPool();
219cdf0e10cSrcweir 
220cdf0e10cSrcweir     // Fuer Organizer
221cdf0e10cSrcweir     virtual sal_Bool Insert(SfxObjectShell &rSource,
222cdf0e10cSrcweir                         sal_uInt16  nSourceIdx1,
223cdf0e10cSrcweir                         sal_uInt16  nSourceIdx2,
224cdf0e10cSrcweir                         sal_uInt16  nSourceIdx3,
225cdf0e10cSrcweir                         sal_uInt16& nIdx1,
226cdf0e10cSrcweir                         sal_uInt16& nIdx2,
227cdf0e10cSrcweir                         sal_uInt16& nIdx3,
228cdf0e10cSrcweir                         sal_uInt16& nRemovedIdx);
229cdf0e10cSrcweir 
230cdf0e10cSrcweir     virtual sal_Bool Remove(sal_uInt16 nIdx1,
231cdf0e10cSrcweir                         sal_uInt16 nIdx2 = INDEX_IGNORE,
232cdf0e10cSrcweir                         sal_uInt16 nIdx3 = INDEX_IGNORE);
233cdf0e10cSrcweir 
234cdf0e10cSrcweir     virtual Bitmap      GetStyleFamilyBitmap( SfxStyleFamily eFamily, BmpColorMode eColorMode );
235cdf0e10cSrcweir 
236cdf0e10cSrcweir     // View setzen fuer Aktionen ueber Shell
237cdf0e10cSrcweir     void          SetView(SwView* pVw);
GetView() const238*baef7ff7SOliver-Rainer Wittmann     const SwView *GetView() const { return mpView; }
GetView()239*baef7ff7SOliver-Rainer Wittmann     SwView       *GetView()       { return mpView; }
240cdf0e10cSrcweir 
241cdf0e10cSrcweir     // Zugriff auf die zur SwView gehoerige SwWrtShell
GetWrtShell()242*baef7ff7SOliver-Rainer Wittmann           SwWrtShell *GetWrtShell()       { return mpWrtShell; }
GetWrtShell() const243*baef7ff7SOliver-Rainer Wittmann     const SwWrtShell *GetWrtShell() const { return mpWrtShell; }
244cdf0e10cSrcweir 
245cdf0e10cSrcweir     // fuer die Core - die kennt die DocShell aber keine WrtShell!
246cdf0e10cSrcweir           SwFEShell *GetFEShell();
GetFEShell() const247cdf0e10cSrcweir     const SwFEShell *GetFEShell() const
248cdf0e10cSrcweir                 { return ((SwDocShell*)this)->GetFEShell(); }
249cdf0e10cSrcweir 
250cdf0e10cSrcweir 
251cdf0e10cSrcweir     // Fuer Einfuegen Dokument
252cdf0e10cSrcweir     Reader* StartConvertFrom(SfxMedium& rMedium, SwReader** ppRdr,
253cdf0e10cSrcweir                             SwCrsrShell* pCrsrSh = 0, SwPaM* pPaM = 0);
254cdf0e10cSrcweir 
255cdf0e10cSrcweir     virtual long DdeGetData( const String& rItem, const String& rMimeType,
256cdf0e10cSrcweir                              ::com::sun::star::uno::Any & rValue );
257cdf0e10cSrcweir     virtual long DdeSetData( const String& rItem, const String& rMimeType,
258cdf0e10cSrcweir                                 const ::com::sun::star::uno::Any & rValue );
259cdf0e10cSrcweir     virtual ::sfx2::SvLinkSource* DdeCreateLinkSource( const String& rItem );
260cdf0e10cSrcweir     virtual void FillClass( SvGlobalName * pClassName,
261cdf0e10cSrcweir                                    sal_uInt32 * pClipFormat,
262cdf0e10cSrcweir                                    String * pAppName,
263cdf0e10cSrcweir                                    String * pLongUserName,
264cdf0e10cSrcweir                                    String * pUserName,
265cdf0e10cSrcweir                                    sal_Int32 nFileFormat,
266cdf0e10cSrcweir                                    sal_Bool bTemplate = sal_False ) const;
267cdf0e10cSrcweir 
268cdf0e10cSrcweir     virtual void LoadStyles( SfxObjectShell& rSource );
269cdf0e10cSrcweir 
270cdf0e10cSrcweir     void _LoadStyles( SfxObjectShell& rSource, sal_Bool bPreserveCurrentDocument );
271cdf0e10cSrcweir 
272ff0525f2SOliver-Rainer Wittmann     // Show page style format dialog
273ff0525f2SOliver-Rainer Wittmann     // @param nSlot
274ff0525f2SOliver-Rainer Wittmann     // Identifies slot by which the dialog is triggered. Used to activate certain dialog pane
275ff0525f2SOliver-Rainer Wittmann     void FormatPage(
276ff0525f2SOliver-Rainer Wittmann         const String& rPage,
277ff0525f2SOliver-Rainer Wittmann         const sal_uInt16 nSlot,
278ff0525f2SOliver-Rainer Wittmann         SwWrtShell& rActShell );
279cdf0e10cSrcweir 
280cdf0e10cSrcweir     // --> OD 2006-11-07 #i59688#
281cdf0e10cSrcweir     // linked graphics are now loaded on demand.
282cdf0e10cSrcweir     // Thus, loading of linked graphics no longer needed and necessary for
283cdf0e10cSrcweir     // the load of document being finished.
284cdf0e10cSrcweir //    // Timer starten fuers ueberpruefen der Grafik-Links. Sind alle
285cdf0e10cSrcweir //    // vollstaendig geladen, dann ist das Doc fertig
286cdf0e10cSrcweir //    void StartLoadFinishedTimer();
287cdf0e10cSrcweir     void LoadingFinished();
288cdf0e10cSrcweir     // <--
289cdf0e10cSrcweir 
290cdf0e10cSrcweir     // eine Uebertragung wird abgebrochen (wird aus dem SFX gerufen)
291cdf0e10cSrcweir     virtual void CancelTransfers();
292cdf0e10cSrcweir 
293cdf0e10cSrcweir     // Doc aus Html-Source neu laden
294cdf0e10cSrcweir     void    ReloadFromHtml( const String& rStreamName, SwSrcView* pSrcView );
295cdf0e10cSrcweir 
GetUpdateDocMode() const296*baef7ff7SOliver-Rainer Wittmann     sal_Int16   GetUpdateDocMode() const {return mnUpdateDocMode;}
297cdf0e10cSrcweir 
298cdf0e10cSrcweir     void ToggleBrowserMode(sal_Bool bOn, SwView* pView);
299cdf0e10cSrcweir 
300cdf0e10cSrcweir     sal_uLong LoadStylesFromFile( const String& rURL, SwgReaderOption& rOpt,
301cdf0e10cSrcweir                                 sal_Bool bUnoCall );
302cdf0e10cSrcweir     void InvalidateModel();
303cdf0e10cSrcweir     void ReactivateModel();
304cdf0e10cSrcweir 
305cdf0e10cSrcweir     virtual ::com::sun::star::uno::Sequence< ::rtl::OUString >  GetEventNames();
306cdf0e10cSrcweir 
307cdf0e10cSrcweir     // --> FME 2004-08-05 #i20883# Digital Signatures and Encryption
308cdf0e10cSrcweir     virtual sal_uInt16 GetHiddenInformationState( sal_uInt16 nStates );
309cdf0e10cSrcweir     // <--
310cdf0e10cSrcweir 
311cdf0e10cSrcweir     // --> FME 2005-02-25 #i42634# Overwrites SfxObjectShell::UpdateLinks
312cdf0e10cSrcweir     // This new function is necessary to trigger update of links in docs
313cdf0e10cSrcweir     // read by the binary filter:
314cdf0e10cSrcweir     virtual void UpdateLinks();
315cdf0e10cSrcweir     // <--
316ca62e2c2SSteve Yin     virtual void setDocAccTitle( const String& rTitle );
317ca62e2c2SSteve Yin     virtual const String getDocAccTitle() const;
318cdf0e10cSrcweir 
319ca62e2c2SSteve Yin     void setDocReadOnly( sal_Bool bReadOnly);
320ca62e2c2SSteve Yin     sal_Bool getDocReadOnly() const;
321cdf0e10cSrcweir     ::com::sun::star::uno::Reference< ::com::sun::star::frame::XController >
322cdf0e10cSrcweir                                 GetController();
323cdf0e10cSrcweir 
324cdf0e10cSrcweir     SfxInPlaceClient* GetIPClient( const ::svt::EmbeddedObjectRef& xObjRef );
325cdf0e10cSrcweir 
326cdf0e10cSrcweir     virtual const ::sfx2::IXmlIdRegistry* GetXmlIdRegistry() const;
327cdf0e10cSrcweir 
328cdf0e10cSrcweir     // passwword protection for Writer (derived from SfxObjectShell)
329cdf0e10cSrcweir     // see also:    FN_REDLINE_ON, FN_REDLINE_ON
330cdf0e10cSrcweir     virtual bool    IsChangeRecording() const;
331cdf0e10cSrcweir     virtual bool    HasChangeRecordProtection() const;
332cdf0e10cSrcweir     virtual void    SetChangeRecording( bool bActivate );
333cdf0e10cSrcweir     virtual bool    SetProtectionPassword( const String &rPassword );
334cdf0e10cSrcweir     virtual bool    GetProtectionHash( /*out*/ ::com::sun::star::uno::Sequence< sal_Int8 > &rPasswordHash );
335cdf0e10cSrcweir };
336cdf0e10cSrcweir 
337cdf0e10cSrcweir class Graphic;
338cdf0e10cSrcweir //implemented in source/ui/docvw/romenu.cxx
339cdf0e10cSrcweir String ExportGraphic( const Graphic &rGraphic, const String &rGrfName );
340cdf0e10cSrcweir 
341cdf0e10cSrcweir #endif
342