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 <hcas...@collabora.com> AuthorDate: Fri Dec 25 17:30:42 2020 -0400 Commit: Henry Castro <hcas...@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 <hcas...@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. _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits