LibreOffice Module sc (master)  1
gridwin.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 
20 #pragma once
21 
22 #include <vcl/transfer.hxx>
23 #include "viewutil.hxx"
24 #include "viewdata.hxx"
25 #include "cbutton.hxx"
26 #include "checklistmenu.hxx"
27 #include <com/sun/star/sheet/DataPilotFieldOrientation.hpp>
28 #include <o3tl/deleter.hxx>
29 
30 #include <memory>
31 #include <vector>
32 
33 
34 namespace editeng {
35  struct MisspellRanges;
36 }
37 
38 namespace sc {
39  class SpellCheckContext;
40 }
41 
42 namespace sdr::overlay { class OverlayManager; }
43 
44 class FmFormView;
45 struct ScTableInfo;
46 class ScDPObject;
47 class ScDPFieldButton;
48 class ScOutputData;
49 class SdrObject;
50 class SdrEditView;
51 class ScNoteMarker;
52 class SdrHdlList;
53 class ScTransferObj;
54 struct SpellCallbackInfo;
55 
56  // mouse status (nMouseStatus)
57 
58 #define SC_GM_NONE 0
59 #define SC_GM_TABDOWN 1
60 #define SC_GM_DBLDOWN 2
61 #define SC_GM_FILTER 3
62 #define SC_GM_IGNORE 4
63 #define SC_GM_WATERUNDO 5
64 #define SC_GM_URLDOWN 6
65 
66  // page drag mode
67 
68 #define SC_PD_NONE 0
69 #define SC_PD_RANGE_L 1
70 #define SC_PD_RANGE_R 2
71 #define SC_PD_RANGE_T 4
72 #define SC_PD_RANGE_B 8
73 #define SC_PD_RANGE_TL (SC_PD_RANGE_T|SC_PD_RANGE_L)
74 #define SC_PD_RANGE_TR (SC_PD_RANGE_T|SC_PD_RANGE_R)
75 #define SC_PD_RANGE_BL (SC_PD_RANGE_B|SC_PD_RANGE_L)
76 #define SC_PD_RANGE_BR (SC_PD_RANGE_B|SC_PD_RANGE_R)
77 #define SC_PD_BREAK_H 16
78 #define SC_PD_BREAK_V 32
79 
80 // predefines
81 namespace sdr::overlay { class OverlayObjectList; }
82 
83 class ScFilterListBox;
84 
85 class SAL_DLLPUBLIC_RTTI ScGridWindow : public vcl::Window, public DropTargetHelper, public DragSourceHelper
86 {
87  // ScFilterListBox is always used for selection list
88  friend class ScFilterListBox;
89 
90  enum RfCorner
91  {
96  RIGHT_DOWN
97  };
98 
99  std::unique_ptr<sdr::overlay::OverlayObjectList> mpOOCursors;
100  std::unique_ptr<sdr::overlay::OverlayObjectList> mpOOSelection;
101  std::unique_ptr<sdr::overlay::OverlayObjectList> mpOOSelectionBorder;
102  std::unique_ptr<sdr::overlay::OverlayObjectList> mpOOAutoFill;
103  std::unique_ptr<sdr::overlay::OverlayObjectList> mpOODragRect;
104  std::unique_ptr<sdr::overlay::OverlayObjectList> mpOOHeader;
105  std::unique_ptr<sdr::overlay::OverlayObjectList> mpOOShrink;
106 
107  std::optional<tools::Rectangle> mpAutoFillRect;
108 
111  std::unique_ptr<FmFormView> mpLOKDrawView;
112 
113  struct MouseEventState;
114 
120  {
125 
126  VisibleRange(const ScDocument&);
127 
128  bool isInside(SCCOL nCol, SCROW nRow) const;
129  bool set(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2);
130  };
131 
133 
135  {
139  };
140 
141  // Stores the last cursor position in twips for all
142  // zoom levels demanded from a ScGridWindow instance.
143  std::vector<LOKCursorEntry> maLOKLastCursor;
144 
145  std::shared_ptr<sc::SpellCheckContext> mpSpellCheckCxt;
146 
151 
152  std::unique_ptr<ScNoteMarker, o3tl::default_delete<ScNoteMarker>> mpNoteMarker;
153 
154  std::shared_ptr<ScFilterListBox> mpFilterBox;
155  std::unique_ptr<ScCheckListMenuControl> mpAutoFilterPopup;
156  std::unique_ptr<ScCheckListMenuControl> mpDPFieldPopup;
157  std::unique_ptr<ScDPFieldButton> mpFilterButton;
158 
160 
161  sal_uInt16 nCursorHideCount;
162 
163  sal_uInt16 nButtonDown;
165  enum class ScNestedButtonState { NONE, Down, Up };
166  ScNestedButtonState nNestedButtonState; // track nested button up/down calls
167 
170 
171  sal_uInt16 nRFIndex;
174 
175  sal_uInt16 nPagebreakMouse; // Page break mode, Drag
180 
182 
188 
190 
192 
193  sal_uInt16 nPaintCount;
195 
198 
200 
202 
204 
205  bool bEEMouse:1; // Edit Engine has mouse
206  bool bDPMouse:1; // DataPilot D&D (new Pivot table)
207  bool bRFMouse:1; // RangeFinder drag
208  bool bRFSize:1;
209  bool bPagebreakDrawn:1;
210  bool bDragRect:1;
211  bool bIsInPaint:1;
212  bool bNeedsRepaint:1;
213  bool bAutoMarkVisible:1;
214  bool bListValButton:1;
215  bool bInitialPageBreaks:1;
216 
217  DECL_DLLPRIVATE_LINK( PopupModeEndHdl, weld::Popover&, void );
218  DECL_DLLPRIVATE_LINK( PopupSpellingHdl, SpellCallbackInfo&, void );
219 
220  bool TestMouse( const MouseEvent& rMEvt, bool bAction );
221 
222  bool DoPageFieldSelection( SCCOL nCol, SCROW nRow );
223  bool DoAutoFilterButton( SCCOL nCol, SCROW nRow, const MouseEvent& rMEvt );
224  void DoPushPivotButton( SCCOL nCol, SCROW nRow, const MouseEvent& rMEvt, bool bButton, bool bPopup );
225 
226  void DPMouseMove( const MouseEvent& rMEvt );
227  void DPMouseButtonUp( const MouseEvent& rMEvt );
228  void DPTestMouse( const MouseEvent& rMEvt, bool bMove );
229 
236  bool DPTestFieldPopupArrow(const MouseEvent& rMEvt, const ScAddress& rPos, const ScAddress& rDimPos, ScDPObject* pDPObj);
237 
238  void DPLaunchFieldPopupMenu(const Point& rScrPos, const Size& rScrSize, const ScAddress& rPos, ScDPObject* pDPObj);
239 
240  void RFMouseMove( const MouseEvent& rMEvt, bool bUp );
241 
242  void PagebreakMove( const MouseEvent& rMEvt, bool bUp );
243 
244  void UpdateDragRect( bool bShowRange, const tools::Rectangle& rPosRect );
245 
246  bool IsAutoFilterActive( SCCOL nCol, SCROW nRow, SCTAB nTab );
247  void FilterSelect( sal_uLong nSel );
248 
249  void ExecDataSelect( SCCOL nCol, SCROW nRow, const OUString& rStr );
250 
251  bool HasScenarioButton( const Point& rPosPixel, ScRange& rScenRange );
252 
253  void DropScroll( const Point& rMousePos );
254 
255  sal_Int8 AcceptPrivateDrop( const AcceptDropEvent& rEvt );
256  sal_Int8 ExecutePrivateDrop( const ExecuteDropEvent& rEvt );
257  sal_Int8 DropTransferObj( ScTransferObj* pTransObj, SCCOL nDestPosX, SCROW nDestPosY,
258  const Point& rLogicPos, sal_Int8 nDndAction );
259 
260  void HandleMouseButtonDown( const MouseEvent& rMEvt, MouseEventState& rState );
261 
262  bool DrawMouseButtonDown(const MouseEvent& rMEvt);
263  bool DrawMouseButtonUp(const MouseEvent& rMEvt);
264  bool DrawMouseMove(const MouseEvent& rMEvt);
265  bool DrawKeyInput(const KeyEvent& rKEvt, vcl::Window* pWin);
266  bool DrawCommand(const CommandEvent& rCEvt);
267  bool DrawHasMarkedObj();
268  void DrawEndAction();
269  void DrawMarkDropObj( SdrObject* pObj );
270  bool IsMyModel(const SdrEditView* pSdrView);
271 
272  void DrawRedraw( ScOutputData& rOutputData, SdrLayerID nLayer );
273  void DrawSdrGrid( const tools::Rectangle& rDrawingRect, OutputDevice* pContentDev );
274  void DrawAfterScroll();
275  tools::Rectangle GetListValButtonRect( const ScAddress& rButtonPos );
276 
277  void DrawPagePreview( SCCOL nX1, SCROW nY1, SCCOL nX2, SCROW nY2, vcl::RenderContext& rRenderContext);
278 
279  bool GetEditUrl( const Point& rPos,
280  OUString* pName=nullptr, OUString* pUrl=nullptr, OUString* pTarget=nullptr );
281 
282  bool IsSpellErrorAtPos( const Point& rPos, SCCOL nCol1, SCROW nRow );
283 
284  bool HitRangeFinder( const Point& rMouse, RfCorner& rCorner, sal_uInt16* pIndex,
285  SCCOL* pAddX, SCROW* pAddY );
286 
287  sal_uInt16 HitPageBreak( const Point& rMouse, ScRange* pSource,
288  SCCOLROW* pBreak, SCCOLROW* pPrev );
289 
296  bool IsCellCoveredByText(SCCOL nPosX, SCROW nPosY, SCTAB nTab, SCCOL &rTextStartPosX);
297 
298  void PasteSelection( const Point& rPosPixel );
299 
300  void SelectForContextMenu( const Point& rPosPixel, SCCOL nCellX, SCROW nCellY );
301 
302  void GetSelectionRects( ::std::vector< tools::Rectangle >& rPixelRects ) const;
303  void GetSelectionRectsPrintTwips(::std::vector< tools::Rectangle >& rRects) const;
304  void GetPixelRectsFor( const ScMarkData &rMarkData,
305  ::std::vector< tools::Rectangle >& rPixelRects ) const;
306  void GetRectsAnyFor(const ScMarkData &rMarkData,
307  ::std::vector< tools::Rectangle >& rRects, bool bInPrintTwips) const;
308  void UpdateKitSelection(const std::vector<tools::Rectangle>& rRectangles,
309  std::vector<tools::Rectangle>* pLogicRects = nullptr);
310  bool NeedLOKCursorInvalidation(const tools::Rectangle& rCursorRect,
311  const Fraction aScaleX, const Fraction aScaleY);
312  void InvalidateLOKViewCursor(const tools::Rectangle& rCursorRect,
313  const Fraction aScaleX, const Fraction aScaleY);
314 
315  void SetupInitialPageBreaks(const ScDocument& rDoc, SCTAB nTab);
316  DECL_DLLPRIVATE_LINK(InitiatePageBreaksTimer, Timer*, void);
317 
318 protected:
319  virtual void PrePaint(vcl::RenderContext& rRenderContext) override;
320  virtual void Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle& rRect) override;
321  virtual void GetFocus() override;
322  virtual void LoseFocus() override;
323 
324  virtual void RequestHelp( const HelpEvent& rEvt ) override;
325 
326  virtual sal_Int8 AcceptDrop( const AcceptDropEvent& rEvt ) override;
327  virtual sal_Int8 ExecuteDrop( const ExecuteDropEvent& rEvt ) override;
328  virtual void StartDrag( sal_Int8 nAction, const Point& rPosPixel ) override;
329 
330 public:
331  enum class AutoFilterMode
332  {
333  Normal,
334  Empty,
335  NonEmpty,
336  Top10,
337  Bottom10,
338  Custom,
339  TextColor,
340  BackgroundColor,
341  SortAscending,
342  SortDescending,
343  Clear
344  };
345 
346  ScGridWindow( vcl::Window* pParent, ScViewData& rData, ScSplitPos eWhichPos );
347  virtual ~ScGridWindow() override;
348  virtual void dispose() override;
349 
350  virtual void KeyInput(const KeyEvent& rKEvt) override;
351  // #i70788# flush and get overlay
352  rtl::Reference<sdr::overlay::OverlayManager> getOverlayManager() const;
353  void flushOverlayManager();
354 
355  virtual OUString GetSurroundingText() const override;
356  virtual Selection GetSurroundingTextSelection() const override;
357  virtual bool DeleteSurroundingText(const Selection& rSelection) override;
358 
359  virtual void Command( const CommandEvent& rCEvt ) override;
360  virtual void DataChanged( const DataChangedEvent& rDCEvt ) override;
361 
362  virtual void MouseButtonDown( const MouseEvent& rMEvt ) override;
363  virtual void MouseButtonUp( const MouseEvent& rMEvt ) override;
364  virtual void MouseMove( const MouseEvent& rMEvt ) override;
365  virtual bool PreNotify( NotifyEvent& rNEvt ) override;
366  virtual void Tracking( const TrackingEvent& rTEvt ) override;
367 
368  void PaintTile( VirtualDevice& rDevice,
369  int nOutputWidth, int nOutputHeight,
370  int nTilePosX, int nTilePosY,
371  tools::Long nTileWidth, tools::Long nTileHeight );
372 
374  void LogicInvalidate(const tools::Rectangle* pRectangle) override;
375 
379  void SetCellSelectionPixel(int nType, int nPixelX, int nPixelY);
381  void GetCellSelection(std::vector<tools::Rectangle>& rLogicRects);
382 
383  virtual css::uno::Reference< css::accessibility::XAccessible > CreateAccessible() override;
384 
385  void FakeButtonUp();
386 
387  const Point& GetMousePosPixel() const { return aCurMousePos; }
388  void UpdateStatusPosSize();
389 
390  void ClickExtern();
391 
392  using Window::SetPointer;
393 
394  void MoveMouseStatus( ScGridWindow &rDestWin );
395 
396  void ScrollPixel( tools::Long nDifX, tools::Long nDifY );
397  void UpdateEditViewPos();
398 
399  void UpdateFormulas(SCCOL nX1 = -1, SCROW nY1 = -1, SCCOL nX2 = -1, SCROW nY2 = -1);
400 
401  void ShowFilterMenu(weld::Window* pParent, const tools::Rectangle& rCellRect, bool bLayoutRTL);
402 
403  void LaunchDataSelectMenu( SCCOL nCol, SCROW nRow );
404  void DoScenarioMenu( const ScRange& rScenRange );
405 
406  void LaunchAutoFilterMenu(SCCOL nCol, SCROW nRow);
407  void RefreshAutoFilterButton(const ScAddress& rPos);
408  void UpdateAutoFilterFromMenu(AutoFilterMode eMode);
409 
410  void LaunchPageFieldMenu( SCCOL nCol, SCROW nRow );
411  void LaunchDPFieldMenu( SCCOL nCol, SCROW nRow );
412 
413  css::sheet::DataPilotFieldOrientation GetDPFieldOrientation( SCCOL nCol, SCROW nRow ) const;
414 
415  void DPLaunchFieldPopupMenu(const Point& rScrPos, const Size& rScrSize,
416  tools::Long nDimIndex, ScDPObject* pDPObj);
417 
418  void DrawButtons(SCCOL nX1, SCCOL nX2, const ScTableInfo& rTabInfo, OutputDevice* pContentDev);
419 
420  using Window::Draw;
421  void Draw( SCCOL nX1, SCROW nY1, SCCOL nX2, SCROW nY2,
422  ScUpdateMode eMode );
423 
425  void DrawContent(OutputDevice &rDevice, const ScTableInfo& rTableInfo, ScOutputData& aOutputData, bool bLogicText);
426 
427  void CreateAnchorHandle(SdrHdlList& rHdl, const ScAddress& rAddress);
428 
429  void HideCursor();
430  void ShowCursor();
431  void UpdateAutoFillMark(bool bMarked, const ScRange& rMarkRange);
432 
433  void UpdateListValPos( bool bVisible, const ScAddress& rPos );
434 
435  bool ShowNoteMarker( SCCOL nPosX, SCROW nPosY, bool bKeyboard );
436  void HideNoteMarker();
437 
439  MapMode GetDrawMapMode( bool bForce = false );
440 
441  void StopMarking();
442  void UpdateInputContext();
443 
444  bool NeedsRepaint() const { return bNeedsRepaint; }
445 
446  void DoInvertRect( const tools::Rectangle& rPixel );
447 
448  void CheckNeedsRepaint();
449 
450  void UpdateDPFromFieldPopupMenu();
451  bool UpdateVisibleRange();
452 
453  void CursorChanged();
454  void DrawLayerCreated();
455  void SetAutoSpellContext( const std::shared_ptr<sc::SpellCheckContext> &ctx );
456  void ResetAutoSpell();
457  void ResetAutoSpellForContentChange();
458  void SetAutoSpellData( SCCOL nPosX, SCROW nPosY, const std::vector<editeng::MisspellRanges>* pRanges );
459  const std::vector<editeng::MisspellRanges>* GetAutoSpellData( SCCOL nPosX, SCROW nPosY );
460  bool InsideVisibleRange( SCCOL nPosX, SCROW nPosY );
461 
462  void DeleteCopySourceOverlay();
463  void UpdateCopySourceOverlay();
464  void DeleteCursorOverlay();
465  void UpdateCursorOverlay();
466  void DeleteSelectionOverlay();
467  void UpdateSelectionOverlay();
468  void DeleteAutoFillOverlay();
469  void UpdateAutoFillOverlay();
470  void DeleteDragRectOverlay();
471  void UpdateDragRectOverlay();
472  void DeleteHeaderOverlay();
473  void UpdateHeaderOverlay();
474  void DeleteShrinkOverlay();
475  void UpdateShrinkOverlay();
476  void UpdateAllOverlays();
477 
479  OString getCellCursor() const;
480  void notifyKitCellCursor() const;
481  void notifyKitCellViewCursor(const SfxViewShell* pForShell) const;
482  void updateKitCellCursor(const SfxViewShell* pOtherShell) const;
484  void updateKitOtherCursors() const;
485  void updateOtherKitSelections() const;
486 
487  void notifyKitCellFollowJump() const;
488 
489 
491  virtual void LogicMouseButtonDown(const MouseEvent& rMouseEvent) override;
493  virtual void LogicMouseButtonUp(const MouseEvent& rMouseEvent) override;
495  virtual void LogicMouseMove(const MouseEvent& rMouseEvent) override;
496 
497  ScViewData& getViewData();
498  virtual FactoryFunction GetUITestFactory() const override;
499 
500  void updateLOKValListButton(bool bVisible, const ScAddress& rPos) const;
501  void updateLOKInputHelp(const OUString& title, const OUString& content) const;
502 
503  void initiatePageBreaks();
504 
505 protected:
506  void ImpCreateOverlayObjects();
507  void ImpDestroyOverlayObjects();
508 
509 private:
510 
511 #ifdef DBG_UTIL
512  void dumpCellProperties();
513  void dumpColumnInformationPixel();
514  void dumpColumnInformationHmm();
515  void dumpGraphicInformation();
516  void dumpColumnCellStorage();
517 #endif
518 
519 };
520 
521 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
std::set< ResultEntry > ResultType
std::unique_ptr< ScNoteMarker, o3tl::default_delete< ScNoteMarker > > mpNoteMarker
Definition: gridwin.hxx:152
todo: It should be possible to have MarkArrays for each table, in order to enable "search all" across...
Definition: markdata.hxx:42
virtual FactoryFunction GetUITestFactory() const
SCCOLROW nPagebreakPrev
Definition: gridwin.hxx:177
ScDDComboBoxButton aComboButton
Definition: gridwin.hxx:189
This class takes care of physically drawing field button controls inside data pilot tables...
Definition: dpcontrol.hxx:35
std::unique_ptr< sdr::overlay::OverlayObjectList > mpOOAutoFill
Definition: gridwin.hxx:102
ScVSplitPos
Definition: viewdata.hxx:46
DECL_DLLPRIVATE_LINK(ImplHandlePaintHdl, Timer *, void)
virtual void MouseButtonDown(const MouseEvent &rMEvt)
signed char sal_Int8
std::vector< LOKCursorEntry > maLOKLastCursor
Definition: gridwin.hxx:143
ScRange aPagebreakSource
Definition: gridwin.hxx:178
sal_uIntPtr sal_uLong
std::unique_ptr< FmFormView > mpLOKDrawView
LibreOfficeKit needs a persistent FmFormView for tiled rendering, otherwise the invalidations from dr...
Definition: gridwin.hxx:111
SCCOL nDragStartX
Definition: gridwin.hxx:183
long Long
sal_uInt16 nPagebreakMouse
Definition: gridwin.hxx:175
ScDPObject * pDragDPObj
Definition: gridwin.hxx:169
ScViewData & mrViewData
Definition: gridwin.hxx:147
std::function< std::unique_ptr< UIObject >vcl::Window *)> FactoryFunction
std::unique_ptr< sdr::overlay::OverlayObjectList > mpOOCursors
Definition: gridwin.hxx:99
Timer maShowPageBreaksTimer
Definition: gridwin.hxx:203
virtual void StartDrag(sal_Int8 nAction, const Point &rPosPixel)
std::unique_ptr< ScDPFieldButton > mpFilterButton
Definition: gridwin.hxx:157
SCCOLROW nPagebreakBreak
Definition: gridwin.hxx:176
ScRange aPagebreakDrag
Definition: gridwin.hxx:179
virtual void MouseButtonUp(const MouseEvent &rMEvt)
ScSplitPos
Definition: viewdata.hxx:44
NONE
virtual void Draw(::OutputDevice *pDev, const Point &rPos, SystemTextColorFlags nFlags)
tools::Rectangle aInvertRect
Definition: gridwin.hxx:199
virtual css::uno::Reference< css::accessibility::XAccessible > CreateAccessible()
sal_uInt16 nButtonDown
Definition: gridwin.hxx:163
sal_Int32 SCCOLROW
a type capable of holding either SCCOL or SCROW
Definition: types.hxx:23
tools::Rectangle aRect
Definition: gridwin.hxx:138
Point aCurMousePos
Definition: gridwin.hxx:191
virtual void Tracking(const TrackingEvent &rTEvt)
sal_uInt16 nRFIndex
name?
Definition: gridwin.hxx:171
std::unique_ptr< ScCheckListMenuControl > mpDPFieldPopup
Definition: gridwin.hxx:156
ScAddress aListValPos
Definition: gridwin.hxx:197
virtual Selection GetSurroundingTextSelection() const
ScVSplitPos eVWhich
Definition: gridwin.hxx:150
SCROW nDragStartY
Definition: gridwin.hxx:184
virtual sal_Int8 ExecuteDrop(const ExecuteDropEvent &rEvt)
std::unique_ptr< sdr::overlay::OverlayObjectList > mpOOSelectionBorder
Definition: gridwin.hxx:101
sal_uInt8 nMouseStatus
Definition: gridwin.hxx:164
std::unique_ptr< ScCheckListMenuControl > mpAutoFilterPopup
Definition: gridwin.hxx:155
SCCOL nDragEndX
Definition: gridwin.hxx:185
sal_uInt16 char * pName
Definition: callform.cxx:57
virtual void PrePaint(vcl::RenderContext &rRenderContext)
SvtScriptType
virtual bool DeleteSurroundingText(const Selection &rSelection)
virtual bool PreNotify(NotifyEvent &rNEvt)
virtual OUString GetSurroundingText() const
virtual sal_Int8 AcceptDrop(const AcceptDropEvent &rEvt)
tools::Long nDPField
Definition: gridwin.hxx:168
std::shared_ptr< ScFilterListBox > mpFilterBox
Definition: gridwin.hxx:154
sal_Int16 SCCOL
Definition: types.hxx:21
SCCOL nRFAddX
Definition: gridwin.hxx:172
std::unique_ptr< sdr::overlay::OverlayObjectList > mpOOSelection
Definition: gridwin.hxx:100
bool NeedsRepaint() const
Definition: gridwin.hxx:444
Stores current visible column and row ranges, used to avoid expensive operations on objects that are ...
Definition: gridwin.hxx:119
sal_uInt16 nCursorHideCount
Definition: gridwin.hxx:161
sal_uInt16 nPaintCount
Definition: gridwin.hxx:193
RfCorner aRFSelectedCorned
Definition: gridwin.hxx:201
virtual void LoseFocus()
void Clear(EHistoryType eHistory)
InsCellCmd meDragInsertMode
Definition: gridwin.hxx:187
ScSplitPos eWhich
Definition: gridwin.hxx:148
virtual void KeyInput(const KeyEvent &rKEvt)
ScNestedButtonState nNestedButtonState
Definition: gridwin.hxx:166
ScHSplitPos
Definition: viewdata.hxx:45
void SetPointer(PointerStyle)
sal_Int32 SCROW
Definition: types.hxx:17
VisibleRange maVisibleRange
Definition: gridwin.hxx:132
virtual void LogicMouseButtonUp(const MouseEvent &)
ScUpdateMode
Definition: viewutil.hxx:39
virtual void GetFocus()
unsigned char sal_uInt8
const Point & GetMousePosPixel() const
Definition: gridwin.hxx:387
SvtScriptType nPageScript
Definition: gridwin.hxx:181
bool isInside(const B2DPolygon &rCandidate, const B2DPoint &rPoint, bool bWithBorder)
InsCellCmd
Definition: global.hxx:286
std::unique_ptr< sdr::overlay::OverlayObjectList > mpOODragRect
Definition: gridwin.hxx:103
QPRO_FUNC_TYPE nType
Definition: qproform.cxx:398
virtual void Paint(vcl::RenderContext &rRenderContext, const tools::Rectangle &rRect)
ScCheckListMenuControl::ResultType aSaveAutoFilterResult
Definition: gridwin.hxx:159
ScAddress aAutoMarkPos
Definition: gridwin.hxx:196
virtual void LogicMouseButtonDown(const MouseEvent &)
virtual void MouseMove(const MouseEvent &rMEvt)
std::optional< tools::Rectangle > mpAutoFillRect
Definition: gridwin.hxx:107
virtual void LogicInvalidate(const tools::Rectangle *pRectangle)
tools::Rectangle aRepaintPixel
Definition: gridwin.hxx:194
virtual void LogicMouseMove(const MouseEvent &)
SCROW nRFAddY
Definition: gridwin.hxx:173
virtual void Command(const CommandEvent &rCEvt)
SCROW nDragEndY
Definition: gridwin.hxx:186
std::unique_ptr< sdr::overlay::OverlayObjectList > mpOOHeader
Definition: gridwin.hxx:104
ScHSplitPos eHWhich
Definition: gridwin.hxx:149
virtual void RequestHelp(const HelpEvent &rHEvt)
Empty
std::unique_ptr< sdr::overlay::OverlayObjectList > mpOOShrink
Definition: gridwin.hxx:105
std::shared_ptr< sc::SpellCheckContext > mpSpellCheckCxt
Definition: gridwin.hxx:145
sal_Int16 SCTAB
Definition: types.hxx:22
void set(css::uno::UnoInterfaceReference const &value)
virtual void DataChanged(const DataChangedEvent &rDCEvt)