20 #ifndef INCLUDED_SC_SOURCE_UI_INC_GRIDWIN_HXX
21 #define INCLUDED_SC_SOURCE_UI_INC_GRIDWIN_HXX
28 #include <com/sun/star/sheet/DataPilotFieldOrientation.hpp>
36 struct MisspellRanges;
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
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
155 std::unique_ptr<ScNoteMarker, o3tl::default_delete<ScNoteMarker>>
mpNoteMarker;
211 bool bPagebreakDrawn:1;
214 bool bNeedsRepaint:1;
215 bool bAutoMarkVisible:1;
216 bool bListValButton:1;
221 bool TestMouse(
const MouseEvent& rMEvt,
bool bAction );
223 bool DoPageFieldSelection(
SCCOL nCol,
SCROW nRow );
225 void DoPushPivotButton(
SCCOL nCol,
SCROW nRow,
const MouseEvent& rMEvt,
bool bButton,
bool bPopup );
228 void DPMouseButtonUp(
const MouseEvent& rMEvt );
229 void DPTestMouse(
const MouseEvent& rMEvt,
bool bMove );
239 void DPLaunchFieldPopupMenu(
const Point& rScrPos,
const Size& rScrSize,
const ScAddress& rPos,
ScDPObject* pDPObj);
241 void RFMouseMove(
const MouseEvent& rMEvt,
bool bUp );
243 void PagebreakMove(
const MouseEvent& rMEvt,
bool bUp );
250 void ExecDataSelect(
SCCOL nCol,
SCROW nRow,
const OUString& rStr );
252 bool HasScenarioButton(
const Point& rPosPixel,
ScRange& rScenRange );
254 void DropScroll(
const Point& rMousePos );
259 const Point& rLogicPos,
sal_Int8 nDndAction );
263 bool DrawMouseButtonDown(
const MouseEvent& rMEvt);
264 bool DrawMouseButtonUp(
const MouseEvent& rMEvt);
266 bool DrawKeyInput(
const KeyEvent& rKEvt);
268 bool DrawHasMarkedObj();
269 void DrawEndAction();
275 void DrawAfterScroll();
280 bool GetEditUrl(
const Point& rPos,
281 OUString*
pName=
nullptr, OUString* pUrl=
nullptr, OUString* pTarget=
nullptr );
283 bool IsSpellErrorAtPos(
const Point& rPos,
SCCOL nCol1,
SCROW nRow );
285 bool HitRangeFinder(
const Point& rMouse,
RfCorner& rCorner, sal_uInt16* pIndex,
288 sal_uInt16 HitPageBreak(
const Point& rMouse,
ScRange* pSource,
301 void SelectForContextMenu(
const Point& rPosPixel,
SCCOL nCellX,
SCROW nCellY );
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);
333 virtual void dispose()
override;
338 void flushOverlayManager();
354 int nOutputWidth,
int nOutputHeight,
355 int nTilePosX,
int nTilePosY,
364 void SetCellSelectionPixel(
int nType,
int nPixelX,
int nPixelY);
366 void GetCellSelection(std::vector<tools::Rectangle>& rLogicRects);
368 virtual css::uno::Reference< css::accessibility::XAccessible >
CreateAccessible()
override;
373 void UpdateStatusPosSize();
382 void UpdateEditViewPos();
388 void LaunchDataSelectMenu(
SCCOL nCol,
SCROW nRow );
389 void DoScenarioMenu(
const ScRange& rScenRange );
391 void LaunchAutoFilterMenu(
SCCOL nCol,
SCROW nRow);
392 void RefreshAutoFilterButton(
const ScAddress& rPos);
393 void UpdateAutoFilterFromMenu(AutoFilterMode eMode);
395 void LaunchPageFieldMenu(
SCCOL nCol,
SCROW nRow );
396 void LaunchDPFieldMenu(
SCCOL nCol,
SCROW nRow );
398 css::sheet::DataPilotFieldOrientation GetDPFieldOrientation(
SCCOL nCol,
SCROW nRow )
const;
400 void DPLaunchFieldPopupMenu(
const Point& rScrPos,
const Size& rScrSize,
416 void UpdateAutoFillMark(
bool bMarked,
const ScRange& rMarkRange);
418 void UpdateListValPos(
bool bVisible,
const ScAddress& rPos );
420 bool ShowNoteMarker(
SCCOL nPosX,
SCROW nPosY,
bool bKeyboard );
421 void HideNoteMarker();
424 MapMode GetDrawMapMode(
bool bForce =
false );
427 void UpdateInputContext();
433 void CheckNeedsRepaint();
435 void UpdateDPFromFieldPopupMenu();
436 bool UpdateVisibleRange();
438 void CursorChanged();
439 void DrawLayerCreated();
440 void SetAutoSpellContext(
const std::shared_ptr<sc::SpellCheckContext> &ctx );
441 void ResetAutoSpell();
442 void ResetAutoSpellForContentChange();
443 void SetAutoSpellData(
SCCOL nPosX,
SCROW nPosY,
const std::vector<editeng::MisspellRanges>* pRanges );
444 const std::vector<editeng::MisspellRanges>* GetAutoSpellData(
SCCOL nPosX,
SCROW nPosY );
445 bool InsideVisibleRange(
SCCOL nPosX,
SCROW nPosY );
447 void DeleteCopySourceOverlay();
448 void UpdateCopySourceOverlay();
449 void DeleteCursorOverlay();
450 void UpdateCursorOverlay();
451 void DeleteSelectionOverlay();
452 void UpdateSelectionOverlay();
453 void DeleteAutoFillOverlay();
454 void UpdateAutoFillOverlay();
455 void DeleteDragRectOverlay();
456 void UpdateDragRectOverlay();
457 void DeleteHeaderOverlay();
458 void UpdateHeaderOverlay();
459 void DeleteShrinkOverlay();
460 void UpdateShrinkOverlay();
461 void UpdateAllOverlays();
464 OString getCellCursor()
const;
465 void notifyKitCellCursor()
const;
466 void notifyKitCellViewCursor(
const SfxViewShell* pForShell)
const;
467 void updateKitCellCursor(
const SfxViewShell* pOtherShell)
const;
469 void updateKitOtherCursors()
const;
470 void updateOtherKitSelections()
const;
482 void updateLOKValListButton(
bool bVisible,
const ScAddress& rPos)
const;
483 void updateLOKInputHelp(
const OUString& title,
const OUString& content)
const;
486 void ImpCreateOverlayObjects();
487 void ImpDestroyOverlayObjects();
492 void dumpCellProperties();
493 void dumpColumnInformationPixel();
494 void dumpColumnInformationHmm();
495 void dumpGraphicInformation();
496 void dumpColumnCellStorage();
std::unique_ptr< ScNoteMarker, o3tl::default_delete< ScNoteMarker > > mpNoteMarker
todo: It should be possible to have MarkArrays for each table, in order to enable "search all" across...
virtual FactoryFunction GetUITestFactory() const
ScDDComboBoxButton aComboButton
std::unique_ptr< sdr::overlay::OverlayObjectList > mpOOAutoFill
virtual void MouseButtonDown(const MouseEvent &rMEvt)
std::vector< LOKCursorEntry > maLOKLastCursor
#define DECL_LINK(Member, ArgType, RetType)
std::unique_ptr< FmFormView > mpLOKDrawView
LibreOfficeKit needs a persistent FmFormView for tiled rendering, otherwise the invalidations from dr...
sal_uInt16 nPagebreakMouse
std::function< std::unique_ptr< UIObject >vcl::Window *)> FactoryFunction
std::unique_ptr< sdr::overlay::OverlayObjectList > mpOOCursors
virtual void StartDrag(sal_Int8 nAction, const Point &rPosPixel)
std::unique_ptr< ScDPFieldButton > mpFilterButton
virtual void MouseButtonUp(const MouseEvent &rMEvt)
tools::Rectangle aInvertRect
virtual css::uno::Reference< css::accessibility::XAccessible > CreateAccessible()
VclPtr< ScFilterListBox > mpFilterBox
sal_Int32 SCCOLROW
a type capable of holding either SCCOL or SCROW
virtual void Tracking(const TrackingEvent &rTEvt)
virtual Selection GetSurroundingTextSelection() const
virtual sal_Int8 ExecuteDrop(const ExecuteDropEvent &rEvt)
std::unique_ptr< sdr::overlay::OverlayObjectList > mpOOSelectionBorder
virtual void PrePaint(vcl::RenderContext &rRenderContext)
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
VclPtr< ScFilterFloatingWindow > mpFilterFloat
std::unique_ptr< sdr::overlay::OverlayObjectList > mpOOSelection
Stores current visible column and row ranges, used to avoid expensive operations on objects that are ...
virtual void Draw(::OutputDevice *pDev, const Point &rPos, DrawFlags nFlags)
sal_uInt16 nCursorHideCount
RfCorner aRFSelectedCorned
InsCellCmd meDragInsertMode
VclPtr< ScCheckListMenuWindow > mpAutoFilterPopup
virtual void KeyInput(const KeyEvent &rKEvt)
ScNestedButtonState nNestedButtonState
void SetPointer(PointerStyle)
VisibleRange maVisibleRange
virtual void LogicMouseButtonUp(const MouseEvent &)
const Point & GetMousePosPixel() const
SvtScriptType nPageScript
bool isInside(const B2DPolygon &rCandidate, const B2DPoint &rPoint, bool bWithBorder)
std::unique_ptr< sdr::overlay::OverlayObjectList > mpOODragRect
virtual void Paint(vcl::RenderContext &rRenderContext, const tools::Rectangle &rRect)
ScCheckListMenuControl::ResultType aSaveAutoFilterResult
virtual void LogicMouseButtonDown(const MouseEvent &)
virtual void MouseMove(const MouseEvent &rMEvt)
std::optional< tools::Rectangle > mpAutoFillRect
virtual void LogicInvalidate(const tools::Rectangle *pRectangle)
tools::Rectangle aRepaintPixel
virtual void LogicMouseMove(const MouseEvent &)
virtual void Command(const CommandEvent &rCEvt)
std::unique_ptr< sdr::overlay::OverlayObjectList > mpOOHeader
virtual void RequestHelp(const HelpEvent &rHEvt)
std::unique_ptr< sdr::overlay::OverlayObjectList > mpOOShrink
std::shared_ptr< sc::SpellCheckContext > mpSpellCheckCxt
void set(css::uno::UnoInterfaceReference const &value)
virtual void DataChanged(const DataChangedEvent &rDCEvt)