summaryrefslogtreecommitdiff
path: root/vcl/jsdialog
diff options
context:
space:
mode:
authorSzymon Kłos <szymon.klos@collabora.com>2020-07-02 14:44:24 +0200
committerSzymon Kłos <szymon.klos@collabora.com>2020-07-03 07:39:17 +0200
commitaa420d6320317be2a40fb5ba30a6a48c988280ba (patch)
tree64f07cb60393915af71c498a078e4eb4b1ff0a35 /vcl/jsdialog
parent366e0278e3248d703fa044c0b772e700fa2276ed (diff)
jsdialog: weld text view
Change-Id: Ia3bae7a8b812e791fc6a8888e63adca17b8910d4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/97764 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
Diffstat (limited to 'vcl/jsdialog')
-rw-r--r--vcl/jsdialog/executor.cxx11
-rw-r--r--vcl/jsdialog/jsdialogbuilder.cxx29
2 files changed, 40 insertions, 0 deletions
diff --git a/vcl/jsdialog/executor.cxx b/vcl/jsdialog/executor.cxx
index f5903fb8f5ba..2317258e3030 100644
--- a/vcl/jsdialog/executor.cxx
+++ b/vcl/jsdialog/executor.cxx
@@ -131,6 +131,17 @@ bool ExecuteAction(sal_uInt64 nWindowId, const OString& rWidget, StringMap& rDat
return true;
}
}
+
+ auto pTextView = dynamic_cast<weld::TextView*>(pWidget);
+ if (pTextView)
+ {
+ if (sAction == "change")
+ {
+ pTextView->set_text(rData["data"]);
+ pTextView->signal_changed();
+ return true;
+ }
+ }
}
}
diff --git a/vcl/jsdialog/jsdialogbuilder.cxx b/vcl/jsdialog/jsdialogbuilder.cxx
index 56970d32f6f3..4601a26d4cd1 100644
--- a/vcl/jsdialog/jsdialogbuilder.cxx
+++ b/vcl/jsdialog/jsdialogbuilder.cxx
@@ -14,6 +14,7 @@
#include <vcl/dialog.hxx>
#include <LibreOfficeKit/LibreOfficeKitEnums.h>
#include <vcl/toolbox.hxx>
+#include <vcl/vclmedit.hxx>
using namespace weld;
@@ -324,6 +325,21 @@ std::unique_ptr<weld::Toolbar> JSInstanceBuilder::weld_toolbar(const OString& id
return pWeldWidget;
}
+std::unique_ptr<weld::TextView> JSInstanceBuilder::weld_text_view(const OString& id,
+ bool bTakeOwnership)
+{
+ VclMultiLineEdit* pTextView = m_xBuilder->get<VclMultiLineEdit>(id);
+ auto pWeldWidget = pTextView ? std::make_unique<JSTextView>(
+ m_bHasTopLevelDialog ? m_aOwnedToplevel : m_aParentDialog,
+ pTextView, this, bTakeOwnership)
+ : nullptr;
+
+ if (pWeldWidget)
+ RememberWidget(id, pWeldWidget.get());
+
+ return pWeldWidget;
+}
+
weld::MessageDialog* JSInstanceBuilder::CreateMessageDialog(weld::Widget* pParent,
VclMessageType eMessageType,
VclButtonsType eButtonType,
@@ -564,4 +580,17 @@ void JSToolbar::signal_clicked(const OString& rIdent)
notifyDialogState();
}
+JSTextView::JSTextView(VclPtr<vcl::Window> aOwnedToplevel, ::VclMultiLineEdit* pTextView,
+ SalInstanceBuilder* pBuilder, bool bTakeOwnership)
+ : JSWidget<SalInstanceTextView, ::VclMultiLineEdit>(aOwnedToplevel, pTextView, pBuilder,
+ bTakeOwnership)
+{
+}
+
+void JSTextView::set_text(const OUString& rText)
+{
+ SalInstanceTextView::set_text(rText);
+ notifyDialogState();
+}
+
/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */