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 
203  bool bEEMouse:1; // Edit Engine has mouse
204  bool bDPMouse:1; // DataPilot D&D (new Pivot table)
205  bool bRFMouse:1; // RangeFinder drag
206  bool bRFSize:1;
207  bool bPagebreakDrawn:1;
208  bool bDragRect:1;
209  bool bIsInPaint:1;
210  bool bNeedsRepaint:1;
211  bool bAutoMarkVisible:1;
212  bool bListValButton:1;
213 
214  DECL_LINK( PopupModeEndHdl, weld::Popover&, void );
215  DECL_LINK( PopupSpellingHdl, SpellCallbackInfo&, void );
216 
217  bool TestMouse( const MouseEvent& rMEvt, bool bAction );
218 
219  bool DoPageFieldSelection( SCCOL nCol, SCROW nRow );
220  bool DoAutoFilterButton( SCCOL nCol, SCROW nRow, const MouseEvent& rMEvt );
221  void DoPushPivotButton( SCCOL nCol, SCROW nRow, const MouseEvent& rMEvt, bool bButton, bool bPopup );
222 
223  void DPMouseMove( const MouseEvent& rMEvt );
224  void DPMouseButtonUp( const MouseEvent& rMEvt );
225  void DPTestMouse( const MouseEvent& rMEvt, bool bMove );
226 
233  bool DPTestFieldPopupArrow(const MouseEvent& rMEvt, const ScAddress& rPos, const ScAddress& rDimPos, ScDPObject* pDPObj);
234 
235  void DPLaunchFieldPopupMenu(const Point& rScrPos, const Size& rScrSize, const ScAddress& rPos, ScDPObject* pDPObj);
236 
237  void RFMouseMove( const MouseEvent& rMEvt, bool bUp );
238 
239  void PagebreakMove( const MouseEvent& rMEvt, bool bUp );
240 
241  void UpdateDragRect( bool bShowRange, const tools::Rectangle& rPosRect );
242 
243  bool IsAutoFilterActive( SCCOL nCol, SCROW nRow, SCTAB nTab );
244  void FilterSelect( sal_uLong nSel );
245 
246  void ExecDataSelect( SCCOL nCol, SCROW nRow, const OUString& rStr );
247 
248  bool HasScenarioButton( const Point& rPosPixel, ScRange& rScenRange );
249 
250  void DropScroll( const Point& rMousePos );
251 
252  sal_Int8 AcceptPrivateDrop( const AcceptDropEvent& rEvt );
253  sal_Int8 ExecutePrivateDrop( const ExecuteDropEvent& rEvt );
254  sal_Int8 DropTransferObj( ScTransferObj* pTransObj, SCCOL nDestPosX, SCROW nDestPosY,
255  const Point& rLogicPos, sal_Int8 nDndAction );
256 
257  void HandleMouseButtonDown( const MouseEvent& rMEvt, MouseEventState& rState );
258 
259  bool DrawMouseButtonDown(const MouseEvent& rMEvt);
260  bool DrawMouseButtonUp(const MouseEvent& rMEvt);
261  bool DrawMouseMove(const MouseEvent& rMEvt);
262  bool DrawKeyInput(const KeyEvent& rKEvt, vcl::Window* pWin);
263  bool DrawCommand(const CommandEvent& rCEvt);
264  bool DrawHasMarkedObj();
265  void DrawEndAction();
266  void DrawMarkDropObj( SdrObject* pObj );
267  bool IsMyModel(const SdrEditView* pSdrView);
268 
269  void DrawRedraw( ScOutputData& rOutputData, SdrLayerID nLayer );
270  void DrawSdrGrid( const tools::Rectangle& rDrawingRect, OutputDevice* pContentDev );
271  void DrawAfterScroll();
272  tools::Rectangle GetListValButtonRect( const ScAddress& rButtonPos );
273 
274  void DrawPagePreview( SCCOL nX1, SCROW nY1, SCCOL nX2, SCROW nY2, vcl::RenderContext& rRenderContext);
275 
276  bool GetEditUrl( const Point& rPos,
277  OUString* pName=nullptr, OUString* pUrl=nullptr, OUString* pTarget=nullptr );
278 
279  bool IsSpellErrorAtPos( const Point& rPos, SCCOL nCol1, SCROW nRow );
280 
281  bool HitRangeFinder( const Point& rMouse, RfCorner& rCorner, sal_uInt16* pIndex,
282  SCCOL* pAddX, SCROW* pAddY );
283 
284  sal_uInt16 HitPageBreak( const Point& rMouse, ScRange* pSource,
285  SCCOLROW* pBreak, SCCOLROW* pPrev );
286 
293  bool IsCellCoveredByText(SCCOL nPosX, SCROW nPosY, SCTAB nTab, SCCOL &rTextStartPosX);
294 
295  void PasteSelection( const Point& rPosPixel );
296 
297  void SelectForContextMenu( const Point& rPosPixel, SCCOL nCellX, SCROW nCellY );
298 
299  void GetSelectionRects( ::std::vector< tools::Rectangle >& rPixelRects ) const;
300  void GetSelectionRectsPrintTwips(::std::vector< tools::Rectangle >& rRects) const;
301  void GetPixelRectsFor( const ScMarkData &rMarkData,
302  ::std::vector< tools::Rectangle >& rPixelRects ) const;
303  void GetRectsAnyFor(const ScMarkData &rMarkData,
304  ::std::vector< tools::Rectangle >& rRects, bool bInPrintTwips) const;
305  void UpdateKitSelection(const std::vector<tools::Rectangle>& rRectangles,
306  std::vector<tools::Rectangle>* pLogicRects = nullptr);
307  bool NeedLOKCursorInvalidation(const tools::Rectangle& rCursorRect,
308  const Fraction aScaleX, const Fraction aScaleY);
309  void InvalidateLOKViewCursor(const tools::Rectangle& rCursorRect,
310  const Fraction aScaleX, const Fraction aScaleY);
311 
312 protected:
313  virtual void PrePaint(vcl::RenderContext& rRenderContext) override;
314  virtual void Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle& rRect) override;
315  virtual void GetFocus() override;
316  virtual void LoseFocus() override;
317 
318  virtual void RequestHelp( const HelpEvent& rEvt ) override;
319 
320  virtual sal_Int8 AcceptDrop( const AcceptDropEvent& rEvt ) override;
321  virtual sal_Int8 ExecuteDrop( const ExecuteDropEvent& rEvt ) override;
322  virtual void StartDrag( sal_Int8 nAction, const Point& rPosPixel ) override;
323 
324 public:
325  enum class AutoFilterMode
326  {
327  Normal,
328  Top10,
329  Custom,
330  Empty,
331  NonEmpty,
332  TextColor,
333  BackgroundColor,
336  };
337 
338  ScGridWindow( vcl::Window* pParent, ScViewData& rData, ScSplitPos eWhichPos );
339  virtual ~ScGridWindow() override;
340  virtual void dispose() override;
341 
342  virtual void KeyInput(const KeyEvent& rKEvt) override;
343  // #i70788# flush and get overlay
344  rtl::Reference<sdr::overlay::OverlayManager> getOverlayManager() const;
345  void flushOverlayManager();
346 
347  virtual OUString GetSurroundingText() const override;
348  virtual Selection GetSurroundingTextSelection() const override;
349  virtual bool DeleteSurroundingText(const Selection& rSelection) override;
350 
351  virtual void Command( const CommandEvent& rCEvt ) override;
352  virtual void DataChanged( const DataChangedEvent& rDCEvt ) override;
353 
354  virtual void MouseButtonDown( const MouseEvent& rMEvt ) override;
355  virtual void MouseButtonUp( const MouseEvent& rMEvt ) override;
356  virtual void MouseMove( const MouseEvent& rMEvt ) override;
357  virtual bool PreNotify( NotifyEvent& rNEvt ) override;
358  virtual void Tracking( const TrackingEvent& rTEvt ) override;
359 
360  void PaintTile( VirtualDevice& rDevice,
361  int nOutputWidth, int nOutputHeight,
362  int nTilePosX, int nTilePosY,
363  tools::Long nTileWidth, tools::Long nTileHeight );
364 
366  void LogicInvalidate(const tools::Rectangle* pRectangle) override;
367 
371  void SetCellSelectionPixel(int nType, int nPixelX, int nPixelY);
373  void GetCellSelection(std::vector<tools::Rectangle>& rLogicRects);
374 
375  virtual css::uno::Reference< css::accessibility::XAccessible > CreateAccessible() override;
376 
377  void FakeButtonUp();
378 
379  const Point& GetMousePosPixel() const { return aCurMousePos; }
380  void UpdateStatusPosSize();
381 
382  void ClickExtern();
383 
384  using Window::SetPointer;
385 
386  void MoveMouseStatus( ScGridWindow &rDestWin );
387 
388  void ScrollPixel( tools::Long nDifX, tools::Long nDifY );
389  void UpdateEditViewPos();
390 
391  void UpdateFormulas(SCCOL nX1 = -1, SCROW nY1 = -1, SCCOL nX2 = -1, SCROW nY2 = -1);
392 
393  void ShowFilterMenu(weld::Window* pParent, const tools::Rectangle& rCellRect, bool bLayoutRTL);
394 
395  void LaunchDataSelectMenu( SCCOL nCol, SCROW nRow );
396  void DoScenarioMenu( const ScRange& rScenRange );
397 
398  void LaunchAutoFilterMenu(SCCOL nCol, SCROW nRow);
399  void RefreshAutoFilterButton(const ScAddress& rPos);
400  void UpdateAutoFilterFromMenu(AutoFilterMode eMode);
401 
402  void LaunchPageFieldMenu( SCCOL nCol, SCROW nRow );
403  void LaunchDPFieldMenu( SCCOL nCol, SCROW nRow );
404 
405  css::sheet::DataPilotFieldOrientation GetDPFieldOrientation( SCCOL nCol, SCROW nRow ) const;
406 
407  void DPLaunchFieldPopupMenu(const Point& rScrPos, const Size& rScrSize,
408  tools::Long nDimIndex, ScDPObject* pDPObj);
409 
410  void DrawButtons(SCCOL nX1, SCCOL nX2, const ScTableInfo& rTabInfo, OutputDevice* pContentDev);
411 
412  using Window::Draw;
413  void Draw( SCCOL nX1, SCROW nY1, SCCOL nX2, SCROW nY2,
414  ScUpdateMode eMode );
415 
417  void DrawContent(OutputDevice &rDevice, const ScTableInfo& rTableInfo, ScOutputData& aOutputData, bool bLogicText);
418 
419  void CreateAnchorHandle(SdrHdlList& rHdl, const ScAddress& rAddress);
420 
421  void HideCursor();
422  void ShowCursor();
423  void UpdateAutoFillMark(bool bMarked, const ScRange& rMarkRange);
424 
425  void UpdateListValPos( bool bVisible, const ScAddress& rPos );
426 
427  bool ShowNoteMarker( SCCOL nPosX, SCROW nPosY, bool bKeyboard );
428  void HideNoteMarker();
429 
431  MapMode GetDrawMapMode( bool bForce = false );
432 
433  void StopMarking();
434  void UpdateInputContext();
435 
436  bool NeedsRepaint() { return bNeedsRepaint; }
437 
438  void DoInvertRect( const tools::Rectangle& rPixel );
439 
440  void CheckNeedsRepaint();
441 
442  void UpdateDPFromFieldPopupMenu();
443  bool UpdateVisibleRange();
444 
445  void CursorChanged();
446  void DrawLayerCreated();
447  void SetAutoSpellContext( const std::shared_ptr<sc::SpellCheckContext> &ctx );
448  void ResetAutoSpell();
449  void ResetAutoSpellForContentChange();
450  void SetAutoSpellData( SCCOL nPosX, SCROW nPosY, const std::vector<editeng::MisspellRanges>* pRanges );
451  const std::vector<editeng::MisspellRanges>* GetAutoSpellData( SCCOL nPosX, SCROW nPosY );
452  bool InsideVisibleRange( SCCOL nPosX, SCROW nPosY );
453 
454  void DeleteCopySourceOverlay();
455  void UpdateCopySourceOverlay();
456  void DeleteCursorOverlay();
457  void UpdateCursorOverlay();
458  void DeleteSelectionOverlay();
459  void UpdateSelectionOverlay();
460  void DeleteAutoFillOverlay();
461  void UpdateAutoFillOverlay();
462  void DeleteDragRectOverlay();
463  void UpdateDragRectOverlay();
464  void DeleteHeaderOverlay();
465  void UpdateHeaderOverlay();
466  void DeleteShrinkOverlay();
467  void UpdateShrinkOverlay();
468  void UpdateAllOverlays();
469 
471  OString getCellCursor() const;
472  void notifyKitCellCursor() const;
473  void notifyKitCellViewCursor(const SfxViewShell* pForShell) const;
474  void updateKitCellCursor(const SfxViewShell* pOtherShell) const;
476  void updateKitOtherCursors() const;
477  void updateOtherKitSelections() const;
478 
480  virtual void LogicMouseButtonDown(const MouseEvent& rMouseEvent) override;
482  virtual void LogicMouseButtonUp(const MouseEvent& rMouseEvent) override;
484  virtual void LogicMouseMove(const MouseEvent& rMouseEvent) override;
485 
486  ScViewData& getViewData();
487  virtual FactoryFunction GetUITestFactory() const override;
488 
489  void updateLOKValListButton(bool bVisible, const ScAddress& rPos) const;
490  void updateLOKInputHelp(const OUString& title, const OUString& content) const;
491 
492 protected:
493  void ImpCreateOverlayObjects();
494  void ImpDestroyOverlayObjects();
495 
496 private:
497 
498 #ifdef DBG_UTIL
499  void dumpCellProperties();
500  void dumpColumnInformationPixel();
501  void dumpColumnInformationHmm();
502  void dumpGraphicInformation();
503  void dumpColumnCellStorage();
504 #endif
505 
506 };
507 
508 /* 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
virtual void StartDrag(sal_Int8 nAction, const Point &rPosPixel)
std::unique_ptr< ScDPFieldButton > mpFilterButton
Definition: gridwin.hxx:157
SCCOLROW nPagebreakBreak
Definition: gridwin.hxx:176
SortDescending
ScRange aPagebreakDrag
Definition: gridwin.hxx:179
virtual void MouseButtonUp(const MouseEvent &rMEvt)
ScSplitPos
Definition: viewdata.hxx:44
NONE
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)
SortAscending
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
Stores current visible column and row ranges, used to avoid expensive operations on objects that are ...
Definition: gridwin.hxx:119
virtual void Draw(::OutputDevice *pDev, const Point &rPos, DrawFlags nFlags)
sal_uInt16 nCursorHideCount
Definition: gridwin.hxx:161
sal_uInt16 nPaintCount
Definition: gridwin.hxx:193
RfCorner aRFSelectedCorned
Definition: gridwin.hxx:201
virtual void LoseFocus()
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:379
SvtScriptType nPageScript
Definition: gridwin.hxx:181
bool isInside(const B2DPolygon &rCandidate, const B2DPoint &rPoint, bool bWithBorder)
InsCellCmd
Definition: global.hxx:298
std::unique_ptr< sdr::overlay::OverlayObjectList > mpOODragRect
Definition: gridwin.hxx:103
QPRO_FUNC_TYPE nType
Definition: qproform.cxx:400
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)
bool NeedsRepaint()
Definition: gridwin.hxx:436
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)