tdf#158136 - UI: Part 31 - Unify lockdown behavior of Options dialog

for Writer - AutoCaption Page.

Change-Id: Ia3c37510477542556c3302d2013fe10a4ae00545
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159594
Tested-by: Jenkins
Reviewed-by: Balazs Varga <balazs.varga.extern@allotropia.de>
diff --git a/sw/inc/SwCapConfigProp.hxx b/sw/inc/SwCapConfigProp.hxx
new file mode 100644
index 0000000..20257f3
--- /dev/null
+++ b/sw/inc/SwCapConfigProp.hxx
@@ -0,0 +1,38 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
 * This file is part of the LibreOffice project.
 *
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * This file incorporates work covered by the following license notice:
 *
 *   Licensed to the Apache Software Foundation (ASF) under one or more
 *   contributor license agreements. See the NOTICE file distributed
 *   with this work for additional information regarding copyright
 *   ownership. The ASF licenses this file to you under the Apache
 *   License, Version 2.0 (the "License"); you may not use this file
 *   except in compliance with the License. You may obtain a copy of
 *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
 */
#ifndef INCLUDED_SW_INC_SWCAPCONFIGPROP_HXX
#define INCLUDED_SW_INC_SWCAPCONFIGPROP_HXX

enum CapConfigProp
{
    PROP_CAP_OBJECT_ENABLE = 0, //0
    PROP_CAP_OBJECT_CATEGORY, //1
    PROP_CAP_OBJECT_NUMBERING, //2
    PROP_CAP_OBJECT_NUMBERINGSEPARATOR, //3
    PROP_CAP_OBJECT_CAPTIONTEXT, //4
    PROP_CAP_OBJECT_DELIMITER, //5
    PROP_CAP_OBJECT_LEVEL, //6
    PROP_CAP_OBJECT_POSITION, //7
    PROP_CAP_OBJECT_CHARACTERSTYLE, //8
    PROP_CAP_OBJECT_APPLYATTRIBUTES, //9
};

#endif

/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/ui/config/optload.cxx b/sw/source/ui/config/optload.cxx
index 675a2d4..3adf4dc 100644
--- a/sw/source/ui/config/optload.cxx
+++ b/sw/source/ui/config/optload.cxx
@@ -55,6 +55,436 @@

using namespace ::com::sun::star;

static bool lcl_isPropertyReadOnly(const SwCapObjType eType, const CapConfigProp ePropType, const SvGlobalName& rOleId)
{
    bool bReadOnly = false;

    switch (ePropType)
    {
        case PROP_CAP_OBJECT_ENABLE:
        {
            switch (eType)
            {
                case TABLE_CAP:
                    bReadOnly = officecfg::Office::Writer::Insert::Caption::WriterObject::Table::Enable::isReadOnly();
                    break;
                case FRAME_CAP:
                    bReadOnly = officecfg::Office::Writer::Insert::Caption::WriterObject::Frame::Enable::isReadOnly();
                    break;
                case GRAPHIC_CAP:
                    bReadOnly = officecfg::Office::Writer::Insert::Caption::WriterObject::Graphic::Enable::isReadOnly();
                    break;
                case OLE_CAP:
                {
                    if (rOleId == SvGlobalName(SO3_SC_CLASSID)) {
                        bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Calc::Enable::isReadOnly();
                    } else if (rOleId == SvGlobalName(SO3_SIMPRESS_CLASSID)) {
                        bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Impress::Enable::isReadOnly();
                    } else if (rOleId == SvGlobalName(SO3_SCH_CLASSID)) {
                        bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Chart::Enable::isReadOnly();
                    } else if (rOleId == SvGlobalName(SO3_SM_CLASSID)) {
                        bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Formula::Enable::isReadOnly();
                    } else if (rOleId == SvGlobalName(SO3_SDRAW_CLASSID)) {
                        bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Draw::Enable::isReadOnly();
                    } else if (rOleId == SvGlobalName(SO3_OUT_CLASSID)) {
                        bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::OLEMisc::Enable::isReadOnly();
                    } else {
                        // Should not reach it.
                    }
                }
                break;
                default:
                    break;
            }
        }
        break;
        case PROP_CAP_OBJECT_CATEGORY:
        {
            switch (eType)
            {
                case TABLE_CAP:
                    bReadOnly = officecfg::Office::Writer::Insert::Caption::WriterObject::Table::Settings::Category::isReadOnly();
                    break;
                case FRAME_CAP:
                    bReadOnly = officecfg::Office::Writer::Insert::Caption::WriterObject::Frame::Settings::Category::isReadOnly();
                    break;
                case GRAPHIC_CAP:
                    bReadOnly = officecfg::Office::Writer::Insert::Caption::WriterObject::Graphic::Settings::Category::isReadOnly();
                    break;
                case OLE_CAP:
                {
                    if (rOleId == SvGlobalName(SO3_SC_CLASSID)) {
                        bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Calc::Settings::Category::isReadOnly();
                    }
                    else if (rOleId == SvGlobalName(SO3_SIMPRESS_CLASSID)) {
                        bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Impress::Settings::Category::isReadOnly();
                    }
                    else if (rOleId == SvGlobalName(SO3_SCH_CLASSID)) {
                        bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Chart::Settings::Category::isReadOnly();
                    }
                    else if (rOleId == SvGlobalName(SO3_SM_CLASSID)) {
                        bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Formula::Settings::Category::isReadOnly();
                    }
                    else if (rOleId == SvGlobalName(SO3_SDRAW_CLASSID)) {
                        bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Draw::Settings::Category::isReadOnly();
                    }
                    else if (rOleId == SvGlobalName(SO3_OUT_CLASSID)) {
                        bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::OLEMisc::Settings::Category::isReadOnly();
                    }
                    else {
                        // Should not reach it.
                    }
                }
                break;
                default:
                    break;
            }
        }
        break;
        case PROP_CAP_OBJECT_NUMBERING:
        {
            switch (eType)
            {
                case TABLE_CAP:
                    bReadOnly = officecfg::Office::Writer::Insert::Caption::WriterObject::Table::Settings::Numbering::isReadOnly();
                    break;
                case FRAME_CAP:
                    bReadOnly = officecfg::Office::Writer::Insert::Caption::WriterObject::Frame::Settings::Numbering::isReadOnly();
                    break;
                case GRAPHIC_CAP:
                    bReadOnly = officecfg::Office::Writer::Insert::Caption::WriterObject::Graphic::Settings::Numbering::isReadOnly();
                    break;
                case OLE_CAP:
                {
                    if (rOleId == SvGlobalName(SO3_SC_CLASSID)) {
                        bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Calc::Settings::Numbering::isReadOnly();
                    }
                    else if (rOleId == SvGlobalName(SO3_SIMPRESS_CLASSID)) {
                        bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Impress::Settings::Numbering::isReadOnly();
                    }
                    else if (rOleId == SvGlobalName(SO3_SCH_CLASSID)) {
                        bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Chart::Settings::Numbering::isReadOnly();
                    }
                    else if (rOleId == SvGlobalName(SO3_SM_CLASSID)) {
                        bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Formula::Settings::Numbering::isReadOnly();
                    }
                    else if (rOleId == SvGlobalName(SO3_SDRAW_CLASSID)) {
                        bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Draw::Settings::Numbering::isReadOnly();
                    }
                    else if (rOleId == SvGlobalName(SO3_OUT_CLASSID)) {
                        bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::OLEMisc::Settings::Numbering::isReadOnly();
                    }
                    else {
                        // Should not reach it.
                    }
                }
                break;
                default:
                    break;
            }
        }
        break;
        case PROP_CAP_OBJECT_NUMBERINGSEPARATOR:
        {
            switch (eType)
            {
                case TABLE_CAP:
                    bReadOnly = officecfg::Office::Writer::Insert::Caption::WriterObject::Table::Settings::NumberingSeparator::isReadOnly();
                    break;
                case FRAME_CAP:
                    bReadOnly = officecfg::Office::Writer::Insert::Caption::WriterObject::Frame::Settings::NumberingSeparator::isReadOnly();
                    break;
                case GRAPHIC_CAP:
                    bReadOnly = officecfg::Office::Writer::Insert::Caption::WriterObject::Graphic::Settings::NumberingSeparator::isReadOnly();
                    break;
                case OLE_CAP:
                {
                    if (rOleId == SvGlobalName(SO3_SC_CLASSID)) {
                        bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Calc::Settings::NumberingSeparator::isReadOnly();
                    }
                    else if (rOleId == SvGlobalName(SO3_SIMPRESS_CLASSID)) {
                        bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Impress::Settings::NumberingSeparator::isReadOnly();
                    }
                    else if (rOleId == SvGlobalName(SO3_SCH_CLASSID)) {
                        bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Chart::Settings::NumberingSeparator::isReadOnly();
                    }
                    else if (rOleId == SvGlobalName(SO3_SM_CLASSID)) {
                        bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Formula::Settings::NumberingSeparator::isReadOnly();
                    }
                    else if (rOleId == SvGlobalName(SO3_SDRAW_CLASSID)) {
                        bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Draw::Settings::NumberingSeparator::isReadOnly();
                    }
                    else if (rOleId == SvGlobalName(SO3_OUT_CLASSID)) {
                        bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::OLEMisc::Settings::NumberingSeparator::isReadOnly();
                    }
                    else {
                        // Should not reach it.
                    }
                }
                break;
                default:
                    break;
            }
        }
        break;
        case PROP_CAP_OBJECT_CAPTIONTEXT:
        {
            switch (eType)
            {
                case TABLE_CAP:
                    bReadOnly = officecfg::Office::Writer::Insert::Caption::WriterObject::Table::Settings::CaptionText::isReadOnly();
                    break;
                case FRAME_CAP:
                    bReadOnly = officecfg::Office::Writer::Insert::Caption::WriterObject::Frame::Settings::CaptionText::isReadOnly();
                    break;
                case GRAPHIC_CAP:
                    bReadOnly = officecfg::Office::Writer::Insert::Caption::WriterObject::Graphic::Settings::CaptionText::isReadOnly();
                    break;
                case OLE_CAP:
                {
                    if (rOleId == SvGlobalName(SO3_SC_CLASSID)) {
                        bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Calc::Settings::CaptionText::isReadOnly();
                    }
                    else if (rOleId == SvGlobalName(SO3_SIMPRESS_CLASSID)) {
                        bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Impress::Settings::CaptionText::isReadOnly();
                    }
                    else if (rOleId == SvGlobalName(SO3_SCH_CLASSID)) {
                        bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Chart::Settings::CaptionText::isReadOnly();
                    }
                    else if (rOleId == SvGlobalName(SO3_SM_CLASSID)) {
                        bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Formula::Settings::CaptionText::isReadOnly();
                    }
                    else if (rOleId == SvGlobalName(SO3_SDRAW_CLASSID)) {
                        bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Draw::Settings::CaptionText::isReadOnly();
                    }
                    else if (rOleId == SvGlobalName(SO3_OUT_CLASSID)) {
                        bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::OLEMisc::Settings::CaptionText::isReadOnly();
                    }
                    else {
                        // Should not reach it.
                    }
                }
                break;
                default:
                    break;
            }
        }
        break;
        case PROP_CAP_OBJECT_DELIMITER:
        {
            switch (eType)
            {
                case TABLE_CAP:
                    bReadOnly = officecfg::Office::Writer::Insert::Caption::WriterObject::Table::Settings::Delimiter::isReadOnly();
                    break;
                case FRAME_CAP:
                    bReadOnly = officecfg::Office::Writer::Insert::Caption::WriterObject::Frame::Settings::Delimiter::isReadOnly();
                    break;
                case GRAPHIC_CAP:
                    bReadOnly = officecfg::Office::Writer::Insert::Caption::WriterObject::Graphic::Settings::Delimiter::isReadOnly();
                    break;
                case OLE_CAP:
                {
                    if (rOleId == SvGlobalName(SO3_SC_CLASSID)) {
                        bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Calc::Settings::Delimiter::isReadOnly();
                    }
                    else if (rOleId == SvGlobalName(SO3_SIMPRESS_CLASSID)) {
                        bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Impress::Settings::Delimiter::isReadOnly();
                    }
                    else if (rOleId == SvGlobalName(SO3_SCH_CLASSID)) {
                        bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Chart::Settings::Delimiter::isReadOnly();
                    }
                    else if (rOleId == SvGlobalName(SO3_SM_CLASSID)) {
                        bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Formula::Settings::Delimiter::isReadOnly();
                    }
                    else if (rOleId == SvGlobalName(SO3_SDRAW_CLASSID)) {
                        bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Draw::Settings::Delimiter::isReadOnly();
                    }
                    else if (rOleId == SvGlobalName(SO3_OUT_CLASSID)) {
                        bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::OLEMisc::Settings::Delimiter::isReadOnly();
                    }
                    else {
                        // Should not reach it.
                    }
                }
                break;
                default:
                    break;
            }
        }
        break;
        case PROP_CAP_OBJECT_LEVEL:
        {
            switch (eType)
            {
                case TABLE_CAP:
                    bReadOnly = officecfg::Office::Writer::Insert::Caption::WriterObject::Table::Settings::Level::isReadOnly();
                    break;
                case FRAME_CAP:
                    bReadOnly = officecfg::Office::Writer::Insert::Caption::WriterObject::Frame::Settings::Level::isReadOnly();
                    break;
                case GRAPHIC_CAP:
                    bReadOnly = officecfg::Office::Writer::Insert::Caption::WriterObject::Graphic::Settings::Level::isReadOnly();
                    break;
                case OLE_CAP:
                {
                    if (rOleId == SvGlobalName(SO3_SC_CLASSID)) {
                        bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Calc::Settings::Level::isReadOnly();
                    }
                    else if (rOleId == SvGlobalName(SO3_SIMPRESS_CLASSID)) {
                        bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Impress::Settings::Level::isReadOnly();
                    }
                    else if (rOleId == SvGlobalName(SO3_SCH_CLASSID)) {
                        bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Chart::Settings::Level::isReadOnly();
                    }
                    else if (rOleId == SvGlobalName(SO3_SM_CLASSID)) {
                        bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Formula::Settings::Level::isReadOnly();
                    }
                    else if (rOleId == SvGlobalName(SO3_SDRAW_CLASSID)) {
                        bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Draw::Settings::Level::isReadOnly();
                    }
                    else if (rOleId == SvGlobalName(SO3_OUT_CLASSID)) {
                        bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::OLEMisc::Settings::Level::isReadOnly();
                    }
                    else {
                        // Should not reach it.
                    }
                }
                break;
                default:
                    break;
            }
        }
        break;
        case PROP_CAP_OBJECT_POSITION:
        {
            switch (eType)
            {
                case TABLE_CAP:
                    bReadOnly = officecfg::Office::Writer::Insert::Caption::WriterObject::Table::Settings::Position::isReadOnly();
                    break;
                case FRAME_CAP:
                    bReadOnly = officecfg::Office::Writer::Insert::Caption::WriterObject::Frame::Settings::Position::isReadOnly();
                    break;
                case GRAPHIC_CAP:
                    bReadOnly = officecfg::Office::Writer::Insert::Caption::WriterObject::Graphic::Settings::Position::isReadOnly();
                    break;
                case OLE_CAP:
                {
                    if (rOleId == SvGlobalName(SO3_SC_CLASSID)) {
                        bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Calc::Settings::Position::isReadOnly();
                    }
                    else if (rOleId == SvGlobalName(SO3_SIMPRESS_CLASSID)) {
                        bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Impress::Settings::Position::isReadOnly();
                    }
                    else if (rOleId == SvGlobalName(SO3_SCH_CLASSID)) {
                        bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Chart::Settings::Position::isReadOnly();
                    }
                    else if (rOleId == SvGlobalName(SO3_SM_CLASSID)) {
                        bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Formula::Settings::Position::isReadOnly();
                    }
                    else if (rOleId == SvGlobalName(SO3_SDRAW_CLASSID)) {
                        bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Draw::Settings::Position::isReadOnly();
                    }
                    else if (rOleId == SvGlobalName(SO3_OUT_CLASSID)) {
                        bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::OLEMisc::Settings::Position::isReadOnly();
                    }
                    else {
                        // Should not reach it.
                    }
                }
                break;
                default:
                    break;
            }
        }
        break;
        case PROP_CAP_OBJECT_CHARACTERSTYLE:
        {
            switch (eType)
            {
                case TABLE_CAP:
                    bReadOnly = officecfg::Office::Writer::Insert::Caption::WriterObject::Table::Settings::CharacterStyle::isReadOnly();
                    break;
                case FRAME_CAP:
                    bReadOnly = officecfg::Office::Writer::Insert::Caption::WriterObject::Frame::Settings::CharacterStyle::isReadOnly();
                    break;
                case GRAPHIC_CAP:
                    bReadOnly = officecfg::Office::Writer::Insert::Caption::WriterObject::Graphic::Settings::CharacterStyle::isReadOnly();
                    break;
                case OLE_CAP:
                {
                    if (rOleId == SvGlobalName(SO3_SC_CLASSID)) {
                        bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Calc::Settings::CharacterStyle::isReadOnly();
                    }
                    else if (rOleId == SvGlobalName(SO3_SIMPRESS_CLASSID)) {
                        bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Impress::Settings::CharacterStyle::isReadOnly();
                    }
                    else if (rOleId == SvGlobalName(SO3_SCH_CLASSID)) {
                        bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Chart::Settings::CharacterStyle::isReadOnly();
                    }
                    else if (rOleId == SvGlobalName(SO3_SM_CLASSID)) {
                        bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Formula::Settings::CharacterStyle::isReadOnly();
                    }
                    else if (rOleId == SvGlobalName(SO3_SDRAW_CLASSID)) {
                        bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Draw::Settings::CharacterStyle::isReadOnly();
                    }
                    else if (rOleId == SvGlobalName(SO3_OUT_CLASSID)) {
                        bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::OLEMisc::Settings::CharacterStyle::isReadOnly();
                    }
                    else {
                        // Should not reach it.
                    }
                }
                break;
                default:
                    break;
            }
        }
        break;
        case PROP_CAP_OBJECT_APPLYATTRIBUTES:
        {
            switch (eType)
            {
                case GRAPHIC_CAP:
                    bReadOnly = officecfg::Office::Writer::Insert::Caption::WriterObject::Graphic::Settings::ApplyAttributes::isReadOnly();
                    break;
                case OLE_CAP:
                {
                    if (rOleId == SvGlobalName(SO3_SC_CLASSID)) {
                        bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Calc::Settings::ApplyAttributes::isReadOnly();
                    }
                    else if (rOleId == SvGlobalName(SO3_SIMPRESS_CLASSID)) {
                        bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Impress::Settings::ApplyAttributes::isReadOnly();
                    }
                    else if (rOleId == SvGlobalName(SO3_SCH_CLASSID)) {
                        bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Chart::Settings::ApplyAttributes::isReadOnly();
                    }
                    else if (rOleId == SvGlobalName(SO3_SM_CLASSID)) {
                        bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Formula::Settings::ApplyAttributes::isReadOnly();
                    }
                    else if (rOleId == SvGlobalName(SO3_SDRAW_CLASSID)) {
                        bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Draw::Settings::ApplyAttributes::isReadOnly();
                    }
                    else if (rOleId == SvGlobalName(SO3_OUT_CLASSID)) {
                        bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::OLEMisc::Settings::ApplyAttributes::isReadOnly();
                    }
                    else {
                        // Should not reach it.
                    }
                }
                break;
                default:
                    break;
            }
        }
        break;
        default:
            break;
    }

    return bReadOnly;
}

sal_uInt32 SwFieldUnitTable::Count()
{
@@ -516,21 +946,31 @@ SwCaptionOptPage::SwCaptionOptPage(weld::Container* pPage, weld::DialogControlle
    , m_aTextFilter(m_sNone)
    , m_xCheckLB(m_xBuilder->weld_tree_view("objects"))
    , m_xLbCaptionOrder(m_xBuilder->weld_combo_box("captionorder"))
    , m_xLbCaptionOrderImg(m_xBuilder->weld_widget("lockcaptionorder"))
    , m_xSettingsGroup(m_xBuilder->weld_widget("settings"))
    , m_xCategoryBox(m_xBuilder->weld_combo_box("category"))
    , m_xCategoryBoxImg(m_xBuilder->weld_widget("lockcategory"))
    , m_xFormatText(m_xBuilder->weld_label("numberingft"))
    , m_xFormatBox(m_xBuilder->weld_combo_box("numbering"))
    , m_xFormatBoxImg(m_xBuilder->weld_widget("locknumbering"))
    , m_xNumberingSeparatorFT(m_xBuilder->weld_label("numseparatorft"))
    , m_xNumberingSeparatorED(m_xBuilder->weld_entry("numseparator"))
    , m_xNumberingSeparatorImg(m_xBuilder->weld_widget("locknumseparator"))
    , m_xTextText(m_xBuilder->weld_label("separatorft"))
    , m_xTextEdit(m_xBuilder->weld_entry("separator"))
    , m_xTextEditImg(m_xBuilder->weld_widget("lockseparator"))
    , m_xPosBox(m_xBuilder->weld_combo_box("position"))
    , m_xPosBoxImg(m_xBuilder->weld_widget("lockposition"))
    , m_xNumCapt(m_xBuilder->weld_widget("numcaption"))
    , m_xLbLevel(m_xBuilder->weld_combo_box("level"))
    , m_xLbLevelImg(m_xBuilder->weld_widget("locklevel"))
    , m_xEdDelim(m_xBuilder->weld_entry("chapseparator"))
    , m_xEdDelimImg(m_xBuilder->weld_widget("lockchapseparator"))
    , m_xCategory(m_xBuilder->weld_widget("categoryformat"))
    , m_xCharStyleLB(m_xBuilder->weld_combo_box("charstyle"))
    , m_xCharStyleImg(m_xBuilder->weld_widget("lockcharstyle"))
    , m_xApplyBorderCB(m_xBuilder->weld_check_button("applyborder"))
    , m_xApplyBorderImg(m_xBuilder->weld_widget("lockapplyborder"))
    , m_xPreview(new weld::CustomWeld(*m_xBuilder, "preview", m_aPreview))
{
    m_xCategoryBox->connect_entry_insert_text(LINK(this, SwCaptionOptPage, TextFilterHdl));
@@ -674,17 +1114,24 @@ void SwCaptionOptPage::Reset( const SfxItemSet* rSet)

    // Writer objects
    int nPos = 0;
    bool bReadOnly = false;
    m_xCheckLB->append();
    m_xCheckLB->set_toggle(nPos, TRISTATE_FALSE);
    m_xCheckLB->set_text(nPos, m_sSWTable, 0);
    bReadOnly = officecfg::Office::Writer::Insert::Caption::WriterObject::Table::Enable::isReadOnly();
    m_xCheckLB->set_sensitive(nPos, !bReadOnly);
    SetOptions(nPos++, TABLE_CAP);
    m_xCheckLB->append();
    m_xCheckLB->set_toggle(nPos, TRISTATE_FALSE);
    m_xCheckLB->set_text(nPos, m_sSWFrame, 0);
    bReadOnly = officecfg::Office::Writer::Insert::Caption::WriterObject::Frame::Enable::isReadOnly();
    m_xCheckLB->set_sensitive(nPos, !bReadOnly);
    SetOptions(nPos++, FRAME_CAP);
    m_xCheckLB->append();
    m_xCheckLB->set_toggle(nPos, TRISTATE_FALSE);
    m_xCheckLB->set_text(nPos, m_sSWGraphic, 0);
    bReadOnly = officecfg::Office::Writer::Insert::Caption::WriterObject::Graphic::Enable::isReadOnly();
    m_xCheckLB->set_sensitive(nPos, !bReadOnly);
    SetOptions(nPos++, GRAPHIC_CAP);

    // get Productname and -version
@@ -710,10 +1157,29 @@ void SwCaptionOptPage::Reset( const SfxItemSet* rSet)
        m_xCheckLB->append();
        m_xCheckLB->set_toggle(nPos, TRISTATE_FALSE);
        m_xCheckLB->set_text(nPos, sClass, 0);
        if (rOleId == SvGlobalName(SO3_SC_CLASSID)) {
            bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Calc::Enable::isReadOnly();
        } else if (rOleId == SvGlobalName(SO3_SDRAW_CLASSID)) {
            bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Draw::Enable::isReadOnly();
        } else if (rOleId == SvGlobalName(SO3_SM_CLASSID)) {
            bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Formula::Enable::isReadOnly();
        } else if (rOleId == SvGlobalName(SO3_SCH_CLASSID)) {
            bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Chart::Enable::isReadOnly();
        } else if (rOleId == SvGlobalName(SO3_SIMPRESS_CLASSID)) {
            bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::Impress::Enable::isReadOnly();
        } else if (rOleId == SvGlobalName(SO3_OUT_CLASSID)) {
            bReadOnly = officecfg::Office::Writer::Insert::Caption::OfficeObject::OLEMisc::Enable::isReadOnly();
        }
        else {
            //
        }
        m_xCheckLB->set_sensitive(nPos, !bReadOnly);
        SetOptions( nPos++, OLE_CAP, &rOleId );
    }
    m_xLbCaptionOrder->set_active(
        SW_MOD()->GetModuleConfig()->IsCaptionOrderNumberingFirst() ? 1 : 0);
    m_xLbCaptionOrder->set_sensitive(!officecfg::Office::Writer::Insert::Caption::CaptionOrderNumberingFirst::isReadOnly());
    m_xLbCaptionOrderImg->set_visible(officecfg::Office::Writer::Insert::Caption::CaptionOrderNumberingFirst::isReadOnly());
    m_xCheckLB->select(0);
    ShowEntryHdl(*m_xCheckLB);
}
@@ -810,6 +1276,38 @@ void SwCaptionOptPage::UpdateEntry(int nSelEntry)
            m_xCategoryBox->set_active(nPos);
        }

        bool bReadOnly = lcl_isPropertyReadOnly(pOpt->GetObjType(), PROP_CAP_OBJECT_CATEGORY, pOpt->GetOleId());
        m_xCategoryBox->set_sensitive(bChecked && !bReadOnly);
        m_xCategoryBoxImg->set_visible(bReadOnly);

        bReadOnly = lcl_isPropertyReadOnly(pOpt->GetObjType(), PROP_CAP_OBJECT_NUMBERING, pOpt->GetOleId());
        m_xFormatBox->set_sensitive(bChecked && !bReadOnly);
        m_xFormatBoxImg->set_visible(bReadOnly);

        bReadOnly = lcl_isPropertyReadOnly(pOpt->GetObjType(), PROP_CAP_OBJECT_NUMBERINGSEPARATOR, pOpt->GetOleId());
        m_xNumberingSeparatorED->set_sensitive(bNumSep && !bReadOnly);
        m_xNumberingSeparatorImg->set_visible(bReadOnly);

        bReadOnly = lcl_isPropertyReadOnly(pOpt->GetObjType(), PROP_CAP_OBJECT_CAPTIONTEXT, pOpt->GetOleId());
        m_xTextEdit->set_sensitive(bChecked && !bReadOnly);
        m_xTextEditImg->set_visible(bReadOnly);

        bReadOnly = lcl_isPropertyReadOnly(pOpt->GetObjType(), PROP_CAP_OBJECT_DELIMITER, pOpt->GetOleId());
        m_xPosBox->set_sensitive(bChecked && !bReadOnly);
        m_xPosBoxImg->set_visible(bReadOnly);

        bReadOnly = lcl_isPropertyReadOnly(pOpt->GetObjType(), PROP_CAP_OBJECT_LEVEL, pOpt->GetOleId());
        m_xLbLevel->set_sensitive(bChecked && !bReadOnly);
        m_xLbLevelImg->set_visible(bReadOnly);

        bReadOnly = lcl_isPropertyReadOnly(pOpt->GetObjType(), PROP_CAP_OBJECT_POSITION, pOpt->GetOleId());
        m_xEdDelim->set_sensitive(bChecked && !bReadOnly);
        m_xEdDelimImg->set_visible(bReadOnly);

        bReadOnly = lcl_isPropertyReadOnly(pOpt->GetObjType(), PROP_CAP_OBJECT_CHARACTERSTYLE, pOpt->GetOleId());
        m_xCharStyleLB->set_sensitive(bChecked && !bReadOnly);
        m_xCharStyleImg->set_visible(bReadOnly);

        for (sal_Int32 i = 0; i < m_xFormatBox->get_count(); i++)
        {
            if (pOpt->GetNumType() == m_xFormatBox->get_id(i).toUInt32())
@@ -844,8 +1342,11 @@ void SwCaptionOptPage::UpdateEntry(int nSelEntry)
            m_xCharStyleLB->set_active_text(pOpt->GetCharacterStyle());
        else
            m_xCharStyleLB->set_active(0);
        m_xApplyBorderCB->set_sensitive(m_xCategoryBox->get_sensitive() &&

        bReadOnly = lcl_isPropertyReadOnly(pOpt->GetObjType(), PROP_CAP_OBJECT_APPLYATTRIBUTES, pOpt->GetOleId());
        m_xApplyBorderCB->set_sensitive(m_xCategoryBox->get_sensitive() && !bReadOnly &&
                pOpt->GetObjType() != TABLE_CAP && pOpt->GetObjType() != FRAME_CAP );
        m_xApplyBorderImg->set_visible(bReadOnly);
        m_xApplyBorderCB->set_active(pOpt->CopyAttributes());
    }

diff --git a/sw/source/uibase/inc/optload.hxx b/sw/source/uibase/inc/optload.hxx
index 24ddd25..c392839 100644
--- a/sw/source/uibase/inc/optload.hxx
+++ b/sw/source/uibase/inc/optload.hxx
@@ -30,6 +30,7 @@
#include <sfx2/basedlgs.hxx>

#include <SwCapObjType.hxx>
#include <SwCapConfigProp.hxx>

class SwFieldMgr;
class SwWrtShell;
@@ -157,25 +158,35 @@ private:
    SwCaptionPreview m_aPreview;
    std::unique_ptr<weld::TreeView> m_xCheckLB;
    std::unique_ptr<weld::ComboBox> m_xLbCaptionOrder;
    std::unique_ptr<weld::Widget> m_xLbCaptionOrderImg;

    std::unique_ptr<weld::Widget> m_xSettingsGroup;
    std::unique_ptr<weld::ComboBox> m_xCategoryBox;
    std::unique_ptr<weld::Widget> m_xCategoryBoxImg;
    std::unique_ptr<weld::Label> m_xFormatText;
    std::unique_ptr<weld::ComboBox> m_xFormatBox;
    std::unique_ptr<weld::Widget> m_xFormatBoxImg;
    //#i61007# order of captions
    std::unique_ptr<weld::Label> m_xNumberingSeparatorFT;
    std::unique_ptr<weld::Entry> m_xNumberingSeparatorED;
    std::unique_ptr<weld::Widget> m_xNumberingSeparatorImg;
    std::unique_ptr<weld::Label> m_xTextText;
    std::unique_ptr<weld::Entry> m_xTextEdit;
    std::unique_ptr<weld::Widget> m_xTextEditImg;
    std::unique_ptr<weld::ComboBox> m_xPosBox;
    std::unique_ptr<weld::Widget> m_xPosBoxImg;

    std::unique_ptr<weld::Widget> m_xNumCapt;
    std::unique_ptr<weld::ComboBox> m_xLbLevel;
    std::unique_ptr<weld::Widget> m_xLbLevelImg;
    std::unique_ptr<weld::Entry> m_xEdDelim;
    std::unique_ptr<weld::Widget> m_xEdDelimImg;

    std::unique_ptr<weld::Widget> m_xCategory;
    std::unique_ptr<weld::ComboBox> m_xCharStyleLB;
    std::unique_ptr<weld::Widget> m_xCharStyleImg;
    std::unique_ptr<weld::CheckButton> m_xApplyBorderCB;
    std::unique_ptr<weld::Widget> m_xApplyBorderImg;
    std::unique_ptr<weld::CustomWeld> m_xPreview;

    DECL_LINK(SelectHdl, weld::ComboBox&, void);
diff --git a/sw/uiconfig/swriter/ui/optcaptionpage.ui b/sw/uiconfig/swriter/ui/optcaptionpage.ui
index 1ab036d..f8384b4 100644
--- a/sw/uiconfig/swriter/ui/optcaptionpage.ui
+++ b/sw/uiconfig/swriter/ui/optcaptionpage.ui
@@ -44,7 +44,7 @@
                <property name="label-xalign">0</property>
                <property name="shadow-type">none</property>
                <child>
                  <!-- n-columns=2 n-rows=5 -->
                  <!-- n-columns=3 n-rows=5 -->
                  <object class="GtkGrid" id="grid3">
                    <property name="visible">True</property>
                    <property name="can-focus">False</property>
@@ -63,7 +63,7 @@
                        <property name="xalign">0</property>
                      </object>
                      <packing>
                        <property name="left-attach">0</property>
                        <property name="left-attach">1</property>
                        <property name="top-attach">0</property>
                      </packing>
                    </child>
@@ -77,7 +77,7 @@
                        <property name="xalign">0</property>
                      </object>
                      <packing>
                        <property name="left-attach">0</property>
                        <property name="left-attach">1</property>
                        <property name="top-attach">1</property>
                      </packing>
                    </child>
@@ -91,7 +91,7 @@
                        <property name="xalign">0</property>
                      </object>
                      <packing>
                        <property name="left-attach">0</property>
                        <property name="left-attach">1</property>
                        <property name="top-attach">2</property>
                      </packing>
                    </child>
@@ -105,7 +105,7 @@
                        <property name="xalign">0</property>
                      </object>
                      <packing>
                        <property name="left-attach">0</property>
                        <property name="left-attach">1</property>
                        <property name="top-attach">3</property>
                      </packing>
                    </child>
@@ -119,7 +119,7 @@
                        <property name="xalign">0</property>
                      </object>
                      <packing>
                        <property name="left-attach">0</property>
                        <property name="left-attach">1</property>
                        <property name="top-attach">4</property>
                      </packing>
                    </child>
@@ -136,7 +136,7 @@
                        </child>
                      </object>
                      <packing>
                        <property name="left-attach">1</property>
                        <property name="left-attach">2</property>
                        <property name="top-attach">4</property>
                      </packing>
                    </child>
@@ -156,7 +156,7 @@
                        </child>
                      </object>
                      <packing>
                        <property name="left-attach">1</property>
                        <property name="left-attach">2</property>
                        <property name="top-attach">3</property>
                      </packing>
                    </child>
@@ -164,12 +164,12 @@
                      <object class="GtkEntry" id="numseparator">
                        <property name="visible">True</property>
                        <property name="can-focus">True</property>
                        <property name="tooltip-text" translatable="yes" context="optcaptionpage|tooltip_text|numseparator">For Numbering first option, define characters to display between caption number and caption category.</property>
                        <property name="valign">center</property>
                        <property name="hexpand">True</property>
                        <property name="activates-default">True</property>
                        <property name="text" translatable="yes" context="optcaptionpage|numseparator">. </property>
                        <property name="truncate-multiline">True</property>
                        <property name="tooltip-text" translatable="yes" context="optcaptionpage|tooltip_text|numseparator">For Numbering first option, define characters to display between caption number and caption category.</property>
                        <child internal-child="accessible">
                          <object class="AtkObject" id="numseparator-atkobject">
                            <property name="AtkObject::accessible-description" translatable="yes" context="optcaptionpage|extended_tip|numseparator">For Numbering first option, defines the characters to be displayed between the caption number and the caption category.</property>
@@ -177,7 +177,7 @@
                        </child>
                      </object>
                      <packing>
                        <property name="left-attach">1</property>
                        <property name="left-attach">2</property>
                        <property name="top-attach">2</property>
                      </packing>
                    </child>
@@ -194,7 +194,7 @@
                        </child>
                      </object>
                      <packing>
                        <property name="left-attach">1</property>
                        <property name="left-attach">2</property>
                        <property name="top-attach">1</property>
                      </packing>
                    </child>
@@ -224,10 +224,75 @@
                        </child>
                      </object>
                      <packing>
                        <property name="left-attach">1</property>
                        <property name="left-attach">2</property>
                        <property name="top-attach">0</property>
                      </packing>
                    </child>
                    <child>
                      <object class="GtkImage" id="lockcategory">
                        <property name="can-focus">False</property>
                        <property name="no-show-all">True</property>
                        <property name="halign">center</property>
                        <property name="valign">center</property>
                        <property name="icon-name">res/lock.png</property>
                      </object>
                      <packing>
                        <property name="left-attach">0</property>
                        <property name="top-attach">0</property>
                      </packing>
                    </child>
                    <child>
                      <object class="GtkImage" id="locknumbering">
                        <property name="can-focus">False</property>
                        <property name="no-show-all">True</property>
                        <property name="halign">center</property>
                        <property name="valign">center</property>
                        <property name="icon-name">res/lock.png</property>
                      </object>
                      <packing>
                        <property name="left-attach">0</property>
                        <property name="top-attach">1</property>
                      </packing>
                    </child>
                    <child>
                      <object class="GtkImage" id="locknumseparator">
                        <property name="can-focus">False</property>
                        <property name="no-show-all">True</property>
                        <property name="halign">center</property>
                        <property name="valign">center</property>
                        <property name="icon-name">res/lock.png</property>
                      </object>
                      <packing>
                        <property name="left-attach">0</property>
                        <property name="top-attach">2</property>
                      </packing>
                    </child>
                    <child>
                      <object class="GtkImage" id="lockseparator">
                        <property name="can-focus">False</property>
                        <property name="no-show-all">True</property>
                        <property name="halign">center</property>
                        <property name="valign">center</property>
                        <property name="icon-name">res/lock.png</property>
                      </object>
                      <packing>
                        <property name="left-attach">0</property>
                        <property name="top-attach">3</property>
                      </packing>
                    </child>
                    <child>
                      <object class="GtkImage" id="lockposition">
                        <property name="can-focus">False</property>
                        <property name="no-show-all">True</property>
                        <property name="halign">center</property>
                        <property name="valign">center</property>
                        <property name="icon-name">res/lock.png</property>
                      </object>
                      <packing>
                        <property name="left-attach">0</property>
                        <property name="top-attach">4</property>
                      </packing>
                    </child>
                  </object>
                </child>
                <child type="label">
@@ -254,7 +319,7 @@
                <property name="label-xalign">0</property>
                <property name="shadow-type">none</property>
                <child>
                  <!-- n-columns=2 n-rows=2 -->
                  <!-- n-columns=3 n-rows=2 -->
                  <object class="GtkGrid" id="grid4">
                    <property name="visible">True</property>
                    <property name="can-focus">False</property>
@@ -273,7 +338,7 @@
                        <property name="xalign">0</property>
                      </object>
                      <packing>
                        <property name="left-attach">0</property>
                        <property name="left-attach">1</property>
                        <property name="top-attach">0</property>
                      </packing>
                    </child>
@@ -287,7 +352,7 @@
                        <property name="xalign">0</property>
                      </object>
                      <packing>
                        <property name="left-attach">0</property>
                        <property name="left-attach">1</property>
                        <property name="top-attach">1</property>
                      </packing>
                    </child>
@@ -307,7 +372,7 @@
                        </child>
                      </object>
                      <packing>
                        <property name="left-attach">1</property>
                        <property name="left-attach">2</property>
                        <property name="top-attach">1</property>
                      </packing>
                    </child>
@@ -328,10 +393,36 @@
                        </child>
                      </object>
                      <packing>
                        <property name="left-attach">1</property>
                        <property name="left-attach">2</property>
                        <property name="top-attach">0</property>
                      </packing>
                    </child>
                    <child>
                      <object class="GtkImage" id="locklevel">
                        <property name="can-focus">False</property>
                        <property name="no-show-all">True</property>
                        <property name="halign">center</property>
                        <property name="valign">center</property>
                        <property name="icon-name">res/lock.png</property>
                      </object>
                      <packing>
                        <property name="left-attach">0</property>
                        <property name="top-attach">0</property>
                      </packing>
                    </child>
                    <child>
                      <object class="GtkImage" id="lockchapseparator">
                        <property name="can-focus">False</property>
                        <property name="no-show-all">True</property>
                        <property name="halign">center</property>
                        <property name="valign">center</property>
                        <property name="icon-name">res/lock.png</property>
                      </object>
                      <packing>
                        <property name="left-attach">0</property>
                        <property name="top-attach">1</property>
                      </packing>
                    </child>
                  </object>
                </child>
                <child type="label">
@@ -358,7 +449,7 @@
                <property name="label-xalign">0</property>
                <property name="shadow-type">none</property>
                <child>
                  <!-- n-columns=2 n-rows=2 -->
                  <!-- n-columns=3 n-rows=2 -->
                  <object class="GtkGrid" id="grid5">
                    <property name="visible">True</property>
                    <property name="can-focus">False</property>
@@ -377,7 +468,7 @@
                        <property name="xalign">0</property>
                      </object>
                      <packing>
                        <property name="left-attach">0</property>
                        <property name="left-attach">1</property>
                        <property name="top-attach">0</property>
                      </packing>
                    </child>
@@ -396,7 +487,7 @@
                        </child>
                      </object>
                      <packing>
                        <property name="left-attach">1</property>
                        <property name="left-attach">2</property>
                        <property name="top-attach">0</property>
                      </packing>
                    </child>
@@ -415,11 +506,37 @@
                        </child>
                      </object>
                      <packing>
                        <property name="left-attach">0</property>
                        <property name="left-attach">1</property>
                        <property name="top-attach">1</property>
                        <property name="width">2</property>
                      </packing>
                    </child>
                    <child>
                      <object class="GtkImage" id="lockcharstyle">
                        <property name="can-focus">False</property>
                        <property name="no-show-all">True</property>
                        <property name="halign">center</property>
                        <property name="valign">center</property>
                        <property name="icon-name">res/lock.png</property>
                      </object>
                      <packing>
                        <property name="left-attach">0</property>
                        <property name="top-attach">0</property>
                      </packing>
                    </child>
                    <child>
                      <object class="GtkImage" id="lockapplyborder">
                        <property name="can-focus">False</property>
                        <property name="no-show-all">True</property>
                        <property name="halign">center</property>
                        <property name="valign">center</property>
                        <property name="icon-name">res/lock.png</property>
                      </object>
                      <packing>
                        <property name="left-attach">0</property>
                        <property name="top-attach">1</property>
                      </packing>
                    </child>
                  </object>
                </child>
                <child type="label">
@@ -574,20 +691,45 @@ when inserting:</property>
                <property name="label-xalign">0</property>
                <property name="shadow-type">none</property>
                <child>
                  <object class="GtkComboBoxText" id="captionorder">
                  <object class="GtkBox">
                    <property name="visible">True</property>
                    <property name="can-focus">False</property>
                    <property name="margin-start">12</property>
                    <property name="margin-top">6</property>
                    <property name="hexpand">True</property>
                    <items>
                      <item translatable="yes" context="optcaptionpage|captionorder">Category first</item>
                      <item translatable="yes" context="optcaptionpage|captionorder">Numbering first</item>
                    </items>
                    <child internal-child="accessible">
                      <object class="AtkObject" id="captionorder-atkobject">
                        <property name="AtkObject::accessible-description" translatable="yes" context="optcaptionpage|extended_tip|captionorder">Place the caption number before or after the caption category.</property>
                    <child>
                      <object class="GtkImage" id="lockcaptionorder">
                        <property name="can-focus">False</property>
                        <property name="no-show-all">True</property>
                        <property name="halign">center</property>
                        <property name="valign">center</property>
                        <property name="icon-name">res/lock.png</property>
                      </object>
                      <packing>
                        <property name="expand">False</property>
                        <property name="fill">True</property>
                        <property name="position">0</property>
                      </packing>
                    </child>
                    <child>
                      <object class="GtkComboBoxText" id="captionorder">
                        <property name="visible">True</property>
                        <property name="can-focus">False</property>
                        <property name="margin-start">12</property>
                        <property name="margin-top">6</property>
                        <property name="hexpand">True</property>
                        <items>
                          <item translatable="yes" context="optcaptionpage|captionorder">Category first</item>
                          <item translatable="yes" context="optcaptionpage|captionorder">Numbering first</item>
                        </items>
                        <child internal-child="accessible">
                          <object class="AtkObject" id="captionorder-atkobject">
                            <property name="AtkObject::accessible-description" translatable="yes" context="optcaptionpage|extended_tip|captionorder">Place the caption number before or after the caption category.</property>
                          </object>
                        </child>
                      </object>
                      <packing>
                        <property name="expand">False</property>
                        <property name="fill">True</property>
                        <property name="position">1</property>
                      </packing>
                    </child>
                  </object>
                </child>