[Libreoffice-commits] core.git: desktop/source include/LibreOfficeKit
Henry Castro (via logerrit)
logerrit at kemper.freedesktop.org
Mon Jan 4 17:39:02 UTC 2021
desktop/source/lib/init.cxx | 19 ++++++++++++++++++-
include/LibreOfficeKit/LibreOfficeKit.h | 5 +++++
include/LibreOfficeKit/LibreOfficeKit.hxx | 11 +++++++++++
3 files changed, 34 insertions(+), 1 deletion(-)
New commits:
commit 04211e7ca1c0caec9aa72ac70112842a1f2f1a50
Author: Henry Castro <hcastro at collabora.com>
AuthorDate: Fri Dec 25 17:30:42 2020 -0400
Commit: Henry Castro <hcastro at collabora.com>
CommitDate: Mon Jan 4 18:38:20 2021 +0100
lok: add lo_sendDialogEvent to post dialog events
When the "Macro Security Warning" is shown in client side,
the model/view/controller are not created yet. It is necessary
to create a function to posts a dialog event.
Change-Id: I2bfc9edecc708dc79da575ea515e3144e78c10e2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108293
Tested-by: Jenkins
Reviewed-by: Henry Castro <hcastro at collabora.com>
diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx
index a512f33868ac..2682f3cf6e1a 100644
--- a/desktop/source/lib/init.cxx
+++ b/desktop/source/lib/init.cxx
@@ -2068,6 +2068,10 @@ static void lo_runLoop(LibreOfficeKit* pThis,
LibreOfficeKitWakeCallback pWakeCallback,
void* pData);
+static void lo_sendDialogEvent(LibreOfficeKit* pThis,
+ unsigned long long int nLOKWindowId,
+ const char* pArguments);
+
LibLibreOffice_Impl::LibLibreOffice_Impl()
: m_pOfficeClass( gOfficeClass.lock() )
, maThread(nullptr)
@@ -2092,6 +2096,7 @@ LibLibreOffice_Impl::LibLibreOffice_Impl()
m_pOfficeClass->runMacro = lo_runMacro;
m_pOfficeClass->signDocument = lo_signDocument;
m_pOfficeClass->runLoop = lo_runLoop;
+ m_pOfficeClass->sendDialogEvent = lo_sendDialogEvent;
gOfficeClass = m_pOfficeClass;
}
@@ -3692,7 +3697,8 @@ public:
} // anonymous namespace
-static void doc_sendDialogEvent(LibreOfficeKitDocument* /*pThis*/, unsigned long long int nWindowId, const char* pArguments)
+
+static void lcl_sendDialogEvent(unsigned long long int nWindowId, const char* pArguments)
{
SolarMutexGuard aGuard;
@@ -3775,6 +3781,17 @@ static void doc_sendDialogEvent(LibreOfficeKitDocument* /*pThis*/, unsigned long
pWindow->Resize();
}
+
+static void doc_sendDialogEvent(LibreOfficeKitDocument* /*pThis*/, unsigned long long int nWindowId, const char* pArguments)
+{
+ lcl_sendDialogEvent(nWindowId, pArguments);
+}
+
+static void lo_sendDialogEvent(LibreOfficeKit* /*pThis*/, unsigned long long int nWindowId, const char* pArguments)
+{
+ lcl_sendDialogEvent(nWindowId, pArguments);
+}
+
static void doc_postUnoCommand(LibreOfficeKitDocument* pThis, const char* pCommand, const char* pArguments, bool bNotifyWhenFinished)
{
comphelper::ProfileZone aZone("doc_postUnoCommand");
diff --git a/include/LibreOfficeKit/LibreOfficeKit.h b/include/LibreOfficeKit/LibreOfficeKit.h
index f4244def5a6b..2279260d0e90 100644
--- a/include/LibreOfficeKit/LibreOfficeKit.h
+++ b/include/LibreOfficeKit/LibreOfficeKit.h
@@ -110,6 +110,11 @@ struct _LibreOfficeKitClass
LibreOfficeKitPollCallback pPollCallback,
LibreOfficeKitWakeCallback pWakeCallback,
void* pData);
+
+ /// @see lok::Office::sendDialogEvent
+ void (*sendDialogEvent) (LibreOfficeKit* pThis,
+ unsigned long long int nLOKWindowId,
+ const char* pArguments);
};
#define LIBREOFFICEKIT_DOCUMENT_HAS(pDoc,member) LIBREOFFICEKIT_HAS_MEMBER(LibreOfficeKitDocumentClass,member,(pDoc)->pClass->nSize)
diff --git a/include/LibreOfficeKit/LibreOfficeKit.hxx b/include/LibreOfficeKit/LibreOfficeKit.hxx
index 23b79c742c09..962270452e20 100644
--- a/include/LibreOfficeKit/LibreOfficeKit.hxx
+++ b/include/LibreOfficeKit/LibreOfficeKit.hxx
@@ -979,6 +979,17 @@ public:
{
mpThis->pClass->runLoop(mpThis, pPollCallback, pWakeCallback, pData);
}
+
+ /**
+ * Posts a dialog event for the window with given id
+ *
+ * @param nWindowId id of the window to notify
+ * @param pArguments arguments of the event.
+ */
+ void sendDialogEvent(unsigned long long int nWindowId, const char* pArguments = NULL)
+ {
+ mpThis->pClass->sendDialogEvent(mpThis, nWindowId, pArguments);
+ }
};
/// Factory method to create a lok::Office instance.
More information about the Libreoffice-commits
mailing list