diff options
-rw-r--r-- | vcl/inc/jsdialog/jsdialogbuilder.hxx | 8 | ||||
-rw-r--r-- | vcl/jsdialog/jsdialogbuilder.cxx | 17 |
2 files changed, 25 insertions, 0 deletions
diff --git a/vcl/inc/jsdialog/jsdialogbuilder.hxx b/vcl/inc/jsdialog/jsdialogbuilder.hxx index cb2a95d9d368..450a11529507 100644 --- a/vcl/inc/jsdialog/jsdialogbuilder.hxx +++ b/vcl/inc/jsdialog/jsdialogbuilder.hxx @@ -229,6 +229,7 @@ public: virtual ~JSInstanceBuilder() override; virtual std::unique_ptr<weld::MessageDialog> weld_message_dialog(const OString& id) override; virtual std::unique_ptr<weld::Dialog> weld_dialog(const OString& id) override; + virtual std::unique_ptr<weld::Container> weld_container(const OString& id) override; virtual std::unique_ptr<weld::Label> weld_label(const OString& id) override; virtual std::unique_ptr<weld::Button> weld_button(const OString& id) override; virtual std::unique_ptr<weld::Entry> weld_entry(const OString& id) override; @@ -393,6 +394,13 @@ public: virtual void response(int response) override; }; +class JSContainer final : public JSWidget<SalInstanceContainer, vcl::Window> +{ +public: + JSContainer(JSDialogSender* pSender, vcl::Window* pContainer, SalInstanceBuilder* pBuilder, + bool bTakeOwnership); +}; + class JSLabel final : public JSWidget<SalInstanceLabel, FixedText> { public: diff --git a/vcl/jsdialog/jsdialogbuilder.cxx b/vcl/jsdialog/jsdialogbuilder.cxx index fd9d152ae6ed..5a57e63dfbce 100644 --- a/vcl/jsdialog/jsdialogbuilder.cxx +++ b/vcl/jsdialog/jsdialogbuilder.cxx @@ -626,6 +626,17 @@ std::unique_ptr<weld::MessageDialog> JSInstanceBuilder::weld_message_dialog(cons return pRet; } +std::unique_ptr<weld::Container> JSInstanceBuilder::weld_container(const OString& id) +{ + vcl::Window* pContainer = m_xBuilder->get<vcl::Window>(id); + auto pWeldWidget = std::make_unique<JSContainer>(this, pContainer, this, false); + + if (pWeldWidget) + RememberWidget(id, pWeldWidget.get()); + + return pWeldWidget; +} + std::unique_ptr<weld::Label> JSInstanceBuilder::weld_label(const OString& id) { ::FixedText* pLabel = m_xBuilder->get<FixedText>(id); @@ -860,6 +871,12 @@ void JSDialog::response(int response) SalInstanceDialog::response(response); } +JSContainer::JSContainer(JSDialogSender* pSender, vcl::Window* pContainer, + SalInstanceBuilder* pBuilder, bool bTakeOwnership) + : JSWidget<SalInstanceContainer, vcl::Window>(pSender, pContainer, pBuilder, bTakeOwnership) +{ +} + JSLabel::JSLabel(JSDialogSender* pSender, FixedText* pLabel, SalInstanceBuilder* pBuilder, bool bTakeOwnership) : JSWidget<SalInstanceLabel, FixedText>(pSender, pLabel, pBuilder, bTakeOwnership) |