LibreOffice Module sc (master)  1
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
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 .
18  */
22 #include <sal/config.h>
24 #include <array>
25 #include <memory>
26 #include <vcl/scrbar.hxx>
27 #include <vcl/help.hxx>
29 #include "hiranges.hxx"
30 #include "viewutil.hxx"
31 #include "select.hxx"
32 #include "gridwin.hxx"
33 #include "drawview.hxx"
35 namespace editeng {
36  struct MisspellRanges;
37 }
40 class ScOutlineWindow;
41 class ScRowBar;
42 class ScColBar;
43 class ScTabControl;
44 class ScTabViewShell;
45 struct ScRangeFindData;
46 class SvBorder;
47 class FuPoor;
48 class Splitter;
49 class ScTabSplitter;
50 class SdrView;
51 class SdrObject;
52 class ScPageBreakData;
53 class SdrHdlList;
54 class TabBar;
55 namespace com::sun::star::chart2::data { struct HighlightedRange; }
56 namespace tools { class JsonWriter; }
59 {
63 };
65 // Help - Window
68 {
69 private:
72 protected:
73  virtual void Paint( vcl::RenderContext& rRenderContext, const tools::Rectangle& rRect ) override;
74  virtual void Resize() override;
75  virtual void MouseButtonDown( const MouseEvent& rMEvt ) override;
76 public:
77  ScCornerButton( vcl::Window* pParent, ScViewData* pData );
78  virtual ~ScCornerButton() override;
80  virtual void StateChanged( StateChangedType nType ) override;
81  virtual void DataChanged( const DataChangedEvent& rDCEvt ) override;
82 };
85 {
86 private:
89 public:
90  ScExtraEditViewManager(ScTabViewShell* pThisViewShell, std::array<VclPtr<ScGridWindow>, 4> const & pGridWin)
91  : mpThisViewShell(pThisViewShell)
92  , mpGridWin(pGridWin)
93  , mpOtherEditView(nullptr)
94  , nTotalWindows(0)
95  {}
99  void Add(SfxViewShell* pViewShell, ScSplitPos eWhich);
101  void Remove(SfxViewShell* pViewShell, ScSplitPos eWhich);
103 private:
104  template<ModifierTagType ModifierTag>
105  void Apply(SfxViewShell* pViewShell, ScSplitPos eWhich);
107  template<ModifierTagType ModifierTag>
108  void Modifier(ScGridWindow* pWin);
110 private:
112  std::array<VclPtr<ScGridWindow>, 4> const & mpGridWin;
115 };
118 {
119 private:
120  enum BlockMode { None = 0, Normal = 1, Own = 2 };
123  ScViewData aViewData; // must be at the front !
125  std::unique_ptr<ScViewSelectionEngine> pSelEngine;
128  std::unique_ptr<ScHeaderSelectionEngine> pHdrSelEng;
131  std::unique_ptr<ScDrawView> pDrawView;
133  Size aFrameSize; // passed on as for DoResize
136  // The ownership of these two is rather weird. we seem to need
137  // to keep an old copy alive for some period of time to avoid crashing.
141  std::shared_ptr<weld::MessageDialog> m_xMessageBox;
143  std::array<VclPtr<ScGridWindow>, 4> pGridWin;
144  std::array<VclPtr<ScColBar>, 2> pColBar;
145  std::array<VclPtr<ScRowBar>, 2> pRowBar;
146  std::array<VclPtr<ScOutlineWindow>, 2> pColOutline;
147  std::array<VclPtr<ScOutlineWindow>, 2> pRowOutline;
152  VclPtr<ScrollBar> aVScrollBottom; // initially visible
153  VclPtr<ScrollBar> aHScrollLeft; // initially visible
159  std::unique_ptr<sdr::overlay::OverlayObjectList> mxInputHintOO; // help hint for data validation
161  std::unique_ptr<ScPageBreakData> pPageBreakData;
162  std::vector<ScHighlightEntry> maHighlightRanges;
164  ScDocumentUniquePtr pBrushDocument; // cell formats for format paint brush
165  std::unique_ptr<SfxItemSet> pDrawBrushSet; // drawing object attributes for paint brush
173  void* nTipVisible;
176  OUString sTipString;
181  BlockMode meBlockMode; // Marks block
197  double mfPendingTabBarWidth; // Tab bar width relative to frame window width.
204  bool bMinimized:1;
208  bool bMoveIsShift:1;
209  bool bDrawSelMode:1; // Only select draw objects ?
210  bool bLockPaintBrush:1; // keep for more than one use?
211  bool bDragging:1; // for scroll bars
212  bool bBlockNeg:1; // is no longer highlighted?
213  bool bBlockCols:1; // are whole columns selected?
214  bool bBlockRows:1; // are whole rows selected?
215  bool mbInlineWithScrollbar:1; // should inline with scrollbar?
217  void Init();
219  void DoAddWin( ScGridWindow* pWin );
221  void InitScrollBar( ScrollBar& rScrollBar, long nMaxVal );
222  DECL_LINK(ScrollHdl, ScrollBar*, void );
223  DECL_LINK(EndScrollHdl, ScrollBar*, void );
225  DECL_LINK(SplitHdl, Splitter*, void);
226  void DoHSplit(long nSplitPos);
227  void DoVSplit(long nSplitPos);
229  DECL_LINK( TimerHdl, Timer*, void );
231  void UpdateVarZoom();
233  static void SetScrollBar( ScrollBar& rScroll, long nRangeMax, long nVisible, long nPos, bool bLayoutRTL );
234  static long GetScrollBarPos( const ScrollBar& rScroll );
236  void GetAreaMoveEndPosition(SCCOL nMovX, SCROW nMovY, ScFollowMode eMode,
237  SCCOL& rAreaX, SCROW& rAreaY, ScFollowMode& rMode);
239  void SkipCursorHorizontal(SCCOL& rCurX, SCROW& rCurY, SCCOL nOldX, SCCOL nMovX);
240  void SkipCursorVertical(SCCOL& rCurX, SCROW& rCurY, SCROW nOldY, SCROW nMovY);
252  void PaintRangeFinderEntry (const ScRangeFindData* pData, SCTAB nTab);
254 protected:
255  void UpdateHeaderWidth( const ScVSplitPos* pWhich = nullptr,
256  const SCROW* pPosY = nullptr );
258  void HideTip();
259  void ShowRefTip();
261  void ZoomChanged();
262  void UpdateShow();
263  bool UpdateVisibleRange();
264  void GetBorderSize( SvBorder& rBorder, const Size& rSize );
266  void ResetDrawDragMode();
267  bool IsDrawTextEdit() const;
268  void DrawEnableAnim(bool bSet);
270  void MakeDrawView( TriState nForceDesignMode );
272  void HideNoteMarker();
274  void UpdateIMap( SdrObject* pObj );
276 public:
278  ScTabView(const ScTabView&) = delete;
279  const ScTabView& operator=(const ScTabView&) = delete;
281  ScTabView( vcl::Window* pParent, ScDocShell& rDocSh, ScTabViewShell* pViewShell );
282  ~ScTabView();
286  void MakeDrawLayer();
288  void HideListBox();
290  bool HasHintWindow() const;
291  void RemoveHintWindow();
292  void TestHintWindow();
294  DECL_LINK( TabBarResize, ::TabBar*, void );
296  void SetTabBarWidth( long nNewWidth );
299  SC_DLLPUBLIC void SetRelTabBarWidth( double fRelTabBarWidth );
302  void SetPendingRelTabBarWidth( double fRelTabBarWidth );
304  long GetTabBarWidth() const;
306  SC_DLLPUBLIC static double GetRelTabBarWidth();
310  void DoResize( const Point& rOffset, const Size& rSize, bool bInner = false );
311  void RepeatResize( bool bUpdateFix = true );
312  void UpdateFixPos();
313  Point GetGridOffset() const;
315  bool IsDrawSelMode() const { return bDrawSelMode; }
316  void SetDrawSelMode(bool bNew) { bDrawSelMode = bNew; }
318  void SetDrawFuncPtr(FuPoor* pFuncPtr) { pDrawActual = pFuncPtr; }
319  void SetDrawFuncOldPtr(FuPoor* pFuncPtr) { pDrawOld = pFuncPtr; }
323  void DrawDeselectAll();
324  void DrawMarkListHasChanged();
325  void UpdateAnchorHandles();
327  ScPageBreakData* GetPageBreakData() { return pPageBreakData.get(); }
328  const std::vector<ScHighlightEntry>& GetHighlightRanges() const { return maHighlightRanges; }
330  void UpdatePageBreakData( bool bForcePaint = false );
333  const ScViewData& GetViewData() const { return aViewData; }
336  ScViewSelectionEngine* GetSelEngine() { return pSelEngine.get(); }
338  bool SelMouseButtonDown( const MouseEvent& rMEvt );
340  ScDrawView* GetScDrawView() { return pDrawView.get(); }
342  bool IsMinimized() const { return bMinimized; }
349  void TabChanged( bool bSameTabButMoved = false );
350  void SetZoom( const Fraction& rNewX, const Fraction& rNewY, bool bAll );
351  SC_DLLPUBLIC void RefreshZoom();
352  void SetPagebreakMode( bool bSet );
354  void UpdateLayerLocks();
356  void UpdateDrawTextOutliner();
357  void DigitLanguageChanged();
359  static void UpdateInputLine();
361  void InitRefMode( SCCOL nCurX, SCROW nCurY, SCTAB nCurZ, ScRefType eType );
362  void DoneRefMode( bool bContinue = false );
363  void UpdateRef( SCCOL nCurX, SCROW nCurY, SCTAB nCurZ );
364  void StopRefMode();
366  void StopMarking();
367  void FakeButtonUp( ScSplitPos eWhich );
370  vcl::Window* GetWindowByPos( ScSplitPos ePos ) const { return pGridWin[ePos]; }
372  ScSplitPos FindWindow( const vcl::Window* pWindow ) const;
374  void SetActivePointer( PointerStyle nPointer );
376  void ActiveGrabFocus();
378  void ClickCursor( SCCOL nPosX, SCROW nPosY, bool bControl );
380  SC_DLLPUBLIC void SetCursor( SCCOL nPosX, SCROW nPosY, bool bNew = false );
383  void SelectionChanged( bool bFromPaste = false );
384  void CursorPosChanged();
385  void UpdateInputContext();
387  void CheckSelectionTransfer();
389  void InvertHorizontal( ScVSplitPos eWhich, long nDragPos );
390  void InvertVertical( ScHSplitPos eWhich, long nDragPos );
392  Point GetInsertPos() const;
394  Point GetChartInsertPos( const Size& rSize, const ScRange& rCellRange );
395  Point GetChartDialogPos( const Size& rDialogSize, const tools::Rectangle& rLogicChart );
397  void UpdateAutoFillMark( bool bFromPaste = false );
399  void ShowCursor();
400  void HideAllCursors();
401  void ShowAllCursors();
403  void AlignToCursor( SCCOL nCurX, SCROW nCurY, ScFollowMode eMode,
404  const ScSplitPos* pWhich = nullptr );
406  SvxZoomType GetZoomType() const;
407  void SetZoomType( SvxZoomType eNew, bool bAll );
408  sal_uInt16 CalcZoom( SvxZoomType eType, sal_uInt16 nOldZoom );
410  bool HasPageFieldDataAtCursor() const;
411  void StartDataSelect();
413  // MoveCursorAbs - absolute
414  // MoveCursorRel - single cells
415  // MoveCursorPage - screen
416  // MoveCursorArea - Data block
417  // MoveCursorEnd - top left / user range
419  SC_DLLPUBLIC void MoveCursorAbs( SCCOL nCurX, SCROW nCurY, ScFollowMode eMode,
420  bool bShift, bool bControl,
421  bool bKeepOld = false, bool bKeepSel = false );
422  void MoveCursorRel( SCCOL nMovX, SCROW nMovY, ScFollowMode eMode,
423  bool bShift, bool bKeepSel = false );
424  void MoveCursorPage( SCCOL nMovX, SCROW nMovY, ScFollowMode eMode,
425  bool bShift, bool bKeepSel = false );
426  void MoveCursorArea( SCCOL nMovX, SCROW nMovY, ScFollowMode eMode,
427  bool bShift, bool bKeepSel = false );
428  void MoveCursorEnd( SCCOL nMovX, SCROW nMovY, ScFollowMode eMode,
429  bool bShift, bool bKeepSel = false );
430  void MoveCursorScreen( SCCOL nMovX, SCROW nMovY, ScFollowMode eMode, bool bShift );
432  void MoveCursorEnter( bool bShift ); // Shift for direction (select nothing)
434  bool MoveCursorKeyInput( const KeyEvent& rKeyEvent );
436  void FindNextUnprot( bool bShift, bool bInSelection );
438  void GetPageMoveEndPosition(SCCOL nMovX, SCROW nMovY, SCCOL& rPageX, SCROW& rPageY);
440  SC_DLLPUBLIC void SetTabNo( SCTAB nTab, bool bNew = false, bool bExtendSelection = false, bool bSameTabButMoved = false );
441  void SelectNextTab( short nDir, bool bExtendSelection );
442  void SelectTabPage( const sal_uInt16 nTab );
444  void ActivateView( bool bActivate, bool bFirst );
445  void ActivatePart( ScSplitPos eWhich );
446  bool IsInActivatePart() const { return bInActivatePart; }
448  void SetTimer( ScGridWindow* pWin, const MouseEvent& rMEvt );
449  void ResetTimer();
451  void ScrollX( long nDeltaX, ScHSplitPos eWhich, bool bUpdBars = true );
452  void ScrollY( long nDeltaY, ScVSplitPos eWhich, bool bUpdBars = true );
453  SC_DLLPUBLIC void ScrollLines( long nDeltaX, long nDeltaY ); // active
455  bool ScrollCommand( const CommandEvent& rCEvt, ScSplitPos ePos );
457  void ScrollToObject( const SdrObject* pDrawObj );
458  void MakeVisible( const tools::Rectangle& rHMMRect );
460  // Drawing
462  void PaintArea( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow,
465  void PaintGrid();
467  void PaintTopArea( SCCOL nStartCol, SCCOL nEndCol );
468  void PaintTop();
470  void PaintLeftArea( SCROW nStartRow, SCROW nEndRow );
471  void PaintLeft();
473  bool PaintExtras();
475  void RecalcPPT();
477  void CreateAnchorHandles(SdrHdlList& rHdl, const ScAddress& rAddress);
480  void UpdateSelectionOverlay();
481  void UpdateShrinkOverlay();
482  void UpdateAllOverlays();
484  void UpdateFormulas( SCCOL nStartCol = -1, SCROW nStartRow = -1, SCCOL nEndCol = -1, SCROW nEndRow = -1 );
485  void InterpretVisible();
486  void CheckNeedsRepaint();
487  bool NeedsRepaint();
489  void PaintRangeFinder( long nNumber );
490  void AddHighlightRange( const ScRange& rRange, const Color& rColor );
491  void ClearHighlightRanges();
493  void DoChartSelection( const css::uno::Sequence< css::chart2::data::HighlightedRange > & rHilightRanges );
494  void DoDPFieldPopup(OUString const & rPivotTableName, sal_Int32 nDimensionIndex, Point aPoint, Size aSize);
496  long GetGridWidth( ScHSplitPos eWhich );
497  long GetGridHeight( ScVSplitPos eWhich );
499  void UpdateScrollBars( HeaderType eHeaderType = BOTH_HEADERS );
500  void SetNewVisArea();
501  void SetTabProtectionSymbol( SCTAB nTab, const bool bProtect ); // for protection icon of a tab on tabbar
503  void InvalidateAttribs();
506  void AddWindowToForeignEditView(SfxViewShell* pViewShell, ScSplitPos eWhich);
507  void RemoveWindowFromForeignEditView(SfxViewShell* pViewShell, ScSplitPos eWhich);
508  void MakeEditView( ScEditEngineDefaulter* pEngine, SCCOL nCol, SCROW nRow );
509  void KillEditView( bool bNoPaint );
510  void UpdateEditView();
512  // Blocks
514  void SelectAll( bool bContinue = false );
515  void SelectAllTables();
516  void DeselectAllTables();
518  void MarkCursor( SCCOL nCurX, SCROW nCurY, SCTAB nCurZ,
519  bool bCols = false, bool bRows = false, bool bCellSelection = false );
520  void InitBlockMode( SCCOL nCurX, SCROW nCurY, SCTAB nCurZ,
521  bool bTestNeg = false,
522  bool bCols = false, bool bRows = false, bool bForceNeg = false );
523  void InitOwnBlockMode();
524  void DoneBlockMode( bool bContinue = false );
526  bool IsBlockMode() const;
528  void ExpandBlock(SCCOL nMovX, SCROW nMovY, ScFollowMode eMode);
529  void ExpandBlockPage(SCCOL nMovX, SCROW nMovY);
530  void ExpandBlockArea(SCCOL nMovX, SCROW nMovY);
532  void MarkColumns();
533  void MarkRows();
542  void MarkColumns(SCCOL nCol, sal_Int16 nModifier);
549  void MarkRows(SCROW nRow, sal_Int16 nModifier);
551  void MarkDataArea( bool bIncludeCursor = true );
552  void MarkMatrixFormula();
553  void Unmark();
555  void MarkRange( const ScRange& rRange, bool bSetCursor = true, bool bContinue = false );
557  bool IsMarking( SCCOL nCol, SCROW nRow, SCTAB nTab ) const;
559  void PaintMarks( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow );
560  void PaintBlock( bool bReset );
562  void SetMarkData( const ScMarkData& rNew );
563  void MarkDataChanged();
565  void LockModifiers( sal_uInt16 nModifiers );
566  sal_uInt16 GetLockedModifiers() const;
567  void ViewOptionsHasChanged( bool bHScrollChanged,
568  bool bGraphicsChanged);
572  void FreezeSplitters( bool bFreeze, SplitMethod eSplitMethod = SC_SPLIT_METHOD_CURSOR, SCCOLROW nFreezeIndex = -1 );
573  void RemoveSplit();
574  void SplitAtCursor();
575  void SplitAtPixel( const Point& rPixel );
576  void InvalidateSplit();
578  void ErrorMessage(const char* pGlobStrId);
580  void EnableRefInput(bool bFlag);
582  vcl::Window* GetFrameWin() const { return pFrameWin; }
584  bool HasPaintBrush() const { return pBrushDocument || pDrawBrushSet; }
585  ScDocument* GetBrushDocument() const { return pBrushDocument.get(); }
586  SfxItemSet* GetDrawBrushSet() const { return pDrawBrushSet.get(); }
587  bool IsPaintBrushLocked() const { return bLockPaintBrush; }
588  void SetBrushDocument( ScDocumentUniquePtr pNew, bool bLock );
589  void SetDrawBrushSet( std::unique_ptr<SfxItemSet> pNew, bool bLock );
590  void ResetBrushDocument();
592  bool ContinueOnlineSpelling();
593  void EnableAutoSpell( bool bEnable );
594  void ResetAutoSpell();
595  void SetAutoSpellData( SCCOL nPosX, SCROW nPosY, const std::vector<editeng::MisspellRanges>* pRanges );
597  void getRowColumnHeaders(const tools::Rectangle& rRectangle, tools::JsonWriter& rJsonWriter);
599  OString getSheetGeometryData(bool bColumns, bool bRows, bool bSizes, bool bHidden,
600  bool bFiltered, bool bGroups);
603  static void OnLOKNoteStateChanged(const ScPostIt* pNote);
609 };
611 #endif
613 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
void FindNextUnprot(bool bShift, bool bInSelection)
Definition: tabview3.cxx:1526
void TestHintWindow()
Definition: tabview3.cxx:768
SvxZoomType GetZoomType() const
Definition: tabview5.cxx:404
std::array< VclPtr< ScGridWindow >, 4 > const & mpGridWin
Definition: tabview.hxx:112
SCROW GetLOKStartHeaderRow() const
Definition: tabview.hxx:605
void DoChartSelection(const css::uno::Sequence< css::chart2::data::HighlightedRange > &rHilightRanges)
Definition: tabview3.cxx:2533
void InitRefMode(SCCOL nCurX, SCROW nCurY, SCTAB nCurZ, ScRefType eType)
Definition: tabview4.cxx:311
void SelectAll(bool bContinue=false)
Definition: tabview2.cxx:1063
void MarkDataArea(bool bIncludeCursor=true)
Definition: tabview3.cxx:1644
DECL_LINK(ScrollHdl, ScrollBar *, void)
const ScViewData & GetViewData() const
Definition: tabview.hxx:333
void ResetBrushDocument()
Definition: tabview5.cxx:641
static void SetScrollBar(ScrollBar &rScroll, long nRangeMax, long nVisible, long nPos, bool bLayoutRTL)
Definition: tabview4.cxx:345
bool IsDrawSelMode() const
Definition: tabview.hxx:315
virtual void MouseButtonDown(const MouseEvent &rMEvt) override
Definition: tabview.cxx:129
void FreezeSplitters(bool bFreeze, SplitMethod eSplitMethod=SC_SPLIT_METHOD_CURSOR, SCCOLROW nFreezeIndex=-1)
Definition: tabview.cxx:1910
bool bInUpdateHeader
Definition: tabview.hxx:205
todo: It should be possible to have MarkArrays for each table, in order to enable "search all" across...
Definition: markdata.hxx:43
void SetTabBarWidth(long nNewWidth)
Sets an absolute tab bar width (in pixels).
Definition: tabview.cxx:850
std::array< VclPtr< ScRowBar >, 2 > pRowBar
Definition: tabview.hxx:145
bool bBlockCols
Definition: tabview.hxx:213
void RemoveWindowFromForeignEditView(SfxViewShell *pViewShell, ScSplitPos eWhich)
Definition: tabview3.cxx:2029
VclPtr< ScrollBar > aHScrollLeft
Definition: tabview.hxx:153
SC_DLLPUBLIC void RefreshZoom()
Definition: tabview5.cxx:422
SCROW mnLOKEndHeaderRow
Definition: tabview.hxx:200
Definition: viewdata.hxx:47
long nPrevDragPos
Definition: tabview.hxx:179
ScSplitPos FindWindow(const vcl::Window *pWindow) const
Definition: tabview.cxx:905
Definition: tabview.hxx:58
FuPoor * pDrawActual
Definition: tabview.hxx:138
QuickHelpFlags nTipAlign
Definition: tabview.hxx:175
SCCOL mnLOKStartHeaderCol
Definition: tabview.hxx:201
VclPtr< ScrollBar > aVScrollBottom
Definition: tabview.hxx:152
void SetBrushDocument(ScDocumentUniquePtr pNew, bool bLock)
Definition: tabview5.cxx:621
void SetTabProtectionSymbol(SCTAB nTab, const bool bProtect)
Definition: tabview3.cxx:517
void UpdateInputContext()
Definition: tabview3.cxx:2959
void CursorPosChanged()
Definition: tabview3.cxx:619
bool PaintExtras()
Definition: tabview3.cxx:2741
const std::vector< ScHighlightEntry > & GetHighlightRanges() const
Definition: tabview.hxx:328
VclPtr< ScrollBar > aHScrollRight
Definition: tabview.hxx:154
void MarkRange(const ScRange &rRange, bool bSetCursor=true, bool bContinue=false)
Definition: tabview3.cxx:1675
bool bBlockRows
Definition: tabview.hxx:214
void DoneRefMode(bool bContinue=false)
Definition: tabview4.cxx:161
void SelectAllTables()
Definition: tabview2.cxx:1084
Point aBorderPos
Definition: tabview.hxx:134
void PaintRangeFinder(long nNumber)
Definition: tabview3.cxx:2481
virtual void Resize() override
Definition: tabview.cxx:124
void SetPagebreakMode(bool bSet)
Definition: tabview5.cxx:430
void RepeatResize(bool bUpdateFix=true)
Definition: tabview.cxx:768
Point GetChartInsertPos(const Size &rSize, const ScRange &rCellRange)
Definition: tabview.cxx:1684
void HideNoteMarker()
Definition: tabview2.cxx:1386
SCTAB nBlockEndZ
Definition: tabview.hxx:192
ScTabViewShell * mpThisViewShell
Definition: tabview.hxx:111
ScDocument * GetBrushDocument() const
Definition: tabview.hxx:585
vcl::Window * GetFrameWin() const
Definition: tabview.hxx:582
Screen behavior related to cursor movements.
Definition: viewdata.hxx:53
bool IsMinimized() const
Definition: tabview.hxx:342
virtual void Paint(vcl::RenderContext &rRenderContext, const tools::Rectangle &rRect) override
Definition: tabview.cxx:86
double mfPendingTabBarWidth
Definition: tabview.hxx:197
VclPtr< ScTabSplitter > pHSplitter
Definition: tabview.hxx:148
void Remove(SfxViewShell *pViewShell, ScSplitPos eWhich)
Definition: tabview3.cxx:107
sal_uInt16 GetLockedModifiers() const
Definition: tabview.cxx:1894
SCROW mnLOKStartHeaderRow
Definition: tabview.hxx:199
FuPoor * pDrawOld
Definition: tabview.hxx:139
void ViewOptionsHasChanged(bool bHScrollChanged, bool bGraphicsChanged)
Definition: tabview5.cxx:444
void UpdateIMap(SdrObject *pObj)
Definition: tabview5.cxx:485
void PaintGrid()
Definition: tabview3.cxx:2614
void Unmark()
Definition: tabview3.cxx:1711
void GetBorderSize(SvBorder &rBorder, const Size &rSize)
Definition: tabview.cxx:792
static void UpdateInputLine()
Definition: tabview3.cxx:2991
std::shared_ptr< weld::MessageDialog > m_xMessageBox
Definition: tabview.hxx:141
OString getSheetGeometryData(bool bColumns, bool bRows, bool bSizes, bool bHidden, bool bFiltered, bool bGroups)
Definition: tabview.cxx:2831
void RemoveHintWindow()
Definition: tabview3.cxx:865
void SetAutoSpellData(SCCOL nPosX, SCROW nPosY, const std::vector< editeng::MisspellRanges > *pRanges)
Definition: tabview.cxx:2276
bool NeedsRepaint()
Definition: tabview3.cxx:3052
void UpdateAllOverlays()
Definition: tabview2.cxx:999
void AddHighlightRange(const ScRange &rRange, const Color &rColor)
Definition: tabview3.cxx:2509
void TabChanged(bool bSameTabButMoved=false)
Called after moving, copying, inserting or deleting a sheet.
Definition: tabview5.cxx:277
void LockModifiers(sal_uInt16 nModifiers)
Definition: tabview.cxx:1888
SC_DLLPUBLIC void SetCursor(SCCOL nPosX, SCROW nPosY, bool bNew=false)
Definition: tabview3.cxx:358
ScExtraEditViewManager(ScTabViewShell *pThisViewShell, std::array< VclPtr< ScGridWindow >, 4 > const &pGridWin)
Definition: tabview.hxx:90
bool bLockPaintBrush
Definition: tabview.hxx:210
void PaintRangeFinderEntry(const ScRangeFindData *pData, SCTAB nTab)
Update marks for a selected Range.
Definition: tabview3.cxx:2420
VclPtr< vcl::Window > sTopParent
Definition: tabview.hxx:177
virtual void StateChanged(StateChangedType nType) override
Definition: tabview.cxx:106
void ResetAutoSpell()
Definition: tabview.cxx:2265
Definition: viewdata.hxx:45
virtual ~ScCornerButton() override
Definition: tabview.cxx:82
SC_DLLPUBLIC void MoveCursorAbs(SCCOL nCurX, SCROW nCurY, ScFollowMode eMode, bool bShift, bool bControl, bool bKeepOld=false, bool bKeepSel=false)
Definition: tabview3.cxx:1178
SCCOL nBlockStartXOrig
Definition: tabview.hxx:184
void DeselectAllTables()
Definition: tabview2.cxx:1102
void UpdateCopySourceOverlay()
Definition: tabview2.cxx:978
void KillEditView(bool bNoPaint)
Definition: tabview3.cxx:2157
void MoveCursorScreen(SCCOL nMovX, SCROW nMovY, ScFollowMode eMode, bool bShift)
Definition: tabview3.cxx:1357
void UpdateAutoFillMark(bool bFromPaste=false)
Definition: tabview3.cxx:183
SCCOL GetLOKEndHeaderCol() const
Definition: tabview.hxx:608
void StartDataSelect()
Definition: tabview.cxx:2179
BlockMode meBlockMode
Definition: tabview.hxx:181
static long GetScrollBarPos(const ScrollBar &rScroll)
Definition: tabview4.cxx:357
long GetTabBarWidth() const
Returns the current tab bar width in pixels.
Definition: tabview.cxx:874
void UpdateFixPos()
Definition: tabview.cxx:755
void PaintLeft()
Definition: tabview3.cxx:2690
void PaintLeftArea(SCROW nStartRow, SCROW nEndRow)
Definition: tabview3.cxx:2701
ScPageBreakData * GetPageBreakData()
Definition: tabview.hxx:327
long GetGridWidth(ScHSplitPos eWhich)
Definition: tabview3.cxx:2971
void MoveCursorEnd(SCCOL nMovX, SCROW nMovY, ScFollowMode eMode, bool bShift, bool bKeepSel=false)
Definition: tabview3.cxx:1327
void * nTipVisible
Definition: tabview.hxx:173
std::array< VclPtr< ScGridWindow >, 4 > pGridWin
Definition: tabview.hxx:143
void HideTip()
Definition: tabview4.cxx:36
SC_DLLPUBLIC void SetRelTabBarWidth(double fRelTabBarWidth)
Sets a relative tab bar width.
Definition: tabview.cxx:861
sal_Int32 SCCOLROW
a type capable of holding either SCCOL or SCROW
Definition: types.hxx:24
long GetGridHeight(ScVSplitPos eWhich)
Definition: tabview3.cxx:2982
Additional class containing cell annotation data.
Definition: postit.hxx:160
void SetPendingRelTabBarWidth(double fRelTabBarWidth)
Sets a relative tab bar width.
Definition: tabview.cxx:868
SCROW GetLOKEndHeaderRow() const
Definition: tabview.hxx:606
void SetDrawFuncPtr(FuPoor *pFuncPtr)
Definition: tabview.hxx:318
void MarkDataChanged()
Definition: tabview3.cxx:1734
void OnLibreOfficeKitTabChanged()
Definition: tabview3.cxx:2034
Definition: tabview.hxx:195
void PaintBlock(bool bReset)
divide PaintBlock into two methods: RepaintBlock and RemoveBlock or similar
Definition: tabview2.cxx:1010
std::unique_ptr< SfxItemSet > pDrawBrushSet
Definition: tabview.hxx:165
void Modifier(ScGridWindow *pWin)
Definition: tabview3.cxx:136
SCCOL mnLOKEndHeaderCol
Definition: tabview.hxx:202
void UpdateShrinkOverlay()
Definition: tabview2.cxx:992
bool SelMouseButtonDown(const MouseEvent &rMEvt)
Definition: tabview3.cxx:1156
void UpdateFormulas(SCCOL nStartCol=-1, SCROW nStartRow=-1, SCCOL nEndCol=-1, SCROW nEndRow=-1)
Definition: tabview3.cxx:2269
bool IsPaintBrushLocked() const
Definition: tabview.hxx:587
void UpdateEditView()
Definition: tabview3.cxx:2134
void ActivatePart(ScSplitPos eWhich)
Definition: tabview3.cxx:2861
virtual void DataChanged(const DataChangedEvent &rDCEvt) override
Definition: tabview.cxx:115
void RecalcPPT()
Definition: tabview3.cxx:2756
void DrawMarkListHasChanged()
Definition: tabview5.cxx:473
void DoneBlockMode(bool bContinue=false)
Definition: tabview2.cxx:408
void ClearHighlightRanges()
Definition: tabview3.cxx:2519
void DoHSplit(long nSplitPos)
Definition: tabview.cxx:1522
bool IsBlockMode() const
Definition: tabview2.cxx:443
void ActivateView(bool bActivate, bool bFirst)
Definition: tabview3.cxx:2785
void SkipCursorVertical(SCCOL &rCurX, SCROW &rCurY, SCROW nOldY, SCROW nMovY)
Definition: tabview2.cxx:787
std::unique_ptr< sdr::overlay::OverlayObjectList > mxInputHintOO
Definition: tabview.hxx:159
ScViewData & GetViewData()
Definition: tabview.hxx:332
SCCOL nBlockEndX
Definition: tabview.hxx:185
void PaintTop()
Definition: tabview3.cxx:2625
ScGridWindow * GetActiveWin()
Definition: tabview.cxx:884
void CheckNeedsRepaint()
Definition: tabview3.cxx:3043
void SelectionChanged(bool bFromPaste=false)
Definition: tabview3.cxx:522
bool HasHintWindow() const
Definition: tabview3.cxx:863
bool IsInActivatePart() const
Definition: tabview.hxx:446
void ScrollToObject(const SdrObject *pDrawObj)
Definition: tabview5.cxx:536
void InterpretVisible()
Definition: tabview4.cxx:501
void PaintArea(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, ScUpdateMode eMode=ScUpdateMode::All)
Definition: tabview3.cxx:2292
void SelectTabPage(const sal_uInt16 nTab)
Definition: tabview3.cxx:1779
std::unique_ptr< ScPageBreakData > pPageBreakData
Definition: tabview.hxx:161
void ExpandBlock(SCCOL nMovX, SCROW nMovY, ScFollowMode eMode)
Definition: tabview2.cxx:847
bool ContinueOnlineSpelling()
Definition: tabview.cxx:2239
void SetZoom(const Fraction &rNewX, const Fraction &rNewY, bool bAll)
Definition: tabview5.cxx:414
SCROW nBlockStartYOrig
Definition: tabview.hxx:188
EditView * mpOtherEditView
Definition: tabview.hxx:113
vcl::Window * GetWindowByPos(ScSplitPos ePos) const
Definition: tabview.hxx:370
OUString sTipString
Definition: tabview.hxx:176
ScDocumentUniquePtr pBrushDocument
Definition: tabview.hxx:164
bool ScrollCommand(const CommandEvent &rCEvt, ScSplitPos ePos)
Definition: tabview.cxx:945
VclPtr< ScTabControl > pTabControl
Definition: tabview.hxx:150
SCTAB nBlockStartZ
Definition: tabview.hxx:191
void DoAddWin(ScGridWindow *pWin)
Definition: tabview5.cxx:267
Size aFrameSize
Definition: tabview.hxx:133
std::unique_ptr< ScDocument, o3tl::default_delete< ScDocument > > ScDocumentUniquePtr
Definition: document.hxx:2618
void InvertVertical(ScHSplitPos eWhich, long nDragPos)
Definition: tabview4.cxx:486
sal_Int16 SCCOL
Definition: types.hxx:22
void CreateAnchorHandles(SdrHdlList &rHdl, const ScAddress &rAddress)
Definition: tabview3.cxx:2636
void SetActivePointer(PointerStyle nPointer)
Definition: tabview.cxx:891
void FakeButtonUp(ScSplitPos eWhich)
Definition: tabview3.cxx:209
void UpdateHeaderWidth(const ScVSplitPos *pWhich=nullptr, const SCROW *pPosY=nullptr)
Definition: tabview.cxx:1342
SC_DLLPUBLIC void SetTabNo(SCTAB nTab, bool bNew=false, bool bExtendSelection=false, bool bSameTabButMoved=false)
Definition: tabview3.cxx:1786
void ExpandBlockArea(SCCOL nMovX, SCROW nMovY)
Definition: tabview2.cxx:969
void DrawEnableAnim(bool bSet)
Definition: tabview5.cxx:491
void InitScrollBar(ScrollBar &rScrollBar, long nMaxVal)
Definition: tabview.cxx:222
void InvertHorizontal(ScVSplitPos eWhich, long nDragPos)
Definition: tabview4.cxx:471
void MakeVisible(const tools::Rectangle &rHMMRect)
Definition: tabview5.cxx:545
void ResetDrawDragMode()
Definition: tabview5.cxx:438
void InvalidateSplit()
Definition: tabview.cxx:2109
const ScTabView & operator=(const ScTabView &)=delete
void InitOwnBlockMode()
Definition: tabview2.cxx:331
SCCOL nBlockStartX
Definition: tabview.hxx:183
VclPtr< ScrollBar > aVScrollTop
Definition: tabview.hxx:151
bool HasPageFieldDataAtCursor() const
Definition: tabview.cxx:2168
void MakeEditView(ScEditEngineDefaulter *pEngine, SCCOL nCol, SCROW nRow)
Definition: tabview3.cxx:2077
SC_DLLPUBLIC void ScrollLines(long nDeltaX, long nDeltaY)
Definition: tabview.cxx:1314
sal_uInt16 CalcZoom(SvxZoomType eType, sal_uInt16 nOldZoom)
Definition: tabview2.cxx:1180
static SC_DLLPUBLIC double GetRelTabBarWidth()
Returns the current tab bar width relative to the frame window width (0.0 ...
Definition: tabview.cxx:879
void DoDPFieldPopup(OUString const &rPivotTableName, sal_Int32 nDimensionIndex, Point aPoint, Size aSize)
Definition: tabview3.cxx:2591
void RemoveSplit()
Definition: tabview.cxx:2065
void EnableAutoSpell(bool bEnable)
Definition: tabview.cxx:2254
VclPtr< ScrollBarBox > aScrollBarBox
Definition: tabview.hxx:157
void SplitAtCursor()
Definition: tabview.cxx:2072
Base class for all functions.
Definition: fupoor.hxx:40
void UpdateSelectionOverlay()
Definition: tabview2.cxx:985
void ResetTimer()
Definition: tabview.cxx:244
void UpdateScrollBars(HeaderType eHeaderType=BOTH_HEADERS)
Definition: tabview4.cxx:392
bool bMinimized
Definition: tabview.hxx:204
VclPtr< ScCornerButton > aTopButton
Definition: tabview.hxx:156
void InvalidateAttribs()
Definition: tabview3.cxx:247
void Apply(SfxViewShell *pViewShell, ScSplitPos eWhich)
Definition: tabview3.cxx:114
void EnableRefInput(bool bFlag)
Definition: tabview.cxx:2216
void extendTiledAreaIfNeeded()
Definition: tabview.cxx:2907
void SetNewVisArea()
Definition: tabview.cxx:2121
void StopRefMode()
Definition: tabview4.cxx:115
void DigitLanguageChanged()
Definition: tabview5.cxx:528
void UpdateShow()
Definition: tabview.cxx:1411
bool bInZoomUpdate
Definition: tabview.hxx:207
void Add(SfxViewShell *pViewShell, ScSplitPos eWhich)
Definition: tabview3.cxx:102
std::array< VclPtr< ScOutlineWindow >, 2 > pColOutline
Definition: tabview.hxx:146
void ClickCursor(SCCOL nPosX, SCROW nPosY, bool bControl)
Definition: tabview3.cxx:158
ScViewFunctionSet & GetFunctionSet()
Definition: tabview.hxx:335
The window left of or above the spreadsheet containing the outline groups and controls to expand/coll...
Definition: olinewin.hxx:33
bool mbInlineWithScrollbar
Definition: tabview.hxx:215
bool HasPaintBrush() const
Definition: tabview.hxx:584
void PaintMarks(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow)
Definition: tabview2.cxx:302
SfxItemSet * GetDrawBrushSet() const
Definition: tabview.hxx:586
Definition: viewdata.hxx:46
void MarkRows()
Definition: tabview3.cxx:1581
sal_Int32 SCROW
Definition: types.hxx:18
void ShowRefTip()
Definition: tabview4.cxx:51
void MakeDrawLayer()
Definition: tabview2.cxx:1393
void UpdateVarZoom()
Definition: tabview.cxx:728
void MoveCursorEnter(bool bShift)
Definition: tabview3.cxx:1394
void HideAllCursors()
Definition: tabview3.cxx:215
std::vector< ScHighlightEntry > maHighlightRanges
Definition: tabview.hxx:162
tools::Rectangle aTipRectangle
Definition: tabview.hxx:174
MouseEvent aTimerMEvt
Definition: tabview.hxx:169
void SetTimer(ScGridWindow *pWin, const MouseEvent &rMEvt)
Definition: tabview.cxx:237
ScDrawView * GetScDrawView()
Definition: tabview.hxx:340
void SetDrawFuncOldPtr(FuPoor *pFuncPtr)
Definition: tabview.hxx:319
Definition: viewutil.hxx:39
void DrawDeselectAll()
Definition: tabview5.cxx:375
std::unique_ptr< ScHeaderSelectionEngine > pHdrSelEng
Definition: tabview.hxx:128
void ErrorMessage(const char *pGlobStrId)
Definition: tabview2.cxx:1412
bool UpdateVisibleRange()
Definition: tabview.cxx:1492
void MoveCursorPage(SCCOL nMovX, SCROW nMovY, ScFollowMode eMode, bool bShift, bool bKeepSel=false)
Definition: tabview3.cxx:1311
void getRowColumnHeaders(const tools::Rectangle &rRectangle, tools::JsonWriter &rJsonWriter)
Definition: tabview.cxx:2599
void CheckSelectionTransfer()
Definition: tabview3.cxx:463
void AddWindowToForeignEditView(SfxViewShell *pViewShell, ScSplitPos eWhich)
Definition: tabview3.cxx:2024
bool bDragging
Definition: tabview.hxx:211
ScHeaderFunctionSet aHdrFunc
Definition: tabview.hxx:129
bool IsDrawTextEdit() const
Definition: tabview5.cxx:396
void MoveCursorArea(SCCOL nMovX, SCROW nMovY, ScFollowMode eMode, bool bShift, bool bKeepSel=false)
Definition: tabview3.cxx:1319
void MoveCursorRel(SCCOL nMovX, SCROW nMovY, ScFollowMode eMode, bool bShift, bool bKeepSel=false)
Definition: tabview3.cxx:1253
void ActiveGrabFocus()
Definition: tabview.cxx:898
Timer aScrollTimer
Definition: tabview.hxx:167
void StopMarking()
Definition: tabview2.cxx:1371
VclPtr< ScCornerButton > aCornerButton
Definition: tabview.hxx:155
FuPoor * GetDrawFuncPtr()
Definition: tabview.hxx:320
bool bBlockNeg
Definition: tabview.hxx:212
VclPtr< ScTabSplitter > pVSplitter
Definition: tabview.hxx:149
bool bInActivatePart
Definition: tabview.hxx:206
Mouse mode to select areas.
Definition: viewdata.hxx:56
void ZoomChanged()
Definition: tabview3.cxx:2996
Definition: qproform.cxx:401
static void OnLOKNoteStateChanged(const ScPostIt *pNote)
Definition: tabview5.cxx:650
ScViewData * pViewData
Definition: tabview.hxx:70
void GetPageMoveEndPosition(SCCOL nMovX, SCROW nMovY, SCCOL &rPageX, SCROW &rPageY)
Definition: tabview2.cxx:599
SCCOL GetLOKStartHeaderCol() const
Definition: tabview.hxx:607
void GetAreaMoveEndPosition(SCCOL nMovX, SCROW nMovY, ScFollowMode eMode, SCCOL &rAreaX, SCROW &rAreaY, ScFollowMode &rMode)
Definition: tabview2.cxx:649
ScViewSelectionEngine * GetSelEngine()
Definition: tabview.hxx:336
bool bDrawSelMode
Definition: tabview.hxx:209
void ScrollY(long nDeltaY, ScVSplitPos eWhich, bool bUpdBars=true)
Definition: tabview.cxx:1230
std::array< VclPtr< ScColBar >, 2 > pColBar
Definition: tabview.hxx:144
std::unique_ptr< ScViewSelectionEngine > pSelEngine
Definition: tabview.hxx:125
void AlignToCursor(SCCOL nCurX, SCROW nCurY, ScFollowMode eMode, const ScSplitPos *pWhich=nullptr)
Definition: tabview3.cxx:904
void HideListBox()
Definition: tabview3.cxx:2950
void ShowCursor()
Definition: tabview3.cxx:241
void UpdateAnchorHandles()
Definition: tabview5.cxx:479
void SelectNextTab(short nDir, bool bExtendSelection)
Definition: tabview3.cxx:1741
void SetZoomType(SvxZoomType eNew, bool bAll)
Definition: tabview5.cxx:409
VclPtr< vcl::Window > pFrameWin
Definition: tabview.hxx:122
ScExtraEditViewManager aExtraEditViewManager
Definition: tabview.hxx:171
Definition: tabview.hxx:194
Point GetInsertPos() const
Definition: tabview.cxx:1667
std::array< VclPtr< ScOutlineWindow >, 2 > pRowOutline
Definition: tabview.hxx:147
void SkipCursorHorizontal(SCCOL &rCurX, SCROW &rCurY, SCCOL nOldX, SCCOL nMovX)
Definition: tabview2.cxx:727
Point GetChartDialogPos(const Size &rDialogSize, const tools::Rectangle &rLogicChart)
Definition: tabview.cxx:1802
void UpdateDrawTextOutliner()
Definition: tabview5.cxx:518
ScViewData aViewData
Definition: tabview.hxx:123
void ScrollX(long nDeltaX, ScHSplitPos eWhich, bool bUpdBars=true)
Definition: tabview.cxx:1147
void UpdateRef(SCCOL nCurX, SCROW nCurY, SCTAB nCurZ)
Definition: tabview4.cxx:188
std::unique_ptr< ScDrawView > pDrawView
Definition: tabview.hxx:131
FuPoor * GetDrawFuncOldPtr()
Definition: tabview.hxx:321
VclPtr< ScGridWindow > pTimerWindow
Definition: tabview.hxx:168
void PaintTopArea(SCCOL nStartCol, SCCOL nEndCol)
Definition: tabview3.cxx:2645
ScTabView(const ScTabView &)=delete
make noncopyable
void UpdateLayerLocks()
Definition: tabview5.cxx:342
void MarkColumns()
Definition: tabview3.cxx:1553
void MarkCursor(SCCOL nCurX, SCROW nCurY, SCTAB nCurZ, bool bCols=false, bool bRows=false, bool bCellSelection=false)
Definition: tabview2.cxx:448
double GetPendingRelTabBarWidth() const
Returns the pending tab bar width relative to the frame window width (0.0 ...
Definition: tabview.hxx:308
Point GetGridOffset() const
Definition: tabview.cxx:915
Point GetMousePosPixel()
Definition: tabview.cxx:1899
SCROW nBlockStartY
Definition: tabview.hxx:187
void DoResize(const Point &rOffset, const Size &rSize, bool bInner=false)
Definition: tabview.cxx:275
void MarkMatrixFormula()
Definition: tabview3.cxx:1664
void ExpandBlockPage(SCCOL nMovX, SCROW nMovY)
Definition: tabview2.cxx:961
SC_DLLPUBLIC void CellContentChanged()
Definition: tabview3.cxx:503
Definition: scdllapi.h:28
void UpdatePageBreakData(bool bForcePaint=false)
Definition: tabview2.cxx:1445
void SetDrawBrushSet(std::unique_ptr< SfxItemSet > pNew, bool bLock)
Definition: tabview5.cxx:631
ScViewFunctionSet aFunctionSet
Definition: tabview.hxx:126
SCROW nBlockEndY
Definition: tabview.hxx:189
void SplitAtPixel(const Point &rPixel)
Definition: tabview.cxx:2094
bool bMoveIsShift
Definition: tabview.hxx:208
void InitBlockMode(SCCOL nCurX, SCROW nCurY, SCTAB nCurZ, bool bTestNeg=false, bool bCols=false, bool bRows=false, bool bForceNeg=false)
Definition: tabview2.cxx:352
bool IsMarking(SCCOL nCol, SCROW nRow, SCTAB nTab) const
Definition: tabview2.cxx:323
sal_Int16 SCTAB
Definition: types.hxx:23
bool MoveCursorKeyInput(const KeyEvent &rKeyEvent)
Definition: tabview3.cxx:1451
void ShowAllCursors()
Definition: tabview3.cxx:229
void MakeDrawView(TriState nForceDesignMode)
Definition: tabview5.cxx:223
void SetDrawSelMode(bool bNew)
Definition: tabview.hxx:316
void SetMarkData(const ScMarkData &rNew)
Definition: tabview3.cxx:1725
ScCornerButton(vcl::Window *pParent, ScViewData *pData)
Definition: tabview.cxx:75
void Init()
Definition: tabview5.cxx:58
void DoVSplit(long nSplitPos)
Definition: tabview.cxx:1594