vcl/inc/jsdialog/jsdialogbuilder.hxx | 8 ++++++++ vcl/jsdialog/jsdialogbuilder.cxx | 18 ++++++++++++++++++ 2 files changed, 26 insertions(+)
New commits: commit 92ea119ab9a8df119011a722f0cfff1ac358ca3e 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: Fri Oct 29 12:39:03 2021 +0200 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> diff --git a/vcl/inc/jsdialog/jsdialogbuilder.hxx b/vcl/inc/jsdialog/jsdialogbuilder.hxx index 7dba4b7a3120..9f52846206d7 100644 --- a/vcl/inc/jsdialog/jsdialogbuilder.hxx +++ b/vcl/inc/jsdialog/jsdialogbuilder.hxx @@ -274,6 +274,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, @@ -694,4 +695,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 cb95b528af8b..a9085ea0f320 100644 --- a/vcl/jsdialog/jsdialogbuilder.cxx +++ b/vcl/jsdialog/jsdialogbuilder.cxx @@ -1065,6 +1065,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, @@ -1690,4 +1702,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: */