cui/source/options/optjava.cxx | 6 ++-- include/vcl/layout.hxx | 1 include/vcl/salvtables.hxx | 17 +++++++++++++ vcl/inc/jsdialog/jsdialogbuilder.hxx | 24 ++++++++++++++----- vcl/jsdialog/executor.cxx | 12 +++++++++ vcl/jsdialog/jsdialogbuilder.cxx | 29 +++++++++++++++++++++++ vcl/source/app/salvtables.cxx | 43 +++++++++++++---------------------- vcl/source/window/layout.cxx | 7 +++++ 8 files changed, 104 insertions(+), 35 deletions(-)
New commits: commit 8dcf476a7866a16884a6cfd13384115c400bdf54 Author: Caolán McNamara <caol...@redhat.com> AuthorDate: Tue Aug 4 20:02:40 2020 +0100 Commit: Szymon Kłos <szymon.k...@collabora.com> CommitDate: Tue Nov 17 14:44:26 2020 +0100 tdf#135367 enable_toggle_buttons sets SvTreeFlags::CHKBTN designating that the special auto-sized toggle column is in use Change-Id: I23aa927c56e706590f397d15ef7329d20e0b18a9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/100136 Tested-by: Caolán McNamara <caol...@redhat.com> Reviewed-by: Caolán McNamara <caol...@redhat.com> diff --git a/cui/source/options/optjava.cxx b/cui/source/options/optjava.cxx index d107eaeeb28f..25be071fa8fc 100644 --- a/cui/source/options/optjava.cxx +++ b/cui/source/options/optjava.cxx @@ -360,7 +360,7 @@ void SvxJavaOptionsPage::AddJRE( JavaInfo const * _pInfo ) #if HAVE_FEATURE_JAVA int nPos = m_xJavaList->n_children(); m_xJavaList->append(); - m_xJavaList->set_toggle(nPos, TRISTATE_FALSE, 0); + m_xJavaList->set_toggle(nPos, TRISTATE_FALSE); m_xJavaList->set_text(nPos, _pInfo->sVendor, 1); m_xJavaList->set_text(nPos, _pInfo->sVersion, 2); OUString sFeature; @@ -383,7 +383,7 @@ void SvxJavaOptionsPage::HandleCheckEntry(int nCheckedRow) for (int i = 0, nCount = m_xJavaList->n_children(); i < nCount; ++i) { // we have radio button behavior -> so uncheck the other entries - m_xJavaList->set_toggle(i, i == nCheckedRow ? TRISTATE_TRUE : TRISTATE_FALSE, 0); + m_xJavaList->set_toggle(i, i == nCheckedRow ? TRISTATE_TRUE : TRISTATE_FALSE); } } @@ -522,7 +522,7 @@ bool SvxJavaOptionsPage::FillItemSet( SfxItemSet* /*rCoreSet*/ ) sal_uInt32 nCount = m_xJavaList->n_children(); for (sal_uInt32 i = 0; i < nCount; ++i) { - if (m_xJavaList->get_toggle(i, 0) == TRISTATE_TRUE) + if (m_xJavaList->get_toggle(i) == TRISTATE_TRUE) { JavaInfo const * pInfo; if ( i < m_parJavaInfo.size() ) commit 6feff7ae813b4cacc042ef69c5506479a7e4a825 Author: Szymon Kłos <szymon.k...@collabora.com> AuthorDate: Tue Nov 17 14:32:04 2020 +0100 Commit: Szymon Kłos <szymon.k...@collabora.com> CommitDate: Tue Nov 17 14:44:26 2020 +0100 jsdialog: implemented Expander widget Change-Id: Ib0aee0e01c662a4d6a9231d9a1a951c9fa68eff4 diff --git a/vcl/inc/jsdialog/jsdialogbuilder.hxx b/vcl/inc/jsdialog/jsdialogbuilder.hxx index 2412fe2197fb..5df3f0d4f324 100644 --- a/vcl/inc/jsdialog/jsdialogbuilder.hxx +++ b/vcl/inc/jsdialog/jsdialogbuilder.hxx @@ -119,12 +119,14 @@ public: weld_drawing_area(const OString& id, const a11yref& rA11yImpl = nullptr, FactoryFunction pUITestFactoryFunction = nullptr, void* pUserData = nullptr, bool bTakeOwnership = false) override; - std::unique_ptr<weld::Toolbar> weld_toolbar(const OString& id, - bool bTakeOwnership = true) override; - std::unique_ptr<weld::TextView> weld_text_view(const OString& id, - bool bTakeOwnership = false) override; - std::unique_ptr<weld::TreeView> weld_tree_view(const OString& id, - bool bTakeOwnership = false) override; + virtual std::unique_ptr<weld::Toolbar> weld_toolbar(const OString& id, + bool bTakeOwnership = true) override; + virtual std::unique_ptr<weld::TextView> weld_text_view(const OString& id, + bool bTakeOwnership = false) override; + virtual std::unique_ptr<weld::TreeView> weld_tree_view(const OString& id, + bool bTakeOwnership = false) override; + virtual std::unique_ptr<weld::Expander> weld_expander(const OString& id, + bool bTakeOwnership = false) override; static weld::MessageDialog* CreateMessageDialog(weld::Widget* pParent, VclMessageType eMessageType, @@ -319,4 +321,14 @@ public: virtual void select(int pos) override; }; +class JSExpander : public JSWidget<SalInstanceExpander, ::VclExpander> +{ +public: + JSExpander(VclPtr<vcl::Window> aNotifierWindow, VclPtr<vcl::Window> aContentWindow, + ::VclExpander* pExpander, SalInstanceBuilder* pBuilder, bool bTakeOwnership, + std::string sTypeOfJSON); + + virtual void set_expanded(bool bExpand) override; +}; + /* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ diff --git a/vcl/jsdialog/executor.cxx b/vcl/jsdialog/executor.cxx index 91a2750f4686..281c7b4d3893 100644 --- a/vcl/jsdialog/executor.cxx +++ b/vcl/jsdialog/executor.cxx @@ -190,6 +190,18 @@ bool ExecuteAction(sal_uInt64 nWindowId, const OString& rWidget, StringMap& rDat } } } + else if (sControlType == "expander") + { + auto pExpander = dynamic_cast<weld::Expander*>(pWidget); + if (pExpander) + { + if (sAction == "toggle") + { + pExpander->set_expanded(!pExpander->get_expanded()); + return true; + } + } + } } return false; diff --git a/vcl/jsdialog/jsdialogbuilder.cxx b/vcl/jsdialog/jsdialogbuilder.cxx index 5ae77f856e2f..f02d469dc701 100644 --- a/vcl/jsdialog/jsdialogbuilder.cxx +++ b/vcl/jsdialog/jsdialogbuilder.cxx @@ -463,6 +463,21 @@ std::unique_ptr<weld::TreeView> JSInstanceBuilder::weld_tree_view(const OString& return pWeldWidget; } +std::unique_ptr<weld::Expander> JSInstanceBuilder::weld_expander(const OString& id, + bool bTakeOwnership) +{ + VclExpander* pExpander = m_xBuilder->get<VclExpander>(id); + auto pWeldWidget + = pExpander ? std::make_unique<JSExpander>(GetNotifierWindow(), GetContentWindow(), + pExpander, this, bTakeOwnership, m_sTypeOfJSON) + : nullptr; + + if (pWeldWidget) + RememberWidget(id, pWeldWidget.get()); + + return pWeldWidget; +} + weld::MessageDialog* JSInstanceBuilder::CreateMessageDialog(weld::Widget* pParent, VclMessageType eMessageType, VclButtonsType eButtonType, @@ -791,4 +806,18 @@ void JSTreeView::select(int pos) enable_notify_events(); } +JSExpander::JSExpander(VclPtr<vcl::Window> aNotifierWindow, VclPtr<vcl::Window> aContentWindow, + ::VclExpander* pExpander, SalInstanceBuilder* pBuilder, bool bTakeOwnership, + std::string sTypeOfJSON) + : JSWidget<SalInstanceExpander, ::VclExpander>(aNotifierWindow, aContentWindow, pExpander, + pBuilder, bTakeOwnership, sTypeOfJSON) +{ +} + +void JSExpander::set_expanded(bool bExpand) +{ + SalInstanceExpander::set_expanded(bExpand); + notifyDialogState(); +} + /* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ commit be5136721ccbcb70d5b9884ba7edf09c457214bb Author: Szymon Kłos <szymon.k...@collabora.com> AuthorDate: Tue Nov 17 09:03:35 2020 +0100 Commit: Szymon Kłos <szymon.k...@collabora.com> CommitDate: Tue Nov 17 14:44:25 2020 +0100 Move SalInstanceExpander decl to header file Change-Id: I5399f5aca07dd27dfc668cad66cf347936bbba7a diff --git a/include/vcl/salvtables.hxx b/include/vcl/salvtables.hxx index 23db65df8525..401cbb0702a3 100644 --- a/include/vcl/salvtables.hxx +++ b/include/vcl/salvtables.hxx @@ -1430,4 +1430,21 @@ public: virtual ~SalInstanceTreeView() override; }; +class SalInstanceExpander : public SalInstanceContainer, public virtual weld::Expander +{ +private: + VclPtr<VclExpander> m_xExpander; + + DECL_LINK(ExpandedHdl, VclExpander&, void); + +public: + SalInstanceExpander(VclExpander* pExpander, SalInstanceBuilder* pBuilder, bool bTakeOwnership); + + virtual bool get_expanded() const override; + + virtual void set_expanded(bool bExpand) override; + + virtual ~SalInstanceExpander() override; +}; + #endif diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx index e06438e3e0c5..6eadfa2cb6b2 100644 --- a/vcl/source/app/salvtables.cxx +++ b/vcl/source/app/salvtables.cxx @@ -5320,36 +5320,27 @@ IMPL_LINK(SalInstanceTextView, CursorListener, VclWindowEvent&, rEvent, void) signal_cursor_position(); } -class SalInstanceExpander : public SalInstanceContainer, public virtual weld::Expander +SalInstanceExpander::SalInstanceExpander(VclExpander* pExpander, SalInstanceBuilder* pBuilder, bool bTakeOwnership) + : SalInstanceContainer(pExpander, pBuilder, bTakeOwnership) + , m_xExpander(pExpander) { -private: - VclPtr<VclExpander> m_xExpander; - - DECL_LINK(ExpandedHdl, VclExpander&, void); - -public: - SalInstanceExpander(VclExpander* pExpander, SalInstanceBuilder* pBuilder, bool bTakeOwnership) - : SalInstanceContainer(pExpander, pBuilder, bTakeOwnership) - , m_xExpander(pExpander) - { - m_xExpander->SetExpandedHdl(LINK(this, SalInstanceExpander, ExpandedHdl)); - } + m_xExpander->SetExpandedHdl(LINK(this, SalInstanceExpander, ExpandedHdl)); +} - virtual bool get_expanded() const override - { - return m_xExpander->get_expanded(); - } +bool SalInstanceExpander::get_expanded() const +{ + return m_xExpander->get_expanded(); +} - virtual void set_expanded(bool bExpand) override - { - m_xExpander->set_expanded(bExpand); - } +void SalInstanceExpander::set_expanded(bool bExpand) +{ + m_xExpander->set_expanded(bExpand); +} - virtual ~SalInstanceExpander() override - { - m_xExpander->SetExpandedHdl(Link<VclExpander&, void>()); - } -}; +SalInstanceExpander::~SalInstanceExpander() +{ + m_xExpander->SetExpandedHdl(Link<VclExpander&, void>()); +} IMPL_LINK_NOARG(SalInstanceExpander, ExpandedHdl, VclExpander&, void) { commit 2c22f8cb02d32249eb6b7e03e906678a4f5d6362 Author: Szymon Kłos <szymon.k...@collabora.com> AuthorDate: Tue Nov 17 08:40:30 2020 +0100 Commit: Szymon Kłos <szymon.k...@collabora.com> CommitDate: Tue Nov 17 14:44:25 2020 +0100 jsdialog: dump VclExpander type Change-Id: Ie40632ab8ce53e0b1f9277dce3d46032a508edce diff --git a/include/vcl/layout.hxx b/include/vcl/layout.hxx index d1f675a3be07..d29b631ac98c 100644 --- a/include/vcl/layout.hxx +++ b/include/vcl/layout.hxx @@ -493,6 +493,7 @@ public: } virtual void StateChanged(StateChangedType nType) override; void SetExpandedHdl( const Link<VclExpander&,void>& rLink ) { maExpandedHdl = rLink; } + virtual boost::property_tree::ptree DumpAsPropertyTree() override; private: virtual Size calculateRequisition() const override; virtual void setAllocation(const Size &rAllocation) override; diff --git a/vcl/source/window/layout.cxx b/vcl/source/window/layout.cxx index 52197b51992d..1d26ec5a8803 100644 --- a/vcl/source/window/layout.cxx +++ b/vcl/source/window/layout.cxx @@ -1652,6 +1652,13 @@ void VclExpander::StateChanged(StateChangedType nType) } } +boost::property_tree::ptree VclExpander::DumpAsPropertyTree() +{ + boost::property_tree::ptree aTree(VclContainer::DumpAsPropertyTree()); + aTree.put("type", "expander"); + return aTree; +} + IMPL_LINK( VclExpander, ClickHdl, CheckBox&, rBtn, void ) { vcl::Window *pChild = get_child(); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits