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;
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_LINK( PopupModeEndHdl, weld::Popover&, void );
218  DECL_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_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  Top10,
335  Custom,
336  Empty,
337  NonEmpty,
338  TextColor,
339  BackgroundColor,
340  SortAscending,
341  SortDescending,
342  Clear
343  };
344 
345  ScGridWindow( vcl::Window* pParent, ScViewData& rData, ScSplitPos eWhichPos );
346  virtual ~ScGridWindow() override;
347  virtual void dispose() override;
348 
349  virtual void KeyInput(const KeyEvent& rKEvt) override;
350  // #i70788# flush and get overlay
351  rtl::Reference<sdr::overlay::OverlayManager> getOverlayManager() const;
352  void flushOverlayManager();
353 
354  virtual OUString GetSurroundingText() const override;
355  virtual Selection GetSurroundingTextSelection() const override;
356  virtual bool DeleteSurroundingText(const Selection& rSelection) override;
357 
358  virtual void Command( const CommandEvent& rCEvt ) override;
359  virtual void DataChanged( const DataChangedEvent& rDCEvt ) override;
360 
361  virtual void MouseButtonDown( const MouseEvent& rMEvt ) override;
362  virtual void MouseButtonUp( const MouseEvent& rMEvt ) override;
363  virtual void MouseMove( const MouseEvent& rMEvt ) override;
364  virtual bool PreNotify( NotifyEvent& rNEvt ) override;
365  virtual void Tracking( const TrackingEvent& rTEvt ) override;
366 
367  void PaintTile( VirtualDevice& rDevice,
368  int nOutputWidth, int nOutputHeight,
369  int nTilePosX, int nTilePosY,
370  tools::Long nTileWidth, tools::Long nTileHeight );
371 
373  void LogicInvalidate(const tools::Rectangle* pRectangle) override;
374 
378  void SetCellSelectionPixel(int nType, int nPixelX, int nPixelY);
380  void GetCellSelection(std::vector<tools::Rectangle>& rLogicRects);
381 
382  virtual css::uno::Reference< css::accessibility::XAccessible > CreateAccessible() override;
383 
384  void FakeButtonUp();
385 
386  const Point& GetMousePosPixel() const { return aCurMousePos; }
387  void UpdateStatusPosSize();
388 
389  void ClickExtern();
390 
391  using Window::SetPointer;
392 
393  void MoveMouseStatus( ScGridWindow &rDestWin );
394 
395  void ScrollPixel( tools::Long nDifX, tools::Long nDifY );
396  void UpdateEditViewPos();
397 
398  void UpdateFormulas(SCCOL nX1 = -1, SCROW nY1 = -1, SCCOL nX2 = -1, SCROW nY2 = -1);
399 
400  void ShowFilterMenu(weld::Window* pParent, const tools::Rectangle& rCellRect, bool bLayoutRTL);
401 
402  void LaunchDataSelectMenu( SCCOL nCol, SCROW nRow );
403  void DoScenarioMenu( const ScRange& rScenRange );
404 
405  void LaunchAutoFilterMenu(SCCOL nCol, SCROW nRow);
406  void RefreshAutoFilterButton(const ScAddress& rPos);
407  void UpdateAutoFilterFromMenu(AutoFilterMode eMode);
408 
409  void LaunchPageFieldMenu( SCCOL nCol, SCROW nRow );
410  void LaunchDPFieldMenu( SCCOL nCol, SCROW nRow );
411 
412  css::sheet::DataPilotFieldOrientation GetDPFieldOrientation( SCCOL nCol, SCROW nRow ) const;
413 
414  void DPLaunchFieldPopupMenu(const Point& rScrPos, const Size& rScrSize,
415  tools::Long nDimIndex, ScDPObject* pDPObj);
416 
417  void DrawButtons(SCCOL nX1, SCCOL nX2, const ScTableInfo& rTabInfo, OutputDevice* pContentDev);
418 
419  using Window::Draw;
420  void Draw( SCCOL nX1, SCROW nY1, SCCOL nX2, SCROW nY2,
421  ScUpdateMode eMode );
422 
424  void DrawContent(OutputDevice &rDevice, const ScTableInfo& rTableInfo, ScOutputData& aOutputData, bool bLogicText);
425 
426  void CreateAnchorHandle(SdrHdlList& rHdl, const ScAddress& rAddress);
427 
428  void HideCursor();
429  void ShowCursor();
430  void UpdateAutoFillMark(bool bMarked, const ScRange& rMarkRange);
431 
432  void UpdateListValPos( bool bVisible, const ScAddress& rPos );
433 
434  bool ShowNoteMarker( SCCOL nPosX, SCROW nPosY, bool bKeyboard );
435  void HideNoteMarker();
436 
438  MapMode GetDrawMapMode( bool bForce = false );
439 
440  void StopMarking();
441  void UpdateInputContext();
442 
443  bool NeedsRepaint() const { return bNeedsRepaint; }
444 
445  void DoInvertRect( const tools::Rectangle& rPixel );
446 
447  void CheckNeedsRepaint();
448 
449  void UpdateDPFromFieldPopupMenu();
450  bool UpdateVisibleRange();
451 
452  void CursorChanged();
453  void DrawLayerCreated();
454  void SetAutoSpellContext( const std::shared_ptr<sc::SpellCheckContext> &ctx );
455  void ResetAutoSpell();
456  void ResetAutoSpellForContentChange();
457  void SetAutoSpellData( SCCOL nPosX, SCROW nPosY, const std::vector<editeng::MisspellRanges>* pRanges );
458  const std::vector<editeng::MisspellRanges>* GetAutoSpellData( SCCOL nPosX, SCROW nPosY );
459  bool InsideVisibleRange( SCCOL nPosX, SCROW nPosY );
460 
461  void DeleteCopySourceOverlay();
462  void UpdateCopySourceOverlay();
463  void DeleteCursorOverlay();
464  void UpdateCursorOverlay();
465  void DeleteSelectionOverlay();
466  void UpdateSelectionOverlay();
467  void DeleteAutoFillOverlay();
468  void UpdateAutoFillOverlay();
469  void DeleteDragRectOverlay();
470  void UpdateDragRectOverlay();
471  void DeleteHeaderOverlay();
472  void UpdateHeaderOverlay();
473  void DeleteShrinkOverlay();
474  void UpdateShrinkOverlay();
475  void UpdateAllOverlays();
476 
478  OString getCellCursor() const;
479  void notifyKitCellCursor() const;
480  void notifyKitCellViewCursor(const SfxViewShell* pForShell) const;
481  void updateKitCellCursor(const SfxViewShell* pOtherShell) const;
483  void updateKitOtherCursors() const;
484  void updateOtherKitSelections() const;
485 
486  void notifyKitCellFollowJump() const;
487 
488 
490  virtual void LogicMouseButtonDown(const MouseEvent& rMouseEvent) override;
492  virtual void LogicMouseButtonUp(const MouseEvent& rMouseEvent) override;
494  virtual void LogicMouseMove(const MouseEvent& rMouseEvent) override;
495 
496  ScViewData& getViewData();
497  virtual FactoryFunction GetUITestFactory() const override;
498 
499  void updateLOKValListButton(bool bVisible, const ScAddress& rPos) const;
500  void updateLOKInputHelp(const OUString& title, const OUString& content) const;
501 
502  void initiatePageBreaks();
503 
504 protected:
505  void ImpCreateOverlayObjects();
506  void ImpDestroyOverlayObjects();
507 
508 private:
509 
510 #ifdef DBG_UTIL
511  void dumpCellProperties();
512  void dumpColumnInformationPixel();
513  void dumpColumnInformationHmm();
514  void dumpGraphicInformation();
515  void dumpColumnCellStorage();
516 #endif
517 
518 };
519 
520 /* 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
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
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
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)
VclPtr< ScCheckListMenuWindow > mpDPFieldPopup
Definition: gridwin.hxx:156
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:443
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
VclPtr< ScCheckListMenuWindow > mpAutoFilterPopup
Definition: gridwin.hxx:155
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:386
SvtScriptType nPageScript
Definition: gridwin.hxx:181
bool isInside(const B2DPolygon &rCandidate, const B2DPoint &rPoint, bool bWithBorder)
InsCellCmd
Definition: global.hxx:299
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)