vcl/inc/jsdialog/jsdialogbuilder.hxx | 8 ++++++++ vcl/jsdialog/jsdialogbuilder.cxx | 18 ++++++++++++++++++ 2 files changed, 26 insertions(+)
New commits: commit d34047e02e947bcdba555065804a2f772cdd75f2 Author: Szymon Kłos <szymon.k...@collabora.com> AuthorDate: Wed Oct 20 10:59:12 2021 +0200 Commit: Szymon Kłos <szymon.k...@collabora.com> CommitDate: Wed Dec 29 12:01:26 2021 +0100 jsdialog: weld Image widget Change-Id: Iaf900da5d6256b1aa441dc0dad07ba967f88b085 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123877 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com> Reviewed-by: Szymon Kłos <szymon.k...@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127671 Tested-by: Jenkins diff --git a/vcl/inc/jsdialog/jsdialogbuilder.hxx b/vcl/inc/jsdialog/jsdialogbuilder.hxx index f402aeab4cb8..801dd4860e85 100644 --- a/vcl/inc/jsdialog/jsdialogbuilder.hxx +++ b/vcl/inc/jsdialog/jsdialogbuilder.hxx @@ -276,6 +276,7 @@ public: virtual std::unique_ptr<weld::Popover> weld_popover(const OString& id) override; virtual std::unique_ptr<weld::Box> weld_box(const OString& id) override; virtual std::unique_ptr<weld::Widget> weld_widget(const OString& id) override; + virtual std::unique_ptr<weld::Image> weld_image(const OString& id) override; static weld::MessageDialog* CreateMessageDialog(weld::Widget* pParent, VclMessageType eMessageType, @@ -696,4 +697,11 @@ public: } }; +class JSImage : public JSWidget<SalInstanceImage, FixedImage> +{ +public: + JSImage(JSDialogSender* pSender, FixedImage* pImage, SalInstanceBuilder* pBuilder, + bool bTakeOwnership); +}; + /* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ diff --git a/vcl/jsdialog/jsdialogbuilder.cxx b/vcl/jsdialog/jsdialogbuilder.cxx index a9ed9b34678c..9792ce9dd1aa 100644 --- a/vcl/jsdialog/jsdialogbuilder.cxx +++ b/vcl/jsdialog/jsdialogbuilder.cxx @@ -1055,6 +1055,18 @@ std::unique_ptr<weld::Widget> JSInstanceBuilder::weld_widget(const OString& id) return pWeldWidget; } +std::unique_ptr<weld::Image> JSInstanceBuilder::weld_image(const OString& id) +{ + FixedImage* pImage = m_xBuilder->get<FixedImage>(id); + + auto pWeldWidget = pImage ? std::make_unique<JSImage>(this, pImage, this, false) : nullptr; + + if (pWeldWidget) + RememberWidget(id, pWeldWidget.get()); + + return pWeldWidget; +} + weld::MessageDialog* JSInstanceBuilder::CreateMessageDialog(weld::Widget* pParent, VclMessageType eMessageType, VclButtonsType eButtonType, @@ -1680,4 +1692,10 @@ JSBox::JSBox(JSDialogSender* pSender, VclBox* pBox, SalInstanceBuilder* pBuilder { } +JSImage::JSImage(JSDialogSender* pSender, FixedImage* pImage, SalInstanceBuilder* pBuilder, + bool bTakeOwnership) + : JSWidget<SalInstanceImage, FixedImage>(pSender, pImage, pBuilder, bTakeOwnership) +{ +} + /* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */