diff options
Diffstat (limited to 'sfx2/source/control/unoctitm.cxx')
-rw-r--r-- | sfx2/source/control/unoctitm.cxx | 572 |
1 files changed, 310 insertions, 262 deletions
diff --git a/sfx2/source/control/unoctitm.cxx b/sfx2/source/control/unoctitm.cxx index 984bd83c96c7..976cd48ce152 100644 --- a/sfx2/source/control/unoctitm.cxx +++ b/sfx2/source/control/unoctitm.cxx @@ -64,6 +64,7 @@ #include <slotserv.hxx> #include <rtl/ustring.hxx> #include <sfx2/lokhelper.hxx> +#include <sfx2/lokunocmdlist.hxx> #include <memory> #include <string_view> @@ -1148,275 +1149,319 @@ OString TableSizePayload(sal_uInt16, SfxViewFrame*, const css::frame::FeatureSta return aBuffer.makeStringAndClear(); } -constexpr auto handlers = frozen::make_unordered_map<std::u16string_view, PayloadGetter_t>({ - { u"Bold", IsActivePayload }, - { u"CenterPara", IsActivePayload }, - { u"CharBackgroundExt", IsActivePayload }, - { u"ControlCodes", IsActivePayload }, - { u"DefaultBullet", IsActivePayload }, - { u"DefaultNumbering", IsActivePayload }, - { u"Italic", IsActivePayload }, - { u"JustifyPara", IsActivePayload }, - { u"LeftPara", IsActivePayload }, - { u"OutlineFont", IsActivePayload }, - { u"RightPara", IsActivePayload }, - { u"Shadowed", IsActivePayload }, - { u"SpellOnline", IsActivePayload }, - { u"OnlineAutoFormat", IsActivePayload }, - { u"SubScript", IsActivePayload }, - { u"SuperScript", IsActivePayload }, - { u"Strikeout", IsActivePayload }, - { u"Underline", IsActivePayload }, - { u"ModifiedStatus", IsActivePayload }, - { u"TrackChanges", IsActivePayload }, - { u"ShowTrackedChanges", IsActivePayload }, - { u"AlignLeft", IsActivePayload }, - { u"AlignHorizontalCenter", IsActivePayload }, - { u"AlignRight", IsActivePayload }, - { u"DocumentRepair", IsActivePayload }, - { u"ObjectAlignLeft", IsActivePayload }, - { u"ObjectAlignRight", IsActivePayload }, - { u"AlignCenter", IsActivePayload }, - { u"AlignUp", IsActivePayload }, - { u"AlignMiddle", IsActivePayload }, - { u"AlignDown", IsActivePayload }, - { u"TraceChangeMode", IsActivePayload }, - { u"FormatPaintbrush", IsActivePayload }, - { u"FreezePanes", IsActivePayload }, - { u"Sidebar", IsActivePayload }, - { u"SpacePara1", IsActivePayload }, - { u"SpacePara15", IsActivePayload }, - { u"SpacePara2", IsActivePayload }, - { u"DataFilterAutoFilter", IsActivePayload }, - { u"CellProtection", IsActivePayload }, - { u"NormalMultiPaneGUI", IsActivePayload }, - { u"NotesMode", IsActivePayload }, - { u"SlideMasterPage", IsActivePayload }, - - { u"CharFontName", FontNamePayload }, - - { u"FontHeight", FontHeightPayload }, - - { u"StyleApply", StyleApplyPayload }, - - { u"BackColor", ColorPayload }, - { u"BackgroundColor", ColorPayload }, - { u"TableCellBackgroundColor", ColorPayload }, - { u"CharBackColor", ColorPayload }, - { u"Color", ColorPayload }, - { u"FontColor", ColorPayload }, - { u"FrameLineColor", ColorPayload }, - { u"GlowColor", ColorPayload }, - - { u"Undo", UndoRedoPayload }, - { u"Redo", UndoRedoPayload }, - - { u"Cut", EnabledPayload }, - { u"Copy", EnabledPayload }, - { u"Paste", EnabledPayload }, - { u"SelectAll", EnabledPayload }, - { u"InsertAnnotation", EnabledPayload }, - { u"DeleteAnnotation", EnabledPayload }, - { u"ResolveAnnotation", EnabledPayload }, - { u"ResolveAnnotationThread", EnabledPayload }, - { u"PromoteComment", EnabledPayload }, - { u"InsertRowsBefore", EnabledPayload }, - { u"InsertRowsAfter", EnabledPayload }, - { u"InsertColumnsBefore", EnabledPayload }, - { u"InsertColumnsAfter", EnabledPayload }, - { u"NameGroup", EnabledPayload }, - { u"ObjectTitleDescription", EnabledPayload }, - { u"MergeCells", EnabledPayload }, - { u"InsertObjectChart", EnabledPayload }, - { u"InsertSection", EnabledPayload }, - { u"InsertPagebreak", EnabledPayload }, - { u"InsertColumnBreak", EnabledPayload }, - { u"HyperlinkDialog", EnabledPayload }, - { u"InsertSymbol", EnabledPayload }, - { u"InsertPage", EnabledPayload }, - { u"DeletePage", EnabledPayload }, - { u"DuplicatePage", EnabledPayload }, - { u"DeleteRows", EnabledPayload }, - { u"DeleteColumns", EnabledPayload }, - { u"DeleteTable", EnabledPayload }, - { u"SelectTable", EnabledPayload }, - { u"EntireRow", EnabledPayload }, - { u"EntireColumn", EnabledPayload }, - { u"EntireCell", EnabledPayload }, - { u"SortAscending", EnabledPayload }, - { u"SortDescending", EnabledPayload }, - { u"AcceptAllTrackedChanges", EnabledPayload }, - { u"RejectAllTrackedChanges", EnabledPayload }, - { u"AcceptTrackedChange", EnabledPayload }, - { u"RejectTrackedChange", EnabledPayload }, - { u"AcceptTrackedChangeToNext", EnabledPayload }, - { u"RejectTrackedChangeToNext", EnabledPayload }, - { u"NextTrackedChange", EnabledPayload }, - { u"PreviousTrackedChange", EnabledPayload }, - { u"FormatGroup", EnabledPayload }, - { u"ObjectBackOne", EnabledPayload }, - { u"SendToBack", EnabledPayload }, - { u"ObjectForwardOne", EnabledPayload }, - { u"BringToFront", EnabledPayload }, - { u"WrapRight", EnabledPayload }, - { u"WrapThrough", EnabledPayload }, - { u"WrapLeft", EnabledPayload }, - { u"WrapIdeal", EnabledPayload }, - { u"WrapOn", EnabledPayload }, - { u"WrapOff", EnabledPayload }, - { u"UpdateCurIndex", EnabledPayload }, - { u"InsertCaptionDialog", EnabledPayload }, - { u"SplitTable", EnabledPayload }, - { u"SplitCell", EnabledPayload }, - { u"DeleteNote", EnabledPayload }, - { u"AcceptChanges", EnabledPayload }, - { u"SetDefault", EnabledPayload }, - { u"ParaspaceIncrease", EnabledPayload }, - { u"ParaspaceDecrease", EnabledPayload }, - { u"TableDialog", EnabledPayload }, - { u"FormatCellDialog", EnabledPayload }, - { u"FontDialog", EnabledPayload }, - { u"ParagraphDialog", EnabledPayload }, - { u"OutlineBullet", EnabledPayload }, - { u"InsertIndexesEntry", EnabledPayload }, - { u"TransformDialog", EnabledPayload }, - { u"EditRegion", EnabledPayload }, - { u"ThesaurusDialog", EnabledPayload }, - { u"OutlineRight", EnabledPayload }, - { u"OutlineLeft", EnabledPayload }, - { u"OutlineDown", EnabledPayload }, - { u"OutlineUp", EnabledPayload }, - { u"FormatArea", EnabledPayload }, - { u"FormatLine", EnabledPayload }, - { u"FormatColumns", EnabledPayload }, - { u"Watermark", EnabledPayload }, - { u"InsertBreak", EnabledPayload }, - { u"InsertEndnote", EnabledPayload }, - { u"InsertFootnote", EnabledPayload }, - { u"InsertReferenceField", EnabledPayload }, - { u"InsertBookmark", EnabledPayload }, - { u"InsertAuthoritiesEntry", EnabledPayload }, - { u"InsertMultiIndex", EnabledPayload }, - { u"InsertField", EnabledPayload }, - { u"PageNumberWizard", EnabledPayload }, - { u"InsertPageNumberField", EnabledPayload }, - { u"InsertPageCountField", EnabledPayload }, - { u"InsertDateField", EnabledPayload }, - { u"InsertTitleField", EnabledPayload }, - { u"InsertFieldCtrl", EnabledPayload }, - { u"CharmapControl", EnabledPayload }, - { u"EnterGroup", EnabledPayload }, - { u"LeaveGroup", EnabledPayload }, - { u"Combine", EnabledPayload }, - { u"Merge", EnabledPayload }, - { u"Dismantle", EnabledPayload }, - { u"Substract", EnabledPayload }, - { u"DistributeSelection", EnabledPayload }, - { u"Intersect", EnabledPayload }, - { u"ResetAttributes", EnabledPayload }, - { u"IncrementIndent", EnabledPayload }, - { u"DecrementIndent", EnabledPayload }, - { u"EditHeaderAndFooter", EnabledPayload }, - { u"InsertSparkline", EnabledPayload }, - { u"DeleteSparkline", EnabledPayload }, - { u"DeleteSparklineGroup", EnabledPayload }, - { u"EditSparklineGroup", EnabledPayload }, - { u"EditSparkline", EnabledPayload }, - { u"GroupSparklines", EnabledPayload }, - { u"UngroupSparklines", EnabledPayload }, - { u"FormatSparklineMenu", EnabledPayload }, - { u"DataDataPilotRun", EnabledPayload }, - { u"RecalcPivotTable", EnabledPayload }, - { u"DeletePivotTable", EnabledPayload }, - { u"NumberFormatDecDecimals", EnabledPayload }, - { u"NumberFormatIncDecimals", EnabledPayload }, - { u"Protect", EnabledPayload }, - { u"UnsetCellsReadOnly", EnabledPayload }, - { u"ContentControlProperties", EnabledPayload }, - { u"DeleteContentControl", EnabledPayload }, - { u"InsertCheckboxContentControl", EnabledPayload }, - { u"InsertContentControl", EnabledPayload }, - { u"InsertDateContentControl", EnabledPayload }, - { u"InsertDropdownContentControl", EnabledPayload }, - { u"InsertPlainTextContentControl", EnabledPayload }, - { u"InsertPictureContentControl", EnabledPayload }, - { u"ChangeBezier", EnabledPayload }, - { u"DistributeHorzCenter", EnabledPayload }, - { u"DistributeHorzDistance", EnabledPayload }, - { u"DistributeHorzLeft", EnabledPayload }, - { u"DistributeHorzRight", EnabledPayload }, - { u"DistributeVertBottom", EnabledPayload }, - { u"DistributeVertCenter", EnabledPayload }, - { u"DistributeVertDistance", EnabledPayload }, - { u"DistributeVertTop", EnabledPayload }, - { u"AnimationEffects", EnabledPayload }, - { u"ExecuteAnimationEffect", EnabledPayload }, - - { u"ParaLeftToRight", ParaDirectionPayload }, - { u"ParaRightToLeft", ParaDirectionPayload }, - - { u"AssignLayout", Int32Payload }, - { u"StatusSelectionMode", Int32Payload }, - { u"Signature", Int32Payload }, - { u"SelectionMode", Int32Payload }, - { u"StatusBarFunc", Int32Payload }, - - { u"TransformPosX", TransformPayload }, - { u"TransformPosY", TransformPayload }, - { u"TransformWidth", TransformPayload }, - { u"TransformHeight", TransformPayload }, - - { u"StatusDocPos", StringPayload }, - { u"StatusPageStyle", StringPayload }, - { u"StateWordCount", StringPayload }, - { u"PageStyleName", StringPayload }, - { u"PageStatus", StringPayload }, - { u"LayoutStatus", StringPayload }, - { u"Scale", StringPayload }, - { u"Context", StringPayload }, - - { u"RowColSelCount", RowColSelCountPayload }, - - { u"StateTableCell", StateTableCellPayload }, - - { u"InsertMode", BooleanPayload }, - { u"WrapText", BooleanPayload }, - { u"NumberFormatCurrency", BooleanPayload }, - { u"NumberFormatPercent", BooleanPayload }, - { u"NumberFormatDecimal", BooleanPayload }, - { u"NumberFormatDate", BooleanPayload }, - { u"ShowResolvedAnnotations", BooleanPayload }, - - { u"ToggleMergeCells", BooleanOrDisabledPayload }, - { u"SheetRightToLeft", BooleanOrDisabledPayload }, - { u"ToggleSheetGrid", BooleanOrDisabledPayload }, - { u"EditDoc", BooleanOrDisabledPayload }, - - { u"Position", PointPayload }, - { u"FreezePanesColumn", PointPayload }, - { u"FreezePanesRow", PointPayload }, - - { u"Size", SizePayload }, - - { u"LanguageStatus", StringOrStrSeqPayload }, - { u"StatePageNumber", StringOrStrSeqPayload }, - - { u"InsertPageHeader", StrSeqPayload }, - { u"InsertPageFooter", StrSeqPayload }, - - { u"TableColumWidth", TableSizePayload }, - { u"TableRowHeight", TableSizePayload }, +constexpr auto enumToPayload = frozen::make_unordered_map<PayloadType, PayloadGetter_t>({ + { PayloadType::None, nullptr }, + { PayloadType::IsActivePayload, IsActivePayload }, + { PayloadType::FontNamePayload, FontNamePayload }, + { PayloadType::FontHeightPayload, FontHeightPayload }, + { PayloadType::StyleApplyPayload, StyleApplyPayload }, + { PayloadType::ColorPayload, ColorPayload }, + { PayloadType::UndoRedoPayload, UndoRedoPayload }, + { PayloadType::EnabledPayload, EnabledPayload }, + { PayloadType::ParaDirectionPayload, ParaDirectionPayload }, + { PayloadType::Int32Payload, Int32Payload }, + { PayloadType::TransformPayload, TransformPayload }, + { PayloadType::StringPayload, StringPayload }, + { PayloadType::RowColSelCountPayload, RowColSelCountPayload }, + { PayloadType::StateTableCellPayload, StateTableCellPayload }, + { PayloadType::BooleanPayload, BooleanPayload }, + { PayloadType::BooleanOrDisabledPayload, BooleanOrDisabledPayload }, + { PayloadType::PointPayload, PointPayload }, + { PayloadType::SizePayload, SizePayload }, + { PayloadType::StringOrStrSeqPayload, StringOrStrSeqPayload }, + { PayloadType::StrSeqPayload, StrSeqPayload }, + { PayloadType::TableSizePayload, TableSizePayload }, }); } +const std::map<std::u16string_view, KitUnoCommand>& GetKitUnoCommandList() +{ + static std::map<std::u16string_view, KitUnoCommand> aUnoCommandList = { + { u"Bold", { PayloadType::IsActivePayload, true } }, + { u"CenterPara", { PayloadType::IsActivePayload, true } }, + + { u"CharBackgroundExt", { PayloadType::IsActivePayload, true } }, + { u"ControlCodes", { PayloadType::IsActivePayload, true } }, + { u"DefaultBullet", { PayloadType::IsActivePayload, true } }, + { u"DefaultNumbering", { PayloadType::IsActivePayload, true } }, + { u"Italic", { PayloadType::IsActivePayload, true } }, + { u"JustifyPara", { PayloadType::IsActivePayload, true } }, + { u"LeftPara", { PayloadType::IsActivePayload, true } }, + { u"OutlineFont", { PayloadType::IsActivePayload, true } }, + { u"RightPara", { PayloadType::IsActivePayload, true } }, + { u"Shadowed", { PayloadType::IsActivePayload, true } }, + { u"SpellOnline", { PayloadType::IsActivePayload, true } }, + { u"OnlineAutoFormat", { PayloadType::IsActivePayload, true } }, + { u"SubScript", { PayloadType::IsActivePayload, true } }, + { u"SuperScript", { PayloadType::IsActivePayload, true } }, + { u"Strikeout", { PayloadType::IsActivePayload, true } }, + { u"Underline", { PayloadType::IsActivePayload, true } }, + { u"ModifiedStatus", { PayloadType::IsActivePayload, true } }, + { u"TrackChanges", { PayloadType::IsActivePayload, true } }, + { u"ShowTrackedChanges", { PayloadType::IsActivePayload, true } }, + { u"AlignLeft", { PayloadType::IsActivePayload, true } }, + { u"AlignHorizontalCenter", { PayloadType::IsActivePayload, true } }, + { u"AlignRight", { PayloadType::IsActivePayload, true } }, + { u"DocumentRepair", { PayloadType::IsActivePayload, true } }, + { u"ObjectAlignLeft", { PayloadType::IsActivePayload, true } }, + { u"ObjectAlignRight", { PayloadType::IsActivePayload, true } }, + { u"AlignCenter", { PayloadType::IsActivePayload, true } }, + { u"AlignUp", { PayloadType::IsActivePayload, true } }, + { u"AlignMiddle", { PayloadType::IsActivePayload, true } }, + { u"AlignDown", { PayloadType::IsActivePayload, true } }, + { u"TraceChangeMode", { PayloadType::IsActivePayload, true } }, + { u"FormatPaintbrush", { PayloadType::IsActivePayload, true } }, + { u"FreezePanes", { PayloadType::IsActivePayload, true } }, + { u"Sidebar", { PayloadType::IsActivePayload, true } }, + { u"SpacePara1", { PayloadType::IsActivePayload, true } }, + { u"SpacePara15", { PayloadType::IsActivePayload, true } }, + { u"SpacePara2", { PayloadType::IsActivePayload, true } }, + { u"DataFilterAutoFilter", { PayloadType::IsActivePayload, true } }, + { u"CellProtection", { PayloadType::IsActivePayload, true } }, + { u"NormalMultiPaneGUI", { PayloadType::IsActivePayload, false } }, + { u"NotesMode", { PayloadType::IsActivePayload, false } }, + { u"SlideMasterPage", { PayloadType::IsActivePayload, false } }, + + { u"CharFontName", { PayloadType::FontNamePayload, true } }, + + { u"FontHeight", { PayloadType::FontHeightPayload, true } }, + + { u"StyleApply", { PayloadType::StyleApplyPayload, true } }, + + { u"BackColor", { PayloadType::ColorPayload, false } }, + { u"BackgroundColor", { PayloadType::ColorPayload, true } }, + { u"TableCellBackgroundColor", { PayloadType::ColorPayload, true } }, + { u"CharBackColor", { PayloadType::ColorPayload, true } }, + { u"Color", { PayloadType::ColorPayload, true } }, + { u"FontColor", { PayloadType::ColorPayload, true } }, + { u"FrameLineColor", { PayloadType::ColorPayload, true } }, + { u"GlowColor", { PayloadType::ColorPayload, false } }, + + { u"Undo", { PayloadType::UndoRedoPayload, true } }, + { u"Redo", { PayloadType::UndoRedoPayload, true } }, + + { u"Cut", { PayloadType::EnabledPayload, true } }, + { u"Copy", { PayloadType::EnabledPayload, true } }, + { u"Paste", { PayloadType::EnabledPayload, true } }, + { u"SelectAll", { PayloadType::EnabledPayload, true } }, + { u"InsertAnnotation", { PayloadType::EnabledPayload, true } }, + { u"DeleteAnnotation", { PayloadType::EnabledPayload, true } }, + { u"ResolveAnnotation", { PayloadType::EnabledPayload, false } }, + { u"ResolveAnnotationThread", { PayloadType::EnabledPayload, false } }, + { u"PromoteComment", { PayloadType::EnabledPayload, true } }, + { u"InsertRowsBefore", { PayloadType::EnabledPayload, true } }, + { u"InsertRowsAfter", { PayloadType::EnabledPayload, true } }, + { u"InsertColumnsBefore", { PayloadType::EnabledPayload, true } }, + { u"InsertColumnsAfter", { PayloadType::EnabledPayload, true } }, + { u"NameGroup", { PayloadType::EnabledPayload, true } }, + { u"ObjectTitleDescription", { PayloadType::EnabledPayload, true } }, + { u"MergeCells", { PayloadType::EnabledPayload, true } }, + { u"InsertObjectChart", { PayloadType::EnabledPayload, true } }, + { u"InsertSection", { PayloadType::EnabledPayload, true } }, + { u"InsertPagebreak", { PayloadType::EnabledPayload, true } }, + { u"InsertColumnBreak", { PayloadType::EnabledPayload, true } }, + { u"HyperlinkDialog", { PayloadType::EnabledPayload, true } }, + { u"InsertSymbol", { PayloadType::EnabledPayload, true } }, + { u"InsertPage", { PayloadType::EnabledPayload, true } }, + { u"DeletePage", { PayloadType::EnabledPayload, true } }, + { u"DuplicatePage", { PayloadType::EnabledPayload, true } }, + { u"DeleteRows", { PayloadType::EnabledPayload, true } }, + { u"DeleteColumns", { PayloadType::EnabledPayload, true } }, + { u"DeleteTable", { PayloadType::EnabledPayload, true } }, + { u"SelectTable", { PayloadType::EnabledPayload, true } }, + { u"EntireRow", { PayloadType::EnabledPayload, true } }, + { u"EntireColumn", { PayloadType::EnabledPayload, true } }, + { u"EntireCell", { PayloadType::EnabledPayload, true } }, + { u"SortAscending", { PayloadType::EnabledPayload, true } }, + { u"SortDescending", { PayloadType::EnabledPayload, true } }, + { u"AcceptAllTrackedChanges", { PayloadType::EnabledPayload, true } }, + { u"RejectAllTrackedChanges", { PayloadType::EnabledPayload, true } }, + { u"AcceptTrackedChange", { PayloadType::EnabledPayload, true } }, + { u"RejectTrackedChange", { PayloadType::EnabledPayload, true } }, + { u"AcceptTrackedChangeToNext", { PayloadType::EnabledPayload, true } }, + { u"RejectTrackedChangeToNext", { PayloadType::EnabledPayload, true } }, + { u"NextTrackedChange", { PayloadType::EnabledPayload, true } }, + { u"PreviousTrackedChange", { PayloadType::EnabledPayload, true } }, + { u"FormatGroup", { PayloadType::EnabledPayload, true } }, + { u"ObjectBackOne", { PayloadType::EnabledPayload, true } }, + { u"SendToBack", { PayloadType::EnabledPayload, true } }, + { u"ObjectForwardOne", { PayloadType::EnabledPayload, true } }, + { u"BringToFront", { PayloadType::EnabledPayload, true } }, + { u"WrapRight", { PayloadType::EnabledPayload, true } }, + { u"WrapThrough", { PayloadType::EnabledPayload, true } }, + { u"WrapLeft", { PayloadType::EnabledPayload, true } }, + { u"WrapIdeal", { PayloadType::EnabledPayload, true } }, + { u"WrapOn", { PayloadType::EnabledPayload, true } }, + { u"WrapOff", { PayloadType::EnabledPayload, true } }, + { u"UpdateCurIndex", { PayloadType::EnabledPayload, true } }, + { u"InsertCaptionDialog", { PayloadType::EnabledPayload, true } }, + { u"SplitTable", { PayloadType::EnabledPayload, true } }, + { u"SplitCell", { PayloadType::EnabledPayload, true } }, + { u"DeleteNote", { PayloadType::EnabledPayload, true } }, + { u"AcceptChanges", { PayloadType::EnabledPayload, true } }, + { u"SetDefault", { PayloadType::EnabledPayload, true } }, + { u"ParaspaceIncrease", { PayloadType::EnabledPayload, true } }, + { u"ParaspaceDecrease", { PayloadType::EnabledPayload, true } }, + { u"TableDialog", { PayloadType::EnabledPayload, true } }, + { u"FormatCellDialog", { PayloadType::EnabledPayload, true } }, + { u"FontDialog", { PayloadType::EnabledPayload, true } }, + { u"ParagraphDialog", { PayloadType::EnabledPayload, true } }, + { u"OutlineBullet", { PayloadType::EnabledPayload, true } }, + { u"InsertIndexesEntry", { PayloadType::EnabledPayload, true } }, + { u"TransformDialog", { PayloadType::EnabledPayload, true } }, + { u"EditRegion", { PayloadType::EnabledPayload, true } }, + { u"ThesaurusDialog", { PayloadType::EnabledPayload, true } }, + { u"OutlineRight", { PayloadType::EnabledPayload, false } }, + { u"OutlineLeft", { PayloadType::EnabledPayload, false } }, + { u"OutlineDown", { PayloadType::EnabledPayload, false } }, + { u"OutlineUp", { PayloadType::EnabledPayload, false } }, + { u"FormatArea", { PayloadType::EnabledPayload, true } }, + { u"FormatLine", { PayloadType::EnabledPayload, true } }, + { u"FormatColumns", { PayloadType::EnabledPayload, true } }, + { u"Watermark", { PayloadType::EnabledPayload, true } }, + { u"InsertBreak", { PayloadType::EnabledPayload, true } }, + { u"InsertEndnote", { PayloadType::EnabledPayload, true } }, + { u"InsertFootnote", { PayloadType::EnabledPayload, true } }, + { u"InsertReferenceField", { PayloadType::EnabledPayload, true } }, + { u"InsertBookmark", { PayloadType::EnabledPayload, true } }, + { u"InsertAuthoritiesEntry", { PayloadType::EnabledPayload, true } }, + { u"InsertMultiIndex", { PayloadType::EnabledPayload, true } }, + { u"InsertField", { PayloadType::EnabledPayload, true } }, + { u"PageNumberWizard", { PayloadType::EnabledPayload, true } }, + { u"InsertPageNumberField", { PayloadType::EnabledPayload, true } }, + { u"InsertPageCountField", { PayloadType::EnabledPayload, true } }, + { u"InsertDateField", { PayloadType::EnabledPayload, true } }, + { u"InsertTitleField", { PayloadType::EnabledPayload, true } }, + { u"InsertFieldCtrl", { PayloadType::EnabledPayload, true } }, + { u"CharmapControl", { PayloadType::EnabledPayload, true } }, + { u"EnterGroup", { PayloadType::EnabledPayload, true } }, + { u"LeaveGroup", { PayloadType::EnabledPayload, true } }, + { u"Combine", { PayloadType::EnabledPayload, true } }, + { u"Merge", { PayloadType::EnabledPayload, true } }, + { u"Dismantle", { PayloadType::EnabledPayload, true } }, + { u"Substract", { PayloadType::EnabledPayload, true } }, + { u"DistributeSelection", { PayloadType::EnabledPayload, true } }, + { u"Intersect", { PayloadType::EnabledPayload, true } }, + { u"ResetAttributes", { PayloadType::EnabledPayload, true } }, + { u"IncrementIndent", { PayloadType::EnabledPayload, true } }, + { u"DecrementIndent", { PayloadType::EnabledPayload, true } }, + { u"EditHeaderAndFooter", { PayloadType::EnabledPayload, true } }, + { u"InsertSparkline", { PayloadType::EnabledPayload, true } }, + { u"DeleteSparkline", { PayloadType::EnabledPayload, true } }, + { u"DeleteSparklineGroup", { PayloadType::EnabledPayload, true } }, + { u"EditSparklineGroup", { PayloadType::EnabledPayload, true } }, + { u"EditSparkline", { PayloadType::EnabledPayload, true } }, + { u"GroupSparklines", { PayloadType::EnabledPayload, true } }, + { u"UngroupSparklines", { PayloadType::EnabledPayload, true } }, + { u"FormatSparklineMenu", { PayloadType::EnabledPayload, true } }, + { u"DataDataPilotRun", { PayloadType::EnabledPayload, true } }, + { u"RecalcPivotTable", { PayloadType::EnabledPayload, true } }, + { u"DeletePivotTable", { PayloadType::EnabledPayload, true } }, + { u"NumberFormatDecDecimals", { PayloadType::EnabledPayload, true } }, + { u"NumberFormatIncDecimals", { PayloadType::EnabledPayload, true } }, + { u"Protect", { PayloadType::EnabledPayload, true } }, + { u"UnsetCellsReadOnly", { PayloadType::EnabledPayload, true } }, + { u"ContentControlProperties", { PayloadType::EnabledPayload, true } }, + { u"DeleteContentControl", { PayloadType::EnabledPayload, true } }, + { u"InsertCheckboxContentControl", { PayloadType::EnabledPayload, true } }, + { u"InsertContentControl", { PayloadType::EnabledPayload, true } }, + { u"InsertDateContentControl", { PayloadType::EnabledPayload, true } }, + { u"InsertDropdownContentControl", { PayloadType::EnabledPayload, true } }, + { u"InsertPlainTextContentControl", { PayloadType::EnabledPayload, true } }, + { u"InsertPictureContentControl", { PayloadType::EnabledPayload, true } }, + { u"ChangeBezier", { PayloadType::EnabledPayload, true } }, + { u"DistributeHorzCenter", { PayloadType::EnabledPayload, true } }, + { u"DistributeHorzDistance", { PayloadType::EnabledPayload, true } }, + { u"DistributeHorzLeft", { PayloadType::EnabledPayload, true } }, + { u"DistributeHorzRight", { PayloadType::EnabledPayload, true } }, + { u"DistributeVertBottom", { PayloadType::EnabledPayload, true } }, + { u"DistributeVertCenter", { PayloadType::EnabledPayload, true } }, + { u"DistributeVertDistance", { PayloadType::EnabledPayload, true } }, + { u"DistributeVertTop", { PayloadType::EnabledPayload, true } }, + { u"AnimationEffects", { PayloadType::EnabledPayload, true } }, + { u"ExecuteAnimationEffect", { PayloadType::EnabledPayload, true } }, + + { u"ParaLeftToRight", { PayloadType::ParaDirectionPayload, true } }, + { u"ParaRightToLeft", { PayloadType::ParaDirectionPayload, true } }, + + { u"AssignLayout", { PayloadType::Int32Payload, true } }, + { u"StatusSelectionMode", { PayloadType::Int32Payload, true } }, + { u"Signature", { PayloadType::Int32Payload, false } }, + { u"SelectionMode", { PayloadType::Int32Payload, true } }, + { u"StatusBarFunc", { PayloadType::Int32Payload, true } }, + + { u"TransformPosX", { PayloadType::TransformPayload, true } }, + { u"TransformPosY", { PayloadType::TransformPayload, true } }, + { u"TransformWidth", { PayloadType::TransformPayload, true } }, + { u"TransformHeight", { PayloadType::TransformPayload, true } }, + + { u"StatusDocPos", { PayloadType::StringPayload, true } }, + { u"StatusPageStyle", { PayloadType::StringPayload, true } }, + { u"StateWordCount", { PayloadType::StringPayload, true } }, + { u"PageStyleName", { PayloadType::StringPayload, false } }, + { u"PageStatus", { PayloadType::StringPayload, true } }, + { u"LayoutStatus", { PayloadType::StringPayload, true } }, + { u"Scale", { PayloadType::StringPayload, true } }, + { u"Context", { PayloadType::StringPayload, true } }, + + { u"RowColSelCount", { PayloadType::RowColSelCountPayload, true } }, + + { u"StateTableCell", { PayloadType::StateTableCellPayload, true } }, + + { u"InsertMode", { PayloadType::BooleanPayload, true } }, + { u"WrapText", { PayloadType::BooleanPayload, true } }, + { u"NumberFormatCurrency", { PayloadType::BooleanPayload, true } }, + { u"NumberFormatPercent", { PayloadType::BooleanPayload, true } }, + { u"NumberFormatDecimal", { PayloadType::BooleanPayload, true } }, + { u"NumberFormatDate", { PayloadType::BooleanPayload, true } }, + { u"ShowResolvedAnnotations", { PayloadType::BooleanPayload, true } }, + + { u"ToggleMergeCells", { PayloadType::BooleanOrDisabledPayload, true } }, + { u"SheetRightToLeft", { PayloadType::BooleanOrDisabledPayload, true } }, + { u"ToggleSheetGrid", { PayloadType::BooleanOrDisabledPayload, true } }, + { u"EditDoc", { PayloadType::BooleanOrDisabledPayload, true } }, + + { u"Position", { PayloadType::PointPayload, false } }, + { u"FreezePanesColumn", { PayloadType::PointPayload, true } }, + { u"FreezePanesRow", { PayloadType::PointPayload, true } }, + + { u"Size", { PayloadType::SizePayload, false } }, + + { u"LanguageStatus", { PayloadType::StringOrStrSeqPayload, true } }, + { u"StatePageNumber", { PayloadType::StringOrStrSeqPayload, true } }, + + { u"InsertPageHeader", { PayloadType::StrSeqPayload, true } }, + { u"InsertPageFooter", { PayloadType::StrSeqPayload, true } }, + + { u"TableColumWidth", { PayloadType::TableSizePayload, false } }, + { u"TableRowHeight", { PayloadType::TableSizePayload, false } }, + + { u"BorderInner", { PayloadType::None, true } }, + { u"BorderOuter", { PayloadType::None, true } }, + { u"ChangeTheme", { PayloadType::None, true } }, + { u"DeleteSlide", { PayloadType::None, true } }, + { u"DuplicateSlide", { PayloadType::None, true } }, + { u"InsertSlide", { PayloadType::None, true } }, + { u"JumpToMark", { PayloadType::None, true } }, + { u"MoveKeepInsertMode", { PayloadType::None, true } }, + { u"Orientation", { PayloadType::None, true } }, + { u"ReplyComment", { PayloadType::None, true } }, + { u"ResolveComment", { PayloadType::None, true } }, + { u"ResolveCommentThread", { PayloadType::None, true } }, + { u"RunMacro", { PayloadType::None, true } }, + }; + return aUnoCommandList; +} + static void InterceptLOKStateChangeEvent(sal_uInt16 nSID, SfxViewFrame* pViewFrame, const css::frame::FeatureStateEvent& aEvent, const SfxPoolItem* pState) { const SfxViewShell* pViewShell = pViewFrame->GetViewShell(); if (!comphelper::LibreOfficeKit::isActive() || !pViewShell) return; - auto handler = handlers.find(aEvent.FeatureURL.Path); - if (handler == handlers.end()) + const std::map<std::u16string_view, KitUnoCommand>& rUnoCommandList = GetKitUnoCommandList(); + auto handler = rUnoCommandList.find(aEvent.FeatureURL.Path); + if (handler == rUnoCommandList.end()) { // Try to send JSON state version SfxLokHelper::sendUnoStatus(pViewShell, pState); @@ -1424,8 +1469,11 @@ static void InterceptLOKStateChangeEvent(sal_uInt16 nSID, SfxViewFrame* pViewFra return; } - pViewShell->libreOfficeKitViewCallback(LOK_CALLBACK_STATE_CHANGED, - handler->second(nSID, pViewFrame, aEvent, pState)); + auto payloadIter = enumToPayload.find(handler->second.payloadType); + PayloadGetter_t pFunct = payloadIter != enumToPayload.end() ? payloadIter->second : nullptr; + if (pFunct != nullptr) + pViewShell->libreOfficeKitViewCallback(LOK_CALLBACK_STATE_CHANGED, + pFunct(nSID, pViewFrame, aEvent, pState)); } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |