20#include <config_features.h>
45#include <com/sun/star/embed/Aspects.hpp>
46#include <com/sun/star/embed/XEmbeddedObject.hpp>
47#include <osl/diagnose.h>
76#define ShellClass_SwTextShell
91#include <com/sun/star/ui/dialogs/DialogClosedEvent.hpp>
92#include <com/sun/star/ui/dialogs/ExecutableDialogResults.hpp>
103 sal_Int16 nDialogRet = pEvent->DialogResult;
104 if( nDialogRet == ui::dialogs::ExecutableDialogResults::CANCEL )
111 OSL_ENSURE( nDialogRet == ui::dialogs::ExecutableDialogResults::OK,
112 "dialog execution failed" );
136 "wrong shell on dispatcher" );
140 const sal_uInt16 nSlot = rReq.
GetSlot();
151 case FN_INSERT_SOFT_HYPHEN:
157 case FN_INSERT_HARDHYPHEN:
158 case FN_INSERT_HARD_SPACE:
166 ACFlags::CapitalStartSentence | ACFlags::CapitalStartWord |
167 ACFlags::AddNonBrkSpace | ACFlags::ChgOrdinalNumber | ACFlags::TransliterateRTL |
168 ACFlags::ChgToEnEmDash | ACFlags::SetINetAttr | ACFlags::Autocorrect ) )
174 rSh.
Insert( OUString( cIns ) );
179 case FN_INSERT_NNBSP:
180 case SID_INSERT_RLM :
181 case SID_INSERT_LRM :
183 case SID_INSERT_ZWSP:
188 case SID_INSERT_RLM : cIns =
CHAR_RLM ;
break;
189 case SID_INSERT_LRM : cIns =
CHAR_LRM ;
break;
190 case SID_INSERT_ZWSP : cIns =
CHAR_ZWSP ;
break;
191 case SID_INSERT_WJ: cIns =
CHAR_WJ;
break;
192 case FN_INSERT_NNBSP: cIns =
CHAR_NNBSP;
break;
194 rSh.
Insert( OUString( cIns ) );
198 case FN_INSERT_BREAK:
264 pDlg->StartExecuteAsync(aContext);
274 case SID_HYPERLINK_SETLINK:
280#if HAVE_FEATURE_AVMEDIA
281 case SID_INSERT_AVMEDIA:
286 case SID_INSERT_OBJECT:
302 case SID_INSERT_FLOATINGFRAME:
316 embed::Aspects::MSOLE_CONTENT );
318 uno::Reference < beans::XPropertySet > xSet( xObj->getComponent(), uno::UNO_QUERY );
324 if( pScrollingItem && pScrollingItem->GetValue() <=
int(ScrollingMode::Auto) )
325 eScroll =
static_cast<ScrollingMode>(pScrollingItem->GetValue());
329 aMargin = pMarginItem->GetSize();
331 xSet->setPropertyValue(
"FrameURL",
uno::Any( pURLItem->GetValue() ) );
335 if ( eScroll == ScrollingMode::Auto )
336 xSet->setPropertyValue(
"FrameIsAutoScroll",
339 xSet->setPropertyValue(
"FrameIsScrollingMode",
340 uno::Any( eScroll == ScrollingMode::Yes ) );
343 xSet->setPropertyValue(
"FrameIsBorder",
344 uno::Any( pBorderItem->GetValue() ) );
348 xSet->setPropertyValue(
"FrameMarginWidth",
351 xSet->setPropertyValue(
"FrameMarginHeight",
355 catch (
const uno::Exception&)
369 case SID_INSERT_DIAGRAM:
380 uno::Reference< chart2::data::XDataProvider > xDataProvider;
381 bool bFillWithData =
true;
382 OUString aRangeString;
383 if (!
GetShell().IsTableComplexForChart())
386 aRangeString = pTableFormat->
GetName() +
"."
390 xDataProvider.set(
GetView().GetDocShell()->getIDocumentChartDataProviderAccess().GetChartDataProvider() );
393 bFillWithData =
false;
399 if(pItem && xObj.
is())
407 aSz.Width = aSize.
Width();
408 aSz.Height = aSize.
Height();
433 sal_uInt16 nCols = 1;
439 (pColsItem = pArgs->
GetItemIfSet(SID_ATTR_COLUMNS,
false)))
442 bModifier1 |=
KEY_MOD1 == pModifierItem->GetValue();
452 aStartPos.AdjustX(-constTwips_4cm);
453 aStartPos.AdjustY(-constTwips_2cm);
454 Size aSize(2 * constTwips_4cm, 2 * constTwips_2cm);
477 bool bSingleCol =
false;
493 RndStdIds eAnchor = RndStdIds::FLY_AT_PARA;
494 if(pArgs->
GetItemState(nSlot,
false, &pItem) == SfxItemState::SET)
496 if(pArgs->
GetItemState(FN_PARAM_1,
false, &pItem) == SfxItemState::SET)
498 if(pArgs->
GetItemState(FN_PARAM_2,
false, &pItem) == SfxItemState::SET)
502 const sal_uInt16 nCols = pColsItem->GetValue();
503 if( !bSingleCol && 1 < nCols )
506 aFormatCol.
Init( nCols , (rReq.
IsAPI() ? 0
531 if(pDlg->Execute() ==
RET_OK && pDlg->GetOutputItemSet())
539 const SfxItemSet* pOutSet = pDlg->GetOutputItemSet();
548 uno::Reference< frame::XDispatchRecorder > xRecorder =
550 if ( xRecorder.is() )
553 sal_uInt16 nAnchor =
static_cast<sal_uInt16
>(aMgr.
GetAnchor());
579 pColDlg->StartExecuteAsync([=](sal_Int32 ){
580 pColDlg->disposeOnce();
586 OSL_ENSURE(
false,
"wrong dispatcher");
614 case SID_INSERT_AVMEDIA:
616 ||
GetShell().CursorInsideInputField()
617 || SfxObjectCreateMode::EMBEDDED == eCreateMode
624 case SID_INSERT_DIAGRAM:
626 ||
GetShell().CursorInsideInputField()
627 || eCreateMode == SfxObjectCreateMode::EMBEDDED
636 || eCreateMode == SfxObjectCreateMode::EMBEDDED
644 case SID_INSERT_FLOATINGFRAME:
645 case SID_INSERT_OBJECT:
647 if( eCreateMode == SfxObjectCreateMode::EMBEDDED || bCursorInHidden )
651 else if(
GetShell().IsSelFrameMode()
652 ||
GetShell().CursorInsideInputField() )
656 else if(SID_INSERT_FLOATINGFRAME == nWhich && bHtmlModeOn)
670 ||
GetShell().CursorInsideInputField()
676 case SID_HYPERLINK_GETLINK:
684 aHLinkItem.
SetURL(pINetFormat->GetValue());
686 aHLinkItem.
SetIntName(pINetFormat->GetName());
687 const SvxMacro *pMacro = pINetFormat->GetMacro( SvMacroItemId::OnMouseOver );
689 aHLinkItem.
SetMacro(HyperDialogEvent::MouseOverObject, *pMacro);
691 pMacro = pINetFormat->GetMacro( SvMacroItemId::OnClick );
693 aHLinkItem.
SetMacro(HyperDialogEvent::MouseClickObject, *pMacro);
695 pMacro = pINetFormat->GetMacro( SvMacroItemId::OnMouseOut );
697 aHLinkItem.
SetMacro(HyperDialogEvent::MouseOutObject, *pMacro);
717 sReturn = sReturn.copy(0, std::min<sal_Int32>(255, sReturn.getLength()));
724 HyperDialogEvent::MouseClickObject | HyperDialogEvent::MouseOutObject );
746 bool bDisable =
true;
753 if( pCurrSection && ( !rSh.
HasSelection() || 0 != nFullSectCnt ))
757 ( !pCurrSection || ( 1 != nFullSectCnt &&
809 OSL_ENSURE(
false,
"wrong dispatcher");
822 case SID_TRANSLITERATE_SENTENCE_CASE:
823 nMode = TransliterationFlags::SENTENCE_CASE;
825 case SID_TRANSLITERATE_TITLE_CASE:
826 nMode = TransliterationFlags::TITLE_CASE;
828 case SID_TRANSLITERATE_TOGGLE_CASE:
829 nMode = TransliterationFlags::TOGGLE_CASE;
831 case SID_TRANSLITERATE_UPPER:
832 nMode = TransliterationFlags::LOWERCASE_UPPERCASE;
834 case SID_TRANSLITERATE_LOWER:
835 nMode = TransliterationFlags::UPPERCASE_LOWERCASE;
838 case SID_TRANSLITERATE_HALFWIDTH:
839 nMode = TransliterationFlags::FULLWIDTH_HALFWIDTH;
841 case SID_TRANSLITERATE_FULLWIDTH:
842 nMode = TransliterationFlags::HALFWIDTH_FULLWIDTH;
845 case SID_TRANSLITERATE_HIRAGANA:
846 nMode = TransliterationFlags::KATAKANA_HIRAGANA;
848 case SID_TRANSLITERATE_KATAKANA:
849 nMode = TransliterationFlags::HIRAGANA_KATAKANA;
853 OSL_ENSURE(
false,
"wrong dispatcher");
856 if( nMode != TransliterationFlags::NONE )
862 if( rReq.
GetSlot() == SID_TRANSLITERATE_ROTATE_CASE )
882 SID_ATTR_BORDER_INNER, SID_ATTR_BORDER_INNER,
883 SID_ATTR_PAGE_SIZE, SID_ATTR_PAGE_SIZE,
884 SID_COLOR_TABLE, SID_PATTERN_LIST,
885 SID_HTML_MODE, SID_HTML_MODE,
896 aSet.
Put(aFrameSize);
923 OUString aChars, aFontName;
939 std::shared_ptr<SvxFontItem> aFont(std::make_shared<SvxFontItem>(
RES_CHRATR_FONT));
942 aSetItem.GetItemSet().Put( aSet,
false );
954 aFont.reset(aSet.Get(nFontWhich).Clone());
957 if (aFontName.isEmpty())
958 aFontName = aFont->GetFamilyName();
962 if( aChars.isEmpty() )
970 if( aFontName.isEmpty() && !sSymbolFont.isEmpty() )
982 if( aChars.isEmpty() )
999 aSetItem.GetItemSet().Put( aSet,
false );
1011 aFont.reset(aSet.Get( nFontWhich ).Clone());
1021 std::unique_ptr<SvxFontItem> aNewFontItem(aFont->Clone());
1024 aNewFontItem->SetPitch( aNewFont.
GetPitch());
1025 aNewFontItem->SetCharSet( aNewFont.
GetCharSet() );
1032 if( SvtScriptType::LATIN & nScript )
1036 aSet.Put( *aNewFontItem );
1038 if( SvtScriptType::ASIAN & nScript )
1042 aSet.Put( *aNewFontItem );
1044 if( SvtScriptType::COMPLEX & nScript )
1048 aSet.Put( *aNewFontItem );
1076 if ( !aChars.isEmpty() )
sal_uInt16 GetValue() const
const OUString & GetValue() const
virtual const SwDrawModel * GetDrawModel() const =0
Draw Model and id accessors.
TransliterationFlags getNextMode()
const css::uno::Reference< css::frame::XDispatchRecorder > & GetRecorder() const
const css::uno::Reference< css::frame::XFrame > & GetFrameInterface() const
const SvGlobalName & GetValue() const
void RegisterPopupMenu(const OUString &)
void RegisterChildWindow(sal_uInt16, bool bContext=false)
void RegisterObjectBar(sal_uInt16, SfxVisibilityFlags nFlags, ToolbarId eId)
void SetParent(const SfxItemSet *pNew)
const T * GetItemIfSet(TypedWhichId< T > nWhich, bool bSrchInParent=true) const
const SfxItemSet * GetParent() const
SfxItemState GetItemState(sal_uInt16 nWhich, bool bSrchInParent=true, const SfxPoolItem **ppItem=nullptr) const
const SfxPoolItem * Put(const SfxPoolItem &rItem, sal_uInt16 nWhich)
const SfxPoolItem & Get(sal_uInt16 nWhich, bool bSrchInParent=true) const
void DisableItem(sal_uInt16 nWhich)
SfxObjectCreateMode GetCreateMode() const
const Point & GetValue() const
virtual SfxPoolItem * Clone(SfxItemPool *pPool=nullptr) const=0
sal_uInt16 GetSlot() const
const SfxItemSet * GetArgs() const
const T * GetArg(sal_uInt16 nSlotId) const
void AppendItem(const SfxPoolItem &)
void SetReturnValue(const SfxPoolItem &)
sal_uInt16 GetModifier() const
void Done(bool bRemove=false)
SfxItemPool & GetPool() const
void SetContextName(const OUString &rsContextName)
static SfxInterface * GetStaticInterface()
void SetName(const OUString &rName)
SfxBindings & GetBindings()
SfxFrame & GetFrame() const
SfxViewFrame & GetViewFrame() const
constexpr tools::Long Height() const
void setWidth(tools::Long nWidth)
constexpr tools::Long Width() const
css::uno::Sequence< sal_Int8 > GetByteSequence() const
virtual VclPtr< SfxAbstractDialog > CreateCharMapDialog(weld::Window *pParent, const SfxItemSet &rAttr, const css::uno::Reference< css::frame::XFrame > &rFrame)=0
static SvxAbstractDialogFactory * Create()
bool IsAutoFormatByInput() const
SvxAutoCorrect * GetAutoCorrect()
static SvxAutoCorrCfg & Get()
bool IsAutoCorrFlag(ACFlags nFlag) const
void SetMinDist(bool bNew)
void SetDefDist(sal_uInt16 nNew)
sal_Int16 GetDistance(SvxBoxItemLine nLine, bool bAllowNegative=false) const
void SetMacroEvents(const HyperDialogEvent nEvents)
SvxLinkInsertMode GetInsertMode() const
void SetIntName(const OUString &rIntName)
void SetName(const OUString &rName)
void SetInsertMode(SvxLinkInsertMode eNew)
void SetURL(const OUString &rURL)
void SetMacro(HyperDialogEvent nEvent, const SvxMacro &rMacro)
void SetTargetFrame(const OUString &rTarget)
const SfxPoolItem * GetItemOfScript(SvtScriptType nScript) const
const Size & GetSize() const
virtual VclPtr< VclAbstractDialog > CreateSwContentControlDlg(weld::Window *pParent, SwWrtShell &rSh)=0
virtual VclPtr< VclAbstractDialog > CreateSwColumnDialog(weld::Window *pParent, SwWrtShell &rSh)=0
virtual VclPtr< SfxAbstractTabDialog > CreateFrameTabDialog(const OUString &rDialogType, SfxViewFrame &rFrame, weld::Window *pParent, const SfxItemSet &rCoreSet, bool bNewFrame=true, const OString &sDefPage=OString())=0
static SwAbstractDialogFactory * Create()
void InsertTable(SfxRequest &_rRequest)
SwWrtShell * GetShellPtr()
SvtScriptType GetAllScriptsOfText(const OUString &rText) const
OUString GetBoxNms() const
bool IsInHiddenRange(const bool bSelect)
If the current cursor position is inside a hidden range true is returned.
OUString GetSelText() const
get selected text of a node at current cursor
bool ExtendSelection(bool bEnd=true, sal_Int32 nCount=1)
extend current SSelection by n characters
bool CursorInsideInputField() const
SwPaM * CreateCursor()
delete the current cursor and make the following into the current
void EndAction(const bool bIdleEnd=false)
SwTextContentControl * CursorInsideContentControl() const
void DestroyCursor()
transform TableCursor to normal cursor, nullify Tablemode
bool IsCursorPtAtEnd() const
IDocumentDrawModelAccess const & getIDocumentDrawModelAccess() const
void PutAreaListItems(SfxItemSet &rSet) const
Put needed items for XPropertyList entries from the DrawModel.
bool GetCurAttr(SfxItemSet &, const bool bMergeIndentValuesOfNumRule=false) const
void StartAllAction()
For all views of this document.
SwUndoId StartUndo(SwUndoId eUndoId=SwUndoId::EMPTY, const SwRewriter *pRewriter=nullptr)
Undo: set up Undo parenthesis, return nUndoId of this parenthesis.
void SetAttrSet(const SfxItemSet &, SetAttrMode nFlags=SetAttrMode::DEFAULT, SwPaM *pCursor=nullptr, const bool bParagraphSetting=false)
SwFrameFormat * GetTableFormat()
svt::EmbeddedObjectRef & GetOLEObject() const
Get OLE object at pointer.
sal_uInt16 GetFullSelectedSectionCount() const
Search inside the cursor selection for full selected sections.
const SwSection * GetCurrSection() const
SvtScriptType GetScriptType() const
returns the script type of the selection
void Undo(sal_uInt16 const nCount=1, sal_uInt16 nOffset=0)
bool IsInsRegionAvailable() const
SwUndoId EndUndo(SwUndoId eUndoId=SwUndoId::EMPTY, const SwRewriter *pRewriter=nullptr)
Closes parenthesis of nUndoId, not used by UI.
void TransliterateText(TransliterationFlags nType)
Change text to Upper/Lower/Hiragana/Katakana/...
Window class for the Writer edit area, this is the one handling mouse and keyboard events and doing t...
const SwPageDesc * GetSelectedPageDescs() const
if inside all selection only one PageDesc,
bool IsFrameSelected() const
Point GetObjAbsPos() const
bool DeleteRow(bool bCompleteTable=false)
const SwRect & GetAnyCurRect(CurRectType eType, const Point *pPt=nullptr, const css::uno::Reference< css::embed::XEmbeddedObject > &=css::uno::Reference< css::embed::XEmbeddedObject >()) const
size_t IsObjSelected() const
const SwFrameFormat * GetFlyFrameFormat() const
Get FlyFrameFormat; for UI macro linkage at Flys.
RndStdIds GetAnchor() const
void SetCol(const SwFormatCol &rCol)
void SetAttrSet(const SfxItemSet &rSet)
const Size & GetSize() const
const SfxItemSet & GetAttrSet() const
Of course Writer needs its own rectangles.
void Height(tools::Long nNew)
void Width(tools::Long nNew)
void AddRule(SwUndoArg eWhat, const OUString &rWith)
css::uno::Reference< css::frame::XModel > InsertChart(css::uno::Reference< css::chart2::data::XDataProvider > const &rxDataProvider, bool bFillWithData, const OUString &rCellRange, SwFlyFrameFormat **ppFlyFrameFormat=nullptr)
void InsertSymbol(SfxRequest &)
void InsertHyperlink(const SvxHyperlinkItem &rHlnkItem)
virtual ~SwTextShell() override
void ExecTransliteration(SfxRequest const &)
RotateTransliteration m_aRotateCase
void StateInsert(SfxItemSet &)
bool InsertMediaDlg(SfxRequest const &)
void ExecInsert(SfxRequest &)
SfxItemSet CreateInsertFrameItemSet(SwFlyFrameAttrMgr &rMgr)
Create item set for the insert frame dialog.
void ExecDelete(SfxRequest &)
static void InitInterface_Impl()
SfxInterface initializer.
SwTextShell(SwView &rView)
void ExecRotateTransliteration(SfxRequest const &)
const OUString & GetSymbolFont() const
void UnlockPaint(bool bVirDev=false)
IDocumentUndoRedo const & GetIDocumentUndoRedo() const
Provides access to the document undo/redo interface.
const SfxItemPool & GetAttrPool() const
void AutoCaption(const sal_uInt16 nType, const SvGlobalName *pOleId=nullptr)
SwWrtShell & GetWrtShell() const
SwDocShell * GetDocShell()
void InsFrameMode(sal_uInt16 nCols)
Used by the UI to modify the document model.
bool IsSelFrameMode() const
void InsertLineBreak(std::optional< SwLineBreakClear > oClear=std::nullopt)
void Insert(const OUString &)
SelectionType GetSelectionType() const
bool InsertOleObject(const svt::EmbeddedObjectRef &xObj, SwFlyFrameFormat **pFlyFrameFormat=nullptr)
void SplitNode(bool bAutoFormat=false)
void DelToStartOfSentence()
void InsertContentControl(SwContentControlType eType)
void InsertByWord(const OUString &)
bool DelRight(bool isReplaceHeuristic=false)
void DelLine()
Description: Erase the line.
void InsertObject(const svt::EmbeddedObjectRef &, SvGlobalName const *pName, sal_uInt16 nSlotId=0)
void AutoCorrect(SvxAutoCorrect &rACorr, sal_Unicode cChar)
bool HasSelection() const
void InsertPageBreak(const OUString *pPageDesc=nullptr, const ::std::optional< sal_uInt16 > &rPgNum=std::nullopt)
bool DelToEndOfSentence()
bool IsInClickToEdit() const
void LaunchOLEObj(sal_Int32 nVerb=css::embed::EmbedVerbs::MS_OLEVERB_PRIMARY)
css::uno::Reference< css::embed::XEmbeddedObject > CreateEmbeddedObject(const css::uno::Sequence< sal_Int8 > &, OUString &, OUString const *pBaseURL=nullptr)
#define SO3_IFRAME_CLASSID
static bool TryRunningState(const css::uno::Reference< css::embed::XEmbeddedObject > &)
sal_Int64 GetViewAspect() const
void Assign(const css::uno::Reference< css::embed::XEmbeddedObject > &xObj, sal_Int64 nAspect)
const css::uno::Reference< css::embed::XEmbeddedObject > & GetObject() const
static const OUString & GetContextName(const Context eContext)
FontFamily GetFamilyType()
const OUString & GetFamilyName() const
rtl_TextEncoding GetCharSet() const
Point PixelToLogic(const Point &rDevicePt) const
virtual Size GetSizePixel() const
#define FN_INSERT_LINEBREAK
#define FN_INSERT_COMBO_BOX_CONTENT_CONTROL
#define FN_INSERT_CONTENT_CONTROL
#define FN_INSERT_FRAME_INTERACT_NOCOL
#define FN_INSERT_FRAME_INTERACT
#define FN_CONTENT_CONTROL_PROPERTIES
#define FN_INSERT_IDX_ENTRY_DLG
#define FN_INSERT_PLAIN_TEXT_CONTENT_CONTROL
#define FN_INSERT_AUTH_ENTRY_DLG
#define FN_DELETE_BACK_LINE
#define FN_GET_PRINT_AREA
#define FN_INSERT_DROPDOWN_CONTENT_CONTROL
#define FN_DELETE_BACK_PARA
#define FN_INSERT_PAGEBREAK
#define FN_DELETE_BACK_WORD
#define FN_INSERT_DATE_CONTENT_CONTROL
#define FN_DELETE_WHOLE_LINE
#define FN_WORDCOUNT_DIALOG
#define FN_INSERT_COLUMN_BREAK
#define FN_INSERT_PICTURE_CONTENT_CONTROL
#define FN_INSERT_CHECKBOX_CONTENT_CONTROL
#define FN_DELETE_BACK_SENT
weld::Window * GetFrameWeld(const SfxFrame *pFrame)
@ Page
Rect of current page.
@ PagePrt
Rect of current PrtArea of page.
@ Variable
Frame is variable in Var-direction.
constexpr sal_uInt16 RES_FRMATR_BEGIN(RES_PARATR_LIST_END)
constexpr TypedWhichId< SvxFontItem > RES_CHRATR_CJK_FONT(22)
constexpr TypedWhichId< SvxFontItem > RES_CHRATR_CTL_FONT(27)
constexpr sal_uInt16 RES_FRMATR_END(141)
constexpr TypedWhichId< SwFormatINetFormat > RES_TXTATR_INETFMT(51)
constexpr TypedWhichId< SvxBoxItem > RES_BOX(112)
constexpr TypedWhichId< SvxFontItem > RES_CHRATR_FONT(7)
sal_uInt16 GetWhichOfScript(sal_uInt16 nWhich, sal_uInt16 nScript)
LanguageType GetAppLanguage()
constexpr sal_uInt16 KEY_MOD1
#define LINK(Instance, Class, Member)
sal_Int16 GetI18NScriptTypeOfLanguage(LanguageType nLang)
sal_uInt16 GetExportMode()
OString stripEnd(const OString &rIn, char c)
constexpr auto toTwips(N number, Length from)
constexpr Point convert(const Point &rPoint, o3tl::Length eFrom, o3tl::Length eTo)
static constexpr auto Items
#define SFX_OBJECTBAR_OBJECT
#define SFX_IMPL_INTERFACE(Class, SuperClass)
std::function< void(sal_Int32)> maEndDialogFn
Reference< XFrame > xFrame
OUString SwResId(TranslateId aId)
constexpr SwTwips DEF_GUTTER_WIDTH
static bool lcl_IsMarkInSameSection(SwWrtShell &rWrtSh, const SwSection *pSect)
IMPL_STATIC_LINK(SwTextShell, DialogClosedHdl, css::ui::dialogs::DialogClosedEvent *, pEvent, void)
sal_uInt16 GetHtmlMode(const SwDocShell *pShell)
constexpr sal_uInt16 XATTR_FILL_FIRST(XATTRSET_LINE+1)
constexpr sal_uInt16 XATTR_FILL_LAST(XATTR_FILLUSESLIDEBACKGROUND)