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