LibreOffice Module sw (master)  1
viewsh.hxx
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3  * This file is part of the LibreOffice project.
4  *
5  * This Source Code Form is subject to the terms of the Mozilla Public
6  * License, v. 2.0. If a copy of the MPL was not distributed with this
7  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8  *
9  * This file incorporates work covered by the following license notice:
10  *
11  * Licensed to the Apache Software Foundation (ASF) under one or more
12  * contributor license agreements. See the NOTICE file distributed
13  * with this work for additional information regarding copyright
14  * ownership. The ASF licenses this file to you under the Apache
15  * License, Version 2.0 (the "License"); you may not use this file
16  * except in compliance with the License. You may obtain a copy of
17  * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18  */
19 #ifndef INCLUDED_SW_INC_VIEWSH_HXX
20 #define INCLUDED_SW_INC_VIEWSH_HXX
21 
22 #include "swdllapi.h"
23 #include "swtypes.hxx"
24 #include "ring.hxx"
25 #include "swrect.hxx"
26 #include <memory>
27 #include <stack>
28 #include <vcl/mapmod.hxx>
29 #include <vcl/vclptr.hxx>
30 #include <vcl/lazydelete.hxx>
31 #include <vcl/window.hxx>
32 
33 namespace com::sun::star::accessibility { class XAccessible; }
34 class SwDoc;
44 class IDocumentUndoRedo;
45 class IDocumentListItems;
47 class SfxPrinter;
48 class SwRootFrame;
49 class SwNodes;
50 class SdrView;
51 class SfxItemPool;
52 class SfxViewShell;
53 class SwViewOption;
54 class SwViewShellImp;
55 class SwPrintData;
56 struct ShellResource;
57 class SwRegionRects;
60 class SwTextFrame;
61 
63 namespace vcl { class Region; }
64 class SwPostItMgr;
65 class SdrPaintWindow;
66 class SwAccessibleMap;
67 enum class Orientation;
68 
69 namespace vcl
70 {
72 }
73 
74 // Define for flags needed in ctor or layers below.
75 // Currently the Preview flag is needed for DrawPage.
76 #define VSHELLFLAG_ISPREVIEW (tools::Long(0x1))
77 #define VSHELLFLAG_SHARELAYOUT (tools::Long(0x2))
78 typedef std::shared_ptr<SwRootFrame> SwRootFramePtr;
79 
80 typedef struct _xmlTextWriter* xmlTextWriterPtr;
81 
82 class SW_DLLPUBLIC SwViewShell : public sw::Ring<SwViewShell>
83 {
84  friend void SetOutDev( SwViewShell *pSh, OutputDevice *pOut );
85  friend void SetOutDevAndWin( SwViewShell *pSh, OutputDevice *pOut,
86  vcl::Window *pWin, sal_uInt16 nZoom );
87 
88  friend class SwViewShellImp;
89  friend class SwLayIdle;
90 
91  // For setting visible area for page preview paint.
92  friend class SwPagePreviewLayout;
93 
94  // Set SwVisArea in order to enable clean formatting before printing.
95  friend void SetSwVisArea( SwViewShell *pSh, const SwRect & );
96 
97  std::unique_ptr<BitmapEx> m_xReplaceBmp;
98  std::unique_ptr<BitmapEx> m_xErrorBmp;
99 
100  static bool mbLstAct; // true if EndAction of last Shell
101  // i.e. if the EndActions of the other
102  // Shells on the document are through.
103 
104  Point maPrtOffset; // Offset for Printer,
105  // non-printable margin.
106  Size maBrowseBorder; // Border for frame documents.
108 
110  std::unique_ptr<SwViewShellImp>
111  mpImp; // Core-internals of SwViewShell.
112  // The pointer is never 0.
113 
116 
117  std::unique_ptr<SwViewOption> mpOpt;
118  std::unique_ptr<SwAccessibilityOptions> mpAccOptions;
119 
120  bool mbDocSizeChgd :1; // For DocChgNotify(): Announce new DocSize
121  // at EndAction to DocMDI.
122  bool mbPaintWorks :1; // Normal Painting if true,
123  // remember Paint if false.
124  bool mbPaintInProgress :1; // Block any double paint.
125  bool mbViewLocked :1; // Lock visible range;
126  // in this case MakeVisible is ineffectual.
127  bool mbInEndAction :1; // Avoid problems, cf. viewsh.cxx.
128  bool mbPreview :1; // If true it is a Preview-SwViewShell.
129  bool mbFrameView :1; // If true it is a (HTML-)Frame.
130  bool mbEnableSmooth :1; // Disable SmoothScroll, e.g. for drag
131  // of scrollbars.
132  bool mbEndActionByVirDev:1; // Paints from EndAction always via virtual device
133  // (e.g. when browsing).
134  bool mbShowHeaderSeparator:1;
135  bool mbShowFooterSeparator:1;
136  bool mbHeaderFooterEdit:1;
137 
138  // boolean, indicating that class in constructor.
139  bool mbInConstructor:1;
140 
143 
145 
146  // Initialization; called by the diverse constructors.
147  SAL_DLLPRIVATE void Init( const SwViewOption *pNewOpt );
148 
149  inline void ResetInvalidRect();
150 
151 
152 
153  SAL_DLLPRIVATE void PaintDesktop(vcl::RenderContext& rRenderContext, const SwRect&); // Collect values for painting of desktop
154  // and calling.
155  // PaintDesktop split. This pars is also used by PreviewPage.
156  SAL_DLLPRIVATE void PaintDesktop_(const SwRegionRects &rRegion);
157 
158  SAL_DLLPRIVATE bool CheckInvalidForPaint( const SwRect & ); // Direct Paint or rather
159  // trigger an action.
160 
161  SAL_DLLPRIVATE void PrepareForPrint( const SwPrintData &rOptions, bool bIsPDFExport = false );
162 
163  SAL_DLLPRIVATE void ImplApplyViewOptions( const SwViewOption &rOpt );
164 
165 protected:
168 
172 
173  sal_uInt16 mnStartAction;
174  sal_uInt16 mnLockPaint;
175  bool mbSelectAll;
176 
179 
180 public:
181 
182  SwViewShellImp *Imp() { return mpImp.get(); }
183  const SwViewShellImp *Imp() const { return mpImp.get(); }
184 
185  const SwNodes& GetNodes() const;
186 
187  // After change of printer; by Doc.
188  void InitPrt( OutputDevice *pOutDev );
189 
190  // Bracketing of actions belonging together.
191  inline void StartAction();
192  void ImplStartAction();
193  inline void EndAction( const bool bIdleEnd = false );
194  void ImplEndAction( const bool bIdleEnd );
195  sal_uInt16 ActionCount() const { return mnStartAction; }
196  bool ActionPend() const { return mnStartAction != 0; }
197  bool IsInEndAction() const { return mbInEndAction; }
198 
199  void SetEndActionByVirDev( bool b ) { mbEndActionByVirDev = b; }
200  bool IsEndActionByVirDev() const { return mbEndActionByVirDev; }
201 
202  // The ActionCount for all Shells is temporarily set to zero and then
203  // restored at the RootFrame via UNO.
204  void SetRestoreActions(sal_uInt16 nSet);
205  sal_uInt16 GetRestoreActions() const;
206 
207  bool HasInvalidRect() const { return maInvalidRect.HasArea(); }
208  void ChgHyphenation() { Reformat(); }
209  void ChgNumberDigits();
210 
211  bool AddPaintRect( const SwRect &rRect );
212 
213  void InvalidateWindows( const SwRect &rRect );
214 
216  void Reformat();
217 
218  // #i72754# set of Pre/PostPaints with lock counter and initial target OutDev
219 protected:
220  std::stack<vcl::Region> mPrePostPaintRegions; // acts also as a lock counter (empty == not locked)
223 public:
224  void PrePaint();
225  void DLPrePaint2(const vcl::Region& rRegion);
226  void DLPostPaint2(bool bPaintFormLayer);
227  const MapMode& getPrePostMapMode() const { return maPrePostMapMode; }
228 
229  virtual void Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle &rRect);
230 
236  void PaintTile(VirtualDevice &rDevice, int contextWidth, int contextHeight, int tilePosX, int tilePosY, tools::Long tileWidth, tools::Long tileHeight);
237 
238  bool IsPaintInProgress() const { return mbPaintInProgress; }
239  bool IsDrawingLayerPaintInProgress() const { return !mPrePostPaintRegions.empty(); }
240 
241  // Notification that visible area has been changed.
242  // VisArea is reset, after that scrolling takes place.
243  // The passed rect is situated on pixel borders
244  // in order to avoid pixel errors when scrolling.
245  virtual void VisPortChgd( const SwRect & );
246  bool SmoothScroll( tools::Long lXDiff, tools::Long lYDiff, const tools::Rectangle* );//Browser
247  void EnableSmooth( bool b ) { mbEnableSmooth = b; }
248 
249  const SwRect& VisArea() const;
250 
252  const tools::Rectangle & getLOKVisibleArea() const { return maLOKVisibleArea; }
253  void setLOKVisibleArea(const tools::Rectangle& rArea) { maLOKVisibleArea = rArea; }
254 
255  // If necessary scroll until passed Rect is situated in visible sector.
256  void MakeVisible( const SwRect & );
257 
258  // At nearest occasion pass new document size to UI.
259  void SizeChgNotify();
260  void UISizeNotify(); // Passing of current size.
261 
262  Point GetPagePos( sal_uInt16 nPageNum ) const;
263 
264  sal_uInt16 GetNumPages() const; // Ask count of current pages from layout.
265  bool IsDummyPage( sal_uInt16 nPageNum ) const; // An empty page?
266 
267  // Invalidate first visible page for all Shells in ring.
268  void SetFirstVisPageInvalid();
269 
270  SwRootFrame *GetLayout() const;
271  bool IsNewLayout() const; // Has Layout been loaded or created?
272 
273  Size GetDocSize() const; // Get document size.
274 
275  virtual void CalcLayout(); // Force complete formatting of layout.
276 
277  sal_uInt16 GetPageCount() const;
278 
279  Size GetPageSize( sal_uInt16 nPageNum, bool bSkipEmptyPages ) const;
280 
281  SwDoc *GetDoc() const { return mxDoc.get(); } //Never 0.
282 
285  const IDocumentSettingAccess& getIDocumentSettingAccess() const;
286  IDocumentSettingAccess& getIDocumentSettingAccess();
287 
290  const IDocumentDeviceAccess& getIDocumentDeviceAccess() const;
291  IDocumentDeviceAccess& getIDocumentDeviceAccess();
292 
295  const IDocumentMarkAccess* getIDocumentMarkAccess() const;
296  IDocumentMarkAccess* getIDocumentMarkAccess();
297 
300  const IDocumentDrawModelAccess& getIDocumentDrawModelAccess() const;
301  IDocumentDrawModelAccess& getIDocumentDrawModelAccess();
302 
305  const IDocumentRedlineAccess& getIDocumentRedlineAccess() const;
306  IDocumentRedlineAccess& getIDocumentRedlineAccess();
307 
310  const IDocumentLayoutAccess& getIDocumentLayoutAccess() const;
311  IDocumentLayoutAccess& getIDocumentLayoutAccess();
312 
315  IDocumentContentOperations& getIDocumentContentOperations();
316 
319  IDocumentStylePoolAccess& getIDocumentStylePoolAccess();
320 
323  const IDocumentStatistics& getIDocumentStatistics() const;
324 
327  IDocumentUndoRedo const& GetIDocumentUndoRedo() const;
328  IDocumentUndoRedo & GetIDocumentUndoRedo();
329 
330  const IDocumentListItems* getIDocumentListItemsAccess() const;
331  const IDocumentOutlineNodes* getIDocumentOutlineNodesAccess() const;
332 
333  // 1. GetRefDev: Either the printer or the virtual device from the doc
334  // 2. GetWin: Available if we not printing
335  // 3. GetOut: Printer, Window or Virtual device
336  vcl::RenderContext& GetRefDev() const;
337  vcl::Window* GetWin() const { return mpWin; }
338  vcl::RenderContext* GetOut() const { return mpOut; }
339 
340  void SetWin(vcl::Window* win) { mpWin = win; }
341  void SetOut(vcl::RenderContext* pOut) { mpOut = pOut; }
342  static bool IsLstEndAction() { return SwViewShell::mbLstAct; }
343 
344  // Change of all page descriptors.
345  void ChgAllPageOrientation( Orientation eOri );
346  void ChgAllPageSize( Size const &rSz );
347 
348  // Printing of one page.
349  // bIsPDFExport == true is: do PDF Export (no printing!)
350  bool PrintOrPDFExport( OutputDevice *pOutDev,
351  SwPrintData const& rPrintData,
352  sal_Int32 nRenderer, /* offset in vector of pages to print */
353  bool bIsPDFExport );
354 
355  // Printing of one brochure page.
356  void PrintProspect( OutputDevice *pOutDev, const SwPrintData &rPrintData,
357  sal_Int32 nRenderer /* offset in vector of page pairs for prospect printing */ );
358 
359  // Printing for OLE 2.0.
360  static void PrtOle2( SwDoc *pDoc, const SwViewOption *pOpt, const SwPrintData& rOptions,
361  vcl::RenderContext& rRenderContext, const tools::Rectangle& rRect );
362 
363  // Fill temporary doc with selected text for Print or PDF export.
364  void FillPrtDoc( SwDoc& rPrtDoc, const SfxPrinter* pPrt );
365 
366  // Called internally for Shell. Formats pages.
367  void CalcPagesForPrint( sal_uInt16 nMax );
368 
369  // All about fields.
370  void UpdateFields(bool bCloseDB = false);
371  bool IsAnyFieldInDoc() const;
372  // Update all charts, for that exists any table.
373  void UpdateAllCharts();
374  bool HasCharts() const;
375 
376  // DOCUMENT COMPATIBILITY FLAGS START
377 
378  // Add or maximize paragraph spacing?
379  void SetParaSpaceMax( bool bNew );
380 
381  // Add or maximize paragraph spacing?
382  void SetParaSpaceMaxAtPages( bool bNew );
383 
384  // Compatible behaviour of tabs.
385  void SetTabCompat( bool bNew );
386 
387  // Font metric attribute "External Leading" should be considered.
388  void SetAddExtLeading( bool bNew );
389 
390  // Formatting by virtual device or printer.
391  void SetUseVirDev( bool bNew );
392 
393  // Adding paragraph and table spacing at bottom
394  // of table cells.
395  void SetAddParaSpacingToTableCells( bool _bAddParaSpacingToTableCells );
396 
397  // Former formatting of text lines with
398  // proportional line spacing or not.
399  void SetUseFormerLineSpacing( bool _bUseFormerLineSpacing );
400 
401  // Former object positioning.
402  void SetUseFormerObjectPositioning( bool _bUseFormerObjPos );
403 
404  void SetConsiderWrapOnObjPos( bool _bConsiderWrapOnObjPos );
405 
406  void SetUseFormerTextWrapping( bool _bUseFormerTextWrapping );
407 
408  void SetDoNotJustifyLinesWithManualBreak( bool _bDoNotJustifyLinesWithManualBreak );
409 
410  void SetProtectForm( bool _bProtectForm );
411 
412  void SetMsWordCompTrailingBlanks( bool _bMsWordCompTrailingBlanks );
413 
414  void SetSubtractFlysAnchoredAtFlys(bool bSubtractFlysAnchoredAtFlys);
415 
416  void SetEmptyDbFieldHidesPara(bool bEmptyDbFieldHidesPara);
417 
418  // DOCUMENT COMPATIBILITY FLAGS END
419 
420  // Calls Idle-formatter of Layout.
421  void LayoutIdle();
422 
423  const SwViewOption *GetViewOptions() const { return mpOpt.get(); }
424  virtual void ApplyViewOptions( const SwViewOption &rOpt );
425  void SetUIOptions( const SwViewOption &rOpt );
426  virtual void SetReadonlyOption(bool bSet); // Set readonly-bit of ViewOptions.
427  void SetPDFExportOption(bool bSet); // Set/reset PDF export mode.
428  void SetPrtFormatOption(bool bSet); // Set PrtFormat-Bit of ViewOptions.
429  void SetReadonlySelectionOption(bool bSet); // Change the selection mode in readonly docs.
430 
431  const SwAccessibilityOptions* GetAccessibilityOptions() const { return mpAccOptions.get();}
432 
433  static void SetShellRes( ShellResource* pRes ) { mpShellRes = pRes; }
434  static ShellResource* GetShellRes();
435 
436  static weld::Window* CareChildWin(SwViewShell const & rVSh);
437  static void SetCareDialog(const std::shared_ptr<weld::Window>& rNew);
438  static weld::Window* GetCareDialog(SwViewShell const & rVSh)
439  { return (*mpCareDialog.get()) ? mpCareDialog.get()->get() : CareChildWin(rVSh); }
440 
441  SfxViewShell *GetSfxViewShell() const { return mpSfxViewShell; }
442  void SetSfxViewShell(SfxViewShell *pNew) { mpSfxViewShell = pNew; }
443 
444  // Selection of Draw Engine has been changed.
445  virtual void DrawSelChanged();
446 
447  SwPagePreviewLayout* PagePreviewLayout();
448 
459  void AdjustOptionsForPagePreview( SwPrintData const& rPrintOptions );
460 
461  bool IsViewLocked() const { return mbViewLocked; }
462  void LockView( bool b ) { mbViewLocked = b; }
463 
464  inline void LockPaint();
465  void ImplLockPaint();
466  inline void UnlockPaint( bool bVirDev = false );
467  void ImplUnlockPaint( bool bVirDev );
468  bool IsPaintLocked() const { return mnLockPaint != 0; }
469 
470  // Get/set DrawView and PageView.
471  bool HasDrawView() const;
472  void MakeDrawView();
473 
474  // Are we dragging draw shapes around.
475  bool HasDrawViewDrag() const;
476 
477  // DrawView may be used at UI.
478  SdrView *GetDrawView();
479  const SdrView *GetDrawView() const { return const_cast<SwViewShell*>(this)->GetDrawView(); }
480 
481  // Take care that MarkList is up-to-date in any case (Bug 57153).
482  SdrView *GetDrawViewWithValidMarkList();
483 
484  // Query attribute pool.
485  inline const SfxItemPool& GetAttrPool() const;
486  SfxItemPool& GetAttrPool();
487 
488  bool IsPreview() const { return mbPreview; }
489 
490  bool IsFrameView() const { return mbFrameView; }
491 
492  // Invalidates pages and contents.
493  // When bSizeChanged==true, adds/removes
494  // headers and footers as necessary.
495  void InvalidateLayout(bool bSizeChanged);
496 
497  const Size& GetBrowseBorder() const;
498  sal_Int32 GetBrowseWidth() const;
499  void SetBrowseBorder( const Size& rNew );
500 
501  css::uno::Reference< css::accessibility::XAccessible > CreateAccessible();
502 
503  css::uno::Reference< css::accessibility::XAccessible > CreateAccessiblePreview();
504 
505  void ShowPreviewSelection( sal_uInt16 nSelPage );
506  void InvalidateAccessibleFocus();
507 
508  // Apply Accessibility options.
509  void ApplyAccessibilityOptions(SvtAccessibilityOptions const & rAccessibilityOptions);
510 
523  void InvalidateAccessibleParaFlowRelation( const SwTextFrame* _pFromTextFrame,
524  const SwTextFrame* _pToTextFrame );
525 
528  void InvalidateAccessibleParaTextSelection();
529 
538  void InvalidateAccessibleParaAttrs( const SwTextFrame& rTextFrame );
539 
540  SwAccessibleMap* GetAccessibleMap();
541 
542  SwViewShell( SwViewShell&, vcl::Window *pWin, OutputDevice *pOut = nullptr,
543  tools::Long nFlags = 0 );
544  SwViewShell( SwDoc& rDoc, vcl::Window *pWin,
545  const SwViewOption *pOpt, OutputDevice *pOut = nullptr,
546  tools::Long nFlags = 0 );
547  virtual ~SwViewShell() override;
548 
549  sal_Int32 GetPageNumAndSetOffsetForPDF( OutputDevice& rOut, const SwRect& rRect ) const;
550 
551  bool IsInConstructor() const { return mbInConstructor; }
552 
553  const BitmapEx& GetReplacementBitmap(bool bIsErrorState);
554  void DeleteReplacementBitmaps();
555 
556  const SwPostItMgr* GetPostItMgr() const { return const_cast<SwViewShell*>(this)->GetPostItMgr(); }
557  SwPostItMgr* GetPostItMgr();
558 
560  void ToggleHeaderFooterEdit();
562  bool IsHeaderFooterEdit() const { return mbHeaderFooterEdit; }
563  bool IsShowHeaderFooterSeparator( FrameControlType eControl ) { return (eControl == FrameControlType::Header)? mbShowHeaderSeparator: mbShowFooterSeparator; }
564  virtual void SetShowHeaderFooterSeparator( FrameControlType eControl, bool bShow );
565  bool IsSelectAll() const { return mbSelectAll; }
566 
567  void setOutputToWindow(bool bOutputToWindow);
568  bool isOutputToWindow() const;
569  void OnGraphicArrived(const SwRect&);
570 
571  virtual void dumpAsXml(xmlTextWriterPtr pWriter) const;
572 };
573 
574 // manages global ShellPointer
576 {
577 public:
580 
581  CurrShell( SwViewShell *pNew );
582  ~CurrShell();
583 };
584 
586 {
588 }
589 
591 {
592  if ( !mnStartAction++ )
593  ImplStartAction();
594 }
595 inline void SwViewShell::EndAction( const bool bIdleEnd )
596 {
597  if( 0 == (mnStartAction - 1) )
598  ImplEndAction( bIdleEnd );
599  --mnStartAction;
600 }
601 
603 {
604  if ( !mnLockPaint++ )
605  ImplLockPaint();
606 }
607 inline void SwViewShell::UnlockPaint( bool bVirDev )
608 {
609  if ( 0 == --mnLockPaint )
610  ImplUnlockPaint( bVirDev );
611 }
613 {
614  return const_cast<SwViewShell*>(this)->GetAttrPool();
615 }
616 
617 #endif // INCLUDED_SW_INC_VIEWSH_HXX
618 
619 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
vcl::RenderContext * GetOut() const
Definition: viewsh.hxx:338
bool IsPaintLocked() const
Definition: viewsh.hxx:468
VclPtr< OutputDevice > mpPrePostOutDev
Definition: viewsh.hxx:221
std::stack< vcl::Region > mPrePostPaintRegions
Definition: viewsh.hxx:220
Represents the visualization of a paragraph.
Definition: txtfrm.hxx:151
SwRootFrame * pRoot
Definition: viewsh.hxx:579
MapMode maPrePostMapMode
Definition: viewsh.hxx:222
void ImplEndAction(const bool bIdleEnd)
Definition: viewsh.cxx:240
tools::Rectangle maLOKVisibleArea
The visible area in the LibreOfficeKit client.
Definition: viewsh.hxx:170
SwViewShellImp * Imp()
Definition: viewsh.hxx:182
const SwAccessibilityOptions * GetAccessibilityOptions() const
Definition: viewsh.hxx:431
bool HasInvalidRect() const
Definition: viewsh.hxx:207
const SdrView * GetDrawView() const
Definition: viewsh.hxx:479
static void SetShellRes(ShellResource *pRes)
Definition: viewsh.hxx:433
long Long
Provides numbered items of a document.
Provides access to the marks of a document.
Definition: doc.hxx:186
bool IsPaintInProgress() const
Definition: viewsh.hxx:238
VclPtr< OutputDevice > mpOut
Window, Printer, VirtDev, ...
Definition: viewsh.hxx:115
VclPtr< vcl::Window > mpWin
= 0 during printing or pdf export
Definition: viewsh.hxx:114
std::unique_ptr< SwViewShellImp > mpImp
Definition: viewsh.hxx:111
std::unique_ptr< BitmapEx > m_xErrorBmp
error display of missed images
Definition: viewsh.hxx:98
bool mbOutputToWindow
The virtual device we paint to will end up on the screen.
Definition: viewsh.hxx:178
Of course Writer needs its own rectangles.
Definition: swrect.hxx:35
SfxViewShell * GetSfxViewShell() const
Definition: viewsh.hxx:441
The root element of a Writer document layout.
Definition: rootfrm.hxx:82
void EnableSmooth(bool b)
Definition: viewsh.hxx:247
std::shared_ptr< SwRootFrame > SwRootFramePtr
Definition: viewsh.hxx:78
const MapMode & getPrePostMapMode() const
Definition: viewsh.hxx:227
void SetOutDevAndWin(SwViewShell *pSh, OutputDevice *pO, vcl::Window *pW, sal_uInt16 nZoom)
Definition: paintfrm.cxx:7354
bool IsSelectAll() const
Definition: viewsh.hxx:565
bool IsHeaderFooterEdit() const
Acts both for headers / footers, depending on the bShow(Header|Footer)Separator flags.
Definition: viewsh.hxx:562
sal_uInt16 mnLockPaint
!= 0 if Paint is locked.
Definition: viewsh.hxx:174
Point maPrtOffset
Definition: viewsh.hxx:104
rtl::Reference< SwDoc > mxDoc
The document; never 0.
Definition: viewsh.hxx:171
Size maBrowseBorder
Definition: viewsh.hxx:106
SwRect maVisArea
The modern version of VisArea.
Definition: viewsh.hxx:169
oslFileHandle & pOut
SwDoc * GetDoc() const
Definition: viewsh.hxx:281
void ResetInvalidRect()
Definition: viewsh.hxx:585
static weld::Window * GetCareDialog(SwViewShell const &rVSh)
Definition: viewsh.hxx:438
bool IsInConstructor() const
Definition: viewsh.hxx:551
void ChgHyphenation()
Definition: viewsh.hxx:208
void SetEndActionByVirDev(bool b)
Definition: viewsh.hxx:199
bool IsInEndAction() const
Definition: viewsh.hxx:197
bool Paint(vcl::RenderContext &rRenderContext, const tools::Rectangle &rOutRect) const
paint prepared preview
struct _xmlTextWriter * xmlTextWriterPtr
const SfxItemPool & GetAttrPool() const
Definition: viewsh.hxx:612
Orientation
page preview functionality in the writer
~CurrShell()
Definition: newfrm.cxx:336
SfxViewShell * mpSfxViewShell
Definition: viewsh.hxx:109
Document statistics information.
SwViewShell * pPrev
Definition: viewsh.hxx:578
bool ActionPend() const
Definition: viewsh.hxx:196
std::unique_ptr< SwAccessibilityOptions > mpAccOptions
Definition: viewsh.hxx:118
bool IsPreview() const
Definition: viewsh.hxx:488
sal_uInt16 ActionCount() const
Definition: viewsh.hxx:195
void SetOut(vcl::RenderContext *pOut)
Definition: viewsh.hxx:341
void SetSfxViewShell(SfxViewShell *pNew)
Definition: viewsh.hxx:442
void StartAction()
Definition: viewsh.hxx:590
bool HasArea() const
Definition: swrect.hxx:288
void ImplStartAction()
Definition: viewsh.cxx:456
Provides access to settings of a document.
void LockPaint()
Definition: viewsh.hxx:602
Text operation/manipulation interface.
#define SW_DLLPUBLIC
Definition: swdllapi.h:28
bool IsFrameView() const
Definition: viewsh.hxx:490
static ShellResource * mpShellRes
Resources for the Shell.
Definition: viewsh.hxx:166
void EndAction(const bool bIdleEnd=false)
Definition: viewsh.hxx:595
Provides access to the formatting devices of a document.
static bool mbLstAct
Definition: viewsh.hxx:100
const tools::Rectangle & getLOKVisibleArea() const
The visible area in the client (set by setClientVisibleArea).
Definition: viewsh.hxx:252
FrameControlType
Definition: swtypes.hxx:236
static vcl::DeleteOnDeinit< std::shared_ptr< weld::Window > > mpCareDialog
Avoid this window.
Definition: viewsh.hxx:167
static bool IsLstEndAction()
Definition: viewsh.hxx:342
void setLOKVisibleArea(const tools::Rectangle &rArea)
Definition: viewsh.hxx:253
OutputDevice RenderContext
Definition: paintfrm.hxx:30
void LockView(bool b)
Definition: viewsh.hxx:462
const SwViewOption * GetViewOptions() const
Definition: viewsh.hxx:423
vcl::Window * GetWin() const
Definition: viewsh.hxx:337
Provides outline nodes of a document.
std::unique_ptr< BitmapEx > m_xReplaceBmp
replaced display of still loaded images
Definition: viewsh.hxx:97
VclPtr< OutputDevice > mpBufferedOut
Definition: viewsh.hxx:142
void ImplUnlockPaint(bool bVirDev)
Definition: viewsh.cxx:469
void SetWin(vcl::Window *win)
Definition: viewsh.hxx:340
const SwPostItMgr * GetPostItMgr() const
Definition: viewsh.hxx:556
SwRootFramePtr mpLayout
Definition: viewsh.hxx:144
Provides access to the layout of a document.
Access to the style pool.
SdrPaintWindow * mpTargetPaintWindow
Definition: viewsh.hxx:141
bool IsEndActionByVirDev() const
Definition: viewsh.hxx:200
void Clear()
Definition: swrect.hxx:296
SwRect maInvalidRect
Definition: viewsh.hxx:107
bool mbSelectAll
Special select all mode: whole document selected, even if doc starts with table.
Definition: viewsh.hxx:175
bool IsShowHeaderFooterSeparator(FrameControlType eControl)
Definition: viewsh.hxx:563
std::unique_ptr< SwViewOption > mpOpt
Definition: viewsh.hxx:117
CurrShell(SwViewShell *pNew)
Definition: newfrm.cxx:322
const SwViewShellImp * Imp() const
Definition: viewsh.hxx:183
void SetOutDev(SwViewShell *pSh, OutputDevice *pOut)
Definition: notxtfrm.cxx:174
struct _xmlTextWriter * xmlTextWriterPtr
Definition: viewsh.hxx:80
void Init(const sal_uInt16 _nCols, const sal_uInt16 _nRows, const Size &_rPxWinSize)
init page preview layout
bool IsDrawingLayerPaintInProgress() const
Definition: viewsh.hxx:239
sal_uInt16 mnStartAction
!= 0 if at least one Action is active.
Definition: viewsh.hxx:173
bool IsViewLocked() const
Definition: viewsh.hxx:461
void ImplLockPaint()
Definition: viewsh.cxx:462
void SetSwVisArea(SwViewShell *pSh, const SwRect &rRect)
Definition: vprint.cxx:155
void UnlockPaint(bool bVirDev=false)
Definition: viewsh.hxx:607