summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSzymon Kłos <szymon.klos@collabora.com>2021-10-20 10:59:12 +0200
committerSzymon Kłos <szymon.klos@collabora.com>2021-10-29 12:39:03 +0200
commit92ea119ab9a8df119011a722f0cfff1ac358ca3e (patch)
tree72bf9cd8740aa0f0032404b7fea6f0b71c967510
parentec454c55a683bec4221b85ee5c58dcca88634136 (diff)
jsdialog: weld Image widget
Change-Id: Iaf900da5d6256b1aa441dc0dad07ba967f88b085 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123877 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
-rw-r--r--vcl/inc/jsdialog/jsdialogbuilder.hxx8
-rw-r--r--vcl/jsdialog/jsdialogbuilder.cxx18
2 files changed, 26 insertions, 0 deletions
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: */