21#include <osl/diagnose.h>
28#include <inputwin.hxx>
29#include <document.hxx>
30#include <officecfg/Office/Calc.hxx>
38 sal_uInt16 nSlotId = rReq.
GetSlot();
43 if ( pReqArgs !=
nullptr )
46 if (pReqArgs->
HasItem(FN_PARAM_1, &pItem))
48 if (pReqArgs->
HasItem(FN_PARAM_2, &pItem))
70 rReq.
SetSlot(SID_CURSORDOWN_SEL);
76 rReq.
SetSlot(SID_CURSORRIGHT_SEL);
79 rReq.
SetSlot(SID_CURSORLEFT_SEL);
81 case SID_CURSORPAGEDOWN:
82 rReq.
SetSlot(SID_CURSORPAGEDOWN_SEL);
84 case SID_CURSORPAGEUP:
85 rReq.
SetSlot(SID_CURSORPAGEUP_SEL);
87 case SID_CURSORBLKDOWN:
88 rReq.
SetSlot(SID_CURSORBLKDOWN_SEL);
91 rReq.
SetSlot(SID_CURSORBLKUP_SEL);
93 case SID_CURSORBLKRIGHT:
94 rReq.
SetSlot(SID_CURSORBLKRIGHT_SEL);
96 case SID_CURSORBLKLEFT:
97 rReq.
SetSlot(SID_CURSORBLKLEFT_SEL);
124 bool bScrollLock =
false;
126 if (officecfg::Office::Calc::Input::UseScrollLock::get())
129 if (eState & KeyIndicatorState::SCROLLLOCK)
143 case SID_CURSORBLKDOWN:
154 case SID_CURSORBLKUP:
165 case SID_CURSORBLKLEFT:
169 case SID_CURSORRIGHT:
176 case SID_CURSORBLKRIGHT:
180 case SID_CURSORPAGEDOWN:
192 case SID_CURSORPAGEUP:
204 case SID_CURSORPAGERIGHT_:
216 case SID_CURSORPAGELEFT_:
229 OSL_FAIL(
"Unknown message in ViewShell (Cursor)");
246 sal_uInt16 nSlotId = rReq.
GetSlot();
259 if ( pReqArgs !=
nullptr )
262 if (pReqArgs->
HasItem(FN_PARAM_1, &pItem))
266 SCROW nMovY = nRepeat;
268 SCCOL nMovX = nRepeat;
277 case SID_CURSORDOWN_SEL:
280 case SID_CURSORUP_SEL:
283 case SID_CURSORRIGHT_SEL:
286 case SID_CURSORLEFT_SEL:
289 case SID_CURSORPAGEUP_SEL:
292 case SID_CURSORPAGEDOWN_SEL:
295 case SID_CURSORPAGERIGHT_SEL:
298 case SID_CURSORPAGELEFT_SEL:
301 case SID_CURSORBLKDOWN_SEL:
304 case SID_CURSORBLKUP_SEL:
307 case SID_CURSORBLKRIGHT_SEL:
310 case SID_CURSORBLKLEFT_SEL:
325 sal_uInt16 nSlotId = rReq.
GetSlot();
328 if(nSlotId != SID_CURSORTOPOFSCREEN && nSlotId != SID_CURSORENDOFSCREEN)
333 case SID_NEXT_TABLE_SEL:
334 pTabViewShell->
SelectNextTab( 1, (nSlotId == SID_NEXT_TABLE_SEL) );
338 case SID_PREV_TABLE_SEL:
339 pTabViewShell->
SelectNextTab( -1, (nSlotId == SID_PREV_TABLE_SEL) );
345 case SID_NEXT_UNPROTECT:
349 case SID_PREV_UNPROTECT:
353 case SID_CURSORENTERUP:
360 case SID_CURSORENTERDOWN:
371 if ( pReqArgs && pReqArgs->
HasItem( FN_PARAM_1, &pColItem ) &&
372 pReqArgs->
HasItem( FN_PARAM_2, &pModifierItem ) )
388 if ( pReqArgs && pReqArgs->
HasItem( FN_PARAM_1, &pRowItem ) &&
389 pReqArgs->
HasItem( FN_PARAM_2, &pModifierItem ) )
394 pTabViewShell->
MarkRows( nRow, nModifier );
401 case SID_SELECT_NONE:
405 case SID_ALIGNCURSOR:
409 case SID_MARKDATAAREA:
413 case SID_MARKARRAYFORMULA:
417 case SID_SETINPUTMODE:
421 case SID_FOCUS_INPUTLINE:
433 case SID_CURSORTOPOFSCREEN:
437 case SID_CURSORENDOFSCREEN:
442 OSL_FAIL(
"Unknown message in ViewShell (Cursor)");
451 sal_uInt16 nSlotId = rReq.
GetSlot();
454 case SID_CURSORHOME_SEL: rReq.
SetSlot( SID_CURSORHOME );
break;
455 case SID_CURSOREND_SEL: rReq.
SetSlot( SID_CURSOREND );
break;
456 case SID_CURSORTOPOFFILE_SEL: rReq.
SetSlot( SID_CURSORTOPOFFILE );
break;
457 case SID_CURSORENDOFFILE_SEL: rReq.
SetSlot( SID_CURSORENDOFFILE );
break;
459 OSL_FAIL(
"Unknown message in ViewShell (ExecutePageSel)");
470 sal_uInt16 nSlotId = rReq.
GetSlot();
474 if ( pReqArgs !=
nullptr )
477 if (pReqArgs->
HasItem(FN_PARAM_2, &pItem))
505 case SID_CURSORTOPOFFILE:
509 case SID_CURSORENDOFFILE:
514 OSL_FAIL(
"Unknown message in ViewShell (ExecutePage)");
void ExecutePage(SfxRequest &rReq)
static void GetStateCursor(SfxItemSet &rSet)
void ExecuteCursor(SfxRequest &rReq)
void ExecuteMove(SfxRequest &rReq)
VclPtr< vcl::Window > pFrameWin
void ExecuteCursorSel(SfxRequest &rReq)
void ExecutePageSel(SfxRequest &rReq)
SC_DLLPUBLIC bool IsLayoutRTL(SCTAB nTab) const
void SetForceFocusOnCurCell(bool bFlag)
void ExecuteInputDirect()
const ScInputHandler * GetInputHandler() const
ObjectSelectionType GetCurObjectSelectionType() const
sal_uInt16 GetLockedModifiers() const
void AlignToCursor(SCCOL nCurX, SCROW nCurY, ScFollowMode eMode, const ScSplitPos *pWhich=nullptr)
void MarkDataArea(bool bIncludeCursor=true)
void MoveCursorEnd(SCCOL nMovX, SCROW nMovY, ScFollowMode eMode, bool bShift, bool bKeepSel=false)
void FindNextUnprot(bool bShift, bool bInSelection)
void MoveCursorPage(SCCOL nMovX, SCROW nMovY, ScFollowMode eMode, bool bShift, bool bKeepSel=false)
void MoveCursorRel(SCCOL nMovX, SCROW nMovY, ScFollowMode eMode, bool bShift, bool bKeepSel=false)
void ScrollX(tools::Long nDeltaX, ScHSplitPos eWhich, bool bUpdBars=true)
void MoveCursorScreen(SCCOL nMovX, SCROW nMovY, ScFollowMode eMode, bool bShift)
void SelectNextTab(short nDir, bool bExtendSelection)
void ScrollY(tools::Long nDeltaY, ScVSplitPos eWhich, bool bUpdBars=true)
void MoveCursorEnter(bool bShift)
void ExpandBlockPage(SCCOL nMovX, SCROW nMovY)
void ExpandBlock(SCCOL nMovX, SCROW nMovY, ScFollowMode eMode)
void GetPageMoveEndPosition(SCCOL nMovX, SCROW nMovY, SCCOL &rPageX, SCROW &rPageY)
void ExpandBlockArea(SCCOL nMovX, SCROW nMovY)
void MoveCursorArea(SCCOL nMovX, SCROW nMovY, ScFollowMode eMode, bool bShift, bool bKeepSel=false, bool bInteractiveByUser=false)
ScDocument & GetDocument() const
ScTabViewShell * GetViewShell() const
bool HasItem(sal_uInt16 nWhich, const SfxPoolItem **ppItem=nullptr) const
sal_uInt16 GetSlot() const
const SfxItemSet * GetArgs() const
void SetSlot(sal_uInt16 nNewSlot)
void AppendItem(const SfxPoolItem &)
void Done(bool bRemove=false)
virtual SfxInterface * GetInterface() const
const SfxPoolItem * ExecuteSlot(SfxRequest &rReq, const SfxInterface *pIF=nullptr)
constexpr sal_uInt16 KEY_MOD1
constexpr sal_uInt16 KEY_SHIFT
sal_Int32 SCCOLROW
a type capable of holding either SCCOL or SCROW