Update ooo320-m1
[ooovba.git] / sw / inc / viewsh.hxx
blob36fe5919ed1e5f9a584a7d929ad7d60c51cc5a3c
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: viewsh.hxx,v $
10 * $Revision: 1.65.40.1 $
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 ************************************************************************/
30 #ifndef _VIEWSH_HXX
31 #define _VIEWSH_HXX
32 #include <com/sun/star/embed/XClassifiedObject.hpp>
33 #include <com/sun/star/embed/XEmbeddedObject.hpp>
34 #include <tools/rtti.hxx>
35 #include <svtools/svarray.hxx>
36 #include "swdllapi.h"
37 #include <swtypes.hxx>
38 #include <ring.hxx>
39 #include <swrect.hxx>
40 #include <errhdl.hxx>
41 #include <vcl/mapmod.hxx>
43 namespace com { namespace sun { namespace star { namespace accessibility {
44 class XAccessible; } } } }
46 class SfxObjectShellRef;
47 class SwDoc;
48 class IDocumentSettingAccess;
49 class IDocumentDeviceAccess;
50 class IDocumentMarkAccess;
51 class IDocumentDrawModelAccess;
52 class IDocumentRedlineAccess;
53 class IDocumentLayoutAccess;
54 class IDocumentFieldsAccess;
55 class IDocumentContentOperations;
56 class IDocumentStylePoolAccess;
57 class IDocumentStatistics;
58 class IDocumentUndoRedo;
59 // --> OD 2007-11-14 #i83479#
60 class IDocumentListItems;
61 class IDocumentOutlineNodes;
62 // <--
63 class SfxPrinter;
64 class SfxProgress;
65 class SwRootFrm;
66 class SwNodes;
67 class SdrView;
68 class SfxItemPool;
69 class SfxViewShell;
70 class SwViewOption;
71 class SwViewImp;
72 class SwPrtOptions;
73 class SwPagePreViewPrtData;
74 class Window;
75 class OutputDevice;
76 class SwLayIdle;
77 struct ShellResource;
78 class SwRegionRects;
79 class SwFrm;
80 class SvtAccessibilityOptions;
81 // OD 12.12.2002 #103492#
82 class SwPagePreviewLayout;
83 // --> OD 2005-12-01 #i27138#
84 class SwTxtFrm;
85 // <--
86 class BitmapEx;
88 struct SwAccessibilityOptions;
89 class Region;
90 class SwPostItMgr;
92 // #i74769#
93 class SdrPaintWindow;
95 //JP 19.07.98: - Bug 52312
96 // define fuer Flags, die im CTOR oder den darunter liegenden Schichten
97 // benoetigt werden.
98 // Zur Zeit wird fuer die DrawPage das PreView Flag benoetigt
99 #define VSHELLFLAG_ISPREVIEW ((long)0x1)
101 class SW_DLLPUBLIC ViewShell : public Ring
103 friend void SetOutDev( ViewShell *pSh, OutputDevice *pOut );
104 friend void SetOutDevAndWin( ViewShell *pSh, OutputDevice *pOut,
105 Window *pWin, sal_uInt16 nZoom );
107 friend class SwViewImp;
108 friend class SwLayIdle;
110 // OD 12.12.2002 #103492# - for setting visible area for page preview paint
111 friend class SwPagePreviewLayout;
113 //Umsetzen der SwVisArea, damit vor dem Drucken sauber formatiert
114 //werden kann.
115 friend void SetSwVisArea( ViewShell *pSh, const SwRect &, BOOL bPDFExport = FALSE );
117 // --> PB 2007-05-30 #146850#
118 static BitmapEx* pReplaceBmp; // replaced display of still loaded images
119 static BitmapEx* pErrorBmp; // error display of missed images
120 // <--
122 static sal_Bool bLstAct; // sal_True wenn Das EndAction der letzten Shell
123 // laeuft; also die EndActions der
124 // anderen Shells auf das Dokument
125 // abgearbeitet sind.
127 Point aPrtOffst; //Ofst fuer den Printer,
128 //nicht bedruckbarer Rand.
129 Size aBrowseBorder; //Rand fuer Framedokumente
130 SwRect aInvalidRect;
132 SfxViewShell *pSfxViewShell;
133 SwViewImp *pImp; //Core-Interna der ViewShell.
134 //Der Pointer ist niemals 0.
136 Window *pWin; // = 0 during printing or pdf export
137 OutputDevice *pOut; // Window, Printer, VirtDev, ...
138 OutputDevice* mpTmpRef; // Temporariy reference device. Is used
139 // during (printer depending) prospect
140 // and page preview printing
141 // (because a scaling has to be set at
142 // the original printer)
144 SwViewOption *pOpt;
145 SwAccessibilityOptions* pAccOptions;
148 sal_Bool bDocSizeChgd :1; //Fuer DocChgNotify(): Neue DocGroesse bei
149 //EndAction an das DocMDI melden.
150 sal_Bool bPaintWorks :1; //Normal Painten wenn sal_True,
151 //Paint merken wenn sal_False
152 sal_Bool bPaintInProgress :1; //Kein zweifaches Paint durchlassen.
153 sal_Bool bViewLocked :1; //Lockt den sichtbaren Bereich,
154 //MakeVisible laeuft dann in's leere.
155 sal_Bool bInEndAction :1; //Fiese unstaende vermeiden, siehe viewsh.cxx
156 sal_Bool bPreView :1; //Ist sal_True wenns eine PreView-ViewShell ist.
157 sal_Bool bFrameView :1; //sal_True wenn es ein (HTML-)Frame ist.
158 sal_Bool bEnableSmooth :1; //Disable des SmoothScroll z.B. fuer
159 //Drag der Scrollbars.
160 sal_Bool bEndActionByVirDev:1; //Paints aus der EndAction immer ueber virtuelles
162 //Device (etwa beim Browsen)
164 // OD 2004-06-01 #i26791# - boolean, indicating that class in in constructor
165 bool mbInConstructor:1;
167 // #i74769#
168 SdrPaintWindow* mpTargetPaintWindow;
169 OutputDevice* mpBufferedOut;
171 //Initialisierung, wird von den verschiedenen Konstruktoren gerufen.
172 SW_DLLPRIVATE void Init( const SwViewOption *pNewOpt );
174 inline void ResetInvalidRect();
176 SW_DLLPRIVATE void Reformat(); //Invalidert das ges. Layout (ApplyViewOption)
178 SW_DLLPRIVATE void PaintDesktop( const SwRect & ); // sammeln der Werte fuers
179 // Malen der Wiese und rufen
180 // PaintDesktop gesplittet, dieser Teil wird auch von PreViewPage benutzt
181 SW_DLLPRIVATE void _PaintDesktop( const SwRegionRects &rRegion );
183 SW_DLLPRIVATE sal_Bool CheckInvalidForPaint( const SwRect & );//Direkt Paint oder lieber
184 //eine Aktion ausloesen.
186 SW_DLLPRIVATE void Scroll(); //Scrollen wenn sich aus der LayAction Scrollmoeglichkeiten
187 //ergaben.
189 SW_DLLPRIVATE void PrepareForPrint( const SwPrtOptions &rOptions );
191 SW_DLLPRIVATE void ImplApplyViewOptions( const SwViewOption &rOpt );
193 protected:
194 static ShellResource* pShellRes; // Resourcen fuer die Shell
195 static Window* pCareWindow; // diesem Fenster ausweichen
197 SwRect aVisArea; //Die moderne Ausfuerung der VisArea
198 SwDoc *pDoc; //Das Dokument, niemals 0
200 sal_uInt16 nStartAction; //ist != 0 wenn mindestens eine ::com::sun::star::chaos::Action laeuft
201 sal_uInt16 nLockPaint; //ist != 0 wenn das Paint gelocked ist.
203 public:
204 TYPEINFO();
206 SwViewImp *Imp() { return pImp; }
207 const SwViewImp *Imp() const { return pImp; }
209 const SwNodes& GetNodes() const;
211 //Nach Druckerwechsel, vom Doc
212 //pPDFOut != NULL is used for PDF export.
213 void InitPrt( SfxPrinter * , OutputDevice *pPDFOut = NULL );
215 //Klammerung von zusammengehoerenden Aktionen.
216 inline void StartAction();
217 void ImplStartAction();
218 inline void EndAction( const sal_Bool bIdleEnd = sal_False );
219 void ImplEndAction( const sal_Bool bIdleEnd = sal_False );
220 sal_uInt16 ActionCount() const { return nStartAction; }
221 sal_Bool ActionPend() const { return nStartAction != 0; }
222 sal_Bool IsInEndAction() const { return bInEndAction; }
224 void SetEndActionByVirDev( sal_Bool b ) { bEndActionByVirDev = b; }
225 sal_Bool IsEndActionByVirDev() { return bEndActionByVirDev; }
227 // Per UNO wird am RootFrame fuer alle shells der ActionCount kurzfristig
228 // auf Null gesetzt und wieder restauriert
229 void SetRestoreActions(sal_uInt16 nSet);
230 sal_uInt16 GetRestoreActions() const;
232 inline sal_Bool HasInvalidRect() const { return aInvalidRect.HasArea(); }
233 void ChgHyphenation() { Reformat(); }
234 void ChgNumberDigits();
236 //Methoden fuer Paint- und Scrollrects, die auf allen Shells im
237 //Ring arbeiten.
238 sal_Bool AddPaintRect( const SwRect &rRect );
239 void AddScrollRect( const SwFrm *pFrm, const SwRect &rRect, long nOffs );
240 void SetNoNextScroll();
242 void InvalidateWindows( const SwRect &rRect );
244 //////////////////////////////////////////////////////////////////////////////
245 // #i72754# set of Pre/PostPaints with lock counter and initial target OutDev
246 protected:
247 sal_uInt32 mnPrePostPaintCount;
248 OutputDevice* mpPrePostOutDev;
249 MapMode maPrePostMapMode;
250 public:
251 void PrePaint();
252 void DLPrePaint2(const Region& rRegion);
253 void DLPostPaint2(bool bPaintFormLayer);
254 const MapMode& getPrePostMapMode() const { return maPrePostMapMode; }
255 //////////////////////////////////////////////////////////////////////////////
257 virtual void Paint(const Rectangle &rRect);
258 sal_Bool IsPaintInProgress() const { return bPaintInProgress; }
259 bool IsDrawingLayerPaintInProgress() const { return 0 != mnPrePostPaintCount; }
261 //Benachrichtung, dass sich der sichtbare Bereich geaendert hat.
262 //VisArea wird neu gesetzt, anschliessend wird gescrollt.
263 //Das uebergebene Rect liegt auf Pixelgrenzen,
264 //um Pixelfehler beim Scrollen zu vermeiden.
265 virtual void VisPortChgd( const SwRect & );
266 sal_Bool SmoothScroll( long lXDiff, long lYDiff, const Rectangle* );//Browser
267 void EnableSmooth( sal_Bool b ) { bEnableSmooth = b; }
269 const SwRect &VisArea() const { return aVisArea; }
270 //Es wird, wenn notwendig, soweit gescrollt, dass das
271 //uebergebene Rect im sichtbaren Ausschnitt liegt.
272 void MakeVisible( const SwRect & );
274 //Bei naechster Gelegenheit die neue Dokuemntgroesse an das UI weiterreichen.
275 void SizeChgNotify();
276 void UISizeNotify(); //Das weiterreichen der aktuellen groesse.
278 Point GetPagePos( sal_uInt16 nPageNum ) const;
280 sal_uInt16 GetNumPages(); //Anzahl der aktuellen Seiten Layout erfragen.
281 sal_Bool IsDummyPage( USHORT nPageNum ) const; // An empty page?
283 //Invalidierung der ersten Sichtbaren Seite fuer alle Shells im Ring.
284 void SetFirstVisPageInvalid();
286 SwRootFrm *GetLayout() const;
287 sal_Bool IsNewLayout() const; //Wurde das Layout geladen oder neu
288 //erzeugt?
290 Size GetDocSize() const;// erfrage die Groesse des Dokuments
292 void CalcLayout(); //Durchformatierung des Layouts erzwingen.
294 inline SwDoc *GetDoc() const { return pDoc; } //niemals 0.
296 /** Provides access to the document setting interface
298 const IDocumentSettingAccess* getIDocumentSettingAccess() const;
299 IDocumentSettingAccess* getIDocumentSettingAccess();
301 /** Provides access to the document device interface
303 const IDocumentDeviceAccess* getIDocumentDeviceAccess() const;
304 IDocumentDeviceAccess* getIDocumentDeviceAccess();
306 /** Provides access to the document bookmark interface
308 const IDocumentMarkAccess* getIDocumentMarkAccess() const;
309 IDocumentMarkAccess* getIDocumentMarkAccess();
311 /** Provides access to the document draw model interface
313 const IDocumentDrawModelAccess* getIDocumentDrawModelAccess() const;
314 IDocumentDrawModelAccess* getIDocumentDrawModelAccess();
316 /** Provides access to the document redline interface
318 const IDocumentRedlineAccess* getIDocumentRedlineAccess() const;
319 IDocumentRedlineAccess* getIDocumentRedlineAccess();
321 /** Provides access to the document layout interface
323 const IDocumentLayoutAccess* getIDocumentLayoutAccess() const;
324 IDocumentLayoutAccess* getIDocumentLayoutAccess();
326 /** Provides access to the document fields administration interface
328 const IDocumentFieldsAccess* getIDocumentFieldsAccess() const;
330 /** Provides access to the content operations interface
332 IDocumentContentOperations* getIDocumentContentOperations();
334 /** Provides access to the document style pool interface
336 IDocumentStylePoolAccess* getIDocumentStylePoolAccess();
338 /** Provides access to the document statistics interface
340 const IDocumentStatistics* getIDocumentStatistics() const;
342 /** Provides access to the document undo/redo interface
344 IDocumentUndoRedo* getIDocumentUndoRedoAccess();
346 // --> OD 2007-11-14 #i83479#
347 const IDocumentListItems* getIDocumentListItemsAccess() const;
348 const IDocumentOutlineNodes* getIDocumentOutlineNodesAccess() const;
349 // <--
351 // 1. GetRefDev: Either the printer or the virtual device from the doc
352 // 2. GetWin: Available if we not printing
353 // 3. GetOut: Printer, Window or Virtual device
354 OutputDevice& GetRefDev() const;
355 inline Window* GetWin() const { return pWin; }
356 inline OutputDevice* GetOut() const { return pOut; }
358 static inline sal_Bool IsLstEndAction() { return ViewShell::bLstAct; }
360 //Andern alle PageDescriptoren
361 void ChgAllPageOrientation( sal_uInt16 eOri );
362 void ChgAllPageSize( Size &rSz );
364 //Druckauftrag abwickeln.
365 // pPDFOut != Null is: do PDF Export (no printing!)
366 sal_Bool Prt( SwPrtOptions& rOptions, SfxProgress* pProgress,
367 OutputDevice* pPDFOut = NULL );
369 //"Drucken" fuer OLE 2.0
370 static void PrtOle2( SwDoc *pDoc, const SwViewOption *pOpt, SwPrtOptions& rOptions,
371 OutputDevice* pOleOut, const Rectangle& rRect );
373 // creates temporary doc with selected text for PDF export
374 SwDoc * CreatePrtDoc( SfxPrinter* pPrt, SfxObjectShellRef& );
375 SwDoc * FillPrtDoc( SwDoc* pPrtDoc, const SfxPrinter* pPrt );
377 //Wird intern fuer die Shell gerufen die Druckt. Formatiert die Seiten.
378 void CalcPagesForPrint( sal_uInt16 nMax, SfxProgress* pProgress = 0,
379 const String* pStr = NULL, ULONG nMergeAct = 0, ULONG nMergeCnt = 0 );
381 //All about fields.
382 void UpdateFlds(sal_Bool bCloseDB = sal_False);
383 sal_Bool IsAnyFieldInDoc() const;
384 // update all charts, for that exists any table
385 void UpdateAllCharts();
386 sal_Bool HasCharts() const;
389 // DOCUMENT COMPATIBILITY FLAGS START
392 // Sollen Absatzabstaende addiert oder maximiert werden?
393 void SetParaSpaceMax( bool bNew );
395 // Sollen Absatzabstaende addiert oder maximiert werden?
396 void SetParaSpaceMaxAtPages( bool bNew );
398 // compatible behaviour of tabs
399 void SetTabCompat( bool bNew );
401 //#i24363# tab stops relative to indent
402 void SetTabsRelativeToIndent( bool bNew );
404 // font metric attribute "External Leading" should be considered
405 void SetAddExtLeading( bool bNew );
407 // formatting by virtual device or printer
408 void SetUseVirDev( bool nNew );
410 // OD 2004-02-16 #106629# - adding paragraph and table spacing at bottom
411 // of table cells
412 void SetAddParaSpacingToTableCells( bool _bAddParaSpacingToTableCells );
414 // OD 06.01.2004 #i11859# - former formatting of text lines with
415 // proportional line spacing or not
416 void SetUseFormerLineSpacing( bool _bUseFormerLineSpacing );
418 // OD 2004-03-12 #i11860# - former object positioning
419 void SetUseFormerObjectPositioning( bool _bUseFormerObjPos );
421 // OD 2004-05-05 #i28701#
422 void SetConsiderWrapOnObjPos( bool _bConsiderWrapOnObjPos );
424 // --> FME #108724#
425 void SetUseFormerTextWrapping( bool _bUseFormerTextWrapping );
427 // -> PB 2007-06-11 #i45491#
428 void SetDoNotJustifyLinesWithManualBreak( bool _bDoNotJustifyLinesWithManualBreak );
429 // <--
432 // DOCUMENT COMPATIBILITY FLAGS END
435 //Ruft den Idle-Formatierer des Layouts
436 void LayoutIdle();
438 inline const SwViewOption *GetViewOptions() const { return pOpt; }
439 void ApplyViewOptions( const SwViewOption &rOpt );
440 void SetUIOptions( const SwViewOption &rOpt );
441 void SetReadonlyOption(sal_Bool bSet); // Readonly-Bit d. ViewOptions setzen
442 void SetPDFExportOption(sal_Bool bSet); // set/reset PDF export mode
443 void SetPrtFormatOption(sal_Bool bSet); // PrtFormat-Bit d. ViewOptions setzen
444 void SetReadonlySelectionOption(sal_Bool bSet);//change the selection mode in readonly docs
446 const SwAccessibilityOptions* GetAccessibilityOptions() const { return pAccOptions;}
448 static void SetShellRes( ShellResource* pRes ) { pShellRes = pRes; }
449 static ShellResource* GetShellRes();
451 static void SetCareWin( Window* pNew );
452 static Window* GetCareWin(ViewShell& rVSh)
453 { return pCareWindow ? pCareWindow : CareChildWin(rVSh); }
454 static Window* CareChildWin(ViewShell& rVSh);
456 inline SfxViewShell *GetSfxViewShell() { return pSfxViewShell; }
457 inline void SetSfxViewShell(SfxViewShell *pNew) { pSfxViewShell = pNew; }
459 // Selektion der Draw ::com::sun::star::script::Engine geaendert
460 virtual void DrawSelChanged();
462 // OD 12.12.2002 #103492#
463 SwPagePreviewLayout* PagePreviewLayout();
465 /** adjust view options for page preview
467 OD 09.01.2003 #i6467#
468 Because page preview should show the document as it is printed -
469 page preview is print preview -, the view options are adjusted to the
470 same as for printing.
472 @param _rPrintOptions
473 input parameter - constant reference to print options, to which the
474 view option will be adjusted.
476 void AdjustOptionsForPagePreview( const SwPrtOptions &_rPrintOptions );
478 // print page/print preview
479 void PrintPreViewPage( SwPrtOptions& rOptions, sal_uInt16 nRowCol,
480 SfxProgress& rProgress,
481 const SwPagePreViewPrtData* = 0 );
483 // Prospekt-Format drucken
484 void PrintProspect( SwPrtOptions&, SfxProgress& , BOOL bRTL);
486 sal_Bool IsViewLocked() const { return bViewLocked; }
487 void LockView( sal_Bool b ) { bViewLocked = b; }
489 inline void LockPaint();
490 void ImplLockPaint();
491 inline void UnlockPaint( sal_Bool bVirDev = sal_False );
492 void ImplUnlockPaint( sal_Bool bVirDev );
493 sal_Bool IsPaintLocked() const { return nLockPaint != 0; }
495 // Abfragen/Erzeugen DrawView + PageView
496 sal_Bool HasDrawView() const;
497 void MakeDrawView();
499 //DrawView darf u.U. am UI benutzt werden.
500 SdrView *GetDrawView();
501 const SdrView *GetDrawView() const { return ((ViewShell*)this)->GetDrawView(); }
503 //sorge dafuer, das auf jedenfall die MarkListe aktuell ist (Bug 57153)
504 SdrView *GetDrawViewWithValidMarkList();
506 // erfrage den Attribut Pool
507 inline const SfxItemPool& GetAttrPool() const;
508 SfxItemPool& GetAttrPool();
510 sal_Bool IsPreView() const { return bPreView; }
512 sal_Bool IsFrameView() const { return bFrameView; }
513 void SetFrameView( const Size& rBrowseBorder )
514 { bFrameView = sal_True; aBrowseBorder = rBrowseBorder; }
516 //Nimmt die notwendigen Invalidierungen vor,
517 //wenn sich der BrowdseModus aendert, bBrowseChgd == sal_True
518 //oder, im BrowseModus, wenn sich die Groessenverhaeltnisse
519 //aendern (bBrowseChgd == sal_False)
520 void CheckBrowseView( BOOL bBrowseChgd );
522 const Size& GetBrowseBorder() const;
523 sal_Int32 GetBrowseWidth() const;
524 void SetBrowseBorder( const Size& rNew );
526 ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > CreateAccessible();
528 // OD 15.01.2003 #103492# - change method signature due to new page preview
529 // functionality.
530 ::com::sun::star::uno::Reference<
531 ::com::sun::star::accessibility::XAccessible >
532 CreateAccessiblePreview();
534 void ShowPreViewSelection( sal_uInt16 nSelPage );
535 void InvalidateAccessibleFocus();
537 //apply Accessiblity options
538 void ApplyAccessiblityOptions(SvtAccessibilityOptions& rAccessibilityOptions);
540 /** invalidate CONTENT_FLOWS_FROM/_TO relation for paragraphs
542 OD 2005-12-01 #i27138#
544 @author OD
546 @param _pFromTxtFrm
547 input parameter - paragraph frame, for which the relation CONTENT_FLOWS_FROM
548 has to be invalidated.
549 If NULL, no CONTENT_FLOWS_FROM relation has to be invalidated
551 @param _pToTxtFrm
552 input parameter - paragraph frame, for which the relation CONTENT_FLOWS_TO
553 has to be invalidated.
554 If NULL, no CONTENT_FLOWS_TO relation has to be invalidated
556 void InvalidateAccessibleParaFlowRelation( const SwTxtFrm* _pFromTxtFrm,
557 const SwTxtFrm* _pToTxtFrm );
559 /** invalidate text selection for paragraphs
561 OD 2005-12-12 #i27301#
563 @author OD
565 void InvalidateAccessibleParaTextSelection();
567 /** invalidate attributes for paragraphs
569 OD 2009-01-06 #i88069#
571 @author OD
573 @param rTxtFrm
574 input parameter - paragraph frame, whose attributes have changed
576 void InvalidateAccessibleParaAttrs( const SwTxtFrm& rTxtFrm );
578 ViewShell( ViewShell&, Window *pWin = 0, OutputDevice *pOut = 0,
579 long nFlags = 0 );
580 ViewShell( SwDoc& rDoc, Window *pWin,
581 const SwViewOption *pOpt = 0, OutputDevice *pOut = 0,
582 long nFlags = 0 );
583 virtual ~ViewShell();
585 // --> FME 2004-06-15 #i12836# enhanced pdf export
586 sal_Int32 GetPageNumAndSetOffsetForPDF( OutputDevice& rOut, const SwRect& rRect ) const;
587 // <--
589 inline bool IsInConstructor() const { return mbInConstructor; }
591 // --> PB 2007-05-30 #146850#
592 static const BitmapEx& GetReplacementBitmap( bool bIsErrorState );
593 static void DeleteReplacementBitmaps();
594 // <--
596 const SwPostItMgr* GetPostItMgr() const { return (const_cast<ViewShell*>(this))->GetPostItMgr(); }
597 SwPostItMgr* GetPostItMgr();
600 //---- class CurrShell verwaltet den globalen ShellPointer -------------------
602 class CurrShell
604 public:
605 ViewShell *pPrev;
606 SwRootFrm *pRoot;
608 CurrShell( ViewShell *pNew );
609 ~CurrShell();
612 inline void ViewShell::ResetInvalidRect()
614 aInvalidRect.Clear();
617 inline void ViewShell::StartAction()
619 if ( !nStartAction++ )
620 ImplStartAction();
622 inline void ViewShell::EndAction( const sal_Bool bIdleEnd )
624 if( 0 == (nStartAction - 1) )
625 ImplEndAction( bIdleEnd );
626 --nStartAction;
629 inline void ViewShell::LockPaint()
631 if ( !nLockPaint++ )
632 ImplLockPaint();
634 inline void ViewShell::UnlockPaint( sal_Bool bVirDev )
636 if ( 0 == --nLockPaint )
637 ImplUnlockPaint( bVirDev );
639 inline const SfxItemPool& ViewShell::GetAttrPool() const
641 return ((ViewShell*)this)->GetAttrPool();
646 #endif //_VIEWSH_HXX