25#include <editeng/editids.hrc>
38#include <officecfg/Office/Common.hxx>
70 { Group_General,
"general" },
71 { Group_Writer,
"writer" },
72 { Group_Html,
"html" },
73 { Group_Calc,
"calc" },
74 { Group_Draw,
"draw" },
75 { Group_Basic,
"basic" },
94 SAL_STRINGIFY(Name), SAL_STRINGIFY(Name##_lb), false
96 #define IDS_CB(Name) \
97 SAL_STRINGIFY(Name), SAL_STRINGIFY(Name##_lb), true
101 { Group_General,
IDS(doccolor) },
102 { Group_General,
IDS_CB(docboundaries) },
103 { Group_General,
IDS(appback) },
104 { Group_General,
IDS_CB(objboundaries) },
105 { Group_General,
IDS_CB(tblboundaries) },
106 { Group_General,
IDS(font) },
107 { Group_General,
IDS_CB(unvisitedlinks) },
108 { Group_General,
IDS_CB(visitedlinks) },
109 { Group_General,
IDS(autospellcheck) },
110 { Group_General,
IDS(grammarcheck) },
111 { Group_General,
IDS(smarttags) },
112 { Group_General,
IDS_CB(shadows) },
114 { Group_Writer,
IDS(writergrid) },
115 { Group_Writer,
IDS_CB(field) },
116 { Group_Writer,
IDS_CB(index) },
117 { Group_Writer,
IDS(direct) },
118 { Group_Writer,
IDS(script) },
119 { Group_Writer,
IDS_CB(section) },
120 { Group_Writer,
IDS(hdft) },
121 { Group_Writer,
IDS(pagebreak) },
123 { Group_Html,
IDS(sgml) },
124 { Group_Html,
IDS(htmlcomment) },
125 { Group_Html,
IDS(htmlkeyword) },
126 { Group_Html,
IDS(unknown) },
128 { Group_Calc,
IDS(calcgrid) },
129 { Group_Calc,
IDS(brk) },
130 { Group_Calc,
IDS(brkmanual) },
131 { Group_Calc,
IDS(brkauto) },
132 { Group_Calc,
IDS_CB(hiddencolrow) },
133 { Group_Calc,
IDS_CB(textoverflow) },
134 { Group_Calc,
IDS(comments) },
135 { Group_Calc,
IDS(det) },
136 { Group_Calc,
IDS(deterror) },
137 { Group_Calc,
IDS(ref) },
138 { Group_Calc,
IDS(notes) },
139 { Group_Calc,
IDS(values) },
140 { Group_Calc,
IDS(formulas) },
141 { Group_Calc,
IDS(text) },
142 { Group_Calc,
IDS(protectedcells) },
144 { Group_Draw,
IDS(drawgrid) },
146 { Group_Basic,
IDS(basiceditor) },
147 { Group_Basic,
IDS(basicid) },
148 { Group_Basic,
IDS(basiccomment) },
149 { Group_Basic,
IDS(basicnumber) },
150 { Group_Basic,
IDS(basicstring) },
151 { Group_Basic,
IDS(basicop) },
152 { Group_Basic,
IDS(basickeyword) },
153 { Group_Basic,
IDS(error) },
155 { Group_Sql,
IDS(sqlid) },
156 { Group_Sql,
IDS(sqlnumber) },
157 { Group_Sql,
IDS(sqlstring) },
158 { Group_Sql,
IDS(sqlop) },
159 { Group_Sql,
IDS(sqlkeyword) },
160 { Group_Sql,
IDS(sqlparam) },
161 { Group_Sql,
IDS(sqlcomment) }
167const std::map<OUString, OUString> &getColorSchemes()
169 static std::map<OUString, OUString>
const vColorSchemes = {
170 {
"COLOR_SCHEME_LIBREOFFICE_AUTOMATIC",
CuiResId(RID_COLOR_SCHEME_LIBREOFFICE_AUTOMATIC)},
172 return vColorSchemes;
178OUString lcl_SchemeIdToTranslatedName(
const OUString& sSchemeId)
180 auto it = getColorSchemes().find(sSchemeId);
181 if (it != getColorSchemes().
end())
188OUString lcl_TranslatedNameToSchemeId(
const OUString& sName)
190 for (
auto it = getColorSchemes().
begin(); it != getColorSchemes().end(); ++it)
191 if (it->second == sName)
198class ColorConfigWindow_Impl
208 void Update(EditableColorConfig
const*, EditableExtendedColorConfig
const*);
209 void UpdateEntries();
211 void ColorHdl(EditableColorConfig*, EditableExtendedColorConfig*,
const ColorListBox*);
228 int GetLabelIndent()
const
230 return m_nCheckBoxLabelOffset;
238 std::unique_ptr<weld::Label> m_xText;
241 void SetText(
const OUString& rLabel) { m_xText->set_label(rLabel); }
249 const Color& rColor,
int nCheckBoxLabelOffset,
const ColorListBox* pCache,
bool bCheckBox,
bool bShow);
251 int get_height_request()
const
253 return std::max(m_xText->get_preferred_size().Height(),
254 m_xColorList->get_widget().get_preferred_size().Height());
261 void Update (ColorConfigValue
const&);
262 void Update (ExtendedColorConfigValue
const&);
263 void ColorChanged (ColorConfigValue&);
264 void ColorChanged (ExtendedColorConfigValue&);
266 bool Is(
const weld::Toggleable* pBox)
const {
return m_xText.get() == pBox; }
267 bool Is(
const ColorListBox* pBox)
const {
return m_xColorList.get() == pBox; }
270 std::unique_ptr<weld::Widget> m_xText;
272 std::unique_ptr<ColorListBox> m_xColorList;
274 Color m_aDefaultColor;
279 int m_nCheckBoxLabelOffset;
280 std::unique_ptr<weld::Builder> m_xBuilder;
281 std::unique_ptr<weld::Box> m_xBox;
282 std::unique_ptr<weld::Widget> m_xWidget1;
283 std::unique_ptr<weld::Widget> m_xWidget2;
285 std::vector<std::unique_ptr<weld::Builder>> vExtBuilders;
286 std::vector<std::unique_ptr<weld::Container>> vExtContainers;
288 std::vector<std::shared_ptr<Chapter> > vChapters;
290 std::vector<std::shared_ptr<Entry> > vEntries;
296 void CreateEntries();
300 bool IsGroupVisible (
Group)
const;
310ColorConfigWindow_Impl::Chapter::Chapter(
weld::Builder& rBuilder,
const OUString& pLabelWidget,
bool bShow)
311 : m_xText(rBuilder.weld_label(pLabelWidget))
319 const OUString& pTextWidget,
const OUString& pColorWidget,
320 const Color& rColor,
int nCheckBoxLabelOffset,
322 : m_xColorList(new
ColorListBox(rBuilder.weld_menu_button(pColorWidget),
323 [pTopLevel]{
return pTopLevel; }, pCache))
324 , m_aDefaultColor(rColor)
332 m_xColorList->SetSlotId(SID_ATTR_CHAR_COLOR);
333 m_xColorList->SetAutoDisplayColor(m_aDefaultColor);
337 m_xText->set_margin_start(m_xText->get_margin_start() +
338 nCheckBoxLabelOffset);
345void ColorConfigWindow_Impl::Entry::Hide()
348 m_xColorList->hide();
356 m_xColorList->SetSelectHdl(rColorLink);
357 m_xColorList->connect_focus_in(rGetFocusLink);
360 pCheckBox->connect_toggled(rCheckLink);
361 pCheckBox->connect_focus_in(rGetFocusLink);
366void ColorConfigWindow_Impl::Entry::Update(ColorConfigValue
const& rValue)
368 Color aColor(rValue.nColor);
369 m_xColorList->SelectEntry(aColor);
371 pCheckBox->set_active(rValue.bIsVisible);
375void ColorConfigWindow_Impl::Entry::Update(ExtendedColorConfigValue
const& rValue)
377 Color aColor(rValue.getColor());
378 if (rValue.getColor() == rValue.getDefaultColor())
379 m_xColorList->SelectEntry(COL_AUTO);
381 m_xColorList->SelectEntry(aColor);
385void ColorConfigWindow_Impl::Entry::ColorChanged(ColorConfigValue& rValue)
387 Color aColor = m_xColorList->GetSelectEntryColor();
388 rValue.nColor = aColor;
392void ColorConfigWindow_Impl::Entry::ColorChanged(ExtendedColorConfigValue& rValue)
394 Color aColor = m_xColorList->GetSelectEntryColor();
395 rValue.setColor(aColor);
396 if (aColor == COL_AUTO)
398 rValue.setColor(rValue.getDefaultColor());
404 : m_pTopLevel(pTopLevel)
405 , m_xBuilder(
Application::CreateBuilder(pParent,
"cui/ui/colorconfigwin.ui"))
406 , m_xBox(m_xBuilder->weld_box(
"ColorConfigWindow"))
407 , m_xWidget1(m_xBuilder->weld_widget(
"docboundaries"))
408 , m_xWidget2(m_xBuilder->weld_widget(
"docboundaries_lb"))
413void ColorConfigWindow_Impl::CreateEntries()
415 std::bitset<nGroupCount> aModulesInstalled;
417 vChapters.reserve(nGroupCount);
418 for (
unsigned i = 0;
i != nGroupCount; ++
i)
420 aModulesInstalled[
i] = IsGroupVisible(vGroupInfo[i].eGroup);
421 vChapters.push_back(std::make_shared<Chapter>(*m_xBuilder, vGroupInfo[i].pGroup, aModulesInstalled[i]));
427 OUString sSampleText(
"XXXXXX");
428 std::unique_ptr<weld::CheckButton> xCheckBox(m_xBuilder->weld_check_button(
"docboundaries"));
429 std::unique_ptr<weld::Label> xFixedText(m_xBuilder->weld_label(
"doccolor"));
430 OUString sOrigCheck(xCheckBox->get_label());
431 OUString sOrigFixed(xFixedText->get_label());
432 xCheckBox->set_label(sSampleText);
433 xFixedText->set_label(sSampleText);
434 Size aCheckSize(xCheckBox->get_preferred_size());
435 Size aFixedSize(xFixedText->get_preferred_size());
436 xCheckBox->set_label(sOrigCheck);
437 xFixedText->set_label(sOrigFixed);
438 m_nCheckBoxLabelOffset = aCheckSize.Width() - aFixedSize.Width();
444 vEntries.reserve(ColorConfigEntryCount);
445 for (
size_t i = 0;
i < std::size(vEntryInfo); ++
i)
447 vEntries.push_back(std::make_shared<Entry>(m_pTopLevel, *m_xBuilder,
448 vEntryInfo[i].pText, vEntryInfo[i].pColor,
450 m_nCheckBoxLabelOffset, pCache,
451 vEntryInfo[i].bCheckBox,
452 aModulesInstalled[vEntryInfo[i].eGroup]));
454 pCache = vEntries.back()->m_xColorList.get();
458 ExtendedColorConfig aExtConfig;
459 unsigned const nExtGroupCount = aExtConfig.GetComponentCount();
463 for (
unsigned j = 0; j != nExtGroupCount; ++j)
466 vExtContainers.emplace_back(vExtBuilders.back()->weld_frame(
"ChapterFragment"));
468 OUString
const sComponentName = aExtConfig.GetComponentName(j);
469 vChapters.push_back(std::make_shared<Chapter>(
470 *vExtBuilders.back(),
"chapter",
true));
471 vChapters.back()->SetText(aExtConfig.GetComponentDisplayName(sComponentName));
473 vExtContainers.emplace_back(vExtBuilders.back()->weld_box(
"contents"));
476 unsigned nColorCount = aExtConfig.GetComponentColorCount(sComponentName);
477 for (
unsigned i = 0;
i != nColorCount; ++
i)
480 vExtContainers.emplace_back(vExtBuilders.back()->weld_container(
"ColorFragment"));
482 ExtendedColorConfigValue
const aColorEntry =
483 aExtConfig.GetComponentColorConfigValue(sComponentName, i);
484 vEntries.push_back(std::make_shared<Entry>(m_pTopLevel, *vExtBuilders.back(),
485 "label",
"button", aColorEntry.getDefaultColor(),
486 m_nCheckBoxLabelOffset, pCache,
false,
true));
487 vEntries.back()->SetText(aColorEntry.getDisplayName());
498 if (vEntries.empty())
500 for (
auto const & i: vEntries)
501 i->SetLinks(aCheckLink, aColorLink, rGetFocusLink);
507void ColorConfigWindow_Impl::Update (
508 EditableColorConfig
const* pConfig,
509 EditableExtendedColorConfig
const* pExtConfig)
516 pConfig->GetColorValue(aColorEntry)
521 decltype(vEntries)::size_type i = ColorConfigEntryCount;
522 unsigned const nExtCount = pExtConfig->GetComponentCount();
523 for (
unsigned j = 0; j != nExtCount; ++j)
525 OUString sComponentName = pExtConfig->GetComponentName(j);
526 unsigned const nColorCount = pExtConfig->GetComponentColorCount(sComponentName);
527 for (
unsigned k = 0;
i != vEntries.size() && k != nColorCount; ++
i, ++k)
529 pExtConfig->GetComponentColorConfigValue(sComponentName, k)
534void ColorConfigWindow_Impl::UpdateEntries()
539 Color aColor = ColorConfig::GetDefaultColor(aEntry);
540 vEntries[
i]->m_xColorList->SetAutoDisplayColor(aColor);
545void ColorConfigWindow_Impl::ClickHdl(EditableColorConfig* pConfig,
const weld::Toggleable& rBox)
549 if (vEntries[i]->Is(&rBox))
552 ColorConfigValue aValue = pConfig->GetColorValue(aEntry);
554 pConfig->SetColorValue(aEntry, aValue);
561void ColorConfigWindow_Impl::ColorHdl(
562 EditableColorConfig* pConfig, EditableExtendedColorConfig* pExtConfig,
570 if (pBox && vEntries[i]->Is(pBox))
573 ColorConfigValue aValue = pConfig->GetColorValue(aColorEntry);
574 vEntries[
i]->ColorChanged(aValue);
575 pConfig->SetColorValue(aColorEntry, aValue);
581 unsigned const nExtCount = pExtConfig->GetComponentCount();
583 for (
unsigned j = 0; j != nExtCount; ++j)
585 OUString sComponentName = pExtConfig->GetComponentName(j);
586 unsigned const nColorCount = pExtConfig->GetComponentColorCount(sComponentName);
587 unsigned const nCount = vEntries.size();
588 for (
unsigned k = 0;
i !=
nCount && k != nColorCount; ++
i, ++k)
590 if (pBox && vEntries[i]->Is(pBox))
592 ExtendedColorConfigValue aValue =
593 pExtConfig->GetComponentColorConfigValue(sComponentName, k);
594 vEntries[
i]->ColorChanged(aValue);
595 pExtConfig->SetColorValue(sComponentName, aValue);
604bool ColorConfigWindow_Impl::IsGroupVisible (
Group eGroup)
const
667 : m_xVScroll(rBuilder.weld_scrolled_window(
"scroll"))
668 , m_xBody(rBuilder.weld_container(
"colorconfig"))
669 , m_xScrollWindow(
std::make_unique<ColorConfigWindow_Impl>(pTopLevel, m_xBody.
get()))
670 , pColorConfig(nullptr)
671 , pExtColorConfig(nullptr)
673 m_xBody->set_stack_background();
694 DBG_ASSERT(pColorConfig,
"Configuration not set");
695 m_xScrollWindow->ClickHdl(pColorConfig, rBox);
701 DBG_ASSERT(pColorConfig,
"Configuration not set" );
702 m_xScrollWindow->ColorHdl(pColorConfig, pExtColorConfig, &rBox);
709 unsigned const nWinHeight = m_xVScroll->vadjustment_get_page_size();
712 auto nThumbPos = m_xVScroll->vadjustment_get_value();
713 int const nWinTop = nThumbPos;
714 int const nWinBottom = nWinTop + nWinHeight;
716 int x, nCtrlPosY, width, nHeight;
717 rCtrl.get_extents_relative_to(m_xScrollWindow->GetBody(),
x, nCtrlPosY, width, nHeight);
719 int const nSelectedItemTop = nCtrlPosY;
720 int const nSelectedItemBottom = nCtrlPosY + nHeight;
721 bool const shouldScrollDown = nSelectedItemBottom >= nWinBottom;
722 bool const shouldScrollUp = nSelectedItemTop <= nWinTop;
723 bool const isNeedToScroll = shouldScrollDown || shouldScrollUp || nCtrlPosY < 0;
728 if (shouldScrollDown)
730 int nOffset = nSelectedItemBottom - nWinBottom;
731 nThumbPos += nOffset + 2;
735 int nOffset = nWinTop - nSelectedItemTop;
736 nThumbPos -= nOffset + 2;
740 m_xVScroll->vadjustment_set_value(nThumbPos);
745 :
SfxTabPage(pPage, pController,
"cui/ui/optappearancepage.ui",
"OptAppearancePage", &rCoreSet)
746 , bFillItemSetCalled(false)
747 , m_nSizeAllocEventId(nullptr)
748 , m_xAutoColorLB(m_xBuilder->weld_combo_box(
"autocolorlb"))
749 , m_xColorSchemeLB(m_xBuilder->weld_combo_box(
"colorschemelb"))
750 , m_xSaveSchemePB(m_xBuilder->weld_button(
"save"))
751 , m_xDeleteSchemePB(m_xBuilder->weld_button(
"delete"))
753 , m_xTable(m_xBuilder->weld_widget(
"table"))
754 , m_xOnFT(m_xBuilder->weld_label(
"on"))
755 , m_xColorFT(m_xBuilder->weld_label(
"colorsetting"))
756 , m_rWidget1(m_xColorConfigCT->GetWidget1())
757 , m_rWidget2(m_xColorConfigCT->GetWidget2())
779 if(!sOldScheme.isEmpty())
800 return std::make_unique<SvxColorOptionsTabPage>(pPage, pController, *rAttrSet);
843 for(
const OUString& s : aSchemes)
855 return DeactivateRC::LeavePage;
868 m_xColorConfigCT->UpdateEntries();
870 pColorConfig->LoadScheme(lcl_TranslatedNameToSchemeId(m_xColorSchemeLB->get_active_text()));
871 pExtColorConfig->LoadScheme(lcl_TranslatedNameToSchemeId(m_xColorSchemeLB->get_active_text()));
877 pColorConfig->LoadScheme(lcl_TranslatedNameToSchemeId(rBox.get_active_text()));
878 pExtColorConfig->LoadScheme(lcl_TranslatedNameToSchemeId(rBox.get_active_text()));
884 if (m_xSaveSchemePB.get() == &rButton)
892 aNameDlg->SetText(
CuiResId(RID_CUISTR_COLOR_CONFIG_SAVE1));
895 if(
RET_OK == aNameDlg->Execute())
897 aNameDlg->GetName(
sName);
898 pColorConfig->AddScheme(
sName);
899 pExtColorConfig->AddScheme(
sName);
900 m_xColorSchemeLB->append_text(
sName);
901 m_xColorSchemeLB->set_active_text(
sName);
902 SchemeChangedHdl_Impl(*m_xColorSchemeLB);
907 DBG_ASSERT(m_xColorSchemeLB->get_count() > 1,
"don't delete the last scheme");
909 VclMessageType::Question, VclButtonsType::YesNo,
910 CuiResId(RID_CUISTR_COLOR_CONFIG_DELETE)));
911 xQuery->set_title(
CuiResId(RID_CUISTR_COLOR_CONFIG_DELETE_TITLE));
914 OUString sDeleteScheme(m_xColorSchemeLB->get_active_text());
915 m_xColorSchemeLB->remove(m_xColorSchemeLB->get_active());
916 m_xColorSchemeLB->set_active(0);
917 SchemeChangedHdl_Impl(*m_xColorSchemeLB);
919 pColorConfig->DeleteScheme(sDeleteScheme);
920 pExtColorConfig->DeleteScheme(sDeleteScheme);
923 m_xDeleteSchemePB->set_sensitive(m_xColorSchemeLB->get_count() > 1);
929 rDialog.GetName(
sName);
930 return !
sName.isEmpty() && m_xColorSchemeLB->find_text(
sName) == -1;
940 if (m_nSizeAllocEventId)
947 m_nSizeAllocEventId =
nullptr;
950 int nX1, nX2, nX3,
y, width, height;
951 if (!m_rWidget1.get_extents_relative_to(*m_xTable, nX1,
y, width, height))
953 if (!m_rWidget2.get_extents_relative_to(*m_xTable, nX2,
y, width, height))
955 if (!m_xTable->get_extents_relative_to(*m_xTable, nX3,
y, width, height))
959 auto nTextWidth1 = nX1 + m_xColorConfigCT->GetLabelIndent() - 6;
960 m_xOnFT->set_size_request(nTextWidth1, -1);
961 auto nTextWidth3 = width - nX2;
962 m_xColorFT->set_size_request(nTextWidth3, -1);
static ImplSVEvent * PostUserEvent(const Link< void *, void > &rLink, void *pCaller=nullptr, bool bReferenceLink=false)
static std::unique_ptr< weld::Builder > CreateBuilder(weld::Widget *pParent, const OUString &rUIFile, bool bMobile=false, sal_uInt64 nLOKWindowId=0)
static void RemoveUserEvent(ImplSVEvent *nUserEvent)
static weld::MessageDialog * CreateMessageDialog(weld::Widget *pParent, VclMessageType eMessageType, VclButtonsType eButtonType, const OUString &rPrimaryMessage, const ILibreOfficeKitNotifier *pNotifier=nullptr)
int GetLabelIndent() const
std::unique_ptr< weld::ScrolledWindow > m_xVScroll
tools::Long GetScrollPosition() const
EditableExtendedColorConfig * pExtColorConfig
ColorConfigCtrl_Impl(weld::Window *pTopLevel, weld::Builder &rbuilder)
weld::Widget & GetWidget1()
std::unique_ptr< ColorConfigWindow_Impl > m_xScrollWindow
void SetConfig(EditableColorConfig &rConfig)
void SetExtendedConfig(EditableExtendedColorConfig &rConfig)
EditableColorConfig * pColorConfig
std::unique_ptr< weld::Container > m_xBody
weld::Widget & GetWidget2()
void SetScrollPosition(tools::Long nSet)
DECL_LINK(ClickHdl, weld::Toggleable &, void)
DECL_LINK(ControlFocusHdl, weld::Widget &, void)
DECL_LINK(ColorHdl, ColorListBox &, void)
static int GetAppColorMode()
static void SetAppColorMode(int nMode)
void SetUserData(const OUString &rString)
const OUString & GetUserData() const
virtual VclPtr< AbstractSvxNameDialog > CreateSvxNameDialog(weld::Window *pParent, const OUString &rName, const OUString &rDesc)=0
static SvxAbstractDialogFactory * Create()
virtual void Reset(const SfxItemSet *rSet) override
std::unique_ptr< weld::Button > m_xDeleteSchemePB
std::unique_ptr< weld::ComboBox > m_xAutoColorLB
virtual DeactivateRC DeactivatePage(SfxItemSet *pSet) override
std::unique_ptr< weld::Button > m_xSaveSchemePB
ImplSVEvent * m_nSizeAllocEventId
virtual void FillUserData() override
weld::Widget & m_rWidget1
SvxColorOptionsTabPage(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet &rSet)
std::unique_ptr< weld::ComboBox > m_xColorSchemeLB
std::unique_ptr< ColorConfigCtrl_Impl > m_xColorConfigCT
virtual bool FillItemSet(SfxItemSet *rSet) override
std::unique_ptr< svtools::EditableExtendedColorConfig > pExtColorConfig
virtual ~SvxColorOptionsTabPage() override
static std::unique_ptr< SfxTabPage > Create(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet *rAttrSet)
std::unique_ptr< svtools::EditableColorConfig > pColorConfig
weld::Widget & m_rWidget2
virtual std::unique_ptr< Label > weld_label(const OUString &id)=0
virtual std::unique_ptr< CheckButton > weld_check_button(const OUString &id)=0
virtual void set_label(const OUString &rText)=0
virtual bool get_active() const=0
OUString CuiResId(TranslateId aKey)
#define DBG_ASSERT(sCon, aError)
weld::Window * GetFrameWeld(const SfxFrame *pFrame)
virtual void SetText(const OUString &rStr) override
constexpr OUStringLiteral HID_OPTIONS_COLORCONFIG_SAVE_SCHEME
#define LINK(Instance, Class, Member)
enumrange< T >::Iterator begin(enumrange< T >)
css::uno::Reference< css::linguistic2::XProofreadingIterator > get(css::uno::Reference< css::uno::XComponentContext > const &context)
IMPL_LINK_NOARG(SvxColorOptionsTabPage, onAutoColorChanged, weld::ComboBox &, void)
IMPL_LINK(ColorConfigCtrl_Impl, ClickHdl, weld::Toggleable &, rBox, void)