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