[Libreoffice-commits] core.git: basctl/source cui/source cui/uiconfig dbaccess/source desktop/source include/vcl sc/source sw/source vcl/source vcl/unx

Caolán McNamara (via logerrit) logerrit at kemper.freedesktop.org
Mon Jun 8 18:22:20 UTC 2020


 basctl/source/basicide/moduldl2.cxx                   |    8 
 basctl/source/basicide/moduldlg.cxx                   |    1 
 basctl/source/dlged/managelang.cxx                    |   10 
 cui/source/customize/SvxMenuConfigPage.cxx            |   24 -
 cui/source/customize/SvxNotebookbarConfigPage.cxx     |   40 --
 cui/source/customize/SvxToolbarConfigPage.cxx         |   49 +--
 cui/source/customize/cfg.cxx                          |   28 +-
 cui/source/dialogs/hangulhanjadlg.cxx                 |   10 
 cui/source/dialogs/multipat.cxx                       |   23 -
 cui/source/dialogs/srchxtra.cxx                       |   10 
 cui/source/inc/cfg.hxx                                |    9 
 cui/source/options/certpath.cxx                       |   26 -
 cui/source/options/fontsubs.cxx                       |   36 +-
 cui/source/options/optjava.cxx                        |    7 
 cui/source/options/optlingu.cxx                       |  123 ++++-----
 cui/source/tabpages/autocdlg.cxx                      |   78 ++---
 cui/uiconfig/ui/applyautofmtpage.ui                   |   25 +
 cui/uiconfig/ui/applylocalizedpage.ui                 |   23 +
 cui/uiconfig/ui/certdialog.ui                         |   14 -
 cui/uiconfig/ui/menuassignpage.ui                     |   14 -
 cui/uiconfig/ui/multipathdialog.ui                    |    9 
 cui/uiconfig/ui/optadvancedpage.ui                    |   26 +
 cui/uiconfig/ui/optfltrembedpage.ui                   |   27 +-
 cui/uiconfig/ui/optfontspage.ui                       |    8 
 dbaccess/source/ui/control/tabletree.cxx              |   46 +--
 dbaccess/source/ui/dlg/tablespage.cxx                 |    6 
 dbaccess/source/ui/inc/tabletree.hxx                  |    1 
 dbaccess/source/ui/misc/WNameMatch.cxx                |   14 -
 desktop/source/deployment/gui/dp_gui_updatedialog.cxx |   14 -
 include/vcl/weld.hxx                                  |   40 ++
 sc/source/ui/dbgui/dpgroupdlg.cxx                     |   12 
 sc/source/ui/dbgui/pvfundlg.cxx                       |   14 -
 sc/source/ui/dbgui/tpsubt.cxx                         |   18 -
 sc/source/ui/miscdlgs/protectiondlg.cxx               |   16 -
 sc/source/ui/miscdlgs/solveroptions.cxx               |   20 -
 sw/source/ui/config/optcomp.cxx                       |   24 -
 sw/source/ui/config/optload.cxx                       |   30 +-
 sw/source/ui/index/cnttab.cxx                         |   15 -
 vcl/source/app/salvtables.cxx                         |  241 ++++++++++--------
 vcl/unx/gtk3/gtk3gtkinst.cxx                          |   62 +++-
 40 files changed, 616 insertions(+), 585 deletions(-)

New commits:
commit cd384e2d31f74223948ea70d8aa3c318d3ceeb50
Author:     Caolán McNamara <caolanm at redhat.com>
AuthorDate: Fri Jun 5 16:11:39 2020 +0100
Commit:     Caolán McNamara <caolanm at redhat.com>
CommitDate: Mon Jun 8 20:21:35 2020 +0200

    rework treeview initial toggle button col to be like expander col
    
    cause this assumption is baked into the vcl one making it hard
    to adapt remaining cases
    
    Change-Id: I75dd5264c65b1ffbf4d26c9a86f6d4d08b400d90
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/95622
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/basctl/source/basicide/moduldl2.cxx b/basctl/source/basicide/moduldl2.cxx
index 3c9d64a01854..c94cfe753c96 100644
--- a/basctl/source/basicide/moduldl2.cxx
+++ b/basctl/source/basicide/moduldl2.cxx
@@ -648,8 +648,8 @@ void LibPage::InsertLib()
             weld::TreeView& rView = xLibDlg->GetLibBox();
             rView.append();
             const int nRow = rView.n_children() - 1;
-            rView.set_toggle(nRow, TRISTATE_TRUE, 0);
-            rView.set_text(nRow, aLibName, 1);
+            rView.set_toggle(nRow, TRISTATE_TRUE);
+            rView.set_text(nRow, aLibName, 0);
             rView.set_cursor(rView.find_text(aLibName));
         }
     }
@@ -682,9 +682,9 @@ void LibPage::InsertLib()
             weld::TreeView& rView = xLibDlg->GetLibBox();
             for (int nLib = 0, nChildren = rView.n_children(); nLib < nChildren; ++nLib)
             {
-                if (rView.get_toggle(nLib, 0) == TRISTATE_TRUE)
+                if (rView.get_toggle(nLib) == TRISTATE_TRUE)
                 {
-                    OUString aLibName(rView.get_text(nLib, 1));
+                    OUString aLibName(rView.get_text(nLib));
                     Reference< script::XLibraryContainer2 > xModLibContainer( m_aCurDocument.getLibraryContainer( E_SCRIPTS ), UNO_QUERY );
                     Reference< script::XLibraryContainer2 > xDlgLibContainer( m_aCurDocument.getLibraryContainer( E_DIALOGS ), UNO_QUERY );
 
diff --git a/basctl/source/basicide/moduldlg.cxx b/basctl/source/basicide/moduldlg.cxx
index 3b650078fa4d..7aeae822a7bb 100644
--- a/basctl/source/basicide/moduldlg.cxx
+++ b/basctl/source/basicide/moduldlg.cxx
@@ -897,6 +897,7 @@ LibDialog::LibDialog(weld::Window* pParent)
 {
     m_xLibBox->set_size_request(m_xLibBox->get_approximate_digit_width() * 28,
                                 m_xLibBox->get_height_rows(8));
+    m_xLibBox->enable_toggle_buttons(weld::ColumnToggleType::Check);
     // tdf#93476 The libraries should be listed alphabetically
     m_xLibBox->make_sorted();
 }
diff --git a/basctl/source/dlged/managelang.cxx b/basctl/source/dlged/managelang.cxx
index 77a40f031c80..d36c23803e7a 100644
--- a/basctl/source/dlged/managelang.cxx
+++ b/basctl/source/dlged/managelang.cxx
@@ -226,9 +226,7 @@ SetDefaultLanguageDialog::SetDefaultLanguageDialog(weld::Window* pParent, std::s
 {
     m_xLanguageLB->set_size_request(-1, m_xLanguageLB->get_height_rows(10));
     m_xCheckLangLB->set_size_request(-1, m_xCheckLangLB->get_height_rows(10));
-    std::vector<int> aWidths;
-    aWidths.push_back(m_xCheckLangLB->get_checkbox_column_width());
-    m_xCheckLangLB->set_column_fixed_widths(aWidths);
+    m_xCheckLangLB->enable_toggle_buttons(weld::ColumnToggleType::Check);
 
     if (m_xLocalizationMgr->isLibraryLocalized())
     {
@@ -270,8 +268,8 @@ void SetDefaultLanguageDialog::FillLanguageBox()
             LanguageType eLang = m_xLanguageCB->get_id(j);
             m_xCheckLangLB->append();
             const int nRow = m_xCheckLangLB->n_children() - 1;
-            m_xCheckLangLB->set_toggle(nRow, TRISTATE_FALSE, 0);
-            m_xCheckLangLB->set_text(nRow, m_xLanguageCB->get_text(j), 1);
+            m_xCheckLangLB->set_toggle(nRow, TRISTATE_FALSE);
+            m_xCheckLangLB->set_text(nRow, m_xLanguageCB->get_text(j), 0);
             m_xCheckLangLB->set_id(nRow, OUString::number(eLang.get()));
         }
         m_xLanguageCB.reset();
@@ -304,7 +302,7 @@ Sequence< Locale > SetDefaultLanguageDialog::GetLocales() const
     const sal_Int32 nCount = m_xCheckLangLB->n_children();
     for (sal_Int32 i = 0; i < nCount; ++i)
     {
-        if (m_xCheckLangLB->get_toggle(i, 0) == TRISTATE_TRUE)
+        if (m_xCheckLangLB->get_toggle(i) == TRISTATE_TRUE)
         {
             LanguageType eType(m_xCheckLangLB->get_id(i).toUInt32());
             aLocaleSeq.push_back(LanguageTag::convertToLocale(eType));
diff --git a/cui/source/customize/SvxMenuConfigPage.cxx b/cui/source/customize/SvxMenuConfigPage.cxx
index c40c07dd3ce6..90f421013fba 100644
--- a/cui/source/customize/SvxMenuConfigPage.cxx
+++ b/cui/source/customize/SvxMenuConfigPage.cxx
@@ -115,22 +115,10 @@ IMPL_LINK(SvxMenuConfigPage, MenuEntriesSizeAllocHdl, const Size&, rSize, void)
     weld::TreeView& rTreeView = m_xContentsListBox->get_widget();
     std::vector<int> aWidths;
 
-    int nExpectedSize = 16;
-
     int nStandardImageColWidth = rTreeView.get_checkbox_column_width();
-    int nMargin = nStandardImageColWidth - nExpectedSize;
-    if (nMargin < 16)
-        nMargin = 16;
-
-    if (SvxConfigPageHelper::GetImageType() & css::ui::ImageType::SIZE_LARGE)
-        nExpectedSize = 24;
-    else if (SvxConfigPageHelper::GetImageType() & css::ui::ImageType::SIZE_32)
-        nExpectedSize = 32;
-
-    int nImageColWidth = nExpectedSize + nMargin;
+    int nMargin = 16;
 
-    aWidths.push_back(nImageColWidth);
-    aWidths.push_back(rSize.Width() - (nImageColWidth + nStandardImageColWidth));
+    aWidths.push_back(rSize.Width() - (nMargin + nStandardImageColWidth));
     rTreeView.set_column_fixed_widths(aWidths);
 }
 
@@ -279,7 +267,7 @@ void SvxMenuConfigPage::SelectElement()
             auto const& entry = (*pEntries)[nIdx];
             OUString sId(OUString::number(reinterpret_cast<sal_Int64>(entry)));
             rTreeView.set_id(rIter, sId);
-            InsertEntryIntoUI(entry, rTreeView, rIter, 0);
+            InsertEntryIntoUI(entry, rTreeView, rIter, true);
         });
     }
 
@@ -369,7 +357,7 @@ IMPL_LINK_NOARG( SvxMenuConfigPage, AddCommandHdl, weld::Button&, void )
     weld::TreeView& rTreeView = m_xContentsListBox->get_widget();
     SvxConfigEntry* pEntry =
         reinterpret_cast<SvxConfigEntry*>(rTreeView.get_id(nPos).toInt64());
-    InsertEntryIntoUI(pEntry, rTreeView, nPos, 0);
+    InsertEntryIntoUI(pEntry, rTreeView, nPos, true);
 }
 
 IMPL_LINK_NOARG( SvxMenuConfigPage, RemoveCommandHdl, weld::Button&, void )
@@ -389,7 +377,7 @@ IMPL_LINK(SvxMenuConfigPage, InsertHdl, const OString&, rIdent, void)
         SvxConfigEntry* pNewEntryData = new SvxConfigEntry;
         pNewEntryData->SetUserDefined();
         int nPos = AppendEntry(pNewEntryData, -1);
-        InsertEntryIntoUI(pNewEntryData, rTreeView, nPos, 0);
+        InsertEntryIntoUI(pNewEntryData, rTreeView, nPos, true);
     }
     else if (rIdent == "insertsubmenu")
     {
@@ -410,7 +398,7 @@ IMPL_LINK(SvxMenuConfigPage, InsertHdl, const OString&, rIdent, void)
             pNewEntryData->SetUserDefined();
 
             int nPos = AppendEntry(pNewEntryData, -1);
-            InsertEntryIntoUI(pNewEntryData, rTreeView, nPos, 0);
+            InsertEntryIntoUI(pNewEntryData, rTreeView, nPos, true);
 
             ReloadTopLevelListBox();
 
diff --git a/cui/source/customize/SvxNotebookbarConfigPage.cxx b/cui/source/customize/SvxNotebookbarConfigPage.cxx
index b8c3a8d72a49..7354f1c821ba 100644
--- a/cui/source/customize/SvxNotebookbarConfigPage.cxx
+++ b/cui/source/customize/SvxNotebookbarConfigPage.cxx
@@ -124,29 +124,10 @@ SvxNotebookbarConfigPage::SvxNotebookbarConfigPage(weld::Container* pPage,
         new SvxNotebookbarEntriesListBox(m_xBuilder->weld_tree_view("toolcontents"), this));
     m_xDropTargetHelper.reset(
         new SvxConfigPageFunctionDropTarget(*this, m_xContentsListBox->get_widget()));
-    std::vector<int> aWidths;
     weld::TreeView& rTreeView = m_xContentsListBox->get_widget();
     Size aSize(m_xFunctions->get_size_request());
     rTreeView.set_size_request(aSize.Width(), aSize.Height());
 
-    int nExpectedSize = 16;
-
-    int nStandardImageColWidth = rTreeView.get_checkbox_column_width();
-    int nMargin = nStandardImageColWidth - nExpectedSize;
-    if (nMargin < 16)
-        nMargin = 16;
-
-    if (SvxConfigPageHelper::GetImageType() & css::ui::ImageType::SIZE_LARGE)
-        nExpectedSize = 24;
-    else if (SvxConfigPageHelper::GetImageType() & css::ui::ImageType::SIZE_32)
-        nExpectedSize = 32;
-
-    int nImageColWidth = nExpectedSize + nMargin;
-
-    aWidths.push_back(nStandardImageColWidth);
-    aWidths.push_back(nImageColWidth);
-    rTreeView.set_column_fixed_widths(aWidths);
-
     rTreeView.set_hexpand(true);
     rTreeView.set_vexpand(true);
     rTreeView.set_help_id(HID_SVX_CONFIG_NOTEBOOKBAR_CONTENTS);
@@ -219,7 +200,7 @@ void SvxConfigPage::InsertEntryIntoNotebookbarTabUI(const OUString& sClassId,
                                                     const OUString& sUIItemId,
                                                     const OUString& sUIItemCommand,
                                                     weld::TreeView& rTreeView,
-                                                    weld::TreeIter& rIter, int nStartCol)
+                                                    weld::TreeIter& rIter)
 {
     css::uno::Reference<css::container::XNameAccess> m_xCommandToLabelMap;
     uno::Reference<uno::XComponentContext> xContext = ::comphelper::getProcessComponentContext();
@@ -249,7 +230,7 @@ void SvxConfigPage::InsertEntryIntoNotebookbarTabUI(const OUString& sClassId,
 
     if (sClassId == "GtkSeparatorMenuItem" || sClassId == "GtkSeparator")
     {
-        rTreeView.set_text(rIter, "--------------------------------------------", nStartCol + 1);
+        rTreeView.set_text(rIter, "--------------------------------------------", 0);
     }
     else
     {
@@ -257,8 +238,8 @@ void SvxConfigPage::InsertEntryIntoNotebookbarTabUI(const OUString& sClassId,
             aName = sUIItemId;
         auto xImage = GetSaveInData()->GetImage(sUIItemCommand);
         if (xImage.is())
-            rTreeView.set_image(rIter, xImage, nStartCol);
-        rTreeView.set_text(rIter, aName, nStartCol + 1);
+            rTreeView.set_image(rIter, xImage, -1);
+        rTreeView.set_text(rIter, aName, 0);
         rTreeView.set_id(rIter, sUIItemId);
     }
 }
@@ -465,15 +446,15 @@ void SvxNotebookbarConfigPage::SelectElement()
             {
                 if (aEntries[nIdx].sVisibleValue == "True")
                 {
-                    rTreeView.set_toggle(rIter, TRISTATE_TRUE, 0);
+                    rTreeView.set_toggle(rIter, TRISTATE_TRUE);
                 }
                 else
                 {
-                    rTreeView.set_toggle(rIter, TRISTATE_FALSE, 0);
+                    rTreeView.set_toggle(rIter, TRISTATE_FALSE);
                 }
             }
             InsertEntryIntoNotebookbarTabUI(aEntries[nIdx].sClassId, aEntries[nIdx].sDisplayName,
-                                            aEntries[nIdx].sActionName, rTreeView, rIter, 1);
+                                            aEntries[nIdx].sActionName, rTreeView, rIter);
         });
 
     aEntries.clear();
@@ -532,7 +513,7 @@ void SvxNotebookbarEntriesListBox::ChangedVisibility(int nRow)
     OUString sNotebookbarInterface = getFileName(m_pPage->GetFileName());
 
     OUString sVisible;
-    if (m_xControl->get_toggle(nRow, 0) == TRISTATE_TRUE)
+    if (m_xControl->get_toggle(nRow) == TRISTATE_TRUE)
         sVisible = "True";
     else
         sVisible = "False";
@@ -556,9 +537,8 @@ IMPL_LINK(SvxNotebookbarEntriesListBox, KeyInputHdl, const KeyEvent&, rKeyEvent,
     if (rKeyEvent.GetKeyCode() == KEY_SPACE)
     {
         int nRow = m_xControl->get_selected_index();
-        m_xControl->set_toggle(
-            nRow, m_xControl->get_toggle(nRow, 0) == TRISTATE_TRUE ? TRISTATE_FALSE : TRISTATE_TRUE,
-            0);
+        m_xControl->set_toggle(nRow, m_xControl->get_toggle(nRow) == TRISTATE_TRUE ? TRISTATE_FALSE
+                                                                                   : TRISTATE_TRUE);
         ChangedVisibility(nRow);
         return true;
     }
diff --git a/cui/source/customize/SvxToolbarConfigPage.cxx b/cui/source/customize/SvxToolbarConfigPage.cxx
index 5efa3283498b..08540446e7ff 100644
--- a/cui/source/customize/SvxToolbarConfigPage.cxx
+++ b/cui/source/customize/SvxToolbarConfigPage.cxx
@@ -53,29 +53,10 @@ SvxToolbarConfigPage::SvxToolbarConfigPage(weld::Container* pPage, weld::DialogC
     m_xContentsListBox.reset(new SvxToolbarEntriesListBox(m_xBuilder->weld_tree_view("toolcontents"), this));
     m_xDropTargetHelper.reset(new SvxConfigPageFunctionDropTarget(*this, m_xContentsListBox->get_widget()));
 
-    std::vector<int> aWidths;
     weld::TreeView& rTreeView = m_xContentsListBox->get_widget();
     Size aSize(m_xFunctions->get_size_request());
     rTreeView.set_size_request(aSize.Width(), aSize.Height());
 
-    int nExpectedSize = 16;
-
-    int nStandardImageColWidth = rTreeView.get_checkbox_column_width();
-    int nMargin = nStandardImageColWidth - nExpectedSize;
-    if (nMargin < 16)
-        nMargin = 16;
-
-    if (SvxConfigPageHelper::GetImageType() & css::ui::ImageType::SIZE_LARGE)
-        nExpectedSize = 24;
-    else if (SvxConfigPageHelper::GetImageType() & css::ui::ImageType::SIZE_32)
-        nExpectedSize = 32;
-
-    int nImageColWidth = nExpectedSize + nMargin;
-
-    aWidths.push_back(nStandardImageColWidth);
-    aWidths.push_back(nImageColWidth);
-    rTreeView.set_column_fixed_widths(aWidths);
-
     rTreeView.set_hexpand(true);
     rTreeView.set_vexpand(true);
     rTreeView.set_help_id( HID_SVX_CONFIG_TOOLBAR_CONTENTS );
@@ -467,7 +448,7 @@ IMPL_LINK(SvxToolbarConfigPage, InsertHdl, const OString&, rIdent, void)
         pNewEntryData->SetUserDefined();
 
         int nPos = AppendEntry(pNewEntryData, -1);
-        InsertEntryIntoUI(pNewEntryData, m_xContentsListBox->get_widget(), nPos, 1);
+        InsertEntryIntoUI(pNewEntryData, m_xContentsListBox->get_widget(), nPos);
 
         static_cast<ToolbarSaveInData*>( GetSaveInData())->ApplyToolbar( pToolbar );
 
@@ -516,7 +497,7 @@ IMPL_LINK(SvxToolbarConfigPage, ModifyItemHdl, const OString&, rIdent, void)
             else
                 pEntry->SetName( aNewName );
 
-            m_xContentsListBox->set_text(nActEntry, aNewName, 2);
+            m_xContentsListBox->set_text(nActEntry, aNewName, 0);
             bNeedsApply = true;
         }
     }
@@ -564,8 +545,8 @@ IMPL_LINK(SvxToolbarConfigPage, ModifyItemHdl, const OString&, rIdent, void)
 
                     OUString sId(OUString::number(reinterpret_cast<sal_Int64>(pEntry)));
                     m_xContentsListBox->insert(nActEntry, sId);
-                    m_xContentsListBox->set_toggle(nActEntry, pEntry->IsVisible() ? TRISTATE_TRUE : TRISTATE_FALSE, 0);
-                    InsertEntryIntoUI(pEntry, m_xContentsListBox->get_widget(), nActEntry, 1);
+                    m_xContentsListBox->set_toggle(nActEntry, pEntry->IsVisible() ? TRISTATE_TRUE : TRISTATE_FALSE);
+                    InsertEntryIntoUI(pEntry, m_xContentsListBox->get_widget(), nActEntry);
 
                     m_xContentsListBox->select(nActEntry);
                     m_xContentsListBox->scroll_to_row(nActEntry);
@@ -604,8 +585,8 @@ IMPL_LINK(SvxToolbarConfigPage, ModifyItemHdl, const OString&, rIdent, void)
 
             OUString sId(OUString::number(reinterpret_cast<sal_Int64>(pEntry)));
             m_xContentsListBox->insert(nActEntry, sId);
-            m_xContentsListBox->set_toggle(nActEntry, pEntry->IsVisible() ? TRISTATE_TRUE : TRISTATE_FALSE, 0);
-            InsertEntryIntoUI(pEntry, m_xContentsListBox->get_widget(), nActEntry, 1);
+            m_xContentsListBox->set_toggle(nActEntry, pEntry->IsVisible() ? TRISTATE_TRUE : TRISTATE_FALSE);
+            InsertEntryIntoUI(pEntry, m_xContentsListBox->get_widget(), nActEntry);
 
             m_xContentsListBox->select(nActEntry);
             m_xContentsListBox->scroll_to_row(nActEntry);
@@ -638,7 +619,7 @@ IMPL_LINK(SvxToolbarConfigPage, ModifyItemHdl, const OString&, rIdent, void)
         {
             pEntry->SetName( aSystemName );
             m_xContentsListBox->set_text(
-                nActEntry, SvxConfigPageHelper::stripHotKey(aSystemName), 2);
+                nActEntry, SvxConfigPageHelper::stripHotKey(aSystemName), 0);
             bNeedsApply = true;
         }
 
@@ -661,8 +642,8 @@ IMPL_LINK(SvxToolbarConfigPage, ModifyItemHdl, const OString&, rIdent, void)
             OUString sId(OUString::number(reinterpret_cast<sal_Int64>(pEntry)));
             m_xContentsListBox->insert(nActEntry, sId);
             m_xContentsListBox->set_toggle(nActEntry,
-                pEntry->IsVisible() ? TRISTATE_TRUE : TRISTATE_FALSE, 0);
-            InsertEntryIntoUI(pEntry, m_xContentsListBox->get_widget(), nActEntry, 1);
+                pEntry->IsVisible() ? TRISTATE_TRUE : TRISTATE_FALSE);
+            InsertEntryIntoUI(pEntry, m_xContentsListBox->get_widget(), nActEntry);
 
             m_xContentsListBox->select(nActEntry);
             m_xContentsListBox->scroll_to_row(nActEntry);
@@ -793,8 +774,8 @@ void SvxToolbarConfigPage::SelectElement()
         OUString sId(OUString::number(reinterpret_cast<sal_Int64>(entry)));
         m_xContentsListBox->insert(i, sId);
         if (entry->IsBinding() && !entry->IsSeparator())
-            m_xContentsListBox->set_toggle(i,  entry->IsVisible() ? TRISTATE_TRUE : TRISTATE_FALSE, 0);
-        InsertEntryIntoUI(entry, m_xContentsListBox->get_widget(), i, 1);
+            m_xContentsListBox->set_toggle(i,  entry->IsVisible() ? TRISTATE_TRUE : TRISTATE_FALSE);
+        InsertEntryIntoUI(entry, m_xContentsListBox->get_widget(), i);
         ++i;
     }
 
@@ -820,10 +801,10 @@ void SvxToolbarConfigPage::AddFunction(int nTarget)
     if ( pEntry->IsBinding() ) //TODO sep ?
     {
         pEntry->SetVisible(true);
-        m_xContentsListBox->set_toggle(nNewLBEntry, TRISTATE_TRUE, 0);
+        m_xContentsListBox->set_toggle(nNewLBEntry, TRISTATE_TRUE);
     }
 
-    InsertEntryIntoUI(pEntry, m_xContentsListBox->get_widget(), nNewLBEntry, 1);
+    InsertEntryIntoUI(pEntry, m_xContentsListBox->get_widget(), nNewLBEntry);
 
     // Changes are not visible on the toolbar until this point
     // TODO: Figure out a way to show the changes on the toolbar, but revert if
@@ -854,7 +835,7 @@ void SvxToolbarEntriesListBox::ChangedVisibility(int nRow)
 
     if (pEntryData->IsBinding())
     {
-        pEntryData->SetVisible(m_xControl->get_toggle(nRow, 0) == TRISTATE_TRUE);
+        pEntryData->SetVisible(m_xControl->get_toggle(nRow) == TRISTATE_TRUE);
 
         SvxConfigEntry* pToolbar = m_pPage->GetTopLevelSelection();
 
@@ -879,7 +860,7 @@ IMPL_LINK(SvxToolbarEntriesListBox, KeyInputHdl, const KeyEvent&, rKeyEvent, boo
         SvxConfigEntry* pEntryData = reinterpret_cast<SvxConfigEntry*>(m_xControl->get_id(nRow).toInt64());
         if (pEntryData->IsBinding() && !pEntryData->IsSeparator())
         {
-            m_xControl->set_toggle(nRow, m_xControl->get_toggle(nRow, 0) == TRISTATE_TRUE ? TRISTATE_FALSE : TRISTATE_TRUE, 0);
+            m_xControl->set_toggle(nRow, m_xControl->get_toggle(nRow) == TRISTATE_TRUE ? TRISTATE_FALSE : TRISTATE_TRUE);
             ChangedVisibility(nRow);
         }
         return true;
diff --git a/cui/source/customize/cfg.cxx b/cui/source/customize/cfg.cxx
index 412ecf3fe5f6..e7cea5f48d97 100644
--- a/cui/source/customize/cfg.cxx
+++ b/cui/source/customize/cfg.cxx
@@ -926,6 +926,7 @@ SvxMenuEntriesListBox::SvxMenuEntriesListBox(std::unique_ptr<weld::TreeView> xCo
     , m_xDropDown(m_xControl->create_virtual_device())
     , m_pPage(pPg)
 {
+    m_xControl->enable_toggle_buttons(weld::ColumnToggleType::Check);
     CreateDropDown();
     m_xControl->connect_key_press(LINK(this, SvxMenuEntriesListBox, KeyInputHdl));
 }
@@ -1507,7 +1508,8 @@ int SvxConfigPage::AppendEntry(
 
 namespace
 {
-    template<typename itertype> void TmplInsertEntryIntoUI(SvxConfigEntry* pNewEntryData, weld::TreeView& rTreeView, itertype& rIter, int nStartCol, SaveInData* pSaveInData, VirtualDevice& rDropDown)
+    template<typename itertype> void TmplInsertEntryIntoUI(SvxConfigEntry* pNewEntryData, weld::TreeView& rTreeView, itertype& rIter, SaveInData* pSaveInData,
+                                                           VirtualDevice& rDropDown, bool bMenu)
     {
         OUString sId(OUString::number(reinterpret_cast<sal_Int64>(pNewEntryData)));
 
@@ -1515,37 +1517,37 @@ namespace
 
         if (pNewEntryData->IsSeparator())
         {
-            rTreeView.set_text(rIter, "----------------------------------", nStartCol + 1);
+            rTreeView.set_text(rIter, "----------------------------------", 0);
         }
         else
         {
             auto xImage = pSaveInData->GetImage(pNewEntryData->GetCommand());
             if (xImage.is())
-                rTreeView.set_image(rIter, xImage, nStartCol);
+                rTreeView.set_image(rIter, xImage, -1);
             OUString aName = SvxConfigPageHelper::stripHotKey( pNewEntryData->GetName() );
-            rTreeView.set_text(rIter, aName, nStartCol + 1);
+            rTreeView.set_text(rIter, aName, 0);
         }
 
-        if (nStartCol == 0)  // menus
+        if (bMenu)  // menus
         {
             if (pNewEntryData->IsPopup() || pNewEntryData->GetStyle() & css::ui::ItemStyle::DROP_DOWN)
-                rTreeView.set_image(rIter, rDropDown, nStartCol + 2);
+                rTreeView.set_image(rIter, rDropDown, 1);
             else
-                rTreeView.set_image(rIter, css::uno::Reference<css::graphic::XGraphic>(), nStartCol + 2);
+                rTreeView.set_image(rIter, css::uno::Reference<css::graphic::XGraphic>(), 1);
         }
     }
 }
 
-void SvxConfigPage::InsertEntryIntoUI(SvxConfigEntry* pNewEntryData, weld::TreeView& rTreeView, int nPos, int nStartCol)
+void SvxConfigPage::InsertEntryIntoUI(SvxConfigEntry* pNewEntryData, weld::TreeView& rTreeView, int nPos, bool bMenu)
 {
-    TmplInsertEntryIntoUI<int>(pNewEntryData, rTreeView, nPos, nStartCol,
-            GetSaveInData(), m_xContentsListBox->get_dropdown_image());
+    TmplInsertEntryIntoUI<int>(pNewEntryData, rTreeView, nPos, GetSaveInData(),
+                               m_xContentsListBox->get_dropdown_image(), bMenu);
 }
 
-void SvxConfigPage::InsertEntryIntoUI(SvxConfigEntry* pNewEntryData, weld::TreeView& rTreeView, weld::TreeIter& rIter, int nStartCol)
+void SvxConfigPage::InsertEntryIntoUI(SvxConfigEntry* pNewEntryData, weld::TreeView& rTreeView, weld::TreeIter& rIter, bool bMenu)
 {
-    TmplInsertEntryIntoUI<weld::TreeIter>(pNewEntryData, rTreeView, rIter, nStartCol,
-            GetSaveInData(), m_xContentsListBox->get_dropdown_image());
+    TmplInsertEntryIntoUI<weld::TreeIter>(pNewEntryData, rTreeView, rIter, GetSaveInData(),
+                                          m_xContentsListBox->get_dropdown_image(), bMenu);
 }
 
 IMPL_LINK(SvxConfigPage, MoveHdl, weld::Button&, rButton, void)
diff --git a/cui/source/dialogs/hangulhanjadlg.cxx b/cui/source/dialogs/hangulhanjadlg.cxx
index 34e93ed378dc..25fadc445c5b 100644
--- a/cui/source/dialogs/hangulhanjadlg.cxx
+++ b/cui/source/dialogs/hangulhanjadlg.cxx
@@ -761,7 +761,7 @@ namespace svx
 
             DBG_ASSERT( xDict.is(), "-HangulHanjaOptionsDialog::OkHdl(): someone is evaporated..." );
 
-            bool bActive = m_xDictsLB->get_toggle(n, 0) == TRISTATE_TRUE;
+            bool bActive = m_xDictsLB->get_toggle(n) == TRISTATE_TRUE;
             xDict->setActive( bActive );
             Reference< util::XFlushable > xFlush( xDict, uno::UNO_QUERY );
             if( xFlush.is() )
@@ -890,9 +890,7 @@ namespace svx
         m_xDictsLB->set_size_request(m_xDictsLB->get_approximate_digit_width() * 32,
                                      m_xDictsLB->get_height_rows(5));
 
-        std::vector<int> aWidths;
-        aWidths.push_back(m_xDictsLB->get_checkbox_column_width());
-        m_xDictsLB->set_column_fixed_widths(aWidths);
+        m_xDictsLB->enable_toggle_buttons(weld::ColumnToggleType::Check);
 
         m_xDictsLB->connect_changed( LINK( this, HangulHanjaOptionsDialog, DictsLB_SelectHdl ) );
 
@@ -927,8 +925,8 @@ namespace svx
     {
         m_xDictsLB->append();
         int nRow = m_xDictsLB->n_children() - 1;
-        m_xDictsLB->set_toggle(nRow, bChecked ? TRISTATE_TRUE : TRISTATE_FALSE, 0);
-        m_xDictsLB->set_text(nRow, rName, 1);
+        m_xDictsLB->set_toggle(nRow, bChecked ? TRISTATE_TRUE : TRISTATE_FALSE);
+        m_xDictsLB->set_text(nRow, rName, 0);
         m_xDictsLB->set_id(nRow, rName);
     }
 
diff --git a/cui/source/dialogs/multipat.cxx b/cui/source/dialogs/multipat.cxx
index bd121578c3bb..249a116b1d5e 100644
--- a/cui/source/dialogs/multipat.cxx
+++ b/cui/source/dialogs/multipat.cxx
@@ -57,7 +57,7 @@ IMPL_LINK_NOARG(SvxPathSelectDialog, SelectHdl_Impl, weld::TreeView&, void)
 void SvxMultiPathDialog::HandleEntryChecked(int nRow)
 {
     m_xRadioLB->select(nRow);
-    bool bChecked = m_xRadioLB->get_toggle(nRow, 0) == TRISTATE_TRUE;
+    bool bChecked = m_xRadioLB->get_toggle(nRow) == TRISTATE_TRUE;
     if (bChecked)
     {
         // we have radio button behavior -> so uncheck the other entries
@@ -65,7 +65,7 @@ void SvxMultiPathDialog::HandleEntryChecked(int nRow)
         for (int i = 0; i < nCount; ++i)
         {
             if (i != nRow)
-                m_xRadioLB->set_toggle(i, TRISTATE_FALSE, 0);
+                m_xRadioLB->set_toggle(i, TRISTATE_FALSE);
         }
     }
 }
@@ -79,8 +79,8 @@ void SvxMultiPathDialog::AppendEntry(const OUString& rText, const OUString& rId)
 {
     m_xRadioLB->append();
     const int nRow = m_xRadioLB->n_children() - 1;
-    m_xRadioLB->set_toggle(nRow, TRISTATE_FALSE, 0);
-    m_xRadioLB->set_text(nRow, rText, 1);
+    m_xRadioLB->set_toggle(nRow, TRISTATE_FALSE);
+    m_xRadioLB->set_text(nRow, rText, 0);
     m_xRadioLB->set_id(nRow, rId);
 }
 
@@ -147,7 +147,7 @@ IMPL_LINK_NOARG(SvxPathSelectDialog, AddHdl_Impl, weld::Button&, void)
 IMPL_LINK_NOARG(SvxMultiPathDialog, DelHdl_Impl, weld::Button&, void)
 {
     int nPos = m_xRadioLB->get_selected_index();
-    bool bChecked = m_xRadioLB->get_toggle(nPos, 0) == TRISTATE_TRUE;
+    bool bChecked = m_xRadioLB->get_toggle(nPos) == TRISTATE_TRUE;
     m_xRadioLB->remove(nPos);
     int nCnt = m_xRadioLB->n_children();
     if (nCnt)
@@ -158,7 +158,7 @@ IMPL_LINK_NOARG(SvxMultiPathDialog, DelHdl_Impl, weld::Button&, void)
             nPos = nCnt;
         if (bChecked)
         {
-            m_xRadioLB->set_toggle(nPos, TRISTATE_TRUE, 0);
+            m_xRadioLB->set_toggle(nPos, TRISTATE_TRUE);
             HandleEntryChecked(nPos);
         }
         m_xRadioLB->select(nPos);
@@ -193,13 +193,10 @@ SvxMultiPathDialog::SvxMultiPathDialog(weld::Window* pParent)
 {
     m_xRadioLB->set_size_request(m_xRadioLB->get_approximate_digit_width() * 60,
                                  m_xRadioLB->get_text_height() * 10);
-
-    std::vector<int> aWidths;
-    aWidths.push_back(m_xRadioLB->get_checkbox_column_width());
-    m_xRadioLB->set_column_fixed_widths(aWidths);
-    m_xRadioLB->set_toggle_columns_as_radio();
+    m_xRadioLB->enable_toggle_buttons(weld::ColumnToggleType::Radio);
     m_xRadioLB->connect_toggled(LINK(this, SvxMultiPathDialog, CheckHdl_Impl));
     m_xRadioLB->connect_changed(LINK(this, SvxMultiPathDialog, SelectHdl_Impl));
+
     m_xAddBtn->connect_clicked(LINK(this, SvxMultiPathDialog, AddHdl_Impl));
     m_xDelBtn->connect_clicked(LINK(this, SvxMultiPathDialog, DelHdl_Impl));
 
@@ -234,7 +231,7 @@ OUString SvxMultiPathDialog::GetPath() const
     OUString sWritable;
     for (int i = 0, nCount = m_xRadioLB->n_children(); i < nCount; ++i)
     {
-        if (m_xRadioLB->get_toggle(i, 0) == TRISTATE_TRUE)
+        if (m_xRadioLB->get_toggle(i) == TRISTATE_TRUE)
             sWritable = m_xRadioLB->get_id(i);
         else
         {
@@ -286,7 +283,7 @@ void SvxMultiPathDialog::SetPath( const OUString& rPath )
 
         if (nCount)
         {
-            m_xRadioLB->set_toggle(nCount - 1, TRISTATE_TRUE, 0);
+            m_xRadioLB->set_toggle(nCount - 1, TRISTATE_TRUE);
             HandleEntryChecked(nCount - 1);
         }
     }
diff --git a/cui/source/dialogs/srchxtra.cxx b/cui/source/dialogs/srchxtra.cxx
index 2a68293f00cf..513501700970 100644
--- a/cui/source/dialogs/srchxtra.cxx
+++ b/cui/source/dialogs/srchxtra.cxx
@@ -114,9 +114,7 @@ SvxSearchAttributeDialog::SvxSearchAttributeDialog(weld::Window* pParent,
     m_xAttrLB->set_size_request(m_xAttrLB->get_approximate_digit_width() * 50,
                                 m_xAttrLB->get_height_rows(12));
 
-    std::vector<int> aWidths;
-    aWidths.push_back(m_xAttrLB->get_checkbox_column_width());
-    m_xAttrLB->set_column_fixed_widths(aWidths);
+    m_xAttrLB->enable_toggle_buttons(weld::ColumnToggleType::Check);
 
     m_xOKBtn->connect_clicked(LINK( this, SvxSearchAttributeDialog, OKHdl));
 
@@ -150,8 +148,8 @@ SvxSearchAttributeDialog::SvxSearchAttributeDialog(weld::Window* pParent,
             {
                 m_xAttrLB->append();
                 const int nRow = m_xAttrLB->n_children() - 1;
-                m_xAttrLB->set_toggle(nRow, bChecked ? TRISTATE_TRUE : TRISTATE_FALSE, 0);
-                m_xAttrLB->set_text(nRow, SvxAttrNameTable::GetString(nId), 1);
+                m_xAttrLB->set_toggle(nRow, bChecked ? TRISTATE_TRUE : TRISTATE_FALSE);
+                m_xAttrLB->set_text(nRow, SvxAttrNameTable::GetString(nId), 0);
                 m_xAttrLB->set_id(nRow, OUString::number(nSlot));
             }
             else
@@ -176,7 +174,7 @@ IMPL_LINK_NOARG(SvxSearchAttributeDialog, OKHdl, weld::Button&, void)
     for (int i = 0, nCount = m_xAttrLB->n_children(); i < nCount; ++i)
     {
         sal_uInt16 nSlot = m_xAttrLB->get_id(i).toUInt32();
-        bool bChecked = m_xAttrLB->get_toggle(i, 0) == TRISTATE_TRUE;
+        bool bChecked = m_xAttrLB->get_toggle(i) == TRISTATE_TRUE;
 
         sal_uInt16 j;
         for ( j = rList.Count(); j; )
diff --git a/cui/source/inc/cfg.hxx b/cui/source/inc/cfg.hxx
index 7b9fe841620a..afd25c1238a3 100644
--- a/cui/source/inc/cfg.hxx
+++ b/cui/source/inc/cfg.hxx
@@ -338,7 +338,7 @@ public:
     void set_dropdown(int row, int col) { m_xControl->set_image(row, *m_xDropDown, col); }
     void set_id(int row, const OUString& rId) { m_xControl->set_id(row, rId); }
     void clear() { m_xControl->clear(); } //need frees ?
-    void set_toggle(int row, TriState eState, int col) { m_xControl->set_toggle(row, eState, col); }
+    void set_toggle(int row, TriState eState) { m_xControl->set_toggle(row, eState); }
     void scroll_to_row(int pos) { m_xControl->scroll_to_row(pos); }
     void select(int pos) { m_xControl->select(pos); }
 
@@ -455,15 +455,14 @@ protected:
 
     void                InsertEntryIntoUI(SvxConfigEntry* pNewEntryData,
                                           weld::TreeView& rTreeView, int nPos,
-                                          int nStartCol);
+                                          bool bMenu = false);
     void                InsertEntryIntoUI(SvxConfigEntry* pNewEntryData,
                                           weld::TreeView& rTreeView, weld::TreeIter& rIter,
-                                          int nStartCol);
+                                          bool bMenu = false);
 
     void InsertEntryIntoNotebookbarTabUI(const OUString& sClassId, const OUString& sUIItemId,
                                          const OUString& sUIItemCommand,
-                                         weld::TreeView& rTreeView, weld::TreeIter& rIter,
-                                         int nStartCol);
+                                         weld::TreeView& rTreeView, weld::TreeIter& rIter);
 
     SvxEntries*     FindParentForChild( SvxEntries* pParentEntries,
                                         SvxConfigEntry* pChildData );
diff --git a/cui/source/options/certpath.cxx b/cui/source/options/certpath.cxx
index 3b491dadaf89..630f5e0710fe 100644
--- a/cui/source/options/certpath.cxx
+++ b/cui/source/options/certpath.cxx
@@ -29,18 +29,12 @@ CertPathDialog::CertPathDialog(weld::Window* pParent)
     , m_sAddDialogText(m_xBuilder->weld_label("certdir")->get_label())
     , m_sManualLabel(m_xBuilder->weld_label("manual")->get_label())
 {
-    // these are just used to get translated strings
-
     m_xCertPathList->set_size_request(m_xCertPathList->get_approximate_digit_width() * 70,
                                       m_xCertPathList->get_height_rows(6));
 
-    std::vector<int> aWidths;
-    aWidths.push_back(m_xCertPathList->get_checkbox_column_width());
-    aWidths.push_back(m_xCertPathList->get_approximate_digit_width() * 20);
-    m_xCertPathList->set_column_fixed_widths(aWidths);
-    m_xCertPathList->set_toggle_columns_as_radio();
-
+    m_xCertPathList->enable_toggle_buttons(weld::ColumnToggleType::Radio);
     m_xCertPathList->connect_toggled(LINK(this, CertPathDialog, CheckHdl_Impl));
+
     m_xManualButton->connect_clicked( LINK( this, CertPathDialog, ManualHdl_Impl ) );
     m_xOKButton->connect_clicked( LINK( this, CertPathDialog, OKHdl_Impl ) );
 
@@ -159,7 +153,7 @@ IMPL_LINK(CertPathDialog, CheckHdl_Impl, const weld::TreeView::iter_col&, rRowCo
 
 void CertPathDialog::HandleEntryChecked(int nRow)
 {
-    const bool bChecked = m_xCertPathList->get_toggle(nRow, 0) == TRISTATE_TRUE;
+    const bool bChecked = m_xCertPathList->get_toggle(nRow) == TRISTATE_TRUE;
     if (bChecked)
     {
         // we have radio button behavior -> so uncheck the other entries
@@ -168,7 +162,7 @@ void CertPathDialog::HandleEntryChecked(int nRow)
         for (int i = 0; i < nCount; ++i)
         {
             if (i != nRow)
-                m_xCertPathList->set_toggle(i, TRISTATE_FALSE, 0);
+                m_xCertPathList->set_toggle(i, TRISTATE_FALSE);
         }
     }
 }
@@ -182,12 +176,12 @@ void CertPathDialog::AddCertPath(const OUString &rProfile, const OUString &rPath
         //already exists, just select the original one
         if (sCertPath == rPath)
         {
-            const bool bWantSelected = bSelect || m_xCertPathList->get_toggle(i, 0);
-            m_xCertPathList->set_toggle(i, bWantSelected ? TRISTATE_TRUE : TRISTATE_FALSE, 0);
+            const bool bWantSelected = bSelect || m_xCertPathList->get_toggle(i);
+            m_xCertPathList->set_toggle(i, bWantSelected ? TRISTATE_TRUE : TRISTATE_FALSE);
             HandleEntryChecked(i);
             return;
         }
-        else if (m_xCertPathList->get_text(i, 1) == rProfile)
+        else if (m_xCertPathList->get_text(i, 0) == rProfile)
             nRow = i;
     }
 
@@ -199,9 +193,9 @@ void CertPathDialog::AddCertPath(const OUString &rProfile, const OUString &rPath
         m_xCertPathList->append();
         nRow = m_xCertPathList->n_children() - 1;
     }
-    m_xCertPathList->set_toggle(nRow, bSelect ? TRISTATE_TRUE : TRISTATE_FALSE, 0);
-    m_xCertPathList->set_text(nRow, rProfile, 1);
-    m_xCertPathList->set_text(nRow, rPath, 2);
+    m_xCertPathList->set_toggle(nRow, bSelect ? TRISTATE_TRUE : TRISTATE_FALSE);
+    m_xCertPathList->set_text(nRow, rProfile, 0);
+    m_xCertPathList->set_text(nRow, rPath, 1);
     m_xCertPathList->set_id(nRow, rPath);
     HandleEntryChecked(nRow);
 }
diff --git a/cui/source/options/fontsubs.cxx b/cui/source/options/fontsubs.cxx
index d6e724fa4a95..d0bb9ffac941 100644
--- a/cui/source/options/fontsubs.cxx
+++ b/cui/source/options/fontsubs.cxx
@@ -54,14 +54,15 @@ SvxFontSubstTabPage::SvxFontSubstTabPage(weld::Container* pPage, weld::DialogCon
 
     m_xCheckLB->set_size_request(m_xCheckLB->get_approximate_digit_width() * 60,
                                  m_xCheckLB->get_height_rows(8));
+    m_xCheckLB->enable_toggle_buttons(weld::ColumnToggleType::Check);
     m_xCheckLB->set_help_id(HID_OFA_FONT_SUBST_CLB);
     m_xCheckLB->set_selection_mode(SelectionMode::Multiple);
 
     setColSizes(m_xCheckLB->get_size_request());
     m_xCheckLB->connect_size_allocate(LINK(this, SvxFontSubstTabPage, ResizeHdl));
 
+    m_xCheckLB->set_centered_column(0);
     m_xCheckLB->set_centered_column(1);
-    m_xCheckLB->set_centered_column(2);
 
     Link<weld::ComboBox&,void> aLink2(LINK(this, SvxFontSubstTabPage, SelectComboBoxHdl));
     Link<weld::Button&,void> aClickLink(LINK(this, SvxFontSubstTabPage, ClickHdl));
@@ -114,15 +115,14 @@ IMPL_LINK(SvxFontSubstTabPage, HeaderBarClick, int, nColumn, void)
 
 void SvxFontSubstTabPage::setColSizes(const Size& rSize)
 {
-    int nW1 = m_xCheckLB->get_pixel_size(m_xCheckLB->get_column_title(3)).Width();
-    int nW2 = m_xCheckLB->get_pixel_size(m_xCheckLB->get_column_title(4)).Width();
+    int nW1 = m_xCheckLB->get_pixel_size(m_xCheckLB->get_column_title(2)).Width();
+    int nW2 = m_xCheckLB->get_pixel_size(m_xCheckLB->get_column_title(3)).Width();
     int nMax = std::max( nW1, nW2 ) + 6; // width of the longest header + a little offset
     int nMin = m_xCheckLB->get_checkbox_column_width();
     nMax = std::max(nMax, nMin);
     const int nDoubleMax = 2*nMax;
     const int nRest = rSize.Width() - nDoubleMax;
     std::vector<int> aWidths;
-    aWidths.push_back(1);   // just abandon the built-in column for checkbuttons and use another
     aWidths.push_back(nMax);
     aWidths.push_back(nMax);
     aWidths.push_back(nRest/2);
@@ -152,10 +152,10 @@ bool  SvxFontSubstTabPage::FillItemSet( SfxItemSet* )
 
     m_xCheckLB->all_foreach([this](weld::TreeIter& rIter) {
         SubstitutionStruct aAdd;
-        aAdd.sFont = m_xCheckLB->get_text(rIter, 3);
-        aAdd.sReplaceBy = m_xCheckLB->get_text(rIter, 4);
-        aAdd.bReplaceAlways = m_xCheckLB->get_toggle(rIter, 1);
-        aAdd.bReplaceOnScreenOnly = m_xCheckLB->get_toggle(rIter, 2);
+        aAdd.sFont = m_xCheckLB->get_text(rIter, 2);
+        aAdd.sReplaceBy = m_xCheckLB->get_text(rIter, 3);
+        aAdd.bReplaceAlways = m_xCheckLB->get_toggle(rIter, 0);
+        aAdd.bReplaceOnScreenOnly = m_xCheckLB->get_toggle(rIter, 1);
         m_xConfig->AddSubstitution(aAdd);
         return false;
     });
@@ -215,17 +215,17 @@ void  SvxFontSubstTabPage::Reset( const SfxItemSet* )
     {
         m_xCheckLB->append(xIter.get());
         const SubstitutionStruct* pSubs = m_xConfig->GetSubstitution(i);
-        m_xCheckLB->set_toggle(*xIter, pSubs->bReplaceAlways ? TRISTATE_TRUE : TRISTATE_FALSE, 1);
-        m_xCheckLB->set_toggle(*xIter, pSubs->bReplaceOnScreenOnly ? TRISTATE_TRUE : TRISTATE_FALSE, 2);
-        m_xCheckLB->set_text(*xIter, pSubs->sFont, 3);
-        m_xCheckLB->set_text(*xIter, pSubs->sReplaceBy, 4);
+        m_xCheckLB->set_toggle(*xIter, pSubs->bReplaceAlways ? TRISTATE_TRUE : TRISTATE_FALSE, 0);
+        m_xCheckLB->set_toggle(*xIter, pSubs->bReplaceOnScreenOnly ? TRISTATE_TRUE : TRISTATE_FALSE, 1);
+        m_xCheckLB->set_text(*xIter, pSubs->sFont, 2);
+        m_xCheckLB->set_text(*xIter, pSubs->sReplaceBy, 3);
     }
 
     m_xCheckLB->thaw();
 
     m_xCheckLB->make_sorted();
-    m_xCheckLB->set_sort_column(3);
-    m_xCheckLB->set_sort_indicator(TRISTATE_TRUE, 3);
+    m_xCheckLB->set_sort_column(2);
+    m_xCheckLB->set_sort_indicator(TRISTATE_TRUE, 2);
 
     CheckEnable();
 
@@ -297,7 +297,7 @@ void SvxFontSubstTabPage::SelectHdl(const weld::Widget* pWin)
             if (nPos != -1)
             {
                 // change entry
-                m_xCheckLB->set_text(nPos, m_xFont2CB->get_active_text(), 4);
+                m_xCheckLB->set_text(nPos, m_xFont2CB->get_active_text(), 3);
                 m_xCheckLB->select(nPos);
             }
             else
@@ -308,10 +308,10 @@ void SvxFontSubstTabPage::SelectHdl(const weld::Widget* pWin)
 
                 std::unique_ptr<weld::TreeIter> xIter(m_xCheckLB->make_iterator());
                 m_xCheckLB->append(xIter.get());
+                m_xCheckLB->set_toggle(*xIter, TRISTATE_FALSE, 0);
                 m_xCheckLB->set_toggle(*xIter, TRISTATE_FALSE, 1);
-                m_xCheckLB->set_toggle(*xIter, TRISTATE_FALSE, 2);
-                m_xCheckLB->set_text(*xIter, sFont1, 3);
-                m_xCheckLB->set_text(*xIter, sFont2, 4);
+                m_xCheckLB->set_text(*xIter, sFont1, 2);
+                m_xCheckLB->set_text(*xIter, sFont2, 3);
                 m_xCheckLB->select(*xIter);
             }
         }
diff --git a/cui/source/options/optjava.cxx b/cui/source/options/optjava.cxx
index d9a54e0f250d..16d30cf5bdce 100644
--- a/cui/source/options/optjava.cxx
+++ b/cui/source/options/optjava.cxx
@@ -88,15 +88,16 @@ SvxJavaOptionsPage::SvxJavaOptionsPage(weld::Container* pPage, weld::DialogContr
     m_xJavaList->set_size_request(m_xJavaList->get_approximate_digit_width() * 30,
                                   m_xJavaList->get_height_rows(8));
 
+    m_xJavaList->enable_toggle_buttons(weld::ColumnToggleType::Radio);
+    m_xJavaList->connect_toggled( LINK( this, SvxJavaOptionsPage, CheckHdl_Impl ) );
+    m_xJavaList->connect_changed( LINK( this, SvxJavaOptionsPage, SelectHdl_Impl ) );
+
     std::vector<int> aWidths;
     aWidths.push_back(m_xJavaList->get_checkbox_column_width());
     aWidths.push_back(m_xJavaList->get_pixel_size("Sun Microsystems Inc.").Width());
     m_xJavaList->set_column_fixed_widths(aWidths);
-    m_xJavaList->set_toggle_columns_as_radio();
 
     m_xJavaEnableCB->connect_clicked( LINK( this, SvxJavaOptionsPage, EnableHdl_Impl ) );
-    m_xJavaList->connect_toggled( LINK( this, SvxJavaOptionsPage, CheckHdl_Impl ) );
-    m_xJavaList->connect_changed( LINK( this, SvxJavaOptionsPage, SelectHdl_Impl ) );
     m_xAddBtn->connect_clicked( LINK( this, SvxJavaOptionsPage, AddHdl_Impl ) );
     m_xParameterBtn->connect_clicked( LINK( this, SvxJavaOptionsPage, ParameterHdl_Impl ) );
     m_xClassPathBtn->connect_clicked( LINK( this, SvxJavaOptionsPage, ClassPathHdl_Impl ) );
diff --git a/cui/source/options/optlingu.cxx b/cui/source/options/optlingu.cxx
index da4aeb831603..c925daba276d 100644
--- a/cui/source/options/optlingu.cxx
+++ b/cui/source/options/optlingu.cxx
@@ -849,12 +849,9 @@ SvxLinguTabPage::SvxLinguTabPage(weld::Container* pPage, weld::DialogController*
     , m_xLinguOptionsEditPB(m_xBuilder->weld_button("linguoptionsedit"))
     , m_xMoreDictsLink(m_xBuilder->weld_link_button("moredictslink"))
 {
-    std::vector<int> aWidths;
-    aWidths.push_back(m_xLinguModulesCLB->get_checkbox_column_width());
-
-    m_xLinguModulesCLB->set_column_fixed_widths(aWidths);
-    m_xLinguDicsCLB->set_column_fixed_widths(aWidths);
-    m_xLinguOptionsCLB->set_column_fixed_widths(aWidths);
+    m_xLinguModulesCLB->enable_toggle_buttons(weld::ColumnToggleType::Check);
+    m_xLinguDicsCLB->enable_toggle_buttons(weld::ColumnToggleType::Check);
+    m_xLinguOptionsCLB->enable_toggle_buttons(weld::ColumnToggleType::Check);
 
     m_xLinguModulesCLB->connect_changed( LINK( this, SvxLinguTabPage, SelectHdl_Impl ));
     m_xLinguModulesCLB->connect_row_activated(LINK(this, SvxLinguTabPage, BoxDoubleClickHdl_Impl));
@@ -994,7 +991,7 @@ bool SvxLinguTabPage::FillItemSet( SfxItemSet* rCoreSet )
         DicUserData aData(m_xLinguDicsCLB->get_id(i).toUInt32());
         if (aData.GetEntryId() < nDics)
         {
-            bool bChecked = m_xLinguDicsCLB->get_toggle(i, 0) == TRISTATE_TRUE;
+            bool bChecked = m_xLinguDicsCLB->get_toggle(i) == TRISTATE_TRUE;
             uno::Reference< XDictionary > xDic( aDics.getConstArray()[ i ] );
             if (xDic.is())
             {
@@ -1027,7 +1024,7 @@ bool SvxLinguTabPage::FillItemSet( SfxItemSet* rCoreSet )
         Any aAny;
         if (aData.IsCheckable())
         {
-            bool bChecked = m_xLinguOptionsCLB->get_toggle(j, 0) == TRISTATE_TRUE;
+            bool bChecked = m_xLinguOptionsCLB->get_toggle(j) == TRISTATE_TRUE;
             aAny <<= bChecked;
         }
         else if (aData.HasNumericValue())
@@ -1052,7 +1049,7 @@ bool SvxLinguTabPage::FillItemSet( SfxItemSet* rCoreSet )
     }
 
     // automatic spell checking
-    bool bNewAutoCheck = m_xLinguOptionsCLB->get_toggle(EID_SPELL_AUTO, 0) == TRISTATE_TRUE;
+    bool bNewAutoCheck = m_xLinguOptionsCLB->get_toggle(EID_SPELL_AUTO) == TRISTATE_TRUE;
     const SfxPoolItem* pOld = GetOldItem( *rCoreSet, SID_AUTOSPELL_CHECK );
     if ( !pOld || static_cast<const SfxBoolItem*>(pOld)->GetValue() != bNewAutoCheck )
     {
@@ -1096,8 +1093,8 @@ void SvxLinguTabPage::AddDicBoxEntry(
     int nEntry = m_xLinguDicsCLB->n_children() - 1;
     DicUserData aData( GetDicUserData( rxDic, nIdx ) );
     m_xLinguDicsCLB->set_id(nEntry, OUString::number(aData.GetUserData()));
-    m_xLinguDicsCLB->set_toggle(nEntry, aData.IsChecked() ? TRISTATE_TRUE : TRISTATE_FALSE, 0);
-    m_xLinguDicsCLB->set_text(nEntry, aTxt, 1);  // append at end
+    m_xLinguDicsCLB->set_toggle(nEntry, aData.IsChecked() ? TRISTATE_TRUE : TRISTATE_FALSE);
+    m_xLinguDicsCLB->set_text(nEntry, aTxt, 0);  // append at end
 
     m_xLinguDicsCLB->thaw();
 }
@@ -1139,8 +1136,8 @@ void SvxLinguTabPage::UpdateModulesBox_Impl()
         const ServiceInfo_Impl &rInfo = rAllDispSrvcArr[i];
         m_xLinguModulesCLB->append();
         m_xLinguModulesCLB->set_id(i, OUString::number(reinterpret_cast<sal_Int64>(&rInfo)));
-        m_xLinguModulesCLB->set_toggle(i, rInfo.bConfigured ? TRISTATE_TRUE : TRISTATE_FALSE, 0);
-        m_xLinguModulesCLB->set_text(i, rInfo.sDisplayName, 1);
+        m_xLinguModulesCLB->set_toggle(i, rInfo.bConfigured ? TRISTATE_TRUE : TRISTATE_FALSE);
+        m_xLinguModulesCLB->set_text(i, rInfo.sDisplayName, 0);
     }
     if (nDispSrvcCount)
     {
@@ -1179,8 +1176,8 @@ void SvxLinguTabPage::Reset( const SfxItemSet* rSet )
     if (pItem)
         bVal = static_cast<const SfxBoolItem *>(pItem)->GetValue();
     nUserData = OptionsUserData( EID_SPELL_AUTO, false, 0, true, bVal).GetUserData();
-    m_xLinguOptionsCLB->set_toggle(nEntry, bVal ? TRISTATE_TRUE : TRISTATE_FALSE, 0);
-    m_xLinguOptionsCLB->set_text(nEntry, sSpellAuto, 1);
+    m_xLinguOptionsCLB->set_toggle(nEntry, bVal ? TRISTATE_TRUE : TRISTATE_FALSE);
+    m_xLinguOptionsCLB->set_text(nEntry, sSpellAuto, 0);
     m_xLinguOptionsCLB->set_id(nEntry, OUString::number(nUserData));
 
     m_xLinguOptionsCLB->append();
@@ -1188,8 +1185,8 @@ void SvxLinguTabPage::Reset( const SfxItemSet* rSet )
 
     aLngCfg.GetProperty( UPN_IS_GRAMMAR_AUTO ) >>= bVal;
     nUserData = OptionsUserData( EID_GRAMMAR_AUTO, false, 0, true, bVal).GetUserData();
-    m_xLinguOptionsCLB->set_toggle(nEntry, bVal ? TRISTATE_TRUE : TRISTATE_FALSE, 0);
-    m_xLinguOptionsCLB->set_text(nEntry, sGrammarAuto, 1);
+    m_xLinguOptionsCLB->set_toggle(nEntry, bVal ? TRISTATE_TRUE : TRISTATE_FALSE);
+    m_xLinguOptionsCLB->set_text(nEntry, sGrammarAuto, 0);
     m_xLinguOptionsCLB->set_id(nEntry, OUString::number(nUserData));
 
     m_xLinguOptionsCLB->append();
@@ -1197,8 +1194,8 @@ void SvxLinguTabPage::Reset( const SfxItemSet* rSet )
 
     aLngCfg.GetProperty( UPN_IS_SPELL_UPPER_CASE ) >>= bVal;
     nUserData = OptionsUserData( EID_CAPITAL_WORDS, false, 0, true, bVal).GetUserData();
-    m_xLinguOptionsCLB->set_toggle(nEntry, bVal ? TRISTATE_TRUE : TRISTATE_FALSE, 0);
-    m_xLinguOptionsCLB->set_text(nEntry, sCapitalWords, 1);
+    m_xLinguOptionsCLB->set_toggle(nEntry, bVal ? TRISTATE_TRUE : TRISTATE_FALSE);
+    m_xLinguOptionsCLB->set_text(nEntry, sCapitalWords, 0);
     m_xLinguOptionsCLB->set_id(nEntry, OUString::number(nUserData));
 
     m_xLinguOptionsCLB->append();
@@ -1206,8 +1203,8 @@ void SvxLinguTabPage::Reset( const SfxItemSet* rSet )
 
     aLngCfg.GetProperty( UPN_IS_SPELL_WITH_DIGITS ) >>= bVal;
     nUserData = OptionsUserData( EID_WORDS_WITH_DIGITS, false, 0, true, bVal).GetUserData();
-    m_xLinguOptionsCLB->set_toggle(nEntry, bVal ? TRISTATE_TRUE : TRISTATE_FALSE, 0);
-    m_xLinguOptionsCLB->set_text(nEntry, sWordsWithDigits, 1);
+    m_xLinguOptionsCLB->set_toggle(nEntry, bVal ? TRISTATE_TRUE : TRISTATE_FALSE);
+    m_xLinguOptionsCLB->set_text(nEntry, sWordsWithDigits, 0);
     m_xLinguOptionsCLB->set_id(nEntry, OUString::number(nUserData));
 
     m_xLinguOptionsCLB->append();
@@ -1215,8 +1212,8 @@ void SvxLinguTabPage::Reset( const SfxItemSet* rSet )
 
     aLngCfg.GetProperty( UPN_IS_SPELL_SPECIAL ) >>= bVal;
     nUserData = OptionsUserData( EID_SPELL_SPECIAL, false, 0, true, bVal).GetUserData();
-    m_xLinguOptionsCLB->set_toggle(nEntry, bVal ? TRISTATE_TRUE : TRISTATE_FALSE, 0);
-    m_xLinguOptionsCLB->set_text(nEntry, sSpellSpecial, 1);
+    m_xLinguOptionsCLB->set_toggle(nEntry, bVal ? TRISTATE_TRUE : TRISTATE_FALSE);
+    m_xLinguOptionsCLB->set_text(nEntry, sSpellSpecial, 0);
     m_xLinguOptionsCLB->set_id(nEntry, OUString::number(nUserData));
 
     m_xLinguOptionsCLB->append();
@@ -1224,7 +1221,7 @@ void SvxLinguTabPage::Reset( const SfxItemSet* rSet )
 
     aLngCfg.GetProperty( UPN_HYPH_MIN_WORD_LENGTH ) >>= nVal;
     nUserData = OptionsUserData( EID_NUM_MIN_WORDLEN, true, static_cast<sal_uInt16>(nVal), false, false).GetUserData();
-    m_xLinguOptionsCLB->set_text(nEntry, sNumMinWordlen + " " + OUString::number(nVal), 1);
+    m_xLinguOptionsCLB->set_text(nEntry, sNumMinWordlen + " " + OUString::number(nVal), 0);
     m_xLinguOptionsCLB->set_id(nEntry, OUString::number(nUserData));
     nUPN_HYPH_MIN_WORD_LENGTH = nEntry;
 
@@ -1240,7 +1237,7 @@ void SvxLinguTabPage::Reset( const SfxItemSet* rSet )
     if (pHyp)
         nVal = static_cast<sal_Int16>(pHyp->GetMinLead());
     nUserData = OptionsUserData( EID_NUM_PRE_BREAK, true, static_cast<sal_uInt16>(nVal), false, false).GetUserData();
-    m_xLinguOptionsCLB->set_text(nEntry, sNumPreBreak + " " + OUString::number(nVal), 1);
+    m_xLinguOptionsCLB->set_text(nEntry, sNumPreBreak + " " + OUString::number(nVal), 0);
     m_xLinguOptionsCLB->set_id(nEntry, OUString::number(nUserData));
     nUPN_HYPH_MIN_LEADING = nEntry;
 
@@ -1251,7 +1248,7 @@ void SvxLinguTabPage::Reset( const SfxItemSet* rSet )
     if (pHyp)
         nVal = static_cast<sal_Int16>(pHyp->GetMinTrail());
     nUserData = OptionsUserData( EID_NUM_POST_BREAK, true, static_cast<sal_uInt16>(nVal), false, false).GetUserData();
-    m_xLinguOptionsCLB->set_text(nEntry, sNumPostBreak + " " + OUString::number(nVal), 1);
+    m_xLinguOptionsCLB->set_text(nEntry, sNumPostBreak + " " + OUString::number(nVal), 0);
     m_xLinguOptionsCLB->set_id(nEntry, OUString::number(nUserData));
     nUPN_HYPH_MIN_TRAILING = nEntry;
 
@@ -1260,8 +1257,8 @@ void SvxLinguTabPage::Reset( const SfxItemSet* rSet )
 
     aLngCfg.GetProperty( UPN_IS_HYPH_AUTO ) >>= bVal;
     nUserData = OptionsUserData( EID_HYPH_AUTO, false, 0, true, bVal).GetUserData();
-    m_xLinguOptionsCLB->set_toggle(nEntry, bVal ? TRISTATE_TRUE : TRISTATE_FALSE, 0);
-    m_xLinguOptionsCLB->set_text(nEntry, sHyphAuto, 1);
+    m_xLinguOptionsCLB->set_toggle(nEntry, bVal ? TRISTATE_TRUE : TRISTATE_FALSE);
+    m_xLinguOptionsCLB->set_text(nEntry, sHyphAuto, 0);
     m_xLinguOptionsCLB->set_id(nEntry, OUString::number(nUserData));
 
     m_xLinguOptionsCLB->append();
@@ -1269,8 +1266,8 @@ void SvxLinguTabPage::Reset( const SfxItemSet* rSet )
 
     aLngCfg.GetProperty( UPN_IS_HYPH_SPECIAL ) >>= bVal;
     nUserData = OptionsUserData( EID_HYPH_SPECIAL, false, 0, true, bVal).GetUserData();
-    m_xLinguOptionsCLB->set_toggle(nEntry, bVal ? TRISTATE_TRUE : TRISTATE_FALSE, 0);
-    m_xLinguOptionsCLB->set_text(nEntry, sHyphSpecial, 1);
+    m_xLinguOptionsCLB->set_toggle(nEntry, bVal ? TRISTATE_TRUE : TRISTATE_FALSE);
+    m_xLinguOptionsCLB->set_text(nEntry, sHyphSpecial, 0);
     m_xLinguOptionsCLB->set_id(nEntry, OUString::number(nUserData));
 
     m_xLinguOptionsCLB->thaw();
@@ -1312,15 +1309,15 @@ IMPL_LINK(SvxLinguTabPage, ModulesBoxCheckButtonHdl_Impl, const weld::TreeView::
 {
     if (!pLinguData)
         return;
-    pLinguData->Reconfigure(m_xLinguModulesCLB->get_text(rRowCol.first, 1),
-                            m_xLinguModulesCLB->get_toggle(rRowCol.first, 0) == TRISTATE_TRUE);
+    pLinguData->Reconfigure(m_xLinguModulesCLB->get_text(rRowCol.first),
+                            m_xLinguModulesCLB->get_toggle(rRowCol.first) == TRISTATE_TRUE);
 }
 
 IMPL_LINK(SvxLinguTabPage, DicsBoxCheckButtonHdl_Impl, const weld::TreeView::iter_col&, rRowCol, void)
 {
     const uno::Reference<XDictionary> &rDic = aDics.getConstArray()[m_xLinguDicsCLB->get_iter_index_in_parent(rRowCol.first)];
     if (LinguMgr::GetIgnoreAllList() == rDic)
-        m_xLinguDicsCLB->set_toggle(rRowCol.first, TRISTATE_TRUE, 0);
+        m_xLinguDicsCLB->set_toggle(rRowCol.first, TRISTATE_TRUE);
 }
 
 IMPL_LINK(SvxLinguTabPage, ClickHdl_Impl, weld::Button&, rBtn, void)
@@ -1473,11 +1470,11 @@ IMPL_LINK(SvxLinguTabPage, ClickHdl_Impl, weld::Button&, rBtn, void)
                         aData.SetNumericValue( static_cast<sal_uInt8>(nVal) ); //! sets IsModified !
                         m_xLinguOptionsCLB->set_id(nEntry, OUString::number(aData.GetUserData()));
                         if (nEntry == nUPN_HYPH_MIN_WORD_LENGTH)
-                            m_xLinguOptionsCLB->set_text(nEntry, sNumMinWordlen + " " + OUString::number(nVal), 1);
+                            m_xLinguOptionsCLB->set_text(nEntry, sNumMinWordlen + " " + OUString::number(nVal), 0);
                         else if (nEntry == nUPN_HYPH_MIN_LEADING)
-                            m_xLinguOptionsCLB->set_text(nEntry, sNumPreBreak + " " + OUString::number(nVal), 1);
+                            m_xLinguOptionsCLB->set_text(nEntry, sNumPreBreak + " " + OUString::number(nVal), 0);
                         else if (nEntry == nUPN_HYPH_MIN_TRAILING)
-                            m_xLinguOptionsCLB->set_text(nEntry, sNumPostBreak + " " + OUString::number(nVal), 1);
+                            m_xLinguOptionsCLB->set_text(nEntry, sNumPostBreak + " " + OUString::number(nVal), 0);
                         m_xLinguOptionsCLB->set_id(nEntry, OUString::number(aData.GetUserData()));
                     }
                 }
@@ -1556,9 +1553,7 @@ SvxEditModulesDlg::SvxEditModulesDlg(weld::Window* pParent, SvxLinguData_Impl& r
     m_xModulesCLB->set_size_request(m_xModulesCLB->get_approximate_digit_width() * 40,
                                     m_xModulesCLB->get_height_rows(12));
 
-    std::vector<int> aWidths;
-    aWidths.push_back(m_xModulesCLB->get_checkbox_column_width());
-    m_xModulesCLB->set_column_fixed_widths(aWidths);
+    m_xModulesCLB->enable_toggle_buttons(weld::ColumnToggleType::Check);
 
     pDefaultLinguData.reset( new SvxLinguData_Impl( rLinguData ) );
 
@@ -1639,7 +1634,7 @@ IMPL_LINK( SvxEditModulesDlg, BoxCheckButtonHdl_Impl, const weld::TreeView::iter
         pData = reinterpret_cast<ModuleUserData_Impl*>(m_xModulesCLB->get_id(i).toInt64());
         if (!pData->IsParent() && pData->GetType() == TYPE_HYPH && i != nPos)
         {
-            m_xModulesCLB->set_toggle(i, TRISTATE_FALSE, 0);
+            m_xModulesCLB->set_toggle(i, TRISTATE_FALSE);
         }
     }
 }
@@ -1696,8 +1691,8 @@ void SvxEditModulesDlg::LangSelectHdl_Impl(const SvxLanguageBox* pBox)
                 OUString* pChange = aChange.getArray();
                 pChange[nStart] = pData->GetImplName();
                 bChanged |= pData->GetIndex() != nLocalIndex ||
-                    static_cast<TriState>(pData->IsChecked()) != m_xModulesCLB->get_toggle(i, 0);
-                if (m_xModulesCLB->get_toggle(i, 0))
+                    static_cast<TriState>(pData->IsChecked()) != m_xModulesCLB->get_toggle(i);
+                if (m_xModulesCLB->get_toggle(i))
                     nStart++;
                 ++nLocalIndex;
             }
@@ -1728,8 +1723,8 @@ void SvxEditModulesDlg::LangSelectHdl_Impl(const SvxLanguageBox* pBox)
         OUString sId(OUString::number(reinterpret_cast<sal_Int64>(pUserData)));
         m_xModulesCLB->append(nullptr);
         m_xModulesCLB->set_id(nRow, sId);
-        m_xModulesCLB->set_text(nRow, sSpell, 1);
-        m_xModulesCLB->set_text_emphasis(nRow, true, 1);
+        m_xModulesCLB->set_text(nRow, sSpell, 0);
+        m_xModulesCLB->set_text_emphasis(nRow, true, 0);
         ++nRow;
 
         Sequence< OUString > aNames( rLinguData.GetSortedImplNames( eCurLanguage, TYPE_SPELL ) );
@@ -1765,9 +1760,9 @@ void SvxEditModulesDlg::LangSelectHdl_Impl(const SvxLanguageBox* pBox)
 
                 m_xModulesCLB->append(nullptr);
                 m_xModulesCLB->set_id(nRow, sId);
-                m_xModulesCLB->set_toggle(nRow, bCheck ? TRISTATE_TRUE : TRISTATE_FALSE, 0);
-                m_xModulesCLB->set_text(nRow, aTxt, 1);
-                m_xModulesCLB->set_text_emphasis(nRow, false, 1);
+                m_xModulesCLB->set_toggle(nRow, bCheck ? TRISTATE_TRUE : TRISTATE_FALSE);
+                m_xModulesCLB->set_text(nRow, aTxt, 0);
+                m_xModulesCLB->set_text_emphasis(nRow, false, 0);
                 ++nRow;
             }
         }
@@ -1778,8 +1773,8 @@ void SvxEditModulesDlg::LangSelectHdl_Impl(const SvxLanguageBox* pBox)
         sId = OUString::number(reinterpret_cast<sal_Int64>(pUserData));
         m_xModulesCLB->append(nullptr);
         m_xModulesCLB->set_id(nRow, sId);
-        m_xModulesCLB->set_text(nRow, sGrammar, 1);
-        m_xModulesCLB->set_text_emphasis(nRow, true, 1);
+        m_xModulesCLB->set_text(nRow, sGrammar, 0);
+        m_xModulesCLB->set_text_emphasis(nRow, true, 0);
         ++nRow;
 
         aNames = rLinguData.GetSortedImplNames( eCurLanguage, TYPE_GRAMMAR );
@@ -1816,9 +1811,9 @@ void SvxEditModulesDlg::LangSelectHdl_Impl(const SvxLanguageBox* pBox)
 
                 m_xModulesCLB->append(nullptr);
                 m_xModulesCLB->set_id(nRow, sId);
-                m_xModulesCLB->set_toggle(nRow, bCheck ? TRISTATE_TRUE : TRISTATE_FALSE, 0);
-                m_xModulesCLB->set_text(nRow, aTxt, 1);
-                m_xModulesCLB->set_text_emphasis(nRow, false, 1);
+                m_xModulesCLB->set_toggle(nRow, bCheck ? TRISTATE_TRUE : TRISTATE_FALSE);
+                m_xModulesCLB->set_text(nRow, aTxt, 0);
+                m_xModulesCLB->set_text_emphasis(nRow, false, 0);
                 ++nRow;
             }
         }
@@ -1829,8 +1824,8 @@ void SvxEditModulesDlg::LangSelectHdl_Impl(const SvxLanguageBox* pBox)
         sId = OUString::number(reinterpret_cast<sal_Int64>(pUserData));
         m_xModulesCLB->append(nullptr);
         m_xModulesCLB->set_id(nRow, sId);
-        m_xModulesCLB->set_text(nRow, sHyph, 1);
-        m_xModulesCLB->set_text_emphasis(nRow, true, 1);
+        m_xModulesCLB->set_text(nRow, sHyph, 0);
+        m_xModulesCLB->set_text_emphasis(nRow, true, 0);
         ++nRow;
 
         aNames = rLinguData.GetSortedImplNames( eCurLanguage, TYPE_HYPH );
@@ -1866,9 +1861,9 @@ void SvxEditModulesDlg::LangSelectHdl_Impl(const SvxLanguageBox* pBox)
 
                 m_xModulesCLB->append(nullptr);
                 m_xModulesCLB->set_id(nRow, sId);
-                m_xModulesCLB->set_toggle(nRow, bCheck ? TRISTATE_TRUE : TRISTATE_FALSE, 0);
-                m_xModulesCLB->set_text(nRow, aTxt, 1);
-                m_xModulesCLB->set_text_emphasis(nRow, false, 1);
+                m_xModulesCLB->set_toggle(nRow, bCheck ? TRISTATE_TRUE : TRISTATE_FALSE);
+                m_xModulesCLB->set_text(nRow, aTxt, 0);
+                m_xModulesCLB->set_text_emphasis(nRow, false, 0);
                 ++nRow;
             }
         }
@@ -1879,8 +1874,8 @@ void SvxEditModulesDlg::LangSelectHdl_Impl(const SvxLanguageBox* pBox)
         sId = OUString::number(reinterpret_cast<sal_Int64>(pUserData));
         m_xModulesCLB->append(nullptr);
         m_xModulesCLB->set_id(nRow, sId);
-        m_xModulesCLB->set_text(nRow, sThes, 1);
-        m_xModulesCLB->set_text_emphasis(nRow, true, 1);
+        m_xModulesCLB->set_text(nRow, sThes, 0);
+        m_xModulesCLB->set_text_emphasis(nRow, true, 0);
         ++nRow;
 
         aNames = rLinguData.GetSortedImplNames( eCurLanguage, TYPE_THES );
@@ -1916,9 +1911,9 @@ void SvxEditModulesDlg::LangSelectHdl_Impl(const SvxLanguageBox* pBox)
 
                 m_xModulesCLB->append(nullptr);
                 m_xModulesCLB->set_id(nRow, sId);
-                m_xModulesCLB->set_toggle(nRow, bCheck ? TRISTATE_TRUE : TRISTATE_FALSE, 0);
-                m_xModulesCLB->set_text(nRow, aTxt, 1);
-                m_xModulesCLB->set_text_emphasis(nRow, false, 1);
+                m_xModulesCLB->set_toggle(nRow, bCheck ? TRISTATE_TRUE : TRISTATE_FALSE);
+                m_xModulesCLB->set_text(nRow, aTxt, 0);
+                m_xModulesCLB->set_text_emphasis(nRow, false, 0);
                 ++nRow;
             }
         }
@@ -1937,7 +1932,7 @@ IMPL_LINK( SvxEditModulesDlg, UpDownHdl_Impl, weld::Button&, rBtn, void )
 
     OUString sId(m_xModulesCLB->get_id(nCurPos));
     OUString sStr(m_xModulesCLB->get_text(nCurPos));
-    bool bIsChecked = m_xModulesCLB->get_toggle(nCurPos, nCurPos);
+    bool bIsChecked = m_xModulesCLB->get_toggle(nCurPos);
 
     m_xModulesCLB->remove(nCurPos);
 
@@ -1945,7 +1940,7 @@ IMPL_LINK( SvxEditModulesDlg, UpDownHdl_Impl, weld::Button&, rBtn, void )
 
     m_xModulesCLB->insert_text(nDestPos, sStr);
     m_xModulesCLB->set_id(nDestPos, sId);
-    m_xModulesCLB->set_toggle(nDestPos, bIsChecked ? TRISTATE_TRUE : TRISTATE_FALSE, 0);
+    m_xModulesCLB->set_toggle(nDestPos, bIsChecked ? TRISTATE_TRUE : TRISTATE_FALSE);
 
     m_xModulesCLB->thaw();
 
diff --git a/cui/source/tabpages/autocdlg.cxx b/cui/source/tabpages/autocdlg.cxx
index 4f1c0f3632e0..807f0cd2d284 100644
--- a/cui/source/tabpages/autocdlg.cxx
+++ b/cui/source/tabpages/autocdlg.cxx
@@ -189,9 +189,7 @@ OfaAutocorrOptionsPage::OfaAutocorrOptionsPage(weld::Container* pPage, weld::Dia
     , m_sAccidentalCaps(CuiResId(RID_SVXSTR_CORRECT_ACCIDENTAL_CAPS_LOCK))
     , m_xCheckLB(m_xBuilder->weld_tree_view("checklist"))
 {
-    std::vector<int> aWidths;
-    aWidths.push_back(m_xCheckLB->get_checkbox_column_width());
-    m_xCheckLB->set_column_fixed_widths(aWidths);
+    m_xCheckLB->enable_toggle_buttons(weld::ColumnToggleType::Check);
     m_xCheckLB->set_size_request(-1, m_xCheckLB->get_height_rows(10));
 }
 
@@ -215,14 +213,14 @@ bool OfaAutocorrOptionsPage::FillItemSet( SfxItemSet* )
     ACFlags nFlags = pAutoCorrect->GetFlags();
 
     int nPos = 0;
-    pAutoCorrect->SetAutoCorrFlag(ACFlags::Autocorrect,          m_xCheckLB->get_toggle(nPos++, CBCOL_FIRST) == TRISTATE_TRUE);
-    pAutoCorrect->SetAutoCorrFlag(ACFlags::CapitalStartWord,     m_xCheckLB->get_toggle(nPos++, CBCOL_FIRST) == TRISTATE_TRUE);
-    pAutoCorrect->SetAutoCorrFlag(ACFlags::CapitalStartSentence, m_xCheckLB->get_toggle(nPos++, CBCOL_FIRST) == TRISTATE_TRUE);
-    pAutoCorrect->SetAutoCorrFlag(ACFlags::ChgWeightUnderl,      m_xCheckLB->get_toggle(nPos++, CBCOL_FIRST) == TRISTATE_TRUE);
-    pAutoCorrect->SetAutoCorrFlag(ACFlags::SetINetAttr,          m_xCheckLB->get_toggle(nPos++, CBCOL_FIRST) == TRISTATE_TRUE);
-    pAutoCorrect->SetAutoCorrFlag(ACFlags::ChgToEnEmDash,        m_xCheckLB->get_toggle(nPos++, CBCOL_FIRST) == TRISTATE_TRUE);
-    pAutoCorrect->SetAutoCorrFlag(ACFlags::IgnoreDoubleSpace,    m_xCheckLB->get_toggle(nPos++, CBCOL_FIRST) == TRISTATE_TRUE);
-    pAutoCorrect->SetAutoCorrFlag(ACFlags::CorrectCapsLock,      m_xCheckLB->get_toggle(nPos++, CBCOL_FIRST) == TRISTATE_TRUE);
+    pAutoCorrect->SetAutoCorrFlag(ACFlags::Autocorrect,          m_xCheckLB->get_toggle(nPos++) == TRISTATE_TRUE);
+    pAutoCorrect->SetAutoCorrFlag(ACFlags::CapitalStartWord,     m_xCheckLB->get_toggle(nPos++) == TRISTATE_TRUE);
+    pAutoCorrect->SetAutoCorrFlag(ACFlags::CapitalStartSentence, m_xCheckLB->get_toggle(nPos++) == TRISTATE_TRUE);
+    pAutoCorrect->SetAutoCorrFlag(ACFlags::ChgWeightUnderl,      m_xCheckLB->get_toggle(nPos++) == TRISTATE_TRUE);
+    pAutoCorrect->SetAutoCorrFlag(ACFlags::SetINetAttr,          m_xCheckLB->get_toggle(nPos++) == TRISTATE_TRUE);
+    pAutoCorrect->SetAutoCorrFlag(ACFlags::ChgToEnEmDash,        m_xCheckLB->get_toggle(nPos++) == TRISTATE_TRUE);
+    pAutoCorrect->SetAutoCorrFlag(ACFlags::IgnoreDoubleSpace,    m_xCheckLB->get_toggle(nPos++) == TRISTATE_TRUE);
+    pAutoCorrect->SetAutoCorrFlag(ACFlags::CorrectCapsLock,      m_xCheckLB->get_toggle(nPos++) == TRISTATE_TRUE);
 
     bool bReturn = nFlags != pAutoCorrect->GetFlags();
     if(bReturn )
@@ -243,8 +241,8 @@ void OfaAutocorrOptionsPage::InsertEntry(const OUString& rTxt)
 {
     m_xCheckLB->append();
     const int nRow = m_xCheckLB->n_children() - 1;
-    m_xCheckLB->set_toggle(nRow, TRISTATE_FALSE, CBCOL_FIRST);
-    m_xCheckLB->set_text(nRow, rTxt, 1);
+    m_xCheckLB->set_toggle(nRow, TRISTATE_FALSE);
+    m_xCheckLB->set_text(nRow, rTxt, 0);
 }
 
 void OfaAutocorrOptionsPage::Reset( const SfxItemSet* )
@@ -265,14 +263,14 @@ void OfaAutocorrOptionsPage::Reset( const SfxItemSet* )
     InsertEntry(m_sAccidentalCaps);
 
     int nPos = 0;
-    m_xCheckLB->set_toggle( nPos++, bool(nFlags & ACFlags::Autocorrect) ? TRISTATE_TRUE : TRISTATE_FALSE, CBCOL_FIRST );
-    m_xCheckLB->set_toggle( nPos++, bool(nFlags & ACFlags::CapitalStartWord) ? TRISTATE_TRUE : TRISTATE_FALSE, CBCOL_FIRST );
-    m_xCheckLB->set_toggle( nPos++, bool(nFlags & ACFlags::CapitalStartSentence) ? TRISTATE_TRUE : TRISTATE_FALSE, CBCOL_FIRST );
-    m_xCheckLB->set_toggle( nPos++, bool(nFlags & ACFlags::ChgWeightUnderl) ? TRISTATE_TRUE : TRISTATE_FALSE, CBCOL_FIRST );
-    m_xCheckLB->set_toggle( nPos++, bool(nFlags & ACFlags::SetINetAttr) ? TRISTATE_TRUE : TRISTATE_FALSE, CBCOL_FIRST );
-    m_xCheckLB->set_toggle( nPos++, bool(nFlags & ACFlags::ChgToEnEmDash) ? TRISTATE_TRUE : TRISTATE_FALSE, CBCOL_FIRST );
-    m_xCheckLB->set_toggle( nPos++, bool(nFlags & ACFlags::IgnoreDoubleSpace) ? TRISTATE_TRUE : TRISTATE_FALSE, CBCOL_FIRST );
-    m_xCheckLB->set_toggle( nPos++, bool(nFlags & ACFlags::CorrectCapsLock) ? TRISTATE_TRUE : TRISTATE_FALSE, CBCOL_FIRST );
+    m_xCheckLB->set_toggle( nPos++, bool(nFlags & ACFlags::Autocorrect) ? TRISTATE_TRUE : TRISTATE_FALSE );
+    m_xCheckLB->set_toggle( nPos++, bool(nFlags & ACFlags::CapitalStartWord) ? TRISTATE_TRUE : TRISTATE_FALSE );
+    m_xCheckLB->set_toggle( nPos++, bool(nFlags & ACFlags::CapitalStartSentence) ? TRISTATE_TRUE : TRISTATE_FALSE );
+    m_xCheckLB->set_toggle( nPos++, bool(nFlags & ACFlags::ChgWeightUnderl) ? TRISTATE_TRUE : TRISTATE_FALSE );
+    m_xCheckLB->set_toggle( nPos++, bool(nFlags & ACFlags::SetINetAttr) ? TRISTATE_TRUE : TRISTATE_FALSE );
+    m_xCheckLB->set_toggle( nPos++, bool(nFlags & ACFlags::ChgToEnEmDash) ? TRISTATE_TRUE : TRISTATE_FALSE );
+    m_xCheckLB->set_toggle( nPos++, bool(nFlags & ACFlags::IgnoreDoubleSpace) ? TRISTATE_TRUE : TRISTATE_FALSE );
+    m_xCheckLB->set_toggle( nPos++, bool(nFlags & ACFlags::CorrectCapsLock) ? TRISTATE_TRUE : TRISTATE_FALSE );
 
     m_xCheckLB->thaw();
 }
@@ -374,6 +372,7 @@ OfaSwAutoFmtOptionsPage::OfaSwAutoFmtOptionsPage(weld::Container* pPage, weld::D
 {
     m_xCheckLB->connect_changed(LINK(this, OfaSwAutoFmtOptionsPage, SelectHdl));
     m_xCheckLB->connect_row_activated(LINK(this, OfaSwAutoFmtOptionsPage, DoubleClickEditHdl));
+    m_xCheckLB->enable_toggle_buttons(weld::ColumnToggleType::Check);
 
     std::vector<int> aWidths;
     aWidths.push_back(m_xCheckLB->get_pixel_size(m_xCheckLB->get_column_title(0)).Width() * 2);
@@ -1578,6 +1577,7 @@ OfaQuoteTabPage::OfaQuoteTabPage(weld::Container* pPage, weld::DialogController*
 
     if ( bShowSWOptions )
     {
+        m_xSwCheckLB->enable_toggle_buttons(weld::ColumnToggleType::Check);
         std::vector<int> aWidths;
         aWidths.push_back(m_xSwCheckLB->get_pixel_size(m_xSwCheckLB->get_column_title(0)).Width() * 2);
         aWidths.push_back(m_xSwCheckLB->get_pixel_size(m_xSwCheckLB->get_column_title(1)).Width() * 2);
@@ -1586,9 +1586,7 @@ OfaQuoteTabPage::OfaQuoteTabPage(weld::Container* pPage, weld::DialogController*
     }
     else
     {
-        std::vector<int> aWidths;
-        aWidths.push_back(m_xSwCheckLB->get_checkbox_column_width());
-        m_xCheckLB->set_column_fixed_widths(aWidths);
+        m_xCheckLB->enable_toggle_buttons(weld::ColumnToggleType::Check);
         m_xSwCheckLB->hide();
     }
 
@@ -1619,9 +1617,9 @@ bool OfaQuoteTabPage::FillItemSet( SfxItemSet*  )
     if (m_xCheckLB->get_visible())
     {
         int nPos = 0;
-        pAutoCorrect->SetAutoCorrFlag(ACFlags::AddNonBrkSpace, m_xCheckLB->get_toggle(nPos++, CBCOL_FIRST) == TRISTATE_TRUE);
-        pAutoCorrect->SetAutoCorrFlag(ACFlags::ChgOrdinalNumber, m_xCheckLB->get_toggle(nPos++, CBCOL_FIRST) == TRISTATE_TRUE);
-        pAutoCorrect->SetAutoCorrFlag(ACFlags::TransliterateRTL, m_xCheckLB->get_toggle(nPos++, CBCOL_FIRST) == TRISTATE_TRUE);
+        pAutoCorrect->SetAutoCorrFlag(ACFlags::AddNonBrkSpace, m_xCheckLB->get_toggle(nPos++) == TRISTATE_TRUE);
+        pAutoCorrect->SetAutoCorrFlag(ACFlags::ChgOrdinalNumber, m_xCheckLB->get_toggle(nPos++) == TRISTATE_TRUE);
+        pAutoCorrect->SetAutoCorrFlag(ACFlags::TransliterateRTL, m_xCheckLB->get_toggle(nPos++) == TRISTATE_TRUE);
     }
 
     bool bModified = false;
@@ -1723,14 +1721,16 @@ void OfaQuoteTabPage::Reset( const SfxItemSet* )
         m_xCheckLB->freeze();
         m_xCheckLB->clear();
 
-        CreateEntry(*m_xCheckLB, sNonBrkSpace, CBCOL_FIRST, 1);
-        CreateEntry(*m_xCheckLB, sOrdinal, CBCOL_FIRST, 1);
-        CreateEntry(*m_xCheckLB, sTransliterateRTL, CBCOL_FIRST, 1);
-
         int nPos = 0;
-        m_xCheckLB->set_toggle(nPos++, bool(nFlags & ACFlags::AddNonBrkSpace) ? TRISTATE_TRUE : TRISTATE_FALSE, CBCOL_FIRST);
-        m_xCheckLB->set_toggle(nPos++, bool(nFlags & ACFlags::ChgOrdinalNumber) ? TRISTATE_TRUE : TRISTATE_FALSE, CBCOL_FIRST);
-        m_xCheckLB->set_toggle(nPos++, bool(nFlags & ACFlags::TransliterateRTL) ? TRISTATE_TRUE : TRISTATE_FALSE, CBCOL_FIRST);
+        m_xCheckLB->append();
+        m_xCheckLB->set_toggle(nPos, bool(nFlags & ACFlags::AddNonBrkSpace) ? TRISTATE_TRUE : TRISTATE_FALSE);
+        m_xCheckLB->set_text(nPos++, sNonBrkSpace, 0);
+        m_xCheckLB->append();
+        m_xCheckLB->set_toggle(nPos, bool(nFlags & ACFlags::ChgOrdinalNumber) ? TRISTATE_TRUE : TRISTATE_FALSE);
+        m_xCheckLB->set_text(nPos++, sOrdinal, 0);
+        m_xCheckLB->append();
+        m_xCheckLB->set_toggle(nPos, bool(nFlags & ACFlags::TransliterateRTL) ? TRISTATE_TRUE : TRISTATE_FALSE);
+        m_xCheckLB->set_text(nPos++, sTransliterateRTL, 0);
 
         m_xCheckLB->thaw();
     }
@@ -2134,9 +2134,7 @@ OfaSmartTagOptionsTabPage::OfaSmartTagOptionsTabPage(weld::Container* pPage, wel
     m_xSmartTagTypesLB->set_size_request(m_xSmartTagTypesLB->get_approximate_digit_width() * 50,
                                          m_xSmartTagTypesLB->get_height_rows(6));
 
-    std::vector<int> aWidths;
-    aWidths.push_back(m_xSmartTagTypesLB->get_checkbox_column_width());
-    m_xSmartTagTypesLB->set_column_fixed_widths(aWidths);
+    m_xSmartTagTypesLB->enable_toggle_buttons(weld::ColumnToggleType::Check);
 
     // set the handlers:
     m_xMainCB->connect_toggled(LINK(this, OfaSmartTagOptionsTabPage, CheckHdl));
@@ -2218,8 +2216,8 @@ void OfaSmartTagOptionsTabPage::FillListBox( const SmartTagMgr& rSmartTagMgr )
             m_xSmartTagTypesLB->append();
             const int nRow = m_xSmartTagTypesLB->n_children() - 1;
             const bool bCheck = rSmartTagMgr.IsSmartTagTypeEnabled( aSmartTagType );
-            m_xSmartTagTypesLB->set_toggle(nRow, bCheck ? TRISTATE_TRUE : TRISTATE_FALSE, CBCOL_FIRST);
-            m_xSmartTagTypesLB->set_text(nRow, aLBEntry, 1);
+            m_xSmartTagTypesLB->set_toggle(nRow, bCheck ? TRISTATE_TRUE : TRISTATE_FALSE);
+            m_xSmartTagTypesLB->set_text(nRow, aLBEntry, 0);
             m_xSmartTagTypesLB->set_id(nRow, OUString::number(reinterpret_cast<sal_Int64>(new ImplSmartTagLBUserData(aSmartTagType, xRec, j))));
         }
     }
@@ -2293,7 +2291,7 @@ bool OfaSmartTagOptionsTabPage::FillItemSet( SfxItemSet* )
     for (int i = 0; i < nCount; ++i)
     {
         const ImplSmartTagLBUserData* pUserData = reinterpret_cast<ImplSmartTagLBUserData*>(m_xSmartTagTypesLB->get_id(i).toInt64());
-        const bool bChecked = m_xSmartTagTypesLB->get_toggle(i, CBCOL_FIRST) == TRISTATE_TRUE;
+        const bool bChecked = m_xSmartTagTypesLB->get_toggle(i) == TRISTATE_TRUE;
         const bool bIsCurrentlyEnabled = pSmartTagMgr->IsSmartTagTypeEnabled( pUserData->maSmartTagType );
 
         bModifiedSmartTagTypes = bModifiedSmartTagTypes || ( !bChecked != !bIsCurrentlyEnabled );
diff --git a/cui/uiconfig/ui/applyautofmtpage.ui b/cui/uiconfig/ui/applyautofmtpage.ui
index 45ca15dd7788..35abba54df6f 100644
--- a/cui/uiconfig/ui/applyautofmtpage.ui
+++ b/cui/uiconfig/ui/applyautofmtpage.ui
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.22.1 -->
+<!-- Generated with glade 3.22.2 -->
 <interface domain="cui">
   <requires lib="gtk+" version="3.18"/>
   <object class="GtkTreeStore" id="liststore1">
@@ -8,6 +8,8 @@
       <column type="gboolean"/>
       <!-- column-name check2 -->
       <column type="gboolean"/>
+      <!-- column-name check3 -->
+      <column type="gboolean"/>
       <!-- column-name text -->
       <column type="gchararray"/>
       <!-- column-name id -->
@@ -16,10 +18,14 @@
       <column type="gboolean"/>
       <!-- column-name checkvis2 -->
       <column type="gboolean"/>
+      <!-- column-name checkvis3 -->
+      <column type="gboolean"/>
       <!-- column-name checktri1 -->
       <column type="gboolean"/>
       <!-- column-name checktri2 -->
       <column type="gboolean"/>
+      <!-- column-name checktri3 -->
+      <column type="gboolean"/>
     </columns>
   </object>
   <object class="GtkBox" id="ApplyAutoFmtPage">
@@ -122,12 +128,19 @@
                         <property name="title" translatable="yes" context="applyautofmtpage|m">[M]</property>
                         <property name="alignment">0.5</property>
                         <child>
-                          <object class="GtkCellRendererToggle" id="cellrenderer1"/>
+                          <object class="GtkCellRendererToggle" id="cellrenderer0"/>
                           <attributes>
-                            <attribute name="visible">4</attribute>
+                            <attribute name="visible">5</attribute>
                             <attribute name="active">0</attribute>
                           </attributes>
                         </child>
+                        <child>
+                          <object class="GtkCellRendererToggle" id="cellrenderer1"/>
+                          <attributes>
+                            <attribute name="visible">6</attribute>
+                            <attribute name="active">1</attribute>
+                          </attributes>
+                        </child>
                       </object>
                     </child>
                     <child>
@@ -139,8 +152,8 @@
                         <child>
                           <object class="GtkCellRendererToggle" id="cellrenderer2"/>
                           <attributes>
-                            <attribute name="visible">5</attribute>
-                            <attribute name="active">1</attribute>
+                            <attribute name="visible">7</attribute>
+                            <attribute name="active">2</attribute>
                           </attributes>
                         </child>
                       </object>
@@ -152,7 +165,7 @@
                         <child>
                           <object class="GtkCellRendererText" id="cellrenderer3"/>
                           <attributes>
-                            <attribute name="text">2</attribute>
+                            <attribute name="text">3</attribute>
                           </attributes>
                         </child>
                       </object>
diff --git a/cui/uiconfig/ui/applylocalizedpage.ui b/cui/uiconfig/ui/applylocalizedpage.ui
index 57a8869834ae..61ca9e4d4300 100644
--- a/cui/uiconfig/ui/applylocalizedpage.ui
+++ b/cui/uiconfig/ui/applylocalizedpage.ui
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.22.1 -->
+<!-- Generated with glade 3.22.2 -->
 <interface domain="cui">
   <requires lib="gtk+" version="3.18"/>
   <object class="GtkTreeStore" id="liststore1">
@@ -8,6 +8,8 @@
       <column type="gboolean"/>
       <!-- column-name check2 -->
       <column type="gboolean"/>
+      <!-- column-name check3 -->
+      <column type="gboolean"/>
       <!-- column-name text -->
       <column type="gchararray"/>
       <!-- column-name id -->
@@ -16,10 +18,14 @@
       <column type="gboolean"/>
       <!-- column-name checkvis2 -->
       <column type="gboolean"/>
+      <!-- column-name checkvis3 -->
+      <column type="gboolean"/>
       <!-- column-name checktri1 -->
       <column type="gboolean"/>
       <!-- column-name checktri2 -->
       <column type="gboolean"/>
+      <!-- column-name checktri3 -->
+      <column type="gboolean"/>
     </columns>
   </object>
   <object class="GtkTreeStore" id="liststore2">
@@ -86,10 +92,17 @@
                         <child>
                           <object class="GtkCellRendererToggle" id="cellrenderer1"/>
                           <attributes>
-                            <attribute name="visible">4</attribute>
+                            <attribute name="visible">5</attribute>
                             <attribute name="active">0</attribute>
                           </attributes>
                         </child>
+                        <child>
+                          <object class="GtkCellRendererToggle" id="cellrenderer9"/>
+                          <attributes>
+                            <attribute name="visible">6</attribute>
+                            <attribute name="active">1</attribute>
+                          </attributes>
+                        </child>
                       </object>
                     </child>
                     <child>
@@ -101,8 +114,8 @@
                         <child>
                           <object class="GtkCellRendererToggle" id="cellrenderer2"/>
                           <attributes>
-                            <attribute name="visible">5</attribute>
-                            <attribute name="active">1</attribute>
+                            <attribute name="visible">7</attribute>
+                            <attribute name="active">2</attribute>
                           </attributes>
                         </child>
                       </object>
@@ -114,7 +127,7 @@
                         <child>
                           <object class="GtkCellRendererText" id="cellrenderer3"/>
                           <attributes>
-                            <attribute name="text">2</attribute>
+                            <attribute name="text">3</attribute>
                           </attributes>
                         </child>
                       </object>
diff --git a/cui/uiconfig/ui/certdialog.ui b/cui/uiconfig/ui/certdialog.ui
index 75642d980c2e..de5a0d085e51 100644
--- a/cui/uiconfig/ui/certdialog.ui
+++ b/cui/uiconfig/ui/certdialog.ui
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.22.1 -->
+<!-- Generated with glade 3.22.2 -->
 <interface domain="cui">
   <requires lib="gtk+" version="3.18"/>
   <object class="GtkTreeStore" id="liststore1">
@@ -26,7 +26,7 @@
     <property name="default_width">0</property>
     <property name="type_hint">normal</property>
     <property name="skip_pager_hint">True</property>
-    <child>
+    <child type="titlebar">
       <placeholder/>
     </child>
     <child internal-child="vbox">
@@ -193,6 +193,7 @@
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
                             <property name="receives_default">True</property>
+                            <property name="hexpand">True</property>
                             <property name="vexpand">True</property>
                             <property name="model">liststore1</property>
                             <property name="search_column">0</property>
@@ -204,7 +205,7 @@
                               <object class="GtkTreeViewColumn" id="treeviewcolumn4">
                                 <property name="resizable">True</property>
                                 <property name="spacing">6</property>
-                                <property name="alignment">0.5</property>
+                                <property name="title" translatable="yes" context="certdialog|profile">Profile</property>
                                 <child>
                                   <object class="GtkCellRendererToggle" id="cellrenderer5">
                                     <property name="radio">True</property>
@@ -214,13 +215,6 @@
                                     <attribute name="active">0</attribute>
                                   </attributes>
                                 </child>
-                              </object>
-                            </child>
-                            <child>
-                              <object class="GtkTreeViewColumn" id="treeviewcolumn5">
-                                <property name="resizable">True</property>
-                                <property name="spacing">6</property>
-                                <property name="title" translatable="yes" context="certdialog|profile">Profile</property>
                                 <child>
                                   <object class="GtkCellRendererText" id="cellrenderer4"/>
                                   <attributes>
diff --git a/cui/uiconfig/ui/menuassignpage.ui b/cui/uiconfig/ui/menuassignpage.ui
index e89bc1093739..cfa87f1cf95e 100644
--- a/cui/uiconfig/ui/menuassignpage.ui
+++ b/cui/uiconfig/ui/menuassignpage.ui
@@ -557,22 +557,12 @@
                             <attribute name="active">0</attribute>
                           </attributes>
                         </child>
-                      </object>
-                    </child>
-                    <child>
-                      <object class="GtkTreeViewColumn" id="treeviewcolumn9">
-                        <property name="spacing">6</property>
                         <child>
                           <object class="GtkCellRendererPixbuf" id="cellrenderertext9"/>
                           <attributes>
                             <attribute name="pixbuf">1</attribute>
                           </attributes>
                         </child>
-                      </object>
-                    </child>
-                    <child>
-                      <object class="GtkTreeViewColumn" id="treeviewcolumn10">
-                        <property name="spacing">6</property>
                         <child>
                           <object class="GtkCellRendererText" id="cellrenderertext10"/>
                           <attributes>
@@ -620,10 +610,6 @@
                             <attribute name="pixbuf">0</attribute>
                           </attributes>
                         </child>
-                      </object>
-                    </child>
-                    <child>
-                      <object class="GtkTreeViewColumn" id="treeviewcolumn33">
                         <child>
                           <object class="GtkCellRendererText" id="cellrenderertext22"/>
                           <attributes>
diff --git a/cui/uiconfig/ui/multipathdialog.ui b/cui/uiconfig/ui/multipathdialog.ui
index 0f1e73094e20..33ceed50e468 100644
--- a/cui/uiconfig/ui/multipathdialog.ui
+++ b/cui/uiconfig/ui/multipathdialog.ui
@@ -181,7 +181,7 @@
                                   <object class="GtkTreeViewColumn" id="treeviewcolumn4">
                                     <property name="resizable">True</property>
                                     <property name="spacing">6</property>
-                                    <property name="alignment">0.5</property>
+                                    <property name="title" translatable="yes" context="multipathdialog|pathlist">Path list</property>
                                     <child>
                                       <object class="GtkCellRendererToggle" id="cellrenderer5">
                                         <property name="radio">True</property>
@@ -191,13 +191,6 @@
                                         <attribute name="active">0</attribute>
                                       </attributes>
                                     </child>
-                                  </object>
-                                </child>
-                                <child>
-                                  <object class="GtkTreeViewColumn" id="treeviewcolumn5">
-                                    <property name="resizable">True</property>
-                                    <property name="spacing">6</property>
-                                    <property name="title" translatable="yes" context="multipathdialog|pathlist">Path list</property>
                                     <child>
                                       <object class="GtkCellRendererText" id="cellrenderer4"/>
                                       <attributes>
diff --git a/cui/uiconfig/ui/optadvancedpage.ui b/cui/uiconfig/ui/optadvancedpage.ui
index 44baae1aa330..f5857937b478 100644
--- a/cui/uiconfig/ui/optadvancedpage.ui
+++ b/cui/uiconfig/ui/optadvancedpage.ui
@@ -1,11 +1,13 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.22.1 -->
+<!-- Generated with glade 3.22.2 -->
 <interface domain="cui">
   <requires lib="gtk+" version="3.18"/>
   <object class="GtkTreeStore" id="liststore1">
     <columns>
       <!-- column-name check1 -->
       <column type="gboolean"/>
+      <!-- column-name check2 -->
+      <column type="gboolean"/>
       <!-- column-name text -->
       <column type="gchararray"/>
       <!-- column-name text2 -->
@@ -14,8 +16,12 @@
       <column type="gchararray"/>
       <!-- column-name checkvis1 -->
       <column type="gboolean"/>
+      <!-- column-name checkvis2 -->
+      <column type="gboolean"/>
       <!-- column-name checktri1 -->
       <column type="gboolean"/>
+      <!-- column-name checktri2 -->
+      <column type="gboolean"/>
     </columns>
   </object>
   <object class="GtkBox" id="OptAdvancedPage">
@@ -194,10 +200,19 @@
                                                 <property name="radio">True</property>
                                               </object>
                                               <attributes>
-                                                <attribute name="visible">4</attribute>
+                                                <attribute name="visible">5</attribute>
                                                 <attribute name="active">0</attribute>
                                               </attributes>
                                             </child>
+                                            <child>
+                                              <object class="GtkCellRendererToggle" id="cellrenderer9">
+                                                <property name="radio">True</property>
+                                              </object>
+                                              <attributes>
+                                                <attribute name="visible">6</attribute>
+                                                <attribute name="active">1</attribute>
+                                              </attributes>
+                                            </child>
                                           </object>
                                         </child>
                                         <child>
@@ -208,7 +223,7 @@
                                             <child>
                                               <object class="GtkCellRendererText" id="cellrenderer4"/>
                                               <attributes>
-                                                <attribute name="text">1</attribute>
+                                                <attribute name="text">2</attribute>
                                               </attributes>
                                             </child>
                                           </object>
@@ -221,7 +236,7 @@
                                             <child>
                                               <object class="GtkCellRendererText" id="cellrenderer1"/>
                                               <attributes>
-                                                <attribute name="text">2</attribute>
+                                                <attribute name="text">3</attribute>
                                               </attributes>
                                             </child>
                                           </object>
@@ -275,6 +290,9 @@
                                 <property name="top_attach">0</property>
                               </packing>
                             </child>
+                            <child>
+                              <placeholder/>
+                            </child>
                           </object>
                           <packing>
                             <property name="left_attach">0</property>
diff --git a/cui/uiconfig/ui/optfltrembedpage.ui b/cui/uiconfig/ui/optfltrembedpage.ui
index 310127847c0f..f93b9df1402a 100644
--- a/cui/uiconfig/ui/optfltrembedpage.ui
+++ b/cui/uiconfig/ui/optfltrembedpage.ui
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.22.1 -->
+<!-- Generated with glade 3.22.2 -->
 <interface domain="cui">
   <requires lib="gtk+" version="3.18"/>
   <object class="GtkTreeStore" id="liststore1">
@@ -8,18 +8,24 @@
       <column type="gboolean"/>
       <!-- column-name check2 -->
       <column type="gboolean"/>
+      <!-- column-name check3 -->
+      <column type="gboolean"/>
       <!-- column-name text -->
       <column type="gchararray"/>
       <!-- column-name id -->
       <column type="gchararray"/>
       <!-- column-name checkvis1 -->
       <column type="gboolean"/>
-      <!-- column-name checktri1 -->
-      <column type="gboolean"/>
       <!-- column-name checkvis2 -->
       <column type="gboolean"/>
+      <!-- column-name checkvis3 -->
+      <column type="gboolean"/>
+      <!-- column-name checktri1 -->
+      <column type="gboolean"/>
       <!-- column-name checktri2 -->
       <column type="gboolean"/>
+      <!-- column-name checktri3 -->
+      <column type="gboolean"/>
     </columns>
   </object>
   <object class="GtkGrid" id="OptFilterPage">
@@ -84,10 +90,17 @@
                             <child>
                               <object class="GtkCellRendererToggle" id="cellrenderer5"/>
                               <attributes>
-                                <attribute name="visible">4</attribute>
+                                <attribute name="visible">5</attribute>
                                 <attribute name="active">0</attribute>
                               </attributes>
                             </child>
+                            <child>
+                              <object class="GtkCellRendererToggle" id="cellrenderer8"/>
+                              <attributes>
+                                <attribute name="visible">6</attribute>
+                                <attribute name="active">1</attribute>
+                              </attributes>
+                            </child>
                           </object>
                         </child>
                         <child>
@@ -99,8 +112,8 @@
                             <child>
                               <object class="GtkCellRendererToggle" id="cellrenderer7"/>
                               <attributes>
-                                <attribute name="visible">4</attribute>
-                                <attribute name="active">1</attribute>
+                                <attribute name="visible">7</attribute>
+                                <attribute name="active">2</attribute>
                               </attributes>
                             </child>
                           </object>
@@ -112,7 +125,7 @@
                             <child>
                               <object class="GtkCellRendererText" id="cellrenderer4"/>
                               <attributes>
-                                <attribute name="text">2</attribute>
+                                <attribute name="text">3</attribute>
                               </attributes>
                             </child>
                           </object>
diff --git a/cui/uiconfig/ui/optfontspage.ui b/cui/uiconfig/ui/optfontspage.ui
index 52524bd1a284..b6a82951a57d 100644
--- a/cui/uiconfig/ui/optfontspage.ui
+++ b/cui/uiconfig/ui/optfontspage.ui
@@ -137,6 +137,7 @@
                                   <object class="GtkTreeViewColumn" id="treeviewcolumn1">
                                     <property name="resizable">True</property>
                                     <property name="spacing">6</property>
+                                    <property name="title" translatable="yes" context="optfontspage|always">Always</property>
                                     <child>
                                       <object class="GtkCellRendererToggle" id="cellrenderer1"/>
                                       <attributes>
@@ -144,13 +145,6 @@
                                         <attribute name="active">0</attribute>
                                       </attributes>
                                     </child>
-                                  </object>
-                                </child>
-                                <child>
-                                  <object class="GtkTreeViewColumn" id="treeviewcolumn4">
-                                    <property name="resizable">True</property>
-                                    <property name="spacing">6</property>
-                                    <property name="title" translatable="yes" context="optfontspage|always">Always</property>
                                     <child>
                                       <object class="GtkCellRendererToggle" id="cellrenderer5"/>
                                       <attributes>
diff --git a/dbaccess/source/ui/control/tabletree.cxx b/dbaccess/source/ui/control/tabletree.cxx
index f608f850ceb4..2ec45c9b756a 100644
--- a/dbaccess/source/ui/control/tabletree.cxx
+++ b/dbaccess/source/ui/control/tabletree.cxx
@@ -68,9 +68,9 @@ TableTreeListBox::TableTreeListBox(std::unique_ptr<weld::TreeView> xTreeView)
     , m_bVirtualRoot(false)
     , m_bNoEmptyFolders(false)
     , m_bShowToggles(true)
-    , m_nTextColumn(1)
     , m_xTreeView(std::move(xTreeView))
 {
+    m_xTreeView->enable_toggle_buttons(weld::ColumnToggleType::Check);
 }
 
 void OTableTreeListBox::implSetDefaultImages()
@@ -359,7 +359,6 @@ void OTableTreeListBox::UpdateTableList( const Reference< XConnection >& _rxConn
 void TableTreeListBox::DisableCheckButtons()
 {
     m_bShowToggles = false;
-    m_nTextColumn = 0;
 }
 
 void TableTreeListBox::UpdateTableList( const Reference< XConnection >& _rxConnection, const TNames& _rTables )
@@ -389,8 +388,9 @@ void TableTreeListBox::UpdateTableList( const Reference< XConnection >& _rxConne
             m_xTreeView->insert(nullptr, -1, nullptr, &sId, nullptr, nullptr, false, xRet.get());
             m_xTreeView->set_image(*xRet, sImageId, -1);
             if (m_bShowToggles)
-                m_xTreeView->set_toggle(*xRet, TRISTATE_FALSE, 0);
-            m_xTreeView->set_text(*xRet, sRootEntryText, m_nTextColumn);
+                m_xTreeView->set_toggle(*xRet, TRISTATE_FALSE);
+            m_xTreeView->set_text(*xRet, sRootEntryText, 0);
+            m_xTreeView->set_text_emphasis(*xRet, false, 0);
         }
 
         if ( _rTables.empty() )
@@ -434,8 +434,9 @@ void TableTreeListBox::UpdateTableList( const Reference< XConnection >& _rxConne
                         m_xTreeView->insert(xRootEntry.get(), -1, nullptr, &sId, nullptr, nullptr, false, xRet.get());
                         m_xTreeView->set_image(*xRet, sImageId, -1);
                         if (m_bShowToggles)
-                            m_xTreeView->set_toggle(*xRet, TRISTATE_FALSE, 0);
-                        m_xTreeView->set_text(*xRet, folderName, m_nTextColumn);
+                            m_xTreeView->set_toggle(*xRet, TRISTATE_FALSE);
+                        m_xTreeView->set_text(*xRet, folderName, 0);
+                        m_xTreeView->set_text_emphasis(*xRet, false, 0);
                     }
                 }
             }
@@ -451,14 +452,14 @@ void TableTreeListBox::UpdateTableList( const Reference< XConnection >& _rxConne
 
 bool TableTreeListBox::isWildcardChecked(const weld::TreeIter& rEntry)
 {
-    return m_xTreeView->get_text_emphasis(rEntry, m_nTextColumn);
+    return m_xTreeView->get_text_emphasis(rEntry, 0);
 }
 
 void TableTreeListBox::checkWildcard(weld::TreeIter& rEntry)
 {
     if (!m_bShowToggles)
         return;
-    m_xTreeView->set_toggle(rEntry, TRISTATE_TRUE, 0);
+    m_xTreeView->set_toggle(rEntry, TRISTATE_TRUE);
     checkedButton_noBroadcast(rEntry);
 }
 
@@ -489,7 +490,7 @@ void TableTreeListBox::checkedButton_noBroadcast(const weld::TreeIter& rEntry)
 {
     if (!m_bShowToggles)
         return;
-    TriState eState = m_xTreeView->get_toggle(rEntry, 0);
+    TriState eState = m_xTreeView->get_toggle(rEntry);
     OSL_ENSURE(TRISTATE_INDET != eState, "OTableTreeListBox::CheckButtonHdl: user action which lead to TRISTATE?");
 
     if (m_xTreeView->iter_has_child(rEntry)) // if it has children, check those too
@@ -500,7 +501,7 @@ void TableTreeListBox::checkedButton_noBroadcast(const weld::TreeIter& rEntry)
         bool bSiblingEntry = m_xTreeView->iter_next_sibling(*xSiblingEntry);
         while (bChildEntry && (!bSiblingEntry || !xChildEntry->equal(*xSiblingEntry)))
         {
-            m_xTreeView->set_toggle(*xChildEntry, eState, 0);
+            m_xTreeView->set_toggle(*xChildEntry, eState);
             bChildEntry = m_xTreeView->iter_next(*xChildEntry);
         }
     }
@@ -508,7 +509,7 @@ void TableTreeListBox::checkedButton_noBroadcast(const weld::TreeIter& rEntry)
     if (m_xTreeView->is_selected(rEntry))
     {
         m_xTreeView->selected_foreach([this, eState](weld::TreeIter& rSelected){
-            m_xTreeView->set_toggle(rSelected, eState, 0);
+            m_xTreeView->set_toggle(rSelected, eState);
             if (m_xTreeView->iter_has_child(rSelected)) // if it has children, check those too
             {
                 std::unique_ptr<weld::TreeIter> xChildEntry(m_xTreeView->make_iterator(&rSelected));
@@ -517,7 +518,7 @@ void TableTreeListBox::checkedButton_noBroadcast(const weld::TreeIter& rEntry)
                 bool bSiblingEntry = m_xTreeView->iter_next_sibling(*xSiblingEntry);
                 while (bChildEntry && (!bSiblingEntry || !xChildEntry->equal(*xSiblingEntry)))
                 {
-                    m_xTreeView->set_toggle(*xChildEntry, eState, 0);
+                    m_xTreeView->set_toggle(*xChildEntry, eState);
                     bChildEntry = m_xTreeView->iter_next(*xChildEntry);
                 }
             }

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list