27#include <osl/diagnose.h>
34#define ShellClass_SwListShell
44 GetStaticInterface()->RegisterObjectBar(
SFX_OBJECTBAR_OBJECT, SfxVisibilityFlags::Invisible, ToolbarId::Num_Toolbox);
71 while ( nActEndPos < pIDoc->getOutlineNodesCount() &&
73 || nActLevel < pIDoc->getOutlineLevel(nActEndPos)))
78 if ( nActEndPos < pIDoc->getOutlineNodesCount() )
84 while ( nDest < pIDoc->getOutlineNodesCount() &&
86 || nActLevel < pIDoc->getOutlineLevel(nDest)))
91 nDir = nDest - 1 - nActEndPos;
102 || nActLevel < pIDoc->getOutlineLevel(nDest)))
107 nDir = nDest - nActPos;
130 const sal_uInt16 nSlot = rReq.
GetSlot();
135 OSL_ENSURE( pCurRule,
"SwListShell::Execute without NumRule" );
200 bool bApi = rReq.
IsAPI();
201 bool bDelete = !rSh.
IsNoNum(!bApi);
210 OSL_ENSURE(
false,
"wrong dispatcher");
230 if(!nCurrentNumLevel)
243 if(nCurrentNumLevel == (
MAXLEVEL - 1))
Provides outline nodes of a document.
virtual int getOutlineLevel(const tSortedOutlineNodeList::size_type nIdx) const =0
virtual bool isOutlineInLayout(tSortedOutlineNodeList::size_type nIdx, SwRootFrame const &rLayout) const =0
void Invalidate(sal_uInt16 nId)
const SfxPoolItem * Put(const SfxPoolItem &rItem, sal_uInt16 nWhich)
const SfxPoolItem & Get(sal_uInt16 nWhich, bool bSrchInParent=true) const
void DisableItem(sal_uInt16 nWhich)
sal_uInt16 GetSlot() const
const SfxItemSet * GetArgs() const
void AppendItem(const SfxPoolItem &)
void Done(bool bRemove=false)
void SetName(const OUString &rName)
SfxBindings & GetBindings()
SfxViewFrame & GetViewFrame() const
void Push()
store a copy of the current cursor on the cursor stack
bool CursorInsideInputField() const
void MakeOutlineSel(SwOutlineNodes::size_type nSttPos, SwOutlineNodes::size_type nEndPos, bool bWithChildren, bool bKillPams=true)
void GotoNextNum()
go to next/previous point on the same level
SwOutlineNodes::size_type GetOutlinePos(sal_uInt8 nLevel=UCHAR_MAX, SwPaM *pPaM=nullptr)
search "outline position" before previous outline node at given level
bool IsNoNum(bool bChkStart=true) const
void NoNum()
Paragraphs without enumeration but with indents.
bool NumOrNoNum(bool bDelete=false, bool bChkStart=true)
Switch on/off of numbering via Delete/Backspace.
sal_uInt8 GetNumLevel() const
const SwNumRule * GetNumRuleAtCurrCursorPos() const
bool OutlineUpDown(short nOffset=1)
void NumUpDown(bool bDown=true)
bool IsOutlineMovable(SwOutlineNodes::size_type nIdx) const
May an outline be moved or copied? Check whether it's in text body, not in table, and not read-only (...
bool MoveOutlinePara(SwOutlineNodes::difference_type nOffset)
void GetCurrentOutlineLevels(sal_uInt8 &rUpper, sal_uInt8 &rLower)
Detect highest and lowest level to check moving of outline levels.
bool MoveNumParas(bool bUpperLower, bool bUpperLeft)
SwListShell(SwView &rView)
void GetState(SfxItemSet &)
void Execute(SfxRequest &)
bool IsOutlineRule() const
static constexpr auto npos
SwRootFrame * GetLayout() const
const IDocumentOutlineNodes * getIDocumentOutlineNodesAccess() const
Used by the UI to modify the document model.
void GotoOutline(SwOutlineNodes::size_type nIdx)
bool Pop(SwCursorShell::PopMode, ::std::optional< SwCallLink > &roLink)
std::vector< Value >::difference_type difference_type
std::vector< Value >::size_type size_type
#define FN_NUM_BULLET_DOWN
#define FN_NUM_BULLET_NONUM
#define FN_NUM_BULLET_OUTLINE_UP
#define FN_NUM_BULLET_OUTLINE_MOVEDOWN
#define FN_NUM_BULLET_PREV
#define FN_NUM_BULLET_OUTLINE_MOVEUP
#define FN_NUM_BULLET_OUTLINE_DOWN
#define FN_NUM_BULLET_NEXT
static void lcl_OutlineUpDownWithSubPoints(SwWrtShell &rSh, bool bMove, bool bUp)
#define SFX_OBJECTBAR_OBJECT
#define SFX_IMPL_INTERFACE(Class, SuperClass)
constexpr sal_uInt8 MAXLEVEL