diff options
author | Caolán McNamara <caolanm@redhat.com> | 2020-06-05 16:11:39 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2020-06-08 20:21:35 +0200 |
commit | cd384e2d31f74223948ea70d8aa3c318d3ceeb50 (patch) | |
tree | 49ae5191c2bd4b13c3cd547951933fbc37cda0fa | |
parent | c3669c8bd62ecf5eaa6b5e95289825bc11b2688a (diff) |
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@redhat.com>
40 files changed, 616 insertions, 585 deletions
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); } } @@ -572,7 +573,7 @@ void TableTreeListBox::implEmphasize(const weld::TreeIter& rEntry, bool _bChecke || bAllObjectsEntryAffected // or it is the "all objects" entry ) { - m_xTreeView->set_text_emphasis(rEntry, _bChecked, m_nTextColumn); + m_xTreeView->set_text_emphasis(rEntry, _bChecked, 0); } if (_bUpdateDescendants) @@ -710,8 +711,9 @@ void TableTreeListBox::implAddEntry( m_xTreeView->insert(xParentEntry.get(), -1, nullptr, &sId, nullptr, nullptr, false, xFolder.get()); m_xTreeView->set_image(*xFolder, sImageId, -1); if (m_bShowToggles) - m_xTreeView->set_toggle(*xFolder, TRISTATE_FALSE, 0); - m_xTreeView->set_text(*xFolder, rFirstName, m_nTextColumn); + m_xTreeView->set_toggle(*xFolder, TRISTATE_FALSE); + m_xTreeView->set_text(*xFolder, rFirstName, 0); + m_xTreeView->set_text_emphasis(*xFolder, false, 0); } xParentEntry = std::move(xFolder); } @@ -727,8 +729,9 @@ void TableTreeListBox::implAddEntry( m_xTreeView->insert(xParentEntry.get(), -1, nullptr, &sId, nullptr, nullptr, false, xFolder.get()); m_xTreeView->set_image(*xFolder, sImageId, -1); if (m_bShowToggles) - m_xTreeView->set_toggle(*xFolder, TRISTATE_FALSE, 0); - m_xTreeView->set_text(*xFolder, rSecondName, m_nTextColumn); + m_xTreeView->set_toggle(*xFolder, TRISTATE_FALSE); + m_xTreeView->set_text(*xFolder, rSecondName, 0); + m_xTreeView->set_text_emphasis(*xFolder, false, 0); } xParentEntry = std::move(xFolder); } @@ -745,8 +748,9 @@ void TableTreeListBox::implAddEntry( m_xTreeView->set_image(*xEntry, sImageId, -1); } if (m_bShowToggles) - m_xTreeView->set_toggle(*xEntry, TRISTATE_FALSE, 0); - m_xTreeView->set_text(*xEntry, sName, m_nTextColumn); + m_xTreeView->set_toggle(*xEntry, TRISTATE_FALSE); + m_xTreeView->set_text(*xEntry, sName, 0); + m_xTreeView->set_text_emphasis(*xEntry, false, 0); } NamedDatabaseObject OTableTreeListBox::describeObject( SvTreeListEntry* _pEntry ) @@ -935,7 +939,7 @@ TriState TableTreeListBox::implDetermineState(weld::TreeIter& rEntry) if (!m_bShowToggles) return TRISTATE_FALSE; - TriState eState = m_xTreeView->get_toggle(rEntry, 0); + TriState eState = m_xTreeView->get_toggle(rEntry); if (!m_xTreeView->iter_has_child(rEntry)) // nothing to do in this bottom-up routine if there are no children ... return eState; @@ -996,7 +1000,7 @@ TriState TableTreeListBox::implDetermineState(weld::TreeIter& rEntry) } // finally set the entry to the state we just determined - m_xTreeView->set_toggle(rEntry, eState, 0); + m_xTreeView->set_toggle(rEntry, eState); return eState; } diff --git a/dbaccess/source/ui/dlg/tablespage.cxx b/dbaccess/source/ui/dlg/tablespage.cxx index 8b91b354be37..2fa719517a91 100644 --- a/dbaccess/source/ui/dlg/tablespage.cxx +++ b/dbaccess/source/ui/dlg/tablespage.cxx @@ -138,7 +138,7 @@ namespace dbaui std::unique_ptr<weld::TreeIter> xEntry(m_xTablesList->GetEntryPosByName(sName, xSchema ? xSchema.get() : (xCatalog ? xCatalog.get() : xRootEntry.get()))); if (xEntry) - m_xTablesList->GetWidget().set_toggle(*xEntry, TRISTATE_TRUE, 0); + m_xTablesList->GetWidget().set_toggle(*xEntry, TRISTATE_TRUE); } m_xTablesList->CheckButtons(); } @@ -299,7 +299,7 @@ namespace dbaui { do { - m_xTablesList->GetWidget().set_toggle(*xEntry, _bCheck ? TRISTATE_TRUE : TRISTATE_FALSE, 0); + m_xTablesList->GetWidget().set_toggle(*xEntry, _bCheck ? TRISTATE_TRUE : TRISTATE_FALSE); } while (m_xTablesList->GetWidget().iter_next(*xEntry)); } @@ -350,7 +350,7 @@ namespace dbaui std::unique_ptr<weld::TreeIter> xSchema; std::unique_ptr<weld::TreeIter> xCatalog; - if (m_xTablesList->GetWidget().get_toggle(*xEntry, 0) == TRISTATE_TRUE && !m_xTablesList->GetWidget().iter_has_child(*xEntry)) + if (m_xTablesList->GetWidget().get_toggle(*xEntry) == TRISTATE_TRUE && !m_xTablesList->GetWidget().iter_has_child(*xEntry)) { // checked and a leaf, which means it's no catalog, no schema, but a real table OUStringBuffer sComposedName; OUString sCatalog; diff --git a/dbaccess/source/ui/inc/tabletree.hxx b/dbaccess/source/ui/inc/tabletree.hxx index 58a6bba4322e..30b3f742f591 100644 --- a/dbaccess/source/ui/inc/tabletree.hxx +++ b/dbaccess/source/ui/inc/tabletree.hxx @@ -143,7 +143,6 @@ class TableTreeListBox bool m_bVirtualRoot; // should the first entry be visible bool m_bNoEmptyFolders; // should empty catalogs/schematas be prevented from being displayed? bool m_bShowToggles; // show toggle buttons - int m_nTextColumn; // column text is in, depends on if toggles are shown std::unique_ptr<weld::TreeView> m_xTreeView; public: diff --git a/dbaccess/source/ui/misc/WNameMatch.cxx b/dbaccess/source/ui/misc/WNameMatch.cxx index 83ad642d887a..75ff6e3372f1 100644 --- a/dbaccess/source/ui/misc/WNameMatch.cxx +++ b/dbaccess/source/ui/misc/WNameMatch.cxx @@ -58,9 +58,7 @@ OWizNameMatching::OWizNameMatching(weld::Container* pPage, OCopyTableWizard* pWi m_xAll->connect_clicked(LINK(this,OWizNameMatching,AllNoneClickHdl)); m_xNone->connect_clicked(LINK(this,OWizNameMatching,AllNoneClickHdl)); - std::vector<int> aWidths; - aWidths.push_back(m_xCTRL_LEFT->get_checkbox_column_width()); - m_xCTRL_LEFT->set_column_fixed_widths(aWidths); + m_xCTRL_LEFT->enable_toggle_buttons(weld::ColumnToggleType::Check); m_xCTRL_LEFT->connect_changed(LINK(this,OWizNameMatching,TableListClickHdl)); m_xCTRL_RIGHT->connect_changed(LINK(this,OWizNameMatching,TableListRightSelectHdl)); @@ -132,7 +130,7 @@ bool OWizNameMatching::LeavePage() ++nPos; } - if (m_xCTRL_LEFT->get_toggle(*xLeftEntry, 0) == TRISTATE_TRUE) + if (m_xCTRL_LEFT->get_toggle(*xLeftEntry) == TRISTATE_TRUE) { OFieldDescription* pDestField = reinterpret_cast<OFieldDescription*>(m_xCTRL_RIGHT->get_id(*xRightEntry).toInt64()); OSL_ENSURE(pDestField,"OWizNameMatching: OColumn can not be null!"); @@ -301,7 +299,7 @@ IMPL_LINK(OWizNameMatching, AllNoneClickHdl, weld::Button&, rButton, void) { bool bAll = &rButton == m_xAll.get(); m_xCTRL_LEFT->all_foreach([this, bAll](weld::TreeIter& rEntry){ - m_xCTRL_LEFT->set_toggle(rEntry, bAll ? TRISTATE_TRUE : TRISTATE_FALSE, 0); + m_xCTRL_LEFT->set_toggle(rEntry, bAll ? TRISTATE_TRUE : TRISTATE_FALSE); return false; }); } @@ -312,17 +310,15 @@ void OWizNameMatching::FillListBox(weld::TreeView& rTreeView, const ODatabaseExp int nRow(0); - const int nTextCol = bCheckButtons ? 1 : 0; - for (auto const& elem : rList) { rTreeView.append(); if (bCheckButtons) { bool bChecked = !elem->second->IsAutoIncrement(); - rTreeView.set_toggle(nRow, bChecked ? TRISTATE_TRUE : TRISTATE_FALSE, 0); + rTreeView.set_toggle(nRow, bChecked ? TRISTATE_TRUE : TRISTATE_FALSE); } - rTreeView.set_text(nRow, elem->first, nTextCol); + rTreeView.set_text(nRow, elem->first, 0); rTreeView.set_id(nRow, OUString::number(reinterpret_cast<sal_Int64>(elem->second))); ++nRow; } diff --git a/desktop/source/deployment/gui/dp_gui_updatedialog.cxx b/desktop/source/deployment/gui/dp_gui_updatedialog.cxx index cb161d631809..5d65f4e7c618 100644 --- a/desktop/source/deployment/gui/dp_gui_updatedialog.cxx +++ b/desktop/source/deployment/gui/dp_gui_updatedialog.cxx @@ -455,9 +455,7 @@ UpdateDialog::UpdateDialog( m_xDescriptions->set_size_request(nWidth, nHeight); m_xUpdates->set_size_request(nWidth, nHeight); - std::vector<int> aWidths; - aWidths.push_back(m_xUpdates->get_checkbox_column_width()); - m_xUpdates->set_column_fixed_widths(aWidths); + m_xUpdates->enable_toggle_buttons(weld::ColumnToggleType::Check); OSL_ASSERT(updateData != nullptr); @@ -492,7 +490,7 @@ IMPL_LINK(UpdateDialog, entryToggled, const weld::TreeView::iter_col&, rRowCol, // error's can't be enabled const UpdateDialog::Index* p = reinterpret_cast<UpdateDialog::Index const *>(m_xUpdates->get_id(rRowCol.first).toInt64()); if (p->m_eKind == SPECIFIC_ERROR) - m_xUpdates->set_toggle(rRowCol.first, TRISTATE_FALSE, 0); + m_xUpdates->set_toggle(rRowCol.first, TRISTATE_FALSE); enableOk(); } @@ -501,8 +499,8 @@ void UpdateDialog::insertItem(UpdateDialog::Index *pEntry, bool bEnabledCheckBox { int nEntry = m_xUpdates->n_children(); m_xUpdates->append(); - m_xUpdates->set_toggle(nEntry, bEnabledCheckBox ? TRISTATE_TRUE : TRISTATE_FALSE, 0); - m_xUpdates->set_text(nEntry, pEntry->m_aName, 1); + m_xUpdates->set_toggle(nEntry, bEnabledCheckBox ? TRISTATE_TRUE : TRISTATE_FALSE); + m_xUpdates->set_text(nEntry, pEntry->m_aName, 0); m_xUpdates->set_id(nEntry, OUString::number(reinterpret_cast<sal_Int64>(pEntry))); } @@ -587,7 +585,7 @@ void UpdateDialog::enableOk() { if (!m_xChecking->get_visible()) { int nChecked = 0; for (int i = 0, nCount = m_xUpdates->n_children(); i < nCount; ++i) { - if (m_xUpdates->get_toggle(i, 0) == TRISTATE_TRUE) + if (m_xUpdates->get_toggle(i) == TRISTATE_TRUE) ++nChecked; } m_xOk->set_sensitive(nChecked != 0); @@ -987,7 +985,7 @@ IMPL_LINK_NOARG(UpdateDialog, okHandler, weld::Button&, void) UpdateDialog::Index const * p = reinterpret_cast< UpdateDialog::Index const * >( m_xUpdates->get_id(i).toInt64()); - if (p->m_eKind == ENABLED_UPDATE && m_xUpdates->get_toggle(i, 0) == TRISTATE_TRUE) { + if (p->m_eKind == ENABLED_UPDATE && m_xUpdates->get_toggle(i) == TRISTATE_TRUE) { m_updateData.push_back( m_enabledUpdates[ p->m_nIndex ] ); } } diff --git a/include/vcl/weld.hxx b/include/vcl/weld.hxx index 8655b5282a79..f3fc52a9db3a 100644 --- a/include/vcl/weld.hxx +++ b/include/vcl/weld.hxx @@ -747,6 +747,12 @@ public: virtual void set_mru_entries(const OUString& rEntries) = 0; }; +enum class ColumnToggleType +{ + Check, + Radio +}; + class VCL_DLLPUBLIC TreeIter { private: @@ -759,6 +765,11 @@ public: virtual ~TreeIter() {} }; +/* Model column indexes are considered to begin at 0, but with special columns + before index 0. A expander image column (and an additional optional toggle + button column when enable_toggle_buttons is used). Column index -1 is + reserved to access those columns. +*/ class VCL_DLLPUBLIC TreeView : virtual public Container { public: @@ -899,8 +910,7 @@ public: */ void connect_row_activated(const Link<TreeView&, bool>& rLink) { m_aRowActivatedHdl = rLink; } - // Argument is a pair of row, col describing the node in non-tree mode. - // If in tree mode, then retrieve the toggled node with get_cursor + // Argument is a pair of iter, col describing the toggled node void connect_toggled(const Link<const iter_col&, void>& rLink) { m_aRadioToggleHdl = rLink; } void connect_column_clicked(const Link<int, void>& rLink) { m_aColumnClickedHdl = rLink; } @@ -909,18 +919,28 @@ public: virtual OUString get_selected_text() const = 0; virtual OUString get_selected_id() const = 0; + // call before inserting any content and connecting to toggle signals, + // an pre-inserted checkbutton column will exist at the start of every row + // inserted after this call which can be accessed with col index -1 + virtual void enable_toggle_buttons(ColumnToggleType eType) = 0; + //by index virtual int get_selected_index() const = 0; //Don't select when frozen, select after thaw. Note selection doesn't survive a freeze. virtual void select(int pos) = 0; virtual void unselect(int pos) = 0; virtual void remove(int pos) = 0; + // col index -1 gets the first text column virtual OUString get_text(int row, int col = -1) const = 0; + // col index -1 sets the first text column virtual void set_text(int row, const OUString& rText, int col = -1) = 0; + // col index -1 sets the first text column virtual void set_sensitive(int row, bool bSensitive, int col = -1) = 0; virtual void set_id(int row, const OUString& rId) = 0; - virtual void set_toggle(int row, TriState eState, int col) = 0; - virtual TriState get_toggle(int row, int col) const = 0; + // col index -1 sets the expander toggle, enable_toggle_buttons must have been called to create that column + virtual void set_toggle(int row, TriState eState, int col = -1) = 0; + // col index -1 gets the expander toggle, enable_toggle_buttons must have been called to create that column + virtual TriState get_toggle(int row, int col = -1) const = 0; // col index -1 sets the expander image virtual void set_image(int row, const OUString& rImage, int col = -1) = 0; // col index -1 sets the expander image @@ -1015,13 +1035,18 @@ public: virtual void set_extra_row_indent(const TreeIter& rIter, int nIndentLevel) = 0; virtual void expand_row(const TreeIter& rIter) = 0; virtual void collapse_row(const TreeIter& rIter) = 0; + // col index -1 sets the first text column virtual void set_text(const TreeIter& rIter, const OUString& rStr, int col = -1) = 0; + // col index -1 sets the first text column virtual void set_sensitive(const TreeIter& rIter, bool bSensitive, int col = -1) = 0; virtual void set_text_emphasis(const TreeIter& rIter, bool bOn, int col) = 0; virtual bool get_text_emphasis(const TreeIter& rIter, int col) const = 0; virtual void set_text_align(const TreeIter& rIter, double fAlign, int col) = 0; - virtual void set_toggle(const TreeIter& rIter, TriState bOn, int col) = 0; - virtual TriState get_toggle(const TreeIter& rIter, int col) const = 0; + // col index -1 sets the expander toggle, enable_toggle_buttons must have been called to create that column + virtual void set_toggle(const TreeIter& rIter, TriState bOn, int col = -1) = 0; + // col index -1 gets the expander toggle, enable_toggle_buttons must have been called to create that column + virtual TriState get_toggle(const TreeIter& rIter, int col = -1) const = 0; + // col index -1 gets the first text column virtual OUString get_text(const TreeIter& rIter, int col = -1) const = 0; virtual void set_id(const TreeIter& rIter, const OUString& rId) = 0; virtual OUString get_id(const TreeIter& rIter) const = 0; @@ -1138,9 +1163,6 @@ public: // remove the selected nodes virtual void remove_selection() = 0; - // call before inserting any content - virtual void set_toggle_columns_as_radio() = 0; - virtual void vadjustment_set_value(int value) = 0; virtual int vadjustment_get_value() const = 0; diff --git a/sc/source/ui/dbgui/dpgroupdlg.cxx b/sc/source/ui/dbgui/dpgroupdlg.cxx index 5e92b4228dea..44d5660cd793 100644 --- a/sc/source/ui/dbgui/dpgroupdlg.cxx +++ b/sc/source/ui/dbgui/dpgroupdlg.cxx @@ -216,17 +216,15 @@ ScDPDateGroupDlg::ScDPDateGroupDlg(weld::Window* pParent, maStartHelper.SetValue( rInfo.mbAutoStart, rInfo.mfStart ); maEndHelper.SetValue( rInfo.mbAutoEnd, rInfo.mfEnd ); - std::vector<int> aWidths; - aWidths.push_back(mxLbUnits->get_checkbox_column_width()); - mxLbUnits->set_column_fixed_widths(aWidths); + mxLbUnits->enable_toggle_buttons(weld::ColumnToggleType::Check); if( nDatePart == 0 ) nDatePart = css::sheet::DataPilotFieldGroupBy::MONTHS; for (size_t nIdx = 0; nIdx < SAL_N_ELEMENTS(aDatePartResIds); ++nIdx) { mxLbUnits->append(); - mxLbUnits->set_toggle(nIdx, (nDatePart & spnDateParts[ nIdx ]) ? TRISTATE_TRUE : TRISTATE_FALSE, 0); - mxLbUnits->set_text(nIdx, ScResId(aDatePartResIds[nIdx]), 1); + mxLbUnits->set_toggle(nIdx, (nDatePart & spnDateParts[ nIdx ]) ? TRISTATE_TRUE : TRISTATE_FALSE); + mxLbUnits->set_text(nIdx, ScResId(aDatePartResIds[nIdx]), 0); } if( rInfo.mbDateValues ) @@ -296,7 +294,7 @@ sal_Int32 ScDPDateGroupDlg::GetDatePart() const // return listbox contents for "units" mode sal_Int32 nDatePart = 0; for (int nIdx = 0, nCount = mxLbUnits->n_children(); nIdx < nCount; ++nIdx ) - if (mxLbUnits->get_toggle(nIdx, 0) == TRISTATE_TRUE) + if (mxLbUnits->get_toggle(nIdx) == TRISTATE_TRUE) nDatePart |= spnDateParts[ nIdx ]; return nDatePart; } @@ -328,7 +326,7 @@ namespace { for (int i = 0; i < rView.n_children(); ++i) { - if (rView.get_toggle(i, 0) == TRISTATE_TRUE) + if (rView.get_toggle(i) == TRISTATE_TRUE) return true; } return false; diff --git a/sc/source/ui/dbgui/pvfundlg.cxx b/sc/source/ui/dbgui/pvfundlg.cxx index e73bcc4c8085..5413b009a1a2 100644 --- a/sc/source/ui/dbgui/pvfundlg.cxx +++ b/sc/source/ui/dbgui/pvfundlg.cxx @@ -94,13 +94,13 @@ bool lclFillListBox(weld::TreeView& rLBox, const vector<ScDPLabelData::Member>& { rLBox.append(); int pos = rLBox.n_children() - 1; - rLBox.set_toggle(pos, TRISTATE_FALSE, 0); + rLBox.set_toggle(pos, TRISTATE_FALSE); OUString aName = rMember.getDisplayName(); if (!aName.isEmpty()) - rLBox.set_text(pos, aName, 1); + rLBox.set_text(pos, aName, 0); else { - rLBox.set_text(pos, ScResId(STR_EMPTYDATA), 1); + rLBox.set_text(pos, ScResId(STR_EMPTYDATA), 0); bEmpty = true; } } @@ -628,9 +628,7 @@ ScDPSubtotalOptDlg::ScDPSubtotalOptDlg(weld::Window* pParent, ScDPObject& rDPObj , mrDPObj(rDPObj) , maLabelData(rLabelData) { - std::vector<int> aWidths; - aWidths.push_back(m_xLbHide->get_checkbox_column_width()); - m_xLbHide->set_column_fixed_widths(aWidths); + m_xLbHide->enable_toggle_buttons(weld::ColumnToggleType::Check); m_xLbSortBy->set_size_request(m_xLbSortBy->get_approximate_digit_width() * 18, -1); m_xLbHide->set_size_request(-1, m_xLbHide->get_height_rows(5)); @@ -683,7 +681,7 @@ void ScDPSubtotalOptDlg::FillLabelData( ScDPLabelData& rLabelData ) const rLabelData.maMembers = maLabelData.maMembers; int nVisCount = m_xLbHide->n_children(); for (int nPos = 0; nPos < nVisCount; ++nPos) - rLabelData.maMembers[nPos].mbVisible = m_xLbHide->get_toggle(nPos, 0) == TRISTATE_FALSE; + rLabelData.maMembers[nPos].mbVisible = m_xLbHide->get_toggle(nPos) == TRISTATE_FALSE; // *** HIERARCHY *** @@ -791,7 +789,7 @@ void ScDPSubtotalOptDlg::InitHideListBox() lclFillListBox(*m_xLbHide, maLabelData.maMembers); size_t n = maLabelData.maMembers.size(); for (size_t i = 0; i < n; ++i) - m_xLbHide->set_toggle(i, maLabelData.maMembers[i].mbVisible ? TRISTATE_FALSE : TRISTATE_TRUE, 0); + m_xLbHide->set_toggle(i, maLabelData.maMembers[i].mbVisible ? TRISTATE_FALSE : TRISTATE_TRUE); bool bEnable = m_xLbHide->n_children() > 0; m_xHideFrame->set_sensitive(bEnable); } diff --git a/sc/source/ui/dbgui/tpsubt.cxx b/sc/source/ui/dbgui/tpsubt.cxx index 78fb46dd75e6..ed23b10017a6 100644 --- a/sc/source/ui/dbgui/tpsubt.cxx +++ b/sc/source/ui/dbgui/tpsubt.cxx @@ -57,9 +57,7 @@ ScTpSubTotalGroup::ScTpSubTotalGroup(weld::Container* pPage, weld::DialogControl mxLbColumns->set_size_request(-1, nHeight); mxLbFunctions->set_size_request(-1, nHeight); - std::vector<int> aWidths; - aWidths.push_back(mxLbColumns->get_checkbox_column_width()); - mxLbColumns->set_column_fixed_widths(aWidths); + mxLbColumns->enable_toggle_buttons(weld::ColumnToggleType::Check); Init(); } @@ -102,7 +100,7 @@ bool ScTpSubTotalGroup::DoReset( sal_uInt16 nGroupNo, // first we have to clear the listboxes... for (int nLbEntry = 0, nCount = mxLbColumns->n_children(); nLbEntry < nCount; ++nLbEntry) { - mxLbColumns->set_toggle(nLbEntry, TRISTATE_FALSE, 0); + mxLbColumns->set_toggle(nLbEntry, TRISTATE_FALSE); mxLbColumns->set_id(nLbEntry, "0"); } mxLbFunctions->select(0); @@ -125,7 +123,7 @@ bool ScTpSubTotalGroup::DoReset( sal_uInt16 nGroupNo, { sal_uInt16 nCheckPos = GetFieldSelPos( pSubTotals[i] ); - mxLbColumns->set_toggle(nCheckPos, TRISTATE_TRUE, 0); + mxLbColumns->set_toggle(nCheckPos, TRISTATE_TRUE); mxLbColumns->set_id(nCheckPos, OUString::number(FuncToLbPos(pFunctions[i]))); if (i == 0 || nCheckPos < nFirstChecked) @@ -151,7 +149,7 @@ namespace int nRet = 0; for (sal_Int32 i=0, nEntryCount = rTreeView.n_children(); i < nEntryCount; ++i) { - if (rTreeView.get_toggle(i, 0) == TRISTATE_TRUE) + if (rTreeView.get_toggle(i) == TRISTATE_TRUE) ++nRet; } return nRet; @@ -211,7 +209,7 @@ bool ScTpSubTotalGroup::DoFillItemSet( sal_uInt16 nGroupNo, for ( sal_Int32 i=0, nCheck=0; i<nEntryCount; i++ ) { - if (mxLbColumns->get_toggle(i, 0) == TRISTATE_TRUE) + if (mxLbColumns->get_toggle(i) == TRISTATE_TRUE) { OSL_ENSURE( nCheck <= nCheckCount, "Range error :-(" ); @@ -261,8 +259,8 @@ void ScTpSubTotalGroup::FillListBoxes() nFieldArr[i] = col; mxLbGroup->insert_text(i+1, aFieldName); mxLbColumns->insert(i); - mxLbColumns->set_toggle(i, TRISTATE_FALSE, 0); - mxLbColumns->set_text(i, aFieldName, 1); + mxLbColumns->set_toggle(i, TRISTATE_FALSE); + mxLbColumns->set_text(i, aFieldName, 0); mxLbColumns->set_id(i, "0"); i++; } @@ -359,7 +357,7 @@ void ScTpSubTotalGroup::SelectHdl(const weld::Widget *pLb) else if ( pLb == mxLbFunctions.get() ) { mxLbColumns->set_id(nColumn, OUString::number(nFunction)); - mxLbColumns->set_toggle(nColumn, TRISTATE_TRUE, 0); + mxLbColumns->set_toggle(nColumn, TRISTATE_TRUE); } } } diff --git a/sc/source/ui/miscdlgs/protectiondlg.cxx b/sc/source/ui/miscdlgs/protectiondlg.cxx index 909e205631b8..a1718ac985ed 100644 --- a/sc/source/ui/miscdlgs/protectiondlg.cxx +++ b/sc/source/ui/miscdlgs/protectiondlg.cxx @@ -59,9 +59,7 @@ ScTableProtectionDlg::ScTableProtectionDlg(weld::Window* pParent) m_aDeleteColumns = m_xDeleteColumns->get_label(); m_aDeleteRows = m_xDeleteRows->get_label(); - std::vector<int> aWidths; - aWidths.push_back(m_xOptionsListBox->get_checkbox_column_width()); - m_xOptionsListBox->set_column_fixed_widths(aWidths); + m_xOptionsListBox->enable_toggle_buttons(weld::ColumnToggleType::Check); Init(); } @@ -73,7 +71,7 @@ ScTableProtectionDlg::~ScTableProtectionDlg() void ScTableProtectionDlg::SetDialogData(const ScTableProtection& rData) { for (size_t i = 0; i < aOptions.size(); ++i) - m_xOptionsListBox->set_toggle(i, rData.isOptionEnabled(aOptions[i]) ? TRISTATE_TRUE : TRISTATE_FALSE, 0); + m_xOptionsListBox->set_toggle(i, rData.isOptionEnabled(aOptions[i]) ? TRISTATE_TRUE : TRISTATE_FALSE); } void ScTableProtectionDlg::WriteData(ScTableProtection& rData) const @@ -84,15 +82,15 @@ void ScTableProtectionDlg::WriteData(ScTableProtection& rData) const rData.setPassword(m_xPassword1Edit->get_text()); for (size_t i = 0; i < aOptions.size(); ++i) - rData.setOption(aOptions[i], m_xOptionsListBox->get_toggle(i, 0) == TRISTATE_TRUE); + rData.setOption(aOptions[i], m_xOptionsListBox->get_toggle(i) == TRISTATE_TRUE); } void ScTableProtectionDlg::InsertEntry(const OUString& rTxt) { m_xOptionsListBox->append(); const int nRow = m_xOptionsListBox->n_children() - 1; - m_xOptionsListBox->set_toggle(nRow, TRISTATE_FALSE, 0); - m_xOptionsListBox->set_text(nRow, rTxt, 1); + m_xOptionsListBox->set_toggle(nRow, TRISTATE_FALSE); + m_xOptionsListBox->set_text(nRow, rTxt, 0); } void ScTableProtectionDlg::Init() @@ -115,8 +113,8 @@ void ScTableProtectionDlg::Init() InsertEntry(m_aDeleteColumns); InsertEntry(m_aDeleteRows); - m_xOptionsListBox->set_toggle(0, TRISTATE_TRUE, 0); - m_xOptionsListBox->set_toggle(1, TRISTATE_TRUE, 0); + m_xOptionsListBox->set_toggle(0, TRISTATE_TRUE); + m_xOptionsListBox->set_toggle(1, TRISTATE_TRUE); m_xOptionsListBox->thaw(); diff --git a/sc/source/ui/miscdlgs/solveroptions.cxx b/sc/source/ui/miscdlgs/solveroptions.cxx index e22647b3d5f9..5c20611954d3 100644 --- a/sc/source/ui/miscdlgs/solveroptions.cxx +++ b/sc/source/ui/miscdlgs/solveroptions.cxx @@ -70,9 +70,7 @@ ScSolverOptionsDialog::ScSolverOptionsDialog(weld::Window* pParent, m_xLbSettings->set_size_request(m_xLbSettings->get_approximate_digit_width() * 32, m_xLbSettings->get_height_rows(6)); - std::vector<int> aWidths; - aWidths.push_back(m_xLbSettings->get_checkbox_column_width()); - m_xLbSettings->set_column_fixed_widths(aWidths); + m_xLbSettings->enable_toggle_buttons(weld::ColumnToggleType::Check); m_xLbEngine->connect_changed( LINK( this, ScSolverOptionsDialog, EngineSelectHdl ) ); @@ -138,7 +136,7 @@ const uno::Sequence<beans::PropertyValue>& ScSolverOptionsDialog::GetProperties( rValue <<= pStringItem->GetIntValue(); } else - rValue <<= m_xLbSettings->get_toggle(nEntryPos, 0) == TRISTATE_TRUE; + rValue <<= m_xLbSettings->get_toggle(nEntryPos) == TRISTATE_TRUE; } } else @@ -194,13 +192,13 @@ void ScSolverOptionsDialog::FillListBox() if ( eClass == uno::TypeClass_BOOLEAN ) { // check box entry - m_xLbSettings->set_toggle(nPos, ScUnoHelpFunctions::GetBoolFromAny(aValue) ? TRISTATE_TRUE : TRISTATE_FALSE, 0); - m_xLbSettings->set_text(nPos, aVisName, 1); + m_xLbSettings->set_toggle(nPos, ScUnoHelpFunctions::GetBoolFromAny(aValue) ? TRISTATE_TRUE : TRISTATE_FALSE); + m_xLbSettings->set_text(nPos, aVisName, 0); } else { // value entry - m_xLbSettings->set_text(nPos, aVisName, 1); + m_xLbSettings->set_text(nPos, aVisName, 0); m_aOptions.emplace_back(new ScSolverOptionsString(aVisName)); if (eClass == uno::TypeClass_DOUBLE) { @@ -213,7 +211,7 @@ void ScSolverOptionsDialog::FillListBox() rtl_math_StringFormat_Automatic, rtl_math_DecimalPlaces_Max, ScGlobal::getLocaleDataPtr()->getNumDecimalSep()[0], true ); - m_xLbSettings->set_text(nPos, sTxt, 1); + m_xLbSettings->set_text(nPos, sTxt, 0); } else { @@ -223,7 +221,7 @@ void ScSolverOptionsDialog::FillListBox() OUString sTxt = aVisName + ": " + OUString::number(nIntValue); - m_xLbSettings->set_text(nPos, sTxt, 1); + m_xLbSettings->set_text(nPos, sTxt, 0); } m_xLbSettings->set_id(nPos, OUString::number(reinterpret_cast<sal_Int64>(m_aOptions.back().get()))); } @@ -261,7 +259,7 @@ void ScSolverOptionsDialog::EditOption() rtl_math_StringFormat_Automatic, rtl_math_DecimalPlaces_Max, ScGlobal::getLocaleDataPtr()->getNumDecimalSep()[0], true ); - m_xLbSettings->set_text(nEntry, sTxt, 1); + m_xLbSettings->set_text(nEntry, sTxt, 0); } m_xValDialog.reset(); }); @@ -279,7 +277,7 @@ void ScSolverOptionsDialog::EditOption() OUString sTxt(pStringItem->GetText() + ": "); sTxt += OUString::number(pStringItem->GetIntValue()); - m_xLbSettings->set_text(nEntry, sTxt, 1); + m_xLbSettings->set_text(nEntry, sTxt, 0); } m_xIntDialog.reset(); }); diff --git a/sw/source/ui/config/optcomp.cxx b/sw/source/ui/config/optcomp.cxx index 8be4045f154c..13a11016f681 100644 --- a/sw/source/ui/config/optcomp.cxx +++ b/sw/source/ui/config/optcomp.cxx @@ -61,10 +61,8 @@ SwCompatibilityOptPage::SwCompatibilityOptPage(weld::Container* pPage, weld::Dia , m_xGlobalOptionsCLB(m_xBuilder->weld_tree_view("globaloptioncheckbox")) , m_xDefaultPB(m_xBuilder->weld_button("default")) { - std::vector<int> aWidths; - aWidths.push_back(m_xOptionsLB->get_checkbox_column_width()); - m_xOptionsLB->set_column_fixed_widths(aWidths); - m_xGlobalOptionsCLB->set_column_fixed_widths(aWidths); + m_xOptionsLB->enable_toggle_buttons(weld::ColumnToggleType::Check); + m_xGlobalOptionsCLB->enable_toggle_buttons(weld::ColumnToggleType::Check); int nPos = 0; for ( int i = static_cast<int>(SvtCompatibilityEntry::Index::Module) + 1; i < static_cast<int>(SvtCompatibilityEntry::Index::INVALID); ++i ) @@ -73,8 +71,8 @@ SwCompatibilityOptPage::SwCompatibilityOptPage(weld::Container* pPage, weld::Dia const OUString sEntry = m_xFormattingLB->get_text(nCoptIdx); m_xOptionsLB->append(); - m_xOptionsLB->set_toggle(nPos, TRISTATE_FALSE, 0); - m_xOptionsLB->set_text(nPos, sEntry, 1); + m_xOptionsLB->set_toggle(nPos, TRISTATE_FALSE); + m_xOptionsLB->set_text(nPos, sEntry, 0); ++nPos; } @@ -88,8 +86,8 @@ SwCompatibilityOptPage::SwCompatibilityOptPage(weld::Container* pPage, weld::Dia m_xGlobalOptionsCLB->append(); const bool bChecked = m_aViewConfigItem.HasMSOCompatibleFormsMenu(); - m_xGlobalOptionsCLB->set_toggle(0, bChecked ? TRISTATE_TRUE : TRISTATE_FALSE, 0); - m_xGlobalOptionsCLB->set_text(0, m_xGlobalOptionsLB->get_text(0), 1); + m_xGlobalOptionsCLB->set_toggle(0, bChecked ? TRISTATE_TRUE : TRISTATE_FALSE); + m_xGlobalOptionsCLB->set_text(0, m_xGlobalOptionsLB->get_text(0), 0); m_xGlobalOptionsLB->clear(); @@ -279,7 +277,7 @@ IMPL_LINK_NOARG(SwCompatibilityOptPage, UseAsDefaultHdl, weld::Button&, void) const sal_Int32 nCount = m_xOptionsLB->n_children(); for ( sal_Int32 i = 0; i < nCount; ++i ) { - bool bChecked = m_xOptionsLB->get_toggle(i, 0); + bool bChecked = m_xOptionsLB->get_toggle(i); int nCoptIdx = i + 2; /* Consider "Name" & "Module" indexes */ pItem->setValue<bool>( SvtCompatibilityEntry::Index(nCoptIdx), bChecked ); @@ -297,7 +295,7 @@ void SwCompatibilityOptPage::SetCurrentOptions( sal_uInt32 nOptions ) for (int i = 0; i < nCount; ++i) { bool bChecked = ( ( nOptions & 0x00000001 ) == 0x00000001 ); - m_xOptionsLB->set_toggle(i, bChecked ? TRISTATE_TRUE : TRISTATE_FALSE, 0); + m_xOptionsLB->set_toggle(i, bChecked ? TRISTATE_TRUE : TRISTATE_FALSE); nOptions = nOptions >> 1; } } @@ -351,7 +349,7 @@ bool SwCompatibilityOptPage::FillItemSet( SfxItemSet* ) for (int i = 0; i < nCount; ++i) { - bool bChecked = m_xOptionsLB->get_toggle(i, 0) == TRISTATE_TRUE; + bool bChecked = m_xOptionsLB->get_toggle(i) == TRISTATE_TRUE; bool bSavedChecked = ( ( nSavedOptions & 0x00000001 ) == 0x00000001 ); if ( bChecked != bSavedChecked ) { @@ -431,7 +429,7 @@ bool SwCompatibilityOptPage::FillItemSet( SfxItemSet* ) if ( bModified ) WriteOptions(); - bool bNewMSFormsMenuOption = m_xGlobalOptionsCLB->get_toggle(0, 0); + bool bNewMSFormsMenuOption = m_xGlobalOptionsCLB->get_toggle(0); if (m_bSavedMSFormsMenuOption != bNewMSFormsMenuOption) { m_aViewConfigItem.SetMSOCompatibleFormsMenu(bNewMSFormsMenuOption); @@ -460,7 +458,7 @@ void SwCompatibilityOptPage::Reset( const SfxItemSet* ) SetCurrentOptions( nOptions ); m_nSavedOptions = nOptions; - m_xGlobalOptionsCLB->set_toggle(0, m_aViewConfigItem.HasMSOCompatibleFormsMenu() ? TRISTATE_TRUE : TRISTATE_FALSE, 0); + m_xGlobalOptionsCLB->set_toggle(0, m_aViewConfigItem.HasMSOCompatibleFormsMenu() ? TRISTATE_TRUE : TRISTATE_FALSE); m_bSavedMSFormsMenuOption = m_aViewConfigItem.HasMSOCompatibleFormsMenu(); } diff --git a/sw/source/ui/config/optload.cxx b/sw/source/ui/config/optload.cxx index b5e1a1aa0bc3..9a5d934367a7 100644 --- a/sw/source/ui/config/optload.cxx +++ b/sw/source/ui/config/optload.cxx @@ -459,9 +459,7 @@ SwCaptionOptPage::SwCaptionOptPage(weld::Container* pPage, weld::DialogControlle { m_xCategoryBox->connect_entry_insert_text(LINK(this, SwCaptionOptPage, TextFilterHdl)); - 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); SwStyleNameMapper::FillUIName(RES_POOLCOLL_LABEL_ABB, m_sIllustration); SwStyleNameMapper::FillUIName(RES_POOLCOLL_LABEL_TABLE, m_sTable); @@ -554,7 +552,7 @@ bool SwCaptionOptPage::FillItemSet( SfxItemSet* ) int nCheckCount = 0; for (int i = 0, nCount = m_xCheckLB->n_children(); i < nCount; ++i) { - if (m_xCheckLB->get_toggle(i, 0) == TRISTATE_TRUE) + if (m_xCheckLB->get_toggle(i) == TRISTATE_TRUE) ++nCheckCount; InsCaptionOpt* pData = reinterpret_cast<InsCaptionOpt*>(m_xCheckLB->get_id(i).toInt64()); bRet |= pModOpt->SetCapOption(bHTMLMode, pData); @@ -582,16 +580,16 @@ void SwCaptionOptPage::Reset( const SfxItemSet* rSet) // Writer objects int nPos = 0; m_xCheckLB->append(); - m_xCheckLB->set_toggle(nPos, TRISTATE_FALSE, 0); - m_xCheckLB->set_text(nPos, m_sSWTable, 1); + m_xCheckLB->set_toggle(nPos, TRISTATE_FALSE); + m_xCheckLB->set_text(nPos, m_sSWTable, 0); SetOptions(nPos++, TABLE_CAP); m_xCheckLB->append(); - m_xCheckLB->set_toggle(nPos, TRISTATE_FALSE, 0); - m_xCheckLB->set_text(nPos, m_sSWFrame, 1); + m_xCheckLB->set_toggle(nPos, TRISTATE_FALSE); + m_xCheckLB->set_text(nPos, m_sSWFrame, 0); SetOptions(nPos++, FRAME_CAP); m_xCheckLB->append(); - m_xCheckLB->set_toggle(nPos, TRISTATE_FALSE, 0); - m_xCheckLB->set_text(nPos, m_sSWGraphic, 1); + m_xCheckLB->set_toggle(nPos, TRISTATE_FALSE); + m_xCheckLB->set_text(nPos, m_sSWGraphic, 0); SetOptions(nPos++, GRAPHIC_CAP); // get Productname and -version @@ -615,8 +613,8 @@ void SwCaptionOptPage::Reset( const SfxItemSet* rSet) // don't show product version sClass = sClass.replaceFirst( sComplete, sWithoutVersion ); m_xCheckLB->append(); - m_xCheckLB->set_toggle(nPos, TRISTATE_FALSE, 0); - m_xCheckLB->set_text(nPos, sClass, 1); + m_xCheckLB->set_toggle(nPos, TRISTATE_FALSE); + m_xCheckLB->set_text(nPos, sClass, 0); SetOptions( nPos++, OLE_CAP, &rOleId ); } m_xLbCaptionOrder->set_active( @@ -635,7 +633,7 @@ void SwCaptionOptPage::SetOptions(const sal_uLong nPos, { InsCaptionOpt* pIns = new InsCaptionOpt(*pOpt); m_xCheckLB->set_id(nPos, OUString::number(reinterpret_cast<sal_Int64>(pIns))); - m_xCheckLB->set_toggle(nPos, pOpt->UseCaption() ? TRISTATE_TRUE : TRISTATE_FALSE, 0); + m_xCheckLB->set_toggle(nPos, pOpt->UseCaption() ? TRISTATE_TRUE : TRISTATE_FALSE); } else { @@ -657,7 +655,7 @@ void SwCaptionOptPage::UpdateEntry(int nSelEntry) { if (nSelEntry != -1) { - bool bChecked = m_xCheckLB->get_toggle(nSelEntry, 0) == TRISTATE_TRUE; + bool bChecked = m_xCheckLB->get_toggle(nSelEntry) == TRISTATE_TRUE; m_xSettingsGroup->set_sensitive(bChecked); bool bNumSep = bChecked && m_xLbCaptionOrder->get_active() == 1; @@ -780,7 +778,7 @@ void SwCaptionOptPage::SaveEntry(int nEntry) InsCaptionOpt* pOpt = reinterpret_cast<InsCaptionOpt*>(m_xCheckLB->get_id(nEntry).toInt64()); - pOpt->UseCaption() = m_xCheckLB->get_toggle(nEntry, 0) == TRISTATE_TRUE; + pOpt->UseCaption() = m_xCheckLB->get_toggle(nEntry) == TRISTATE_TRUE; const OUString aName(m_xCategoryBox->get_active_text()); if (aName == m_sNone) pOpt->SetCategory(""); @@ -845,7 +843,7 @@ IMPL_LINK(SwCaptionOptPage, OrderHdl, weld::ComboBox&, rBox, void) bool bChecked = false; if (nSelEntry != -1) { - bChecked = m_xCheckLB->get_toggle(nSelEntry, 0) == TRISTATE_TRUE; + bChecked = m_xCheckLB->get_toggle(nSelEntry) == TRISTATE_TRUE; } int nPos = rBox.get_active(); diff --git a/sw/source/ui/index/cnttab.cxx b/sw/source/ui/index/cnttab.cxx index cbdb3c995196..3fc5120696ed 100644 --- a/sw/source/ui/index/cnttab.cxx +++ b/sw/source/ui/index/cnttab.cxx @@ -498,8 +498,9 @@ SwAddStylesDlg_Impl::SwAddStylesDlg_Impl(weld::Window* pParent, m_xOk->connect_clicked(LINK(this, SwAddStylesDlg_Impl, OkHdl)); m_xLeftPB->connect_clicked(LINK(this, SwAddStylesDlg_Impl, LeftRightHdl)); m_xRightPB->connect_clicked(LINK(this, SwAddStylesDlg_Impl, LeftRightHdl)); + m_xHeaderTree->connect_size_allocate(LINK(this, SwAddStylesDlg_Impl, TreeSizeAllocHdl)); - m_xHeaderTree->set_toggle_columns_as_radio(); + m_xHeaderTree->enable_toggle_buttons(weld::ColumnToggleType::Radio); m_xHeaderTree->connect_toggled(LINK(this, SwAddStylesDlg_Impl, RadioToggleOnHdl)); std::vector<int> aWidths; @@ -744,16 +745,14 @@ SwTOXSelectTabPage::SwTOXSelectTabPage(weld::Container* pPage, weld::DialogContr sAddStyleContent = m_xAddStylesCB->get_label(); - std::vector<int> aWidths; - aWidths.push_back(m_xFromObjCLB->get_checkbox_column_width()); - m_xFromObjCLB->set_column_fixed_widths(aWidths); + m_xFromObjCLB->enable_toggle_buttons(weld::ColumnToggleType::Check); for (size_t i = 0; i < SAL_N_ELEMENTS(RES_SRCTYPES); ++i) { OUString sId(OUString::number(static_cast<sal_uInt32>(RES_SRCTYPES[i].second))); m_xFromObjCLB->append(); - m_xFromObjCLB->set_toggle(i, TRISTATE_FALSE, 0); - m_xFromObjCLB->set_text(i, SwResId(RES_SRCTYPES[i].first), 1); + m_xFromObjCLB->set_toggle(i, TRISTATE_FALSE); + m_xFromObjCLB->set_text(i, SwResId(RES_SRCTYPES[i].first), 0); m_xFromObjCLB->set_id(i, sId); } m_xFromObjCLB->set_size_request(-1, std::max<int>(m_xFromObjCLB->get_preferred_size().Height(), @@ -966,7 +965,7 @@ void SwTOXSelectTabPage::ApplyTOXDescription() for (int nFromObj = 0, nCount = m_xFromObjCLB->n_children(); nFromObj < nCount; ++nFromObj) { SwTOOElements nData = static_cast<SwTOOElements>(m_xFromObjCLB->get_id(nFromObj).toInt32()); - m_xFromObjCLB->set_toggle(nFromObj, bool(nData & nOLEData) ? TRISTATE_TRUE : TRISTATE_FALSE, 0); + m_xFromObjCLB->set_toggle(nFromObj, bool(nData & nOLEData) ? TRISTATE_TRUE : TRISTATE_FALSE); } } else if(TOX_AUTHORITIES == aCurType.eType) @@ -1061,7 +1060,7 @@ void SwTOXSelectTabPage::FillTOXDescription() SwTOOElements nOLEData = SwTOOElements::NONE; for (int i = 0, nCount = m_xFromObjCLB->n_children(); i < nCount; ++i) { - if (m_xFromObjCLB->get_toggle(i, 0) == TRISTATE_TRUE) + if (m_xFromObjCLB->get_toggle(i) == TRISTATE_TRUE) { SwTOOElements nData = static_cast<SwTOOElements>(m_xFromObjCLB->get_id(i).toInt32()); nOLEData |= nData; diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx index 3ea87a0c0e76..786744707342 100644 --- a/vcl/source/app/salvtables.cxx +++ b/vcl/source/app/salvtables.cxx @@ -3156,33 +3156,6 @@ struct SalInstanceTreeIter : public weld::TreeIter SvTreeListEntry* iter; }; -TriState get_toggle(SvTreeListEntry* pEntry, int col) -{ - ++col; //skip dummy/expander column - - if (static_cast<size_t>(col) == pEntry->ItemCount()) - return TRISTATE_FALSE; - - assert(col >= 0 && o3tl::make_unsigned(col) < pEntry->ItemCount()); - SvLBoxItem& rItem = pEntry->GetItem(col); - assert(dynamic_cast<SvLBoxButton*>(&rItem)); - SvLBoxButton& rToggle = static_cast<SvLBoxButton&>(rItem); - if (rToggle.IsStateTristate()) - return TRISTATE_INDET; - else if (rToggle.IsStateChecked()) - return TRISTATE_TRUE; - return TRISTATE_FALSE; -} - -bool get_text_emphasis(SvTreeListEntry* pEntry, int col) -{ - ++col; //skip dummy/expander column - - assert(col >= 0 && o3tl::make_unsigned(col) < pEntry->ItemCount()); - SvLBoxItem& rItem = pEntry->GetItem(col); - assert(dynamic_cast<SvLBoxString*>(&rItem)); - return static_cast<SvLBoxString&>(rItem).IsEmphasized(); -} } class SalInstanceTreeView; @@ -3226,6 +3199,25 @@ private: DECL_LINK(CustomRenderHdl, svtree_render_args, void); DECL_LINK(CustomMeasureHdl, svtree_measure_args, Size); + // Each row has a cell for the expander image, (and an optional cell for a + // checkbutton if enable_toggle_buttons has been called) which preceed + // index 0 + int to_internal_model(int col) const + { + if (m_xTreeView->nTreeFlags & SvTreeFlags::CHKBTN) + ++col; // skip checkbutton column + ++col; //skip expander column + return col; + } + + int to_external_model(int col) const + { + if (m_xTreeView->nTreeFlags & SvTreeFlags::CHKBTN) + --col; // skip checkbutton column + --col; //skip expander column + return col; + } + bool IsDummyEntry(SvTreeListEntry* pEntry) const { return m_xTreeView->GetEntryText(pEntry).trim() == "<dummy>"; @@ -3280,6 +3272,10 @@ private: SvTreeListEntry* pEntry = new SvTreeListEntry; if (bIsSeparator) pEntry->SetFlags(pEntry->GetFlags() | SvTLEntryFlags::IS_SEPARATOR); + + if (m_xTreeView->nTreeFlags & SvTreeFlags::CHKBTN) + AddStringItem(pEntry, "", -1); + if (pIconName || pImageSurface) { Image aImage(pIconName ? createImage(*pIconName) : createImage(*pImageSurface)); @@ -3317,6 +3313,105 @@ private: enable_notify_events(); } + void update_checkbutton_column_width(SvTreeListEntry* pEntry) + { + SvViewDataEntry* pViewData = m_xTreeView->GetViewDataEntry(pEntry); + m_xTreeView->InitViewData(pViewData, pEntry); + if (!m_bDisableCheckBoxAutoWidth) + m_xTreeView->CheckBoxInserted(pEntry); + } + + void do_set_toggle(SvTreeListEntry* pEntry, TriState eState, int col) + { + assert(col >= 0 && o3tl::make_unsigned(col) < pEntry->ItemCount()); + // if its the placeholder to allow a blank column, replace it now + if (pEntry->GetItem(col).GetType() != SvLBoxItemType::Button) + { + SvLBoxButtonData* pData = m_bTogglesAsRadio ? &m_aRadioButtonData : &m_aCheckButtonData; + pEntry->ReplaceItem(std::make_unique<SvLBoxButton>(pData), 0); + update_checkbutton_column_width(pEntry); + + } + SvLBoxItem& rItem = pEntry->GetItem(col); + assert(dynamic_cast<SvLBoxButton*>(&rItem)); + switch (eState) + { + case TRISTATE_TRUE: + static_cast<SvLBoxButton&>(rItem).SetStateChecked(); + break; + case TRISTATE_FALSE: + static_cast<SvLBoxButton&>(rItem).SetStateUnchecked(); + break; + case TRISTATE_INDET: + static_cast<SvLBoxButton&>(rItem).SetStateTristate(); + break; + } + + m_xTreeView->ModelHasEntryInvalidated(pEntry); + } + + static TriState do_get_toggle(SvTreeListEntry* pEntry, int col) + { + if (static_cast<size_t>(col) == pEntry->ItemCount()) + return TRISTATE_FALSE; + + assert(col >= 0 && o3tl::make_unsigned(col) < pEntry->ItemCount()); + SvLBoxItem& rItem = pEntry->GetItem(col); + assert(dynamic_cast<SvLBoxButton*>(&rItem)); + SvLBoxButton& rToggle = static_cast<SvLBoxButton&>(rItem); + if (rToggle.IsStateTristate()) + return TRISTATE_INDET; + else if (rToggle.IsStateChecked()) + return TRISTATE_TRUE; + return TRISTATE_FALSE; + } + + TriState get_toggle(SvTreeListEntry* pEntry, int col) const + { + if (col == -1) + { + assert(m_xTreeView->nTreeFlags & SvTreeFlags::CHKBTN); + return do_get_toggle(pEntry, 0); + } + col = to_internal_model(col); + return do_get_toggle(pEntry, col); + } + + void set_toggle(SvTreeListEntry* pEntry, TriState eState, int col) + { + if (col == -1) + { + assert(m_xTreeView->nTreeFlags & SvTreeFlags::CHKBTN); + do_set_toggle(pEntry, eState, 0); + return; + } + + col = to_internal_model(col); + + // blank out missing entries + for (int i = pEntry->ItemCount(); i < col; ++i) + AddStringItem(pEntry, "", i - 1); + + if (static_cast<size_t>(col) == pEntry->ItemCount()) + { + SvLBoxButtonData* pData = m_bTogglesAsRadio ? &m_aRadioButtonData : &m_aCheckButtonData; + pEntry->AddItem(std::make_unique<SvLBoxButton>(pData)); + update_checkbutton_column_width(pEntry); + } + + do_set_toggle(pEntry, eState, col); + } + + bool get_text_emphasis(SvTreeListEntry* pEntry, int col) const + { + col = to_internal_model(col); + + assert(col >= 0 && o3tl::make_unsigned(col) < pEntry->ItemCount()); + SvLBoxItem& rItem = pEntry->GetItem(col); + assert(dynamic_cast<SvLBoxString*>(&rItem)); + return static_cast<SvLBoxString&>(rItem).IsEmphasized(); + } + public: SalInstanceTreeView(SvTabListBox* pTreeView, SalInstanceBuilder* pBuilder, bool bTakeOwnership) : SalInstanceContainer(pTreeView, pBuilder, bTakeOwnership) @@ -3522,6 +3617,8 @@ public: for (int i = 0; i < nSourceCount; ++i) { aVclIter.iter = new SvTreeListEntry; + if (m_xTreeView->nTreeFlags & SvTreeFlags::CHKBTN) + AddStringItem(aVclIter.iter, "", -1); aVclIter.iter->AddItem(std::make_unique<SvLBoxContextBmp>(aDummy, aDummy, false)); m_xTreeView->Insert(aVclIter.iter, nullptr, TREELIST_APPEND); func(aVclIter, i); @@ -3694,12 +3791,12 @@ public: return aRows; } - static OUString get_text(SvTreeListEntry* pEntry, int col) + OUString get_text(SvTreeListEntry* pEntry, int col) const { if (col == -1) return SvTabListBox::GetEntryText(pEntry, 0); - ++col; //skip dummy/expander column + col = to_internal_model(col); if (static_cast<size_t>(col) == pEntry->ItemCount()) return OUString(); @@ -3724,7 +3821,7 @@ public: return; } - ++col; //skip dummy/expander column + col = to_internal_model(col); // blank out missing entries for (int i = pEntry->ItemCount(); i < col; ++i) @@ -3774,7 +3871,7 @@ public: return; } - ++col; //skip dummy/expander column + col = to_internal_model(col); assert(col >= 0 && o3tl::make_unsigned(col) < pEntry->ItemCount()); SvLBoxItem& rItem = pEntry->GetItem(col); @@ -3800,72 +3897,24 @@ public: virtual TriState get_toggle(int pos, int col) const override { SvTreeListEntry* pEntry = m_xTreeView->GetEntry(nullptr, pos); - return ::get_toggle(pEntry, col); + return get_toggle(pEntry, col); } virtual TriState get_toggle(const weld::TreeIter& rIter, int col) const override { const SalInstanceTreeIter& rVclIter = static_cast<const SalInstanceTreeIter&>(rIter); - return ::get_toggle(rVclIter.iter, col); - } - - virtual void set_toggle_columns_as_radio() override - { - m_bTogglesAsRadio = true; + return get_toggle(rVclIter.iter, col); } - void set_toggle(SvTreeListEntry* pEntry, TriState eState, int col) + virtual void enable_toggle_buttons(weld::ColumnToggleType eType) override { - ++col; //skip dummy/expander column - - // blank out missing entries - for (int i = pEntry->ItemCount(); i < col; ++i) - AddStringItem(pEntry, "", i - 1); - - if (static_cast<size_t>(col) == pEntry->ItemCount()) - { - SvLBoxButtonData* pData = m_bTogglesAsRadio ? &m_aRadioButtonData : &m_aCheckButtonData; - - // if we want to have the implicit auto-sizing of the checkbox - // column we need to call EnableCheckButton and CheckBoxInserted to - // let it figure out that width. But we don't want to override any - // explicitly set column width, so disable this if we've set - // explicit column widths - if (!m_bDisableCheckBoxAutoWidth) - { - if (!(m_xTreeView->GetTreeFlags() & SvTreeFlags::CHKBTN)) - { - m_xTreeView->EnableCheckButton(pData); - // EnableCheckButton clobbered this, restore it - pData->SetLink(LINK(this, SalInstanceTreeView, ToggleHdl)); - } - } - - pEntry->AddItem(std::make_unique<SvLBoxButton>(pData)); - SvViewDataEntry* pViewData = m_xTreeView->GetViewDataEntry(pEntry); - m_xTreeView->InitViewData(pViewData, pEntry); - - if (!m_bDisableCheckBoxAutoWidth) - m_xTreeView->CheckBoxInserted(pEntry); - } - - assert(col >= 0 && o3tl::make_unsigned(col) < pEntry->ItemCount()); - SvLBoxItem& rItem = pEntry->GetItem(col); - assert(dynamic_cast<SvLBoxButton*>(&rItem)); - switch (eState) - { - case TRISTATE_TRUE: - static_cast<SvLBoxButton&>(rItem).SetStateChecked(); - break; - case TRISTATE_FALSE: - static_cast<SvLBoxButton&>(rItem).SetStateUnchecked(); - break; - case TRISTATE_INDET: - static_cast<SvLBoxButton&>(rItem).SetStateTristate(); - break; - } + assert(n_children() == 0 && "tree must be empty"); + m_bTogglesAsRadio = eType == weld::ColumnToggleType::Radio; - m_xTreeView->ModelHasEntryInvalidated(pEntry); + SvLBoxButtonData* pData = m_bTogglesAsRadio ? &m_aRadioButtonData : &m_aCheckButtonData; + m_xTreeView->EnableCheckButton(pData); + // EnableCheckButton clobbered this, restore it + pData->SetLink(LINK(this, SalInstanceTreeView, ToggleHdl)); } virtual void set_toggle(int pos, TriState eState, int col) override @@ -3889,7 +3938,7 @@ public: void set_text_emphasis(SvTreeListEntry* pEntry, bool bOn, int col) { - ++col; //skip dummy/expander column + col = to_internal_model(col); assert(col >= 0 && o3tl::make_unsigned(col) < pEntry->ItemCount()); SvLBoxItem& rItem = pEntry->GetItem(col); @@ -3914,18 +3963,18 @@ public: virtual bool get_text_emphasis(const weld::TreeIter& rIter, int col) const override { const SalInstanceTreeIter& rVclIter = static_cast<const SalInstanceTreeIter&>(rIter); - return ::get_text_emphasis(rVclIter.iter, col); + return get_text_emphasis(rVclIter.iter, col); } virtual bool get_text_emphasis(int pos, int col) const override { SvTreeListEntry* pEntry = m_xTreeView->GetEntry(nullptr, pos); - return ::get_text_emphasis(pEntry, col); + return get_text_emphasis(pEntry, col); } void set_text_align(SvTreeListEntry* pEntry, double fAlign, int col) { - ++col; //skip dummy/expander column + col = to_internal_model(col); assert(col >= 0 && o3tl::make_unsigned(col) < pEntry->ItemCount()); SvLBoxItem& rItem = pEntry->GetItem(col); @@ -3972,7 +4021,7 @@ public: return; } - ++col; //skip dummy/expander column + col = to_internal_model(col); // blank out missing entries for (int i = pEntry->ItemCount(); i < col; ++i) @@ -4659,9 +4708,7 @@ IMPL_LINK(SalInstanceTreeView, CompareHdl, const SvSortData&, rSortData, sal_Int if (m_nSortColumn != -1) { - size_t col = m_nSortColumn; - - ++col; //skip dummy/expander column + size_t col = to_internal_model(m_nSortColumn); if (col < pLHS->ItemCount()) { @@ -4740,7 +4787,7 @@ IMPL_LINK(SalInstanceTreeView, ToggleHdl, SvLBoxButtonData*, pData, void) SvLBoxItem& rItem = pEntry->GetItem(i); if (&rItem == pBox) { - int nCol = i - 1; // less dummy/expander column + int nCol = to_external_model(i); signal_toggled(iter_col(SalInstanceTreeIter(pEntry), nCol)); break; } diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx index 642379718e60..da66005a8a9e 100644 --- a/vcl/unx/gtk3/gtk3gtkinst.cxx +++ b/vcl/unx/gtk3/gtk3gtkinst.cxx @@ -9112,6 +9112,7 @@ private: gint m_nTextCol; gint m_nTextView; gint m_nImageCol; + gint m_nExpanderToggleCol; gint m_nExpanderImageCol; gint m_nIdCol; int m_nPendingVAdjustment; @@ -9532,21 +9533,25 @@ private: } // The outside concept of a column maps to a gtk CellRenderer, rather than - // a TreeViewColumn. If the first TreeViewColumn has two CellRenderers, and - // the first CellRenderer is an image, that CellRenderer is considered to - // be index -1. + // a TreeViewColumn. If the first TreeViewColumn has a leading Toggle Renderer + // and/or a leading Image Renderer, those are considered special expander + // columns and preceed index 0 and can be accessed via outside index -1 int to_external_model(int modelcol) const { - if (m_nExpanderImageCol == -1) - return modelcol; - return modelcol - 1; + if (m_nExpanderToggleCol != -1) + --modelcol; + if (m_nExpanderImageCol != -1) + --modelcol; + return modelcol; } int to_internal_model(int modelcol) const { - if (m_nExpanderImageCol == -1) - return modelcol; - return modelcol + 1; + if (m_nExpanderToggleCol != -1) + ++modelcol; + if (m_nExpanderImageCol != -1) + ++modelcol; + return modelcol; } void set_column_editable(int nCol, bool bEditable) @@ -9783,6 +9788,7 @@ public: , m_nTextCol(-1) , m_nTextView(-1) , m_nImageCol(-1) + , m_nExpanderToggleCol(-1) , m_nExpanderImageCol(-1) , m_nPendingVAdjustment(-1) , m_nChangedSignalId(g_signal_connect(gtk_tree_view_get_selection(pTreeView), "changed", @@ -9798,9 +9804,9 @@ public: , m_pChangeEvent(nullptr) { /* The outside concept of a column maps to a gtk CellRenderer, rather than - a TreeViewColumn. If the first TreeViewColumn has two CellRenderers, and - the first CellRenderer is an image, that CellRenderer is considered to - be index -1. + a TreeViewColumn. If the first TreeViewColumn has a leading Toggle Renderer + and/or a leading Image Renderer, those are considered special expander + columns and preceed index 0 and can be accessed via outside index -1 */ m_pColumns = gtk_tree_view_get_columns(m_pTreeView); int nIndex(0); @@ -9830,6 +9836,9 @@ public: } else if (GTK_IS_CELL_RENDERER_TOGGLE(pCellRenderer)) { + const bool bExpander = nIndex == 0 || (nIndex == 1 && m_nExpanderImageCol == 0); + if (bExpander) + m_nExpanderToggleCol = nIndex; g_signal_connect(G_OBJECT(pCellRenderer), "toggled", G_CALLBACK(signalCellToggled), this); m_aToggleVisMap[nIndex] = -1; m_aToggleTriStateMap[nIndex] = -1; @@ -10379,7 +10388,11 @@ public: virtual TriState get_toggle(int pos, int col) const override { - col = to_internal_model(col); + if (col == -1) + col = m_nExpanderToggleCol; + else + col = to_internal_model(col); + if (get_bool(pos, m_aToggleTriStateMap.find(col)->second)) return TRISTATE_INDET; return get_bool(pos, col) ? TRISTATE_TRUE : TRISTATE_FALSE; @@ -10387,7 +10400,11 @@ public: virtual TriState get_toggle(const weld::TreeIter& rIter, int col) const override { - col = to_internal_model(col); + if (col == -1) + col = m_nExpanderToggleCol; + else + col = to_internal_model(col); + const GtkInstanceTreeIter& rGtkIter = static_cast<const GtkInstanceTreeIter&>(rIter); if (get_bool(rGtkIter.iter, m_aToggleTriStateMap.find(col)->second)) return TRISTATE_INDET; @@ -10396,7 +10413,11 @@ public: virtual void set_toggle(int pos, TriState eState, int col) override { - col = to_internal_model(col); + if (col == -1) + col = m_nExpanderToggleCol; + else + col = to_internal_model(col); + // checkbuttons are invisible until toggled on or off set(pos, m_aToggleVisMap[col], true); if (eState == TRISTATE_INDET) @@ -10411,7 +10432,12 @@ public: virtual void set_toggle(const weld::TreeIter& rIter, TriState eState, int col) override { const GtkInstanceTreeIter& rGtkIter = static_cast<const GtkInstanceTreeIter&>(rIter); - col = to_internal_model(col); + + if (col == -1) + col = m_nExpanderToggleCol; + else + col = to_internal_model(col); + // checkbuttons are invisible until toggled on or off set(rGtkIter.iter, m_aToggleVisMap[col], true); if (eState == TRISTATE_INDET) @@ -10423,7 +10449,7 @@ public: } } - virtual void set_toggle_columns_as_radio() override + virtual void enable_toggle_buttons(weld::ColumnToggleType eType) override { for (GList* pEntry = g_list_first(m_pColumns); pEntry; pEntry = g_list_next(pEntry)) { @@ -10435,7 +10461,7 @@ public: if (!GTK_IS_CELL_RENDERER_TOGGLE(pCellRenderer)) continue; GtkCellRendererToggle* pToggle = GTK_CELL_RENDERER_TOGGLE(pCellRenderer); - gtk_cell_renderer_toggle_set_radio(pToggle, true); + gtk_cell_renderer_toggle_set_radio(pToggle, eType == weld::ColumnToggleType::Radio); } g_list_free(pRenderers); } |