27#include <com/sun/star/sheet/DataPilotFieldOrientation.hpp>
36 struct MisspellRanges;
40 class SpellCheckContext;
62#define SC_GM_TABDOWN 1
63#define SC_GM_DBLDOWN 2
66#define SC_GM_WATERUNDO 5
67#define SC_GM_URLDOWN 6
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
156 std::unique_ptr<ScNoteMarker, o3tl::default_delete<ScNoteMarker>>
mpNoteMarker;
224 bool TestMouse(
const MouseEvent& rMEvt,
bool bAction );
226 bool DoPageFieldSelection(
SCCOL nCol,
SCROW nRow );
228 void DoPushPivotButton(
SCCOL nCol,
SCROW nRow,
const MouseEvent& rMEvt,
bool bButton,
bool bPopup );
231 void DPMouseButtonUp(
const MouseEvent& rMEvt );
232 void DPTestMouse(
const MouseEvent& rMEvt,
bool bMove );
242 void DPLaunchFieldPopupMenu(
const Point& rScrPos,
const Size& rScrSize,
const ScAddress& rPos,
ScDPObject* pDPObj);
244 void RFMouseMove(
const MouseEvent& rMEvt,
bool bUp );
246 void PagebreakMove(
const MouseEvent& rMEvt,
bool bUp );
253 void ExecDataSelect(
SCCOL nCol,
SCROW nRow,
const OUString& rStr );
255 bool HasScenarioButton(
const Point& rPosPixel,
ScRange& rScenRange );
257 void DropScroll(
const Point& rMousePos );
262 const Point& rLogicPos,
sal_Int8 nDndAction );
266 bool DrawMouseButtonDown(
const MouseEvent& rMEvt);
267 bool DrawMouseButtonUp(
const MouseEvent& rMEvt);
271 bool DrawHasMarkedObj();
272 void DrawEndAction();
278 void DrawAfterScroll();
284 bool GetEditUrl(
const Point& rPos,
285 OUString* pName=
nullptr, OUString* pUrl=
nullptr, OUString* pTarget=
nullptr );
287 bool HitRangeFinder(
const Point& rMouse,
RfCorner& rCorner, sal_uInt16* pIndex,
290 sal_uInt16 HitPageBreak(
const Point& rMouse,
ScRange* pSource,
303 void SelectForContextMenu(
const Point& rPosPixel,
SCCOL nCellX,
SCROW nCellY );
305 void GetSelectionRects( ::std::vector< tools::Rectangle >& rPixelRects )
const;
306 void GetSelectionRectsPrintTwips(::std::vector< tools::Rectangle >& rRects)
const;
307 void GetPixelRectsFor(
const ScMarkData &rMarkData,
308 ::std::vector< tools::Rectangle >& rPixelRects )
const;
309 void GetRectsAnyFor(
const ScMarkData &rMarkData,
310 ::std::vector< tools::Rectangle >& rRects,
bool bInPrintTwips)
const;
311 void UpdateKitSelection(
const std::vector<tools::Rectangle>& rRectangles,
312 std::vector<tools::Rectangle>* pLogicRects =
nullptr);
351 virtual void dispose()
override;
356 void flushOverlayManager();
372 int nOutputWidth,
int nOutputHeight,
373 int nTilePosX,
int nTilePosY,
382 void SetCellSelectionPixel(
int nType,
int nPixelX,
int nPixelY);
384 void GetCellSelection(std::vector<tools::Rectangle>& rLogicRects);
386 virtual css::uno::Reference< css::accessibility::XAccessible >
CreateAccessible()
override;
391 void UpdateStatusPosSize();
400 void UpdateEditViewPos();
406 void LaunchDataSelectMenu(
SCCOL nCol,
SCROW nRow );
407 void DoScenarioMenu(
const ScRange& rScenRange );
409 void LaunchAutoFilterMenu(
SCCOL nCol,
SCROW nRow);
410 void RefreshAutoFilterButton(
const ScAddress& rPos);
411 void UpdateAutoFilterFromMenu(AutoFilterMode eMode);
413 void LaunchPageFieldMenu(
SCCOL nCol,
SCROW nRow );
414 void LaunchDPFieldMenu(
SCCOL nCol,
SCROW nRow );
416 css::sheet::DataPilotFieldOrientation GetDPFieldOrientation(
SCCOL nCol,
SCROW nRow )
const;
418 void DPLaunchFieldPopupMenu(
const Point& rScrPos,
const Size& rScrSize,
435 void UpdateAutoFillMark(
bool bMarked,
const ScRange& rMarkRange);
437 void UpdateListValPos(
bool bVisible,
const ScAddress& rPos );
439 bool ShowNoteMarker(
SCCOL nPosX,
SCROW nPosY,
bool bKeyboard );
440 void HideNoteMarker();
443 MapMode GetDrawMapMode(
bool bForce =
false );
446 void UpdateInputContext();
452 void CheckNeedsRepaint();
454 void UpdateDPFromFieldPopupMenu();
455 bool UpdateVisibleRange();
457 void CursorChanged();
458 void DrawLayerCreated();
459 void SetAutoSpellContext(
const std::shared_ptr<sc::SpellCheckContext> &ctx );
460 void ResetAutoSpell();
461 void ResetAutoSpellForContentChange();
462 void SetAutoSpellData(
SCCOL nPosX,
SCROW nPosY,
const std::vector<editeng::MisspellRanges>* pRanges );
463 const std::vector<editeng::MisspellRanges>* GetAutoSpellData(
SCCOL nPosX,
SCROW nPosY );
464 bool InsideVisibleRange(
SCCOL nPosX,
SCROW nPosY );
466 void UpdateSparklineGroupOverlay();
467 void DeleteSparklineGroupOverlay();
468 void DeleteCopySourceOverlay();
469 void UpdateCopySourceOverlay();
470 void DeleteCursorOverlay();
471 void UpdateCursorOverlay();
472 void DeleteSelectionOverlay();
473 void UpdateSelectionOverlay();
474 void DeleteAutoFillOverlay();
475 void UpdateAutoFillOverlay();
476 void DeleteDragRectOverlay();
477 void UpdateDragRectOverlay();
478 void DeleteHeaderOverlay();
479 void UpdateHeaderOverlay();
480 void DeleteShrinkOverlay();
481 void UpdateShrinkOverlay();
482 void UpdateAllOverlays();
485 OString getCellCursor()
const;
486 void notifyKitCellCursor()
const;
487 void notifyKitCellViewCursor(
const SfxViewShell* pForShell)
const;
488 void updateKitCellCursor(
const SfxViewShell* pOtherShell)
const;
490 void updateKitOtherCursors()
const;
491 void updateOtherKitSelections()
const;
493 void notifyKitCellFollowJump()
const;
506 void updateLOKValListButton(
bool bVisible,
const ScAddress& rPos)
const;
507 void updateLOKInputHelp(
const OUString& title,
const OUString& content)
const;
509 void initiatePageBreaks();
512 void ImpCreateOverlayObjects();
513 void ImpDestroyOverlayObjects();
518 void dumpCellProperties();
519 void dumpColumnInformationPixel();
520 void dumpColumnInformationHmm();
521 void dumpGraphicInformation();
522 void dumpColumnCellStorage();
virtual void StartDrag(sal_Int8 nAction, const Point &rPosPixel)
virtual sal_Int8 ExecuteDrop(const ExecuteDropEvent &rEvt)
virtual sal_Int8 AcceptDrop(const AcceptDropEvent &rEvt)
tools::Rectangle aInvertRect
std::unique_ptr< sdr::overlay::OverlayObjectList > mpOODragRect
std::unique_ptr< sdr::overlay::OverlayObjectList > mpOOSelectionBorder
ScCheckListMenuControl::ResultType aSaveAutoFilterResult
std::unique_ptr< sdr::overlay::OverlayObjectList > mpOOSparklineGroup
SvtScriptType nPageScript
std::unique_ptr< sdr::overlay::OverlayObjectList > mpOOShrink
std::unique_ptr< ScDPFieldButton > mpFilterButton
ScDDComboBoxButton aComboButton
std::optional< tools::Rectangle > mpAutoFillRect
DECL_DLLPRIVATE_LINK(PopupModeEndHdl, weld::Popover &, void)
InsCellCmd meDragInsertMode
RfCorner aRFSelectedCorned
DECL_DLLPRIVATE_LINK(PopupSpellingHdl, SpellCallbackInfo &, void)
tools::Rectangle aRepaintPixel
std::shared_ptr< sc::SpellCheckContext > mpSpellCheckCxt
std::unique_ptr< sdr::overlay::OverlayObjectList > mpOOAutoFill
sal_uInt16 nCursorHideCount
const Point & GetMousePosPixel() const
bool NeedsRepaint() const
DECL_DLLPRIVATE_LINK(InitiatePageBreaksTimer, Timer *, void)
std::vector< LOKCursorEntry > maLOKLastCursor
std::unique_ptr< ScNoteMarker, o3tl::default_delete< ScNoteMarker > > mpNoteMarker
std::unique_ptr< ScCheckListMenuControl > mpDPFieldPopup
std::unique_ptr< ScCheckListMenuControl > mpAutoFilterPopup
sal_uInt16 nPagebreakMouse
ScNestedButtonState nNestedButtonState
std::unique_ptr< sdr::overlay::OverlayObjectList > mpOOSelection
std::shared_ptr< ScFilterListBox > mpFilterBox
Timer maShowPageBreaksTimer
VisibleRange maVisibleRange
std::unique_ptr< sdr::overlay::OverlayObjectList > mpOOCursors
std::unique_ptr< sdr::overlay::OverlayObjectList > mpOOHeader
std::unique_ptr< FmFormView > mpLOKDrawView
LibreOfficeKit needs a persistent FmFormView for tiled rendering, otherwise the invalidations from dr...
Used to store the necessary information about the (combined-)tile area relevant to coordinate transfo...
todo: It should be possible to have MarkArrays for each table, in order to enable "search all" across...
virtual void dispose() override
virtual void PrePaint(vcl::RenderContext &rRenderContext)
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 LogicMouseMove(const MouseEvent &)
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 LogicMouseButtonUp(const MouseEvent &)
virtual void MouseMove(const MouseEvent &rMEvt)
virtual void Draw(::OutputDevice *pDev, const Point &rPos, SystemTextColorFlags nFlags)
virtual void DataChanged(const DataChangedEvent &rDCEvt)
void SetPointer(PointerStyle)
virtual void LogicMouseButtonDown(const MouseEvent &)
virtual FactoryFunction GetUITestFactory() const
std::function< std::unique_ptr< UIObject >(vcl::Window *)> FactoryFunction
void Clear(EHistoryType eHistory)
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.
Stores current visible column and row ranges, used to avoid expensive operations on objects that are ...
sal_Int32 SCCOLROW
a type capable of holding either SCCOL or SCROW