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;
88struct ScDPLabelData;
89
90class SAL_DLLPUBLIC_RTTI ScGridWindow : public vcl::DocWindow, public DropTargetHelper, public DragSourceHelper
91{
92 // ScFilterListBox is always used for selection list
93 friend class ScFilterListBox;
94
96 {
101 RIGHT_DOWN
102 };
103
104 std::unique_ptr<sdr::overlay::OverlayObjectList> mpOOCursors;
105 std::unique_ptr<sdr::overlay::OverlayObjectList> mpOOSelection;
106 std::unique_ptr<sdr::overlay::OverlayObjectList> mpOOSelectionBorder;
107 std::unique_ptr<sdr::overlay::OverlayObjectList> mpOOAutoFill;
108 std::unique_ptr<sdr::overlay::OverlayObjectList> mpOODragRect;
109 std::unique_ptr<sdr::overlay::OverlayObjectList> mpOOHeader;
110 std::unique_ptr<sdr::overlay::OverlayObjectList> mpOOShrink;
111 std::unique_ptr<sdr::overlay::OverlayObjectList> mpOOSparklineGroup;
112
113 std::optional<tools::Rectangle> mpAutoFillRect;
114
117 std::unique_ptr<FmFormView> mpLOKDrawView;
118
119 struct MouseEventState;
120
126 {
131
132 VisibleRange(const ScDocument&);
133
134 bool isInside(SCCOL nCol, SCROW nRow) const;
135 bool set(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2);
136 };
137
139
141 {
145 };
146
147 // Stores the last cursor position in twips for all
148 // zoom levels demanded from a ScGridWindow instance.
149 std::vector<LOKCursorEntry> maLOKLastCursor;
150
151 std::shared_ptr<sc::SpellCheckContext> mpSpellCheckCxt;
152
157
158 std::unique_ptr<ScNoteMarker, o3tl::default_delete<ScNoteMarker>> mpNoteMarker;
159
160 std::shared_ptr<ScFilterListBox> mpFilterBox;
161 std::unique_ptr<ScCheckListMenuControl> mpAutoFilterPopup;
162 std::unique_ptr<ScCheckListMenuControl> mpDPFieldPopup;
163 std::unique_ptr<ScDPFieldButton> mpFilterButton;
164
166
168
169 sal_uInt16 nButtonDown;
171 enum class ScNestedButtonState { NONE, Down, Up };
172 ScNestedButtonState nNestedButtonState; // track nested button up/down calls
173
176
177 sal_uInt16 nRFIndex;
180
181 sal_uInt16 nPagebreakMouse; // Page break mode, Drag
186
188
194
196
198
199 sal_uInt16 nPaintCount;
201
204
206
208
210
211 bool bEEMouse:1; // Edit Engine has mouse
212 bool bDPMouse:1; // DataPilot D&D (new Pivot table)
213 bool bRFMouse:1; // RangeFinder drag
214 bool bRFSize:1;
216 bool bDragRect:1;
222
223 DECL_DLLPRIVATE_LINK( PopupModeEndHdl, weld::Popover&, void );
224 DECL_DLLPRIVATE_LINK( PopupSpellingHdl, SpellCallbackInfo&, void );
225
226 bool TestMouse( const MouseEvent& rMEvt, bool bAction );
227
228 bool DoPageFieldSelection( SCCOL nCol, SCROW nRow );
229 bool DoAutoFilterButton( SCCOL nCol, SCROW nRow, const MouseEvent& rMEvt );
230 void DoPushPivotButton( SCCOL nCol, SCROW nRow, const MouseEvent& rMEvt, bool bButton, bool bPopup, bool bMultiField );
231 void DoPushPivotToggle( SCCOL nCol, SCROW nRow, const MouseEvent& rMEvt );
232
233 void DPMouseMove( const MouseEvent& rMEvt );
234 void DPMouseButtonUp( const MouseEvent& rMEvt );
235 void DPTestMouse( const MouseEvent& rMEvt, bool bMove );
236
243 bool DPTestFieldPopupArrow(const MouseEvent& rMEvt, const ScAddress& rPos, const ScAddress& rDimPos, ScDPObject* pDPObj);
244 bool DPTestMultiFieldPopupArrow(const MouseEvent& rMEvt, const ScAddress& rPos, ScDPObject* pDPObj);
245
246 void DPPopulateFieldMembers(const ScDPLabelData& rLabelData);
247 void DPSetupFieldPopup(std::unique_ptr<ScCheckListMenuControl::ExtendedData> pDPData, bool bDimOrientNotPage,
248 ScDPObject* pDPObj, bool bMultiField = false);
249 void DPConfigFieldPopup();
250 void DPLaunchFieldPopupMenu(const Point& rScrPos, const Size& rScrSize, const ScAddress& rPos, ScDPObject* pDPObj);
251 void DPLaunchMultiFieldPopupMenu(const Point& rScrPos, const Size& rScrSize, ScDPObject* pDPObj,
252 css::sheet::DataPilotFieldOrientation nOrient);
253
254 void RFMouseMove( const MouseEvent& rMEvt, bool bUp );
255
256 void PagebreakMove( const MouseEvent& rMEvt, bool bUp );
257
258 void UpdateDragRect( bool bShowRange, const tools::Rectangle& rPosRect );
259
260 bool IsAutoFilterActive( SCCOL nCol, SCROW nRow, SCTAB nTab );
261 void FilterSelect( sal_uLong nSel );
262
263 void ExecDataSelect( SCCOL nCol, SCROW nRow, const OUString& rStr );
264
265 bool HasScenarioButton( const Point& rPosPixel, ScRange& rScenRange );
266
267 void DropScroll( const Point& rMousePos );
268
269 sal_Int8 AcceptPrivateDrop( const AcceptDropEvent& rEvt, const ScDragData& rData );
270 sal_Int8 ExecutePrivateDrop( const ExecuteDropEvent& rEvt, const ScDragData& rData );
271 sal_Int8 DropTransferObj( ScTransferObj* pTransObj, SCCOL nDestPosX, SCROW nDestPosY,
272 const Point& rLogicPos, sal_Int8 nDndAction );
273
274 void HandleMouseButtonDown( const MouseEvent& rMEvt, MouseEventState& rState );
275
276 bool DrawMouseButtonDown(const MouseEvent& rMEvt);
277 bool DrawMouseButtonUp(const MouseEvent& rMEvt);
278 bool DrawMouseMove(const MouseEvent& rMEvt);
279 bool DrawKeyInput(const KeyEvent& rKEvt, vcl::Window* pWin);
280 bool DrawCommand(const CommandEvent& rCEvt);
281 bool DrawHasMarkedObj();
282 void DrawEndAction();
283 void DrawMarkDropObj( SdrObject* pObj );
284 bool IsMyModel(const SdrEditView* pSdrView);
285
286 void DrawRedraw( ScOutputData& rOutputData, SdrLayerID nLayer );
287 void DrawSdrGrid( const tools::Rectangle& rDrawingRect, OutputDevice* pContentDev );
288 void DrawAfterScroll();
289 tools::Rectangle GetListValButtonRect( const ScAddress& rButtonPos );
290
291 void DrawHiddenIndicator( SCCOL nX1, SCROW nY1, SCCOL nX2, SCROW nY2, vcl::RenderContext& rRenderContext);
292 void DrawPagePreview( SCCOL nX1, SCROW nY1, SCCOL nX2, SCROW nY2, vcl::RenderContext& rRenderContext);
293
294 bool GetEditUrl( const Point& rPos,
295 OUString* pName=nullptr, OUString* pUrl=nullptr, OUString* pTarget=nullptr );
296
297 bool HitRangeFinder( const Point& rMouse, RfCorner& rCorner, sal_uInt16* pIndex,
298 SCCOL* pAddX, SCROW* pAddY );
299
300 sal_uInt16 HitPageBreak( const Point& rMouse, ScRange* pSource,
301 SCCOLROW* pBreak, SCCOLROW* pPrev );
302
303 void PasteSelection( const Point& rPosPixel );
304
305 void SelectForContextMenu( const Point& rPosPixel, SCCOL nCellX, SCROW nCellY );
306
307 void GetSelectionRects( ::std::vector< tools::Rectangle >& rPixelRects ) const;
308 void GetSelectionRectsPrintTwips(::std::vector< tools::Rectangle >& rRects) const;
309 void GetPixelRectsFor( const ScMarkData &rMarkData,
310 ::std::vector< tools::Rectangle >& rPixelRects ) const;
311 void GetRectsAnyFor(const ScMarkData &rMarkData,
312 ::std::vector< tools::Rectangle >& rRects, bool bInPrintTwips) const;
313 void UpdateKitSelection(const std::vector<tools::Rectangle>& rRectangles,
314 std::vector<tools::Rectangle>* pLogicRects = nullptr);
315 bool NeedLOKCursorInvalidation(const tools::Rectangle& rCursorRect,
316 const Fraction aScaleX, const Fraction aScaleY);
317 void InvalidateLOKViewCursor(const tools::Rectangle& rCursorRect,
318 const Fraction aScaleX, const Fraction aScaleY);
319
320 void SetupInitialPageBreaks(const ScDocument& rDoc, SCTAB nTab);
321 DECL_DLLPRIVATE_LINK(InitiatePageBreaksTimer, Timer*, void);
322
323protected:
324 virtual void PrePaint(vcl::RenderContext& rRenderContext) override;
325 virtual void Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle& rRect) override;
326 virtual void GetFocus() override;
327 virtual void LoseFocus() override;
328
329 virtual void RequestHelp( const HelpEvent& rEvt ) override;
330
331 virtual sal_Int8 AcceptDrop( const AcceptDropEvent& rEvt ) override;
332 virtual sal_Int8 ExecuteDrop( const ExecuteDropEvent& rEvt ) override;
333 virtual void StartDrag( sal_Int8 nAction, const Point& rPosPixel ) override;
334
335public:
336 enum class AutoFilterMode
337 {
338 Normal,
339 Empty,
340 NonEmpty,
341 Top10,
342 Bottom10,
343 Custom,
344 TextColor,
346 SortAscending,
347 SortDescending,
348 Clear
349 };
350
351 ScGridWindow( vcl::Window* pParent, ScViewData& rData, ScSplitPos eWhichPos );
352 virtual ~ScGridWindow() override;
353 virtual void dispose() override;
354
355 virtual void KeyInput(const KeyEvent& rKEvt) override;
356 // #i70788# flush and get overlay
357 rtl::Reference<sdr::overlay::OverlayManager> getOverlayManager() const;
358 void flushOverlayManager();
359
360 virtual OUString GetSurroundingText() const override;
361 virtual Selection GetSurroundingTextSelection() const override;
362 virtual bool DeleteSurroundingText(const Selection& rSelection) override;
363
364 virtual void Command( const CommandEvent& rCEvt ) override;
365 virtual void DataChanged( const DataChangedEvent& rDCEvt ) override;
366
367 virtual void MouseButtonDown( const MouseEvent& rMEvt ) override;
368 virtual void MouseButtonUp( const MouseEvent& rMEvt ) override;
369 virtual void MouseMove( const MouseEvent& rMEvt ) override;
370 virtual bool PreNotify( NotifyEvent& rNEvt ) override;
371 virtual void Tracking( const TrackingEvent& rTEvt ) override;
372
373 void PaintTile( VirtualDevice& rDevice,
374 int nOutputWidth, int nOutputHeight,
375 int nTilePosX, int nTilePosY,
376 tools::Long nTileWidth, tools::Long nTileHeight,
377 SCCOL nTiledRenderingAreaEndCol, SCROW nTiledRenderingAreaEndRow );
378
380 void LogicInvalidate(const tools::Rectangle* pRectangle) override;
381
385 void SetCellSelectionPixel(int nType, int nPixelX, int nPixelY);
387 void GetCellSelection(std::vector<tools::Rectangle>& rLogicRects);
388
389 virtual css::uno::Reference< css::accessibility::XAccessible > CreateAccessible() override;
390
391 void FakeButtonUp();
392
393 const Point& GetMousePosPixel() const { return aCurMousePos; }
394 void UpdateStatusPosSize();
395
396 void ClickExtern();
397
398 using Window::SetPointer;
399
400 void MoveMouseStatus( ScGridWindow &rDestWin );
401
402 void ScrollPixel( tools::Long nDifX, tools::Long nDifY );
403 void UpdateEditViewPos();
404
405 void UpdateFormulas(SCCOL nX1 = -1, SCROW nY1 = -1, SCCOL nX2 = -1, SCROW nY2 = -1);
406
407 void ShowFilterMenu(weld::Window* pParent, const tools::Rectangle& rCellRect, bool bLayoutRTL);
408
409 void LaunchDataSelectMenu( SCCOL nCol, SCROW nRow );
410 void DoScenarioMenu( const ScRange& rScenRange );
411
412 void LaunchAutoFilterMenu(SCCOL nCol, SCROW nRow);
413 void RefreshAutoFilterButton(const ScAddress& rPos);
414 void UpdateAutoFilterFromMenu(AutoFilterMode eMode);
415
416 void LaunchPageFieldMenu( SCCOL nCol, SCROW nRow );
417 void LaunchDPFieldMenu( SCCOL nCol, SCROW nRow );
418
419 css::sheet::DataPilotFieldOrientation GetDPFieldOrientation( SCCOL nCol, SCROW nRow ) const;
420
421 void DPLaunchFieldPopupMenu(const Point& rScrPos, const Size& rScrSize,
422 tools::Long nDimIndex, ScDPObject* pDPObj);
423
424 void DrawButtons(SCCOL nX1, SCCOL nX2, const ScTableInfo& rTabInfo, OutputDevice* pContentDev,
425 const ScLokRTLContext* pLokRTLContext);
426
427 using Window::Draw;
428 void Draw( SCCOL nX1, SCROW nY1, SCCOL nX2, SCROW nY2,
429 ScUpdateMode eMode );
430
432 void DrawContent(OutputDevice &rDevice, const ScTableInfo& rTableInfo, ScOutputData& aOutputData, bool bLogicText);
433
434 void CreateAnchorHandle(SdrHdlList& rHdl, const ScAddress& rAddress);
435
436 void HideCursor();
437 void ShowCursor();
438 void UpdateAutoFillMark(bool bMarked, const ScRange& rMarkRange);
439
440 void UpdateListValPos( bool bVisible, const ScAddress& rPos );
441
442 bool ShowNoteMarker( SCCOL nPosX, SCROW nPosY, bool bKeyboard );
443 void HideNoteMarker();
444
446 MapMode GetDrawMapMode( bool bForce = false );
447
448 void StopMarking();
449 void UpdateInputContext();
450
451 bool NeedsRepaint() const { return bNeedsRepaint; }
452
453 void DoInvertRect( const tools::Rectangle& rPixel );
454
455 void CheckNeedsRepaint();
456
457 void UpdateDPPopupMenuForFieldChange();
458 void UpdateDPFromFieldPopupMenu();
459 bool UpdateVisibleRange();
460
461 void CursorChanged();
462 void DrawLayerCreated();
463 void SetAutoSpellContext( const std::shared_ptr<sc::SpellCheckContext> &ctx );
464 void ResetAutoSpell();
465 void ResetAutoSpellForContentChange();
466 void SetAutoSpellData( SCCOL nPosX, SCROW nPosY, const std::vector<editeng::MisspellRanges>* pRanges );
467 const std::vector<editeng::MisspellRanges>* GetAutoSpellData( SCCOL nPosX, SCROW nPosY );
468 bool InsideVisibleRange( SCCOL nPosX, SCROW nPosY );
469
470 void UpdateSparklineGroupOverlay();
471 void DeleteSparklineGroupOverlay();
472 void DeleteCopySourceOverlay();
473 void UpdateCopySourceOverlay();
474 void DeleteCursorOverlay();
475 void UpdateCursorOverlay();
476 void DeleteSelectionOverlay();
477 void UpdateSelectionOverlay();
478 void DeleteAutoFillOverlay();
479 void UpdateAutoFillOverlay();
480 void DeleteDragRectOverlay();
481 void UpdateDragRectOverlay();
482 void DeleteHeaderOverlay();
483 void UpdateHeaderOverlay();
484 void DeleteShrinkOverlay();
485 void UpdateShrinkOverlay();
486 void UpdateAllOverlays();
487
489 OString getCellCursor() const;
490 void notifyKitCellCursor() const;
491 void notifyKitCellViewCursor(const SfxViewShell* pForShell) const;
492 void updateKitCellCursor(const SfxViewShell* pOtherShell) const;
494 void updateKitOtherCursors() const;
495 void updateOtherKitSelections() const;
496
497 void notifyKitCellFollowJump() const;
498
499 ScViewData& getViewData();
500 virtual FactoryFunction GetUITestFactory() const override;
501
502 void updateLOKValListButton(bool bVisible, const ScAddress& rPos) const;
503 void updateLOKInputHelp(const OUString& title, const OUString& content) const;
504
505 void initiatePageBreaks();
506
507protected:
508 void ImpCreateOverlayObjects();
509 void ImpDestroyOverlayObjects();
510
511private:
512
513#ifdef DBG_UTIL
514 void dumpCellProperties();
515 void dumpColumnInformationPixel();
516 void dumpColumnInformationHmm();
517 void dumpGraphicInformation();
518 void dumpColumnCellStorage();
519#endif
520
521};
522
523/* 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:205
std::unique_ptr< sdr::overlay::OverlayObjectList > mpOODragRect
Definition: gridwin.hxx:108
std::unique_ptr< sdr::overlay::OverlayObjectList > mpOOSelectionBorder
Definition: gridwin.hxx:106
ScCheckListMenuControl::ResultType aSaveAutoFilterResult
Definition: gridwin.hxx:165
SCROW nDragStartY
Definition: gridwin.hxx:190
sal_uInt16 nRFIndex
name?
Definition: gridwin.hxx:177
std::unique_ptr< sdr::overlay::OverlayObjectList > mpOOSparklineGroup
Definition: gridwin.hxx:111
SvtScriptType nPageScript
Definition: gridwin.hxx:187
std::unique_ptr< sdr::overlay::OverlayObjectList > mpOOShrink
Definition: gridwin.hxx:110
SCCOLROW nPagebreakPrev
Definition: gridwin.hxx:183
ScDPObject * pDragDPObj
Definition: gridwin.hxx:175
ScHSplitPos eHWhich
Definition: gridwin.hxx:155
SCCOLROW nPagebreakBreak
Definition: gridwin.hxx:182
std::unique_ptr< ScDPFieldButton > mpFilterButton
Definition: gridwin.hxx:163
sal_uInt16 nPaintCount
Definition: gridwin.hxx:199
ScDDComboBoxButton aComboButton
Definition: gridwin.hxx:195
SCCOL nRFAddX
Definition: gridwin.hxx:178
SCCOL nDragEndX
Definition: gridwin.hxx:191
bool bAutoMarkVisible
Definition: gridwin.hxx:219
SCROW nDragEndY
Definition: gridwin.hxx:192
tools::Long nDPField
Definition: gridwin.hxx:174
Point aCurMousePos
Definition: gridwin.hxx:197
std::optional< tools::Rectangle > mpAutoFillRect
Definition: gridwin.hxx:113
DECL_DLLPRIVATE_LINK(PopupModeEndHdl, weld::Popover &, void)
bool bRFMouse
Definition: gridwin.hxx:213
InsCellCmd meDragInsertMode
Definition: gridwin.hxx:193
RfCorner aRFSelectedCorned
Definition: gridwin.hxx:207
bool bIsInPaint
Definition: gridwin.hxx:217
SCCOL nDragStartX
Definition: gridwin.hxx:189
DECL_DLLPRIVATE_LINK(PopupSpellingHdl, SpellCallbackInfo &, void)
ScRange aPagebreakSource
Definition: gridwin.hxx:184
tools::Rectangle aRepaintPixel
Definition: gridwin.hxx:200
std::shared_ptr< sc::SpellCheckContext > mpSpellCheckCxt
Definition: gridwin.hxx:151
ScRange aPagebreakDrag
Definition: gridwin.hxx:185
sal_uInt8 nMouseStatus
Definition: gridwin.hxx:170
ScVSplitPos eVWhich
Definition: gridwin.hxx:156
std::unique_ptr< sdr::overlay::OverlayObjectList > mpOOAutoFill
Definition: gridwin.hxx:107
sal_uInt16 nCursorHideCount
Definition: gridwin.hxx:167
const Point & GetMousePosPixel() const
Definition: gridwin.hxx:393
SCROW nRFAddY
Definition: gridwin.hxx:179
bool NeedsRepaint() const
Definition: gridwin.hxx:451
DECL_DLLPRIVATE_LINK(InitiatePageBreaksTimer, Timer *, void)
std::vector< LOKCursorEntry > maLOKLastCursor
Definition: gridwin.hxx:149
bool bListValButton
Definition: gridwin.hxx:220
ScAddress aListValPos
Definition: gridwin.hxx:203
bool bPagebreakDrawn
Definition: gridwin.hxx:215
std::unique_ptr< ScNoteMarker, o3tl::default_delete< ScNoteMarker > > mpNoteMarker
Definition: gridwin.hxx:158
std::unique_ptr< ScCheckListMenuControl > mpDPFieldPopup
Definition: gridwin.hxx:162
sal_uInt16 nButtonDown
Definition: gridwin.hxx:169
bool bNeedsRepaint
Definition: gridwin.hxx:218
std::unique_ptr< ScCheckListMenuControl > mpAutoFilterPopup
Definition: gridwin.hxx:161
sal_uInt16 nPagebreakMouse
Definition: gridwin.hxx:181
ScViewData & mrViewData
Definition: gridwin.hxx:153
bool bDPMouse
Definition: gridwin.hxx:212
ScSplitPos eWhich
Definition: gridwin.hxx:154
ScNestedButtonState nNestedButtonState
Definition: gridwin.hxx:172
ScAddress aAutoMarkPos
Definition: gridwin.hxx:202
std::unique_ptr< sdr::overlay::OverlayObjectList > mpOOSelection
Definition: gridwin.hxx:105
bool bRFSize
Definition: gridwin.hxx:214
std::shared_ptr< ScFilterListBox > mpFilterBox
Definition: gridwin.hxx:160
bool bInitialPageBreaks
Definition: gridwin.hxx:221
bool bEEMouse
Definition: gridwin.hxx:211
Timer maShowPageBreaksTimer
Definition: gridwin.hxx:209
VisibleRange maVisibleRange
Definition: gridwin.hxx:138
std::unique_ptr< sdr::overlay::OverlayObjectList > mpOOCursors
Definition: gridwin.hxx:104
bool bDragRect
Definition: gridwin.hxx:216
std::unique_ptr< sdr::overlay::OverlayObjectList > mpOOHeader
Definition: gridwin.hxx:109
std::unique_ptr< FmFormView > mpLOKDrawView
LibreOfficeKit needs a persistent FmFormView for tiled rendering, otherwise the invalidations from dr...
Definition: gridwin.hxx:117
Used to store the necessary information about the (combined-)tile area relevant to coordinate transfo...
Definition: gridwin4.cxx:635
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:290
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:144
Stores current visible column and row ranges, used to avoid expensive operations on objects that are ...
Definition: gridwin.hxx:126
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