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