desktop/source/lib/init.cxx | 18 +++++++++++++++++- include/LibreOfficeKit/LibreOfficeKit.h | 5 +++++ include/LibreOfficeKit/LibreOfficeKit.hxx | 11 +++++++++++ 3 files changed, 33 insertions(+), 1 deletion(-)
New commits: commit 7d4f929b7d57621cc94cc2c8cc19e2c2f5b80216 Author: Henry Castro <[email protected]> AuthorDate: Fri Dec 25 17:30:42 2020 -0400 Commit: Henry Castro <[email protected]> CommitDate: Mon Jan 4 19:35:34 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 <[email protected]> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108678 Tested-by: Jenkins CollaboraOffice <[email protected]> diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx index 543e77714da0..6fcb2ca02a17 100644 --- a/desktop/source/lib/init.cxx +++ b/desktop/source/lib/init.cxx @@ -2075,6 +2075,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) @@ -2099,6 +2103,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; } @@ -3691,7 +3696,7 @@ public: virtual void SAL_CALL disposing(const css::lang::EventObject&) override {} }; -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; @@ -3786,6 +3791,17 @@ static void doc_sendDialogEvent(LibreOfficeKitDocument* /*pThis*/, unsigned long } } + +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 2192d9870d01..ad2d887aa99a 100644 --- a/include/LibreOfficeKit/LibreOfficeKit.hxx +++ b/include/LibreOfficeKit/LibreOfficeKit.hxx @@ -982,6 +982,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 [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
