bundled/include/LibreOfficeKit/LibreOfficeKit.h | 63 +++++++--- bundled/include/LibreOfficeKit/LibreOfficeKit.hxx | 117 +++++++++++++++++-- bundled/include/LibreOfficeKit/LibreOfficeKitEnums.h | 24 +++ 3 files changed, 178 insertions(+), 26 deletions(-)
New commits: commit ab4ed5e5d0331d9bfd450ee005df5dc0e6e4a154 Author: Jan Holesovsky <ke...@collabora.com> Date: Thu Nov 16 13:37:56 2017 +0100 Update bundled includes. Change-Id: Id91b4956265eb70d1236ac00dc86f7494edcb0f3 Reviewed-on: https://gerrit.libreoffice.org/44817 Reviewed-by: pranavk <pran...@collabora.co.uk> Tested-by: pranavk <pran...@collabora.co.uk> diff --git a/bundled/include/LibreOfficeKit/LibreOfficeKit.h b/bundled/include/LibreOfficeKit/LibreOfficeKit.h index da6bba91..7aa4ba91 100644 --- a/bundled/include/LibreOfficeKit/LibreOfficeKit.h +++ b/bundled/include/LibreOfficeKit/LibreOfficeKit.h @@ -12,10 +12,13 @@ #include <stddef.h> -#if defined LOK_USE_UNSTABLE_API || defined LIBO_INTERNAL_ONLY // the unstable API needs C99's bool -#include <stdbool.h> -#include <stdint.h> +// TODO remove the C99 types from the API before making stable +#if defined LOK_USE_UNSTABLE_API || defined LIBO_INTERNAL_ONLY +# ifndef _WIN32 +# include <stdbool.h> +# endif +# include <stdint.h> #endif #include <LibreOfficeKit/LibreOfficeKitTypes.h> @@ -69,7 +72,7 @@ struct _LibreOfficeKitClass char* (*getFilterTypes) (LibreOfficeKit* pThis); /// @see lok::Office::setOptionalFeatures(). - void (*setOptionalFeatures)(LibreOfficeKit* pThis, uint64_t features); + void (*setOptionalFeatures)(LibreOfficeKit* pThis, unsigned long long features); /// @see lok::Office::setDocumentPassword(). void (*setDocumentPassword) (LibreOfficeKit* pThis, @@ -79,7 +82,7 @@ struct _LibreOfficeKitClass /// @see lok::Office::getVersionInfo(). char* (*getVersionInfo) (LibreOfficeKit* pThis); - bool (*runMacro) (LibreOfficeKit *pThis, const char* pURL); + int (*runMacro) (LibreOfficeKit *pThis, const char* pURL); #endif }; @@ -252,15 +255,47 @@ struct _LibreOfficeKitDocumentClass int* pArray, size_t nSize); - /// Starts a batch of operations. - /// Events are emmitted only after ending the batch. - /// @see lok::Document::endBatch(); - void (*beginBatch) (LibreOfficeKitDocument* pThis); - - /// Ends a batch of operations. - /// @see lok::Document::beginBatch(); - void (*endBatch) (LibreOfficeKitDocument* pThis); - + /// Paints dialog with given dialog id to the buffer + /// @see lok::Document::paintDialog(). + void (*paintDialog) (LibreOfficeKitDocument* pThis, const char* pDialogId, + unsigned char* pBuffer, + const int x, const int y, + const int width, const int height); + + /// Get info about dialog with given dialog id + /// @see lok::Document::getDialogInfo(). + void (*getDialogInfo) (LibreOfficeKitDocument* pThis, const char* pDialogId, + char** pDialogTitle, int* pWidth, int* pHeight); + + /// @see lok::Document::paintActiveFloatingWindow(). + void (*paintActiveFloatingWindow) (LibreOfficeKitDocument* pThis, const char* pDialogId, unsigned char* pBuffer, int* nWidth, int* nHeight); + + /// @see lok::Document::postDialogKeyEvent(). + void (*postDialogKeyEvent) (LibreOfficeKitDocument* pThis, + const char* pDialogId, + int nType, + int nCharCode, + int nKeyCode); + + /// @see lok::Document::postDialogMouseEvent(). + void (*postDialogMouseEvent) (LibreOfficeKitDocument* pThis, + const char* pDialogId, + int nType, + int nX, + int nY, + int nCount, + int nButtons, + int nModifier); + + /// @see lok::Document::postDialogChildMouseEvent(). + void (*postDialogChildMouseEvent) (LibreOfficeKitDocument* pThis, + const char* pDialogId, + int nType, + int nX, + int nY, + int nCount, + int nButtons, + int nModifier); #endif // defined LOK_USE_UNSTABLE_API || defined LIBO_INTERNAL_ONLY }; diff --git a/bundled/include/LibreOfficeKit/LibreOfficeKit.hxx b/bundled/include/LibreOfficeKit/LibreOfficeKit.hxx index 72fb7c2b..2e4486ee 100644 --- a/bundled/include/LibreOfficeKit/LibreOfficeKit.hxx +++ b/bundled/include/LibreOfficeKit/LibreOfficeKit.hxx @@ -155,6 +155,65 @@ public: } /** + * Renders a dialog with give dialog id and writes the width and height of the rendered dialog + * + * Client must truncate pBuffer according to the nWidth and nHeight returned after the call. + * + * @param pDialogId Unique dialog id to be painted + * @param pBuffer Buffer with enough memory allocated to render any dialog + * @param x x-coordinate from where the dialog should start painting + * @param y y-coordinate from where the dialog should start painting + * @param width The width of the dialog image to be painted + * @param height The height of the dialog image to be painted + */ + void paintDialog(const char* pDialogId, + unsigned char* pBuffer, + const int x, + const int y, + const int width, + const int height) + { + return mpDoc->pClass->paintDialog(mpDoc, pDialogId, pBuffer, + x, y, width, height); + } + + /* Get info about dialog with given dialog id + * + * @param pDialogId Unique dialog id for which to get info about + * @param pDialogTitle Pointer to pointer pointing to string containing the + * dialog title. Caller should the pointer to allocated string themselves. + * @param pWidth The width of the dialog + * @param pHeight The height of the dialog + */ + void getDialogInfo(const char* pDialogId, + char** pDialogTitle, + int& pWidth, + int& pHeight) + { + return mpDoc->pClass->getDialogInfo(mpDoc, pDialogId, pDialogTitle, &pWidth, &pHeight); + + } + + /** + * Renders the active floating window of a dialog + * + * Client must truncate pBuffer according to the nWidth and nHeight returned after the call. + * + * @param pDialogId Unique dialog id + * @param pBuffer Buffer with enough memory allocated to render any dialog + * @param nWidth output parameter returning the width of the rendered dialog. + * @param nHeight output parameter returning the height of the rendered dialog + */ + void paintActiveFloatingWindow(const char* pDialogId, + unsigned char* pBuffer, + int& nWidth, + int& nHeight) + { + return mpDoc->pClass->paintActiveFloatingWindow(mpDoc, pDialogId, pBuffer, + &nWidth, &nHeight); + } + + /** * Gets the tile mode: the pixel format used for the pBuffer of paintTile(). * * @return an element of the LibreOfficeKitTileMode enum. @@ -220,6 +279,19 @@ public: } /** + * Posts a keyboard event to the dialog + * + * @param pDialogId Dialog id on which key event should be posted + * @param nType Event type, like press or release. + * @param nCharCode contains the Unicode character generated by this event or 0 + * @param nKeyCode contains the integer code representing the key of the event (non-zero for control keys) + */ + void postDialogKeyEvent(const char* pDialogId, int nType, int nCharCode, int nKeyCode) + { + mpDoc->pClass->postDialogKeyEvent(mpDoc, pDialogId, nType, nCharCode, nKeyCode); + } + + /** * Posts a mouse event to the document. * * @param nType Event type, like down, move or up. @@ -235,6 +307,39 @@ public: } /** + * Posts a mouse event to the dialog with given id. + * + * @param pDialogId Dialog id where mouse event is to be posted + * @param nType Event type, like down, move or up. + * @param nX horizontal position in document coordinates + * @param nY vertical position in document coordinates + * @param nCount number of clicks: 1 for single click, 2 for double click + * @param nButtons: which mouse buttons: 1 for left, 2 for middle, 4 right + * @param nModifier: which keyboard modifier: (see include/vcl/vclenum.hxx for possible values) + */ + void postDialogMouseEvent(const char* pDialogId, int nType, int nX, int nY, int nCount, int nButtons, int nModifier) + { + mpDoc->pClass->postDialogMouseEvent(mpDoc, pDialogId, nType, nX, nY, nCount, nButtons, nModifier); + } + + /** + * Posts a mouse event to the child of a dialog with given id. + * + * @param aDialogId Dialog id + * @param nType Event type, like down, move or up. + * @param nX horizontal position in document coordinates + * @param nY vertical position in document coordinates + * @param nCount number of clicks: 1 for single click, 2 for double click + * @param nButtons: which mouse buttons: 1 for left, 2 for middle, 4 right + * @param nModifier: which keyboard modifier: (see include/vcl/vclenum.hxx for possible values) + */ + void postDialogChildMouseEvent(const char* pDialogId, int nType, int nX, int nY, int nCount, int nButtons, int nModifier) + { + mpDoc->pClass->postDialogChildMouseEvent(mpDoc, pDialogId, nType, nX, nY, nCount, nButtons, nModifier); + } + + + /** * Posts an UNO command to the document. * * Example argument string: @@ -452,16 +557,6 @@ public: return mpDoc->pClass->getViewIds(mpDoc, pArray, nSize); } - inline void beginBatch() - { - mpDoc->pClass->beginBatch(mpDoc); - } - - inline void endBatch() - { - mpDoc->pClass->endBatch(mpDoc); - } - #endif // defined LOK_USE_UNSTABLE_API || defined LIBO_INTERNAL_ONLY }; @@ -560,7 +655,7 @@ public: * * @see LibreOfficeKitOptionalFeatures */ - void setOptionalFeatures(uint64_t features) + void setOptionalFeatures(unsigned long long features) { return mpThis->pClass->setOptionalFeatures(mpThis, features); } diff --git a/bundled/include/LibreOfficeKit/LibreOfficeKitEnums.h b/bundled/include/LibreOfficeKit/LibreOfficeKitEnums.h index c3b71f3f..62b9faf7 100644 --- a/bundled/include/LibreOfficeKit/LibreOfficeKitEnums.h +++ b/bundled/include/LibreOfficeKit/LibreOfficeKitEnums.h @@ -521,8 +521,30 @@ typedef enum * * Here all aproperties are same as described in svxruler. */ - LOK_CALLBACK_RULER_UPDATE = 35 + LOK_CALLBACK_RULER_UPDATE = 35, + /** + * Dialog invalidation + */ + LOK_CALLBACK_DIALOG = 36, + /** + * Invalidation corresponding to dialog's children. + * Eg: Floating window etc. + * + * Payload example: + * { + * "dialogID": "SpellDialog", + * "action": "close" + * } + * + * - dialogID is the UNO command of the dialog + * - action can be + * - close, means dialog child window is closed now + * - invalidate, means dialog child window is invalidated + * It also means that dialog child window is created if it's the first + * invalidate + */ + LOK_CALLBACK_DIALOG_CHILD = 37 } LibreOfficeKitCallbackType; _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits