[Libreoffice-commits] online.git: bundled/include Makefile.am

Andras Timar (via logerrit) logerrit at kemper.freedesktop.org
Fri Dec 6 12:40:27 UTC 2019


 Makefile.am                                          |   12 
 bundled/include/LibreOfficeKit/LibreOfficeKit.h      |  452 --------
 bundled/include/LibreOfficeKit/LibreOfficeKit.hxx    |  977 -------------------
 bundled/include/LibreOfficeKit/LibreOfficeKitEnums.h |  908 -----------------
 bundled/include/LibreOfficeKit/LibreOfficeKitInit.h  |  356 ------
 bundled/include/LibreOfficeKit/LibreOfficeKitTypes.h |   37 
 6 files changed, 7 insertions(+), 2735 deletions(-)

New commits:
commit b83610704bc8ac031112db8336df22380c9390e7
Author:     Andras Timar <andras.timar at collabora.com>
AuthorDate: Tue Dec 3 15:14:57 2019 +0100
Commit:     Andras Timar <andras.timar at collabora.com>
CommitDate: Fri Dec 6 13:40:09 2019 +0100

    remove bundled LOKit headers
    
    It was a source of confusion that these bundled headers had to be
    synced with core all the time, and when it did not happen, the builds
    broke.
    
    Change-Id: Id9d0a8a496b293d20c39e855176a00bcb85df640
    Reviewed-on: https://gerrit.libreoffice.org/84358
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice at gmail.com>
    Reviewed-by: Andras Timar <andras.timar at collabora.com>

diff --git a/Makefile.am b/Makefile.am
index 086ba7613..57a666adb 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -230,11 +230,6 @@ kit_headers = kit/ChildSession.hpp \
               kit/Watermark.hpp
 
 noinst_HEADERS = $(wsd_headers) $(shared_headers) $(kit_headers) \
-                 bundled/include/LibreOfficeKit/LibreOfficeKit.h \
-                 bundled/include/LibreOfficeKit/LibreOfficeKit.hxx \
-                 bundled/include/LibreOfficeKit/LibreOfficeKitEnums.h \
-                 bundled/include/LibreOfficeKit/LibreOfficeKitInit.h \
-                 bundled/include/LibreOfficeKit/LibreOfficeKitTypes.h \
                  test/WopiTestServer.hpp \
                  test/countloolkits.hpp \
                  test/test.hpp \
@@ -242,6 +237,13 @@ noinst_HEADERS = $(wsd_headers) $(shared_headers) $(kit_headers) \
 
 dist-hook:
 	git log -1 --format=%h > $(distdir)/dist_git_hash 2> /dev/null || rm $(distdir)/dist_git_hash
+	mkdir -p $(distdir)/bundled/include/LibreOfficeKit/
+	cp @LOKIT_PATH@/LibreOfficeKit/LibreOfficeKit.h \
+	   @LOKIT_PATH@/LibreOfficeKit/LibreOfficeKit.hxx \
+	   @LOKIT_PATH@/LibreOfficeKit/LibreOfficeKitEnums.h \
+	   @LOKIT_PATH@/LibreOfficeKit/LibreOfficeKitInit.h \
+	   @LOKIT_PATH@/LibreOfficeKit/LibreOfficeKitTypes.h \
+	   $(distdir)/bundled/include/LibreOfficeKit/
 
 EXTRA_DIST = discovery.xml \
              favicon.ico \
diff --git a/bundled/include/LibreOfficeKit/LibreOfficeKit.h b/bundled/include/LibreOfficeKit/LibreOfficeKit.h
deleted file mode 100644
index 4c9e6c66b..000000000
--- a/bundled/include/LibreOfficeKit/LibreOfficeKit.h
+++ /dev/null
@@ -1,452 +0,0 @@
-/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- */
-
-#ifndef INCLUDED_LIBREOFFICEKIT_LIBREOFFICEKIT_H
-#define INCLUDED_LIBREOFFICEKIT_LIBREOFFICEKIT_H
-
-#include <stddef.h>
-
-// the unstable API needs C99's bool
-// 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>
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-typedef struct _LibreOfficeKit LibreOfficeKit;
-typedef struct _LibreOfficeKitClass LibreOfficeKitClass;
-
-typedef struct _LibreOfficeKitDocument LibreOfficeKitDocument;
-typedef struct _LibreOfficeKitDocumentClass LibreOfficeKitDocumentClass;
-
-// Do we have an extended member in this struct ?
-#define LIBREOFFICEKIT_HAS_MEMBER(strct,member,nSize) \
-    (offsetof(strct, member) < (nSize))
-
-#define LIBREOFFICEKIT_HAS(pKit,member) LIBREOFFICEKIT_HAS_MEMBER(LibreOfficeKitClass,member,(pKit)->pClass->nSize)
-
-struct _LibreOfficeKit
-{
-    LibreOfficeKitClass* pClass;
-};
-
-struct _LibreOfficeKitClass
-{
-    size_t  nSize;
-
-    void (*destroy) (LibreOfficeKit* pThis);
-
-    LibreOfficeKitDocument* (*documentLoad) (LibreOfficeKit* pThis,
-                                             const char* pURL);
-
-    char* (*getError) (LibreOfficeKit* pThis);
-
-    /// @since LibreOffice 5.0
-    LibreOfficeKitDocument* (*documentLoadWithOptions) (LibreOfficeKit* pThis,
-                                                        const char* pURL,
-                                                        const char* pOptions);
-    /// @since LibreOffice 5.2
-    void (*freeError) (char* pFree);
-
-    /// @since LibreOffice 6.0
-    void (*registerCallback) (LibreOfficeKit* pThis,
-                              LibreOfficeKitCallback pCallback,
-                              void* pData);
-
-    /** @see lok::Office::getFilterTypes().
-        @since LibreOffice 6.0
-     */
-    char* (*getFilterTypes) (LibreOfficeKit* pThis);
-
-    /** @see lok::Office::setOptionalFeatures().
-        @since LibreOffice 6.0
-     */
-    void (*setOptionalFeatures)(LibreOfficeKit* pThis, unsigned long long features);
-
-    /** @see lok::Office::setDocumentPassword().
-        @since LibreOffice 6.0
-     */
-    void (*setDocumentPassword) (LibreOfficeKit* pThis,
-            char const* pURL,
-            char const* pPassword);
-
-    /** @see lok::Office::getVersionInfo().
-        @since LibreOffice 6.0
-     */
-    char* (*getVersionInfo) (LibreOfficeKit* pThis);
-
-    /** @see lok::Office::runMacro().
-        @since LibreOffice 6.0
-     */
-    int (*runMacro) (LibreOfficeKit *pThis, const char* pURL);
-
-    /** @see lok::Office::signDocument().
-        @since LibreOffice 6.2
-     */
-     bool (*signDocument) (LibreOfficeKit* pThis,
-                           const char* pUrl,
-                           const unsigned char* pCertificateBinary,
-                           const int nCertificateBinarySize,
-                           const unsigned char* pPrivateKeyBinary,
-                           const int nPrivateKeyBinarySize);
-
-    /// @see lok::Office::runLoop()
-    void (*runLoop) (LibreOfficeKit* pThis,
-                     LibreOfficeKitPollCallback pPollCallback,
-                     LibreOfficeKitWakeCallback pWakeCallback,
-                     void* pData);
-};
-
-#define LIBREOFFICEKIT_DOCUMENT_HAS(pDoc,member) LIBREOFFICEKIT_HAS_MEMBER(LibreOfficeKitDocumentClass,member,(pDoc)->pClass->nSize)
-
-struct _LibreOfficeKitDocument
-{
-    LibreOfficeKitDocumentClass* pClass;
-};
-
-struct _LibreOfficeKitDocumentClass
-{
-    size_t  nSize;
-
-    void (*destroy) (LibreOfficeKitDocument* pThis);
-
-    int (*saveAs) (LibreOfficeKitDocument* pThis,
-                   const char* pUrl,
-                   const char* pFormat,
-                   const char* pFilterOptions);
-
-    /** @see lok::Document::getDocumentType().
-        @since LibreOffice 6.0
-     */
-    int (*getDocumentType) (LibreOfficeKitDocument* pThis);
-
-#if defined LOK_USE_UNSTABLE_API || defined LIBO_INTERNAL_ONLY
-    /// @see lok::Document::getParts().
-    int (*getParts) (LibreOfficeKitDocument* pThis);
-
-    /// @see lok::Document::getPartPageRectangles().
-    char* (*getPartPageRectangles) (LibreOfficeKitDocument* pThis);
-
-    /// @see lok::Document::getPart().
-    int (*getPart) (LibreOfficeKitDocument* pThis);
-
-    /// @see lok::Document::setPart().
-    void (*setPart) (LibreOfficeKitDocument* pThis,
-                     int nPart);
-
-    /// @see lok::Document::getPartName().
-    char* (*getPartName) (LibreOfficeKitDocument* pThis,
-                          int nPart);
-
-    /// @see lok::Document::setPartMode().
-    void (*setPartMode) (LibreOfficeKitDocument* pThis,
-                         int nMode);
-
-    /// @see lok::Document::paintTile().
-    void (*paintTile) (LibreOfficeKitDocument* pThis,
-                       unsigned char* pBuffer,
-                       const int nCanvasWidth,
-                       const int nCanvasHeight,
-                       const int nTilePosX,
-                       const int nTilePosY,
-                       const int nTileWidth,
-                       const int nTileHeight);
-
-    /// @see lok::Document::getTileMode().
-    int (*getTileMode) (LibreOfficeKitDocument* pThis);
-
-    /// @see lok::Document::getDocumentSize().
-    void (*getDocumentSize) (LibreOfficeKitDocument* pThis,
-                             long* pWidth,
-                             long* pHeight);
-
-    /// @see lok::Document::initializeForRendering().
-    void (*initializeForRendering) (LibreOfficeKitDocument* pThis,
-                                    const char* pArguments);
-
-    /// @see lok::Document::registerCallback().
-    void (*registerCallback) (LibreOfficeKitDocument* pThis,
-                              LibreOfficeKitCallback pCallback,
-                              void* pData);
-
-    /// @see lok::Document::postKeyEvent
-    void (*postKeyEvent) (LibreOfficeKitDocument* pThis,
-                          int nType,
-                          int nCharCode,
-                          int nKeyCode);
-
-    /// @see lok::Document::postMouseEvent
-    void (*postMouseEvent) (LibreOfficeKitDocument* pThis,
-                            int nType,
-                            int nX,
-                            int nY,
-                            int nCount,
-                            int nButtons,
-                            int nModifier);
-
-    /// @see lok::Document::postUnoCommand
-    void (*postUnoCommand) (LibreOfficeKitDocument* pThis,
-                            const char* pCommand,
-                            const char* pArguments,
-                            bool bNotifyWhenFinished);
-
-    /// @see lok::Document::setTextSelection
-    void (*setTextSelection) (LibreOfficeKitDocument* pThis,
-                              int nType,
-                              int nX,
-                              int nY);
-
-    /// @see lok::Document::getTextSelection
-    char* (*getTextSelection) (LibreOfficeKitDocument* pThis,
-                               const char* pMimeType,
-                               char** pUsedMimeType);
-
-    /// @see lok::Document::paste().
-    bool (*paste) (LibreOfficeKitDocument* pThis,
-                   const char* pMimeType,
-                   const char* pData,
-                   size_t nSize);
-
-    /// @see lok::Document::setGraphicSelection
-    void (*setGraphicSelection) (LibreOfficeKitDocument* pThis,
-                                 int nType,
-                                 int nX,
-                                 int nY);
-
-    /// @see lok::Document::resetSelection
-    void (*resetSelection) (LibreOfficeKitDocument* pThis);
-
-    /// @see lok::Document::getCommandValues().
-    char* (*getCommandValues) (LibreOfficeKitDocument* pThis, const char* pCommand);
-
-    /// @see lok::Document::setClientZoom().
-    void (*setClientZoom) (LibreOfficeKitDocument* pThis,
-            int nTilePixelWidth,
-            int nTilePixelHeight,
-            int nTileTwipWidth,
-            int nTileTwipHeight);
-
-    /// @see lok::Document::setVisibleArea).
-    void (*setClientVisibleArea) (LibreOfficeKitDocument* pThis, int nX, int nY, int nWidth, int nHeight);
-
-    /// @see lok::Document::createView().
-    int (*createView) (LibreOfficeKitDocument* pThis);
-    /// @see lok::Document::destroyView().
-    void (*destroyView) (LibreOfficeKitDocument* pThis, int nId);
-    /// @see lok::Document::setView().
-    void (*setView) (LibreOfficeKitDocument* pThis, int nId);
-    /// @see lok::Document::getView().
-    int (*getView) (LibreOfficeKitDocument* pThis);
-    /// @see lok::Document::getViewsCount().
-    int (*getViewsCount) (LibreOfficeKitDocument* pThis);
-
-    /// @see lok::Document::renderFont().
-    unsigned char* (*renderFont) (LibreOfficeKitDocument* pThis,
-                       const char* pFontName,
-                       const char* pChar,
-                       int* pFontWidth,
-                       int* pFontHeight);
-
-    /// @see lok::Document::getPartHash().
-    char* (*getPartHash) (LibreOfficeKitDocument* pThis,
-                          int nPart);
-
-    /// Paints a tile from a specific part.
-    /// @see lok::Document::paintTile().
-    void (*paintPartTile) (LibreOfficeKitDocument* pThis,
-                           unsigned char* pBuffer,
-                           const int nPart,
-                           const int nCanvasWidth,
-                           const int nCanvasHeight,
-                           const int nTilePosX,
-                           const int nTilePosY,
-                           const int nTileWidth,
-                           const int nTileHeight);
-
-    /// @see lok::Document::getViewIds().
-    bool (*getViewIds) (LibreOfficeKitDocument* pThis,
-                       int* pArray,
-                       size_t nSize);
-
-    /// @see lok::Document::setOutlineState).
-    void (*setOutlineState) (LibreOfficeKitDocument* pThis, bool bColumn, int nLevel, int nIndex, bool bHidden);
-
-    /// Paints window with given id to the buffer
-    /// @see lok::Document::paintWindow().
-    void (*paintWindow) (LibreOfficeKitDocument* pThis, unsigned nWindowId,
-                         unsigned char* pBuffer,
-                         const int x, const int y,
-                         const int width, const int height);
-
-    /// @see lok::Document::postWindow().
-    void (*postWindow) (LibreOfficeKitDocument* pThis, unsigned nWindowId, int nAction, const char* pData);
-
-    /// @see lok::Document::postWindowKeyEvent().
-    void (*postWindowKeyEvent) (LibreOfficeKitDocument* pThis,
-                                unsigned nWindowId,
-                                int nType,
-                                int nCharCode,
-                                int nKeyCode);
-
-    /// @see lok::Document::postWindowMouseEvent().
-    void (*postWindowMouseEvent) (LibreOfficeKitDocument* pThis,
-                                  unsigned nWindowId,
-                                  int nType,
-                                  int nX,
-                                  int nY,
-                                  int nCount,
-                                  int nButtons,
-                                  int nModifier);
-
-    /// @see lok::Document::setViewLanguage().
-    void (*setViewLanguage) (LibreOfficeKitDocument* pThis, int nId, const char* language);
-
-    /// @see lok::Document::postWindowExtTextInputEvent
-    void (*postWindowExtTextInputEvent) (LibreOfficeKitDocument* pThis,
-                                         unsigned nWindowId,
-                                         int nType,
-                                         const char* pText);
-
-    /// @see lok::Document::getPartInfo().
-    char* (*getPartInfo) (LibreOfficeKitDocument* pThis, int nPart);
-
-    /// Paints window with given id to the buffer with the give DPI scale
-    /// (every pixel is dpiscale-times larger).
-    /// @see lok::Document::paintWindow().
-    void (*paintWindowDPI) (LibreOfficeKitDocument* pThis, unsigned nWindowId,
-                            unsigned char* pBuffer,
-                            const int x, const int y,
-                            const int width, const int height,
-                            const double dpiscale);
-
-#ifdef IOS
-    /// @see lok::Document::paintTileToCGContext().
-    void (*paintTileToCGContext) (LibreOfficeKitDocument* pThis,
-                                  void* rCGContext,
-                                  const int nCanvasWidth,
-                                  const int nCanvasHeight,
-                                  const int nTilePosX,
-                                  const int nTilePosY,
-                                  const int nTileWidth,
-                                  const int nTileHeight);
-#endif // IOS
-
-// CERTIFICATE AND SIGNING
-
-    /// @see lok::Document::insertCertificate().
-    bool (*insertCertificate) (LibreOfficeKitDocument* pThis,
-                                const unsigned char* pCertificateBinary,
-                                const int nCertificateBinarySize,
-                                const unsigned char* pPrivateKeyBinary,
-                                const int nPrivateKeyBinarySize);
-
-    /// @see lok::Document::addCertificate().
-    bool (*addCertificate) (LibreOfficeKitDocument* pThis,
-                                const unsigned char* pCertificateBinary,
-                                const int nCertificateBinarySize);
-
-    /// @see lok::Document::getSignatureState().
-    int (*getSignatureState) (LibreOfficeKitDocument* pThis);
-// END CERTIFICATE AND SIGNING
-
-    /// @see lok::Document::renderShapeSelection
-    size_t (*renderShapeSelection)(LibreOfficeKitDocument* pThis, char** pOutput);
-
-    /// @see lok::Document::postWindowGestureEvent().
-    void (*postWindowGestureEvent) (LibreOfficeKitDocument* pThis,
-                                  unsigned nWindowId,
-                                  const char* pType,
-                                  int nX,
-                                  int nY,
-                                  int nOffset);
-
-    /// @see lok::Document::createViewWithOptions().
-    int (*createViewWithOptions) (LibreOfficeKitDocument* pThis, const char* pOptions);
-
-    /// @see lok::Document::selectPart().
-    void (*selectPart) (LibreOfficeKitDocument* pThis, int nPart, int nSelect);
-
-    /// @see lok::Document::moveSelectedParts().
-    void (*moveSelectedParts) (LibreOfficeKitDocument* pThis, int nPosition, bool bDuplicate);
-
-    /// Resize window with given id.
-    /// @see lok::Document::resizeWindow().
-    void (*resizeWindow) (LibreOfficeKitDocument* pThis, unsigned nWindowId,
-                          const int width, const int height);
-
-    /// Pass a nullptr terminated array of mime-type strings
-    /// @see lok::Document::getClipboard for more details
-    int (*getClipboard) (LibreOfficeKitDocument* pThis,
-                         const char **pMimeTypes,
-                         size_t      *pOutCount,
-                         char      ***pOutMimeTypes,
-                         size_t     **pOutSizes,
-                         char      ***pOutStreams);
-
-    /// @see lok::Document::setClipboard
-    int (*setClipboard) (LibreOfficeKitDocument* pThis,
-                         const size_t   nInCount,
-                         const char   **pInMimeTypes,
-                         const size_t  *pInSizes,
-                         const char   **pInStreams);
-
-    /// @see lok::Document::getSelectionType
-    int (*getSelectionType) (LibreOfficeKitDocument* pThis);
-
-    /// @see lok::Document::removeTextContext
-    void (*removeTextContext) (LibreOfficeKitDocument* pThis,
-                               unsigned nWindowId,
-                               int nBefore,
-                               int nAfter);
-
-    /// @see lok::Document::sendDialogEvent
-    void (*sendDialogEvent) (LibreOfficeKitDocument* pThis,
-                            unsigned nLOKWindowId,
-                            const char* pArguments);
-
-    /// @see lok::Document::renderFontOrientation().
-    unsigned char* (*renderFontOrientation) (LibreOfficeKitDocument* pThis,
-                       const char* pFontName,
-                       const char* pChar,
-                       int* pFontWidth,
-                       int* pFontHeight,
-                       int pOrientation);
-
-    /// Switches view to viewId if viewId >= 0, and paints window
-    /// @see lok::Document::paintWindowDPI().
-    void (*paintWindowForView) (LibreOfficeKitDocument* pThis, unsigned nWindowId,
-                                unsigned char* pBuffer,
-                                const int x, const int y,
-                                const int width, const int height,
-                                const double dpiscale,
-                                int viewId);
-
-    /// @see lok::Document::completeFunction
-    void (*completeFunction) (LibreOfficeKitDocument* pThis,
-                              int nIndex);
-
-#endif // defined LOK_USE_UNSTABLE_API || defined LIBO_INTERNAL_ONLY
-};
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif // INCLUDED_LIBREOFFICEKIT_LIBREOFFICEKIT_H
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/bundled/include/LibreOfficeKit/LibreOfficeKit.hxx b/bundled/include/LibreOfficeKit/LibreOfficeKit.hxx
deleted file mode 100644
index d50ef4823..000000000
--- a/bundled/include/LibreOfficeKit/LibreOfficeKit.hxx
+++ /dev/null
@@ -1,977 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- */
-
-#ifndef INCLUDED_LIBREOFFICEKIT_LIBREOFFICEKIT_HXX
-#define INCLUDED_LIBREOFFICEKIT_LIBREOFFICEKIT_HXX
-
-#include <cstddef>
-
-#include <LibreOfficeKit/LibreOfficeKit.h>
-#include <LibreOfficeKit/LibreOfficeKitInit.h>
-
-/*
- * The reasons this C++ code is not as pretty as it could be are:
- *  a) provide a pure C API - that's useful for some people
- *  b) allow ABI stability - C++ vtables are not good for that.
- *  c) avoid C++ types as part of the API.
- */
-namespace lok
-{
-
-/// The lok::Document class represents one loaded document instance.
-class Document
-{
-private:
-    LibreOfficeKitDocument* mpDoc;
-
-public:
-    /// A lok::Document is typically created by the lok::Office::documentLoad() method.
-    Document(LibreOfficeKitDocument* pDoc) :
-        mpDoc(pDoc)
-    {}
-
-    ~Document()
-    {
-        mpDoc->pClass->destroy(mpDoc);
-    }
-
-    /**
-     * Stores the document's persistent data to a URL and
-     * continues to be a representation of the old URL.
-     *
-     * @param pUrl the location where to store the document
-     * @param pFormat the format to use while exporting, when omitted, then deducted from pURL's extension
-     * @param pFilterOptions options for the export filter, e.g. SkipImages.
-     *        Another useful FilterOption is "TakeOwnership".  It is consumed
-     *        by the saveAs() itself, and when provided, the document identity
-     *        changes to the provided pUrl - meaning that '.uno:ModifiedStatus'
-     *        is triggered as with the "Save As..." in the UI.
-     *        "TakeOwnership" mode must not be used when saving to PNG or PDF.
-     */
-    bool saveAs(const char* pUrl, const char* pFormat = NULL, const char* pFilterOptions = NULL)
-    {
-        return mpDoc->pClass->saveAs(mpDoc, pUrl, pFormat, pFilterOptions) != 0;
-    }
-
-    /// Gives access to the underlying C pointer.
-    LibreOfficeKitDocument *get() { return mpDoc; }
-
-    /**
-     * Get document type.
-     *
-     * @since LibreOffice 6.0
-     * @return an element of the LibreOfficeKitDocumentType enum.
-     */
-    int getDocumentType()
-    {
-        return mpDoc->pClass->getDocumentType(mpDoc);
-    }
-
-#if defined LOK_USE_UNSTABLE_API || defined LIBO_INTERNAL_ONLY
-    /**
-     * Get number of part that the document contains.
-     *
-     * Part refers to either individual sheets in a Calc, or slides in Impress,
-     * and has no relevance for Writer.
-     */
-    int getParts()
-    {
-        return mpDoc->pClass->getParts(mpDoc);
-    }
-
-    /**
-     * Get the logical rectangle of each part in the document.
-     *
-     * A part refers to an individual page in Writer and has no relevant for
-     * Calc or Impress.
-     *
-     * @return a rectangle list, using the same format as
-     * LOK_CALLBACK_TEXT_SELECTION.
-     */
-    char* getPartPageRectangles()
-    {
-        return mpDoc->pClass->getPartPageRectangles(mpDoc);
-    }
-
-    /// Get the current part of the document.
-    int getPart()
-    {
-        return mpDoc->pClass->getPart(mpDoc);
-    }
-
-    /// Set the current part of the document.
-    void setPart(int nPart)
-    {
-        mpDoc->pClass->setPart(mpDoc, nPart);
-    }
-
-    /// Get the current part's name.
-    char* getPartName(int nPart)
-    {
-        return mpDoc->pClass->getPartName(mpDoc, nPart);
-    }
-
-    /// Get the current part's hash.
-    char* getPartHash(int nPart)
-    {
-        return mpDoc->pClass->getPartHash(mpDoc, nPart);
-    }
-
-    void setPartMode(int nMode)
-    {
-        mpDoc->pClass->setPartMode(mpDoc, nMode);
-    }
-
-    /**
-     * Renders a subset of the document to a pre-allocated buffer.
-     *
-     * Note that the buffer size and the tile size implicitly supports
-     * rendering at different zoom levels, as the number of rendered pixels and
-     * the rendered rectangle of the document are independent.
-     *
-     * @param pBuffer pointer to the buffer, its size is determined by nCanvasWidth and nCanvasHeight.
-     * @param nCanvasWidth number of pixels in a row of pBuffer.
-     * @param nCanvasHeight number of pixels in a column of pBuffer.
-     * @param nTilePosX logical X position of the top left corner of the rendered rectangle, in TWIPs.
-     * @param nTilePosY logical Y position of the top left corner of the rendered rectangle, in TWIPs.
-     * @param nTileWidth logical width of the rendered rectangle, in TWIPs.
-     * @param nTileHeight logical height of the rendered rectangle, in TWIPs.
-     */
-    void paintTile(unsigned char* pBuffer,
-                          const int nCanvasWidth,
-                          const int nCanvasHeight,
-                          const int nTilePosX,
-                          const int nTilePosY,
-                          const int nTileWidth,
-                          const int nTileHeight)
-    {
-        return mpDoc->pClass->paintTile(mpDoc, pBuffer, nCanvasWidth, nCanvasHeight,
-                                nTilePosX, nTilePosY, nTileWidth, nTileHeight);
-    }
-
-    /**
-     * Renders a window (dialog, popup, etc.) with give id
-     *
-     * @param nWindowId
-     * @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
-     * @param dpiscale The dpi scale value used by the client.  Please note
-     *                 that the x, y, width, height are supposed to be the
-     *                 values with dpiscale applied (ie. dialog covering
-     *                 100x100 "normal" pixels with dpiscale '2' will have
-     *                 200x200 width x height), so that it is easy to compute
-     *                 the buffer sizes etc.
-     */
-    void paintWindow(unsigned nWindowId,
-                     unsigned char* pBuffer,
-                     const int x,
-                     const int y,
-                     const int width,
-                     const int height,
-                     const double dpiscale = 1.0,
-                     const int viewId = -1)
-    {
-        return mpDoc->pClass->paintWindowForView(mpDoc, nWindowId, pBuffer, x, y,
-                                                 width, height, dpiscale, viewId);
-    }
-
-    /**
-     * Posts a command to the window (dialog, popup, etc.) with given id
-     *
-     * @param nWindowid
-     */
-    void postWindow(unsigned nWindowId, int nAction, const char* pData = nullptr)
-    {
-        return mpDoc->pClass->postWindow(mpDoc, nWindowId, nAction, pData);
-    }
-
-    /**
-     * Gets the tile mode: the pixel format used for the pBuffer of paintTile().
-     *
-     * @return an element of the LibreOfficeKitTileMode enum.
-     */
-    int getTileMode()
-    {
-        return mpDoc->pClass->getTileMode(mpDoc);
-    }
-
-    /// Get the document sizes in TWIPs.
-    void getDocumentSize(long* pWidth, long* pHeight)
-    {
-        mpDoc->pClass->getDocumentSize(mpDoc, pWidth, pHeight);
-    }
-
-    /**
-     * Initialize document for rendering.
-     *
-     * Sets the rendering and document parameters to default values that are
-     * needed to render the document correctly using tiled rendering. This
-     * method has to be called right after documentLoad() in case any of the
-     * tiled rendering methods are to be used later.
-     *
-     * Example argument string for text documents:
-     *
-     * {
-     *     ".uno:HideWhitespace":
-     *     {
-     *         "type": "boolean",
-     *         "value": "true"
-     *     }
-     * }
-     *
-     * @param pArguments arguments of the rendering
-     */
-    void initializeForRendering(const char* pArguments = NULL)
-    {
-        mpDoc->pClass->initializeForRendering(mpDoc, pArguments);
-    }
-
-    /**
-     * Registers a callback. LOK will invoke this function when it wants to
-     * inform the client about events.
-     *
-     * @param pCallback the callback to invoke
-     * @param pData the user data, will be passed to the callback on invocation
-     */
-    void registerCallback(LibreOfficeKitCallback pCallback, void* pData)
-    {
-        mpDoc->pClass->registerCallback(mpDoc, pCallback, pData);
-    }
-
-    /**
-     * Posts a keyboard event to the focused frame.
-     *
-     * @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 postKeyEvent(int nType, int nCharCode, int nKeyCode)
-    {
-        mpDoc->pClass->postKeyEvent(mpDoc, nType, nCharCode, nKeyCode);
-    }
-
-    /**
-     * Posts a keyboard event to the dialog
-     *
-     * @param nWindowId
-     * @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 postWindowKeyEvent(unsigned nWindowId, int nType, int nCharCode, int nKeyCode)
-    {
-        mpDoc->pClass->postWindowKeyEvent(mpDoc, nWindowId, nType, nCharCode, nKeyCode);
-    }
-
-    /**
-     * Posts a mouse event to the document.
-     *
-     * @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 postMouseEvent(int nType, int nX, int nY, int nCount, int nButtons, int nModifier)
-    {
-        mpDoc->pClass->postMouseEvent(mpDoc, nType, nX, nY, nCount, nButtons, nModifier);
-    }
-
-    /**
-     * Posts a mouse event to the window with given id.
-     *
-     * @param nWindowId
-     * @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 postWindowMouseEvent(unsigned nWindowId, int nType, int nX, int nY, int nCount, int nButtons, int nModifier)
-    {
-        mpDoc->pClass->postWindowMouseEvent(mpDoc, nWindowId, nType, nX, nY, nCount, nButtons, nModifier);
-    }
-
-    /**
-     * 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 nWindowId, const char* pArguments = NULL)
-    {
-        mpDoc->pClass->sendDialogEvent(mpDoc, nWindowId, pArguments);
-    }
-
-    /**
-     * Posts an UNO command to the document.
-     *
-     * Example argument string:
-     *
-     * {
-     *     "SearchItem.SearchString":
-     *     {
-     *         "type": "string",
-     *         "value": "foobar"
-     *     },
-     *     "SearchItem.Backward":
-     *     {
-     *         "type": "boolean",
-     *         "value": "false"
-     *     }
-     * }
-     *
-     * @param pCommand uno command to be posted to the document, like ".uno:Bold"
-     * @param pArguments arguments of the uno command.
-     */
-    void postUnoCommand(const char* pCommand, const char* pArguments = NULL, bool bNotifyWhenFinished = false)
-    {
-        mpDoc->pClass->postUnoCommand(mpDoc, pCommand, pArguments, bNotifyWhenFinished);
-    }
-
-    /**
-     * Sets the start or end of a text selection.
-     *
-     * @param nType @see LibreOfficeKitSetTextSelectionType
-     * @param nX horizontal position in document coordinates
-     * @param nY vertical position in document coordinates
-     */
-    void setTextSelection(int nType, int nX, int nY)
-    {
-        mpDoc->pClass->setTextSelection(mpDoc, nType, nX, nY);
-    }
-
-    /**
-     * Gets the currently selected text.
-     *
-     * @param pMimeType suggests the return format, for example text/plain;charset=utf-8.
-     * @param pUsedMimeType output parameter to inform about the determined format (suggested one or plain text).
-     */
-    char* getTextSelection(const char* pMimeType, char** pUsedMimeType = NULL)
-    {
-        return mpDoc->pClass->getTextSelection(mpDoc, pMimeType, pUsedMimeType);
-    }
-
-    /**
-     * Gets the type of the selected content.
-     *
-     * @return an element of the LibreOfficeKitSelectionType enum.
-     */
-    int getSelectionType()
-    {
-        return mpDoc->pClass->getSelectionType(mpDoc);
-    }
-
-    /**
-     * Gets the content on the clipboard for the current view as a series of binary streams.
-     *
-     * NB. returns a complete set of possible selection types if nullptr is passed for pMimeTypes.
-     *
-     * @param pMimeTypes passes in a nullptr terminated list of mime types to fetch
-     * @param pOutCount     returns the size of the other @pOut arrays
-     * @param pOutMimeTypes returns an array of mime types
-     * @param pOutSizes     returns the size of each pOutStream
-     * @param pOutStreams   the content of each mime-type, of length in @pOutSizes
-     *
-     * @returns: true on success, false on error.
-     */
-    bool getClipboard(const char **pMimeTypes,
-                      size_t      *pOutCount,
-                      char      ***pOutMimeTypes,
-                      size_t     **pOutSizes,
-                      char      ***pOutStreams)
-    {
-        return mpDoc->pClass->getClipboard(mpDoc, pMimeTypes, pOutCount, pOutMimeTypes, pOutSizes, pOutStreams);
-    }
-
-    /**
-     * Populates the clipboard for this view with multiple types of content.
-     *
-     * @param nInCount the number of types to paste
-     * @param pInMimeTypes array of mime type strings
-     * @param pInSizes array of sizes of the data to paste
-     * @param pInStreams array containing the data of the various types
-     *
-     * @return if the supplied data was populated successfully.
-     */
-    bool setClipboard(const size_t  nInCount,
-                      const char  **pInMimeTypes,
-                      const size_t *pInSizes,
-                      const char  **pInStreams)
-    {
-        return mpDoc->pClass->setClipboard(mpDoc, nInCount, pInMimeTypes, pInSizes, pInStreams);
-    }
-
-    /**
-     * Pastes content at the current cursor position.
-     *
-     * @param pMimeType format of pData, for example text/plain;charset=utf-8.
-     * @param pData the actual data to be pasted.
-     * @return if the supplied data was pasted successfully.
-     */
-    bool paste(const char* pMimeType, const char* pData, size_t nSize)
-    {
-        return mpDoc->pClass->paste(mpDoc, pMimeType, pData, nSize);
-    }
-
-    /**
-     * Adjusts the graphic selection.
-     *
-     * @param nType @see LibreOfficeKitSetGraphicSelectionType
-     * @param nX horizontal position in document coordinates
-     * @param nY vertical position in document coordinates
-     */
-    void setGraphicSelection(int nType, int nX, int nY)
-    {
-        mpDoc->pClass->setGraphicSelection(mpDoc, nType, nX, nY);
-    }
-
-    /**
-     * Gets rid of any text or graphic selection.
-     */
-    void resetSelection()
-    {
-        mpDoc->pClass->resetSelection(mpDoc);
-    }
-
-    /**
-     * Returns a json mapping of the possible values for the given command
-     * e.g. {commandName: ".uno:StyleApply", commandValues: {"familyName1" : ["list of style names in the family1"], etc.}}
-     * @param pCommand a UNO command for which the possible values are requested
-     * @return {commandName: unoCmd, commandValues: {possible_values}}
-     */
-    char* getCommandValues(const char* pCommand)
-    {
-        return mpDoc->pClass->getCommandValues(mpDoc, pCommand);
-    }
-
-    /**
-     * Save the client's view so that we can compute the right zoom level
-     * for the mouse events. This only affects CALC.
-     * @param nTilePixelWidth - tile width in pixels
-     * @param nTilePixelHeight - tile height in pixels
-     * @param nTileTwipWidth - tile width in twips
-     * @param nTileTwipHeight - tile height in twips
-     */
-    void setClientZoom(
-            int nTilePixelWidth,
-            int nTilePixelHeight,
-            int nTileTwipWidth,
-            int nTileTwipHeight)
-    {
-        mpDoc->pClass->setClientZoom(mpDoc, nTilePixelWidth, nTilePixelHeight, nTileTwipWidth, nTileTwipHeight);
-    }
-
-    /**
-     * Inform core about the currently visible area of the document on the
-     * client, so that it can perform e.g. page down (which depends on the
-     * visible height) in a sane way.
-     *
-     * @param nX - top left corner horizontal position
-     * @param nY - top left corner vertical position
-     * @param nWidth - area width
-     * @param nHeight - area height
-     */
-    void setClientVisibleArea(int nX, int nY, int nWidth, int nHeight)
-    {
-        mpDoc->pClass->setClientVisibleArea(mpDoc, nX, nY, nWidth, nHeight);
-    }
-
-    /**
-     * Show/Hide a single row/column header outline for Calc documents.
-     *
-     * @param bColumn - if we are dealing with a column or row group
-     * @param nLevel - the level to which the group belongs
-     * @param nIndex - the group entry index
-     * @param bHidden - the new group state (collapsed/expanded)
-     */
-    void setOutlineState(bool bColumn, int nLevel, int nIndex, bool bHidden)
-    {
-        mpDoc->pClass->setOutlineState(mpDoc, bColumn, nLevel, nIndex, bHidden);
-    }
-
-    /**
-     * Create a new view for an existing document with
-     * options similar to documentLoadWithOptions.
-     * By default a loaded document has 1 view.
-     * @return the ID of the new view.
-     */
-    int createView(const char* pOptions = nullptr)
-    {
-        if (LIBREOFFICEKIT_DOCUMENT_HAS(mpDoc, createViewWithOptions))
-            return mpDoc->pClass->createViewWithOptions(mpDoc, pOptions);
-        else
-            return mpDoc->pClass->createView(mpDoc);
-    }
-
-    /**
-     * Destroy a view of an existing document.
-     * @param nId a view ID, returned by createView().
-     */
-    void destroyView(int nId)
-    {
-        mpDoc->pClass->destroyView(mpDoc, nId);
-    }
-
-    /**
-     * Set an existing view of an existing document as current.
-     * @param nId a view ID, returned by createView().
-     */
-    void setView(int nId)
-    {
-        mpDoc->pClass->setView(mpDoc, nId);
-    }
-
-    /**
-     * Get the current view.
-     * @return a view ID, previously returned by createView().
-     */
-    int getView()
-    {
-        return mpDoc->pClass->getView(mpDoc);
-    }
-
-    /**
-     * Get number of views of this document.
-     */
-    int getViewsCount()
-    {
-        return mpDoc->pClass->getViewsCount(mpDoc);
-    }
-
-    /**
-     * Paints a font name or character if provided to be displayed in the font list
-     * @param pFontName the font to be painted
-     */
-    unsigned char* renderFont(const char *pFontName,
-                          const char *pChar,
-                          int *pFontWidth,
-                          int *pFontHeight,
-                          int pOrientation = 0)
-    {
-        if (LIBREOFFICEKIT_DOCUMENT_HAS(mpDoc, renderFontOrientation))
-            return mpDoc->pClass->renderFontOrientation(mpDoc, pFontName, pChar, pFontWidth, pFontHeight, pOrientation);
-        else
-            return mpDoc->pClass->renderFont(mpDoc, pFontName, pChar, pFontWidth, pFontHeight);
-    }
-
-    /**
-     * Renders a subset of the document's part to a pre-allocated buffer.
-     *
-     * @param nPart the part number of the document of which the tile is painted.
-     * @see paintTile.
-     */
-    void paintPartTile(unsigned char* pBuffer,
-                              const int nPart,
-                              const int nCanvasWidth,
-                              const int nCanvasHeight,
-                              const int nTilePosX,
-                              const int nTilePosY,
-                              const int nTileWidth,
-                              const int nTileHeight)
-    {
-        return mpDoc->pClass->paintPartTile(mpDoc, pBuffer, nPart,
-                                            nCanvasWidth, nCanvasHeight,
-                                            nTilePosX, nTilePosY,
-                                            nTileWidth, nTileHeight);
-    }
-
-    /**
-     * Returns the viewID for each existing view. Since viewIDs are not reused,
-     * viewIDs are not the same as the index of the view in the view array over
-     * time. Use getViewsCount() to know the minimal nSize that's large enough.
-     *
-     * @param pArray the array to write the viewIDs into
-     * @param nSize the size of pArray
-     * @returns true if pArray was large enough and result is written, false
-     * otherwise.
-     */
-    bool getViewIds(int* pArray,
-                           size_t nSize)
-    {
-        return mpDoc->pClass->getViewIds(mpDoc, pArray, nSize);
-    }
-
-    /**
-     * Set the language tag of the window with the specified nId.
-     *
-     * @param nId a view ID, returned by createView().
-     * @param language Bcp47 languageTag, like en-US or so.
-     */
-    void setViewLanguage(int nId, const char* language)
-    {
-        mpDoc->pClass->setViewLanguage(mpDoc, nId, language);
-    }
-
-    /**
-     * Post the text input from external input window, like IME, to given windowId
-     *
-     * @param nWindowId Specify the window id to post the input event to. If
-     * nWindow is 0, the event is posted into the document
-     * @param nType see LibreOfficeKitExtTextInputType
-     * @param pText Text for LOK_EXT_TEXTINPUT
-     */
-    void postWindowExtTextInputEvent(unsigned nWindowId, int nType, const char* pText)
-    {
-        mpDoc->pClass->postWindowExtTextInputEvent(mpDoc, nWindowId, nType, pText);
-    }
-
-#ifdef IOS
-    /**
-     * Renders a subset of the document to a Core Graphics context.
-     *
-     * Note that the buffer size and the tile size implicitly supports
-     * rendering at different zoom levels, as the number of rendered pixels and
-     * the rendered rectangle of the document are independent.
-     *
-     * @param rCGContext the CGContextRef, cast to a void*.
-     * @param nCanvasHeight number of pixels in a column of pBuffer.
-     * @param nTilePosX logical X position of the top left corner of the rendered rectangle, in TWIPs.
-     * @param nTilePosY logical Y position of the top left corner of the rendered rectangle, in TWIPs.
-     * @param nTileWidth logical width of the rendered rectangle, in TWIPs.
-     * @param nTileHeight logical height of the rendered rectangle, in TWIPs.
-     */
-    void paintTileToCGContext(void* rCGContext,
-                              const int nCanvasWidth,
-                              const int nCanvasHeight,
-                              const int nTilePosX,
-                              const int nTilePosY,
-                              const int nTileWidth,
-                              const int nTileHeight)
-    {
-        return mpDoc->pClass->paintTileToCGContext(mpDoc, rCGContext, nCanvasWidth, nCanvasHeight,
-                                                   nTilePosX, nTilePosY, nTileWidth, nTileHeight);
-    }
-#endif // IOS
-
-    /**
-     *  Insert certificate (in binary form) to the certificate store.
-     */
-    bool insertCertificate(const unsigned char* pCertificateBinary,
-                           const int pCertificateBinarySize,
-                           const unsigned char* pPrivateKeyBinary,
-                           const int nPrivateKeyBinarySize)
-    {
-        return mpDoc->pClass->insertCertificate(mpDoc,
-                                                pCertificateBinary, pCertificateBinarySize,
-                                                pPrivateKeyBinary, nPrivateKeyBinarySize);
-    }
-
-    /**
-     *  Add the certificate (in binary form) to the certificate store.
-     *
-     */
-    bool addCertificate(const unsigned char* pCertificateBinary,
-                         const int pCertificateBinarySize)
-    {
-        return mpDoc->pClass->addCertificate(mpDoc,
-                                             pCertificateBinary, pCertificateBinarySize);
-    }
-
-    /**
-     *  Verify signature of the document.
-     *
-     *  Check possible values in include/sfx2/signaturestate.hxx
-     */
-    int getSignatureState()
-    {
-        return mpDoc->pClass->getSignatureState(mpDoc);
-    }
-
-    /**
-     * Gets an image of the selected shapes.
-     * @param pOutput contains the result; use free to deallocate.
-     * @return the size of *pOutput in bytes.
-     */
-    size_t renderShapeSelection(char** pOutput)
-    {
-        return mpDoc->pClass->renderShapeSelection(mpDoc, pOutput);
-    }
-
-    /**
-     * Posts a gesture event to the window with given id.
-     *
-     * @param nWindowId
-     * @param pType Event type, like panStart, panEnd, panUpdate.
-     * @param nX horizontal position in document coordinates
-     * @param nY vertical position in document coordinates
-     * @param nOffset difference value from when the gesture started to current value
-     */
-    void postWindowGestureEvent(unsigned nWindowId,
-                              const char* pType,
-                              int nX, int nY, int nOffset)
-    {
-        return mpDoc->pClass->postWindowGestureEvent(mpDoc, nWindowId, pType, nX, nY, nOffset);
-    }
-
-    /// Set a part's selection mode.
-    /// nSelect is 0 to deselect, 1 to select, and 2 to toggle.
-    void selectPart(int nPart, int nSelect)
-    {
-        mpDoc->pClass->selectPart(mpDoc, nPart, nSelect);
-    }
-
-    /// Moves the selected pages/slides to a new position.
-    /// nPosition is the new position where the selection
-    /// should go. bDuplicate when true will copy instead of move.
-    void moveSelectedParts(int nPosition, bool bDuplicate)
-    {
-        mpDoc->pClass->moveSelectedParts(mpDoc, nPosition, bDuplicate);
-    }
-
-    /**
-     * Resize a window (dialog, popup, etc.) with give id.
-     *
-     * @param nWindowId
-     * @param width The width of the window.
-     * @param height The height of the window.
-     */
-    void resizeWindow(unsigned nWindowId,
-                      const int width,
-                      const int height)
-    {
-        return mpDoc->pClass->resizeWindow(mpDoc, nWindowId, width, height);
-    }
-
-    /**
-     * For deleting many characters all at once
-     *
-     * @param nWindowId Specify the window id to post the input event to. If
-     * nWindow is 0, the event is posted into the document
-     * @param nBefore The characters to be deleted before the cursor position
-     * @param nAfter The characters to be deleted after the cursor position
-     */
-    void removeTextContext(unsigned nWindowId, int nBefore, int nAfter)
-    {
-        mpDoc->pClass->removeTextContext(mpDoc, nWindowId, nBefore, nAfter);
-    }
-
-    /**
-     * Select the Calc function to be pasted into the formula input box
-     *
-     * @param nIndex is the index of the selected function
-     */
-    void completeFunction(int nIndex)
-    {
-        mpDoc->pClass->completeFunction(mpDoc, nIndex);
-    }
-
-#endif // defined LOK_USE_UNSTABLE_API || defined LIBO_INTERNAL_ONLY
-};
-
-/// The lok::Office class represents one started LibreOfficeKit instance.
-class Office
-{
-private:
-    LibreOfficeKit* mpThis;
-
-public:
-    /// A lok::Office is typically created by the lok_cpp_init() function.
-    Office(LibreOfficeKit* pThis) :
-        mpThis(pThis)
-    {}
-
-    ~Office()
-    {
-        mpThis->pClass->destroy(mpThis);
-    }
-
-    /**
-     * Loads a document from a URL.
-     *
-     * @param pUrl the URL of the document to load
-     * @param pFilterOptions options for the import filter, e.g. SkipImages.
-     *        Another useful FilterOption is "Language=...".  It is consumed
-     *        by the documentLoad() itself, and when provided, LibreOfficeKit
-     *        switches the language accordingly first.
-     * @since pFilterOptions argument added in LibreOffice 5.0
-     */
-    Document* documentLoad(const char* pUrl, const char* pFilterOptions = NULL)
-    {
-        LibreOfficeKitDocument* pDoc = NULL;
-
-        if (LIBREOFFICEKIT_HAS(mpThis, documentLoadWithOptions))
-            pDoc = mpThis->pClass->documentLoadWithOptions(mpThis, pUrl, pFilterOptions);
-        else
-            pDoc = mpThis->pClass->documentLoad(mpThis, pUrl);
-
-        if (pDoc == NULL)
-            return NULL;
-
-        return new Document(pDoc);
-    }
-
-    /// Returns the last error as a string, the returned pointer has to be freed by the caller.
-    char* getError()
-    {
-        return mpThis->pClass->getError(mpThis);
-    }
-
-    /**
-     * Frees the memory pointed to by pFree.
-     *
-     * @since LibreOffice 5.2
-     */
-    void freeError(char* pFree)
-    {
-        mpThis->pClass->freeError(pFree);
-    }
-
-    /**
-     * Registers a callback. LOK will invoke this function when it wants to
-     * inform the client about events.
-     *
-     * @since LibreOffice 6.0
-     * @param pCallback the callback to invoke
-     * @param pData the user data, will be passed to the callback on invocation
-     */
-    void registerCallback(LibreOfficeKitCallback pCallback, void* pData)
-    {
-        mpThis->pClass->registerCallback(mpThis, pCallback, pData);
-    }
-
-    /**
-     * Returns details of filter types.
-     *
-     * Example returned string:
-     *
-     * {
-     *     "writer8": {
-     *         "MediaType": "application/vnd.oasis.opendocument.text"
-     *     },
-     *     "calc8": {
-     *         "MediaType": "application/vnd.oasis.opendocument.spreadsheet"
-     *     }
-     * }
-     *
-     * @since LibreOffice 6.0
-     */
-    char* getFilterTypes()
-    {
-        return mpThis->pClass->getFilterTypes(mpThis);
-    }
-
-    /**
-     * Set bitmask of optional features supported by the client.
-     *
-     * @since LibreOffice 6.0
-     * @see LibreOfficeKitOptionalFeatures
-     */
-    void setOptionalFeatures(unsigned long long features)
-    {
-        return mpThis->pClass->setOptionalFeatures(mpThis, features);
-    }
-
-    /**
-     * Set password required for loading or editing a document.
-     *
-     * Loading the document is blocked until the password is provided.
-     *
-     * @param pURL      the URL of the document, as sent to the callback
-     * @param pPassword the password, nullptr indicates no password
-     *
-     * In response to LOK_CALLBACK_DOCUMENT_PASSWORD, a valid password
-     * will continue loading the document, an invalid password will
-     * result in another LOK_CALLBACK_DOCUMENT_PASSWORD request,
-     * and a NULL password will abort loading the document.
-     *
-     * In response to LOK_CALLBACK_DOCUMENT_PASSWORD_TO_MODIFY, a valid
-     * password will continue loading the document, an invalid password will
-     * result in another LOK_CALLBACK_DOCUMENT_PASSWORD_TO_MODIFY request,
-     * and a NULL password will continue loading the document in read-only
-     * mode.
-     *
-     * @since LibreOffice 6.0
-     */
-    void setDocumentPassword(char const* pURL, char const* pPassword)
-    {
-        mpThis->pClass->setDocumentPassword(mpThis, pURL, pPassword);
-    }
-
-    /**
-     * Get version information of the LOKit process
-     *
-     * @since LibreOffice 6.0
-     * @returns JSON string containing version information in format:
-     * {ProductName: <>, ProductVersion: <>, ProductExtension: <>, BuildId: <>}
-     *
-     * Eg: {"ProductName": "LibreOffice",
-     * "ProductVersion": "5.3",
-     * "ProductExtension": ".0.0.alpha0",
-     * "BuildId": "<full 40 char git hash>"}
-     */
-    char* getVersionInfo()
-    {
-        return mpThis->pClass->getVersionInfo(mpThis);
-    }
-
-    /**
-     * Run a macro.
-     *
-     * Same syntax as on command line is permissible (ie. the macro:// URI forms)
-     *
-     * @since LibreOffice 6.0
-     * @param pURL macro url to run
-     */
-
-    bool runMacro( const char* pURL)
-    {
-        return mpThis->pClass->runMacro( mpThis, pURL );
-    }
-
-    /**
-     * Exports the document and signes its content.
-     */
-    bool signDocument(const char* pURL,
-                       const unsigned char* pCertificateBinary, const int nCertificateBinarySize,
-                       const unsigned char* pPrivateKeyBinary, const int nPrivateKeyBinarySize)
-    {
-        return mpThis->pClass->signDocument(mpThis, pURL,
-                                            pCertificateBinary, nCertificateBinarySize,
-                                            pPrivateKeyBinary, nPrivateKeyBinarySize);
-    }
-
-    /**
-     * Runs the main-loop in the current thread. To trigger this
-     * mode you need to putenv a SAL_LOK_OPTIONS containing 'unipoll'.
-     * The @pPollCallback is called to poll for events from the Kit client
-     * and the @pWakeCallback can be called by internal LibreOfficeKit threads
-     * to wake the caller of 'runLoop' ie. the main thread.
-     *
-     * it is expected that runLoop does not return until Kit exit.
-     *
-     * @pData is a context/closure passed to both methods.
-     */
-    void runLoop(LibreOfficeKitPollCallback pPollCallback,
-                 LibreOfficeKitWakeCallback pWakeCallback,
-                 void* pData)
-    {
-        mpThis->pClass->runLoop(mpThis, pPollCallback, pWakeCallback, pData);
-    }
-};
-
-/// Factory method to create a lok::Office instance.
-inline Office* lok_cpp_init(const char* pInstallPath, const char* pUserProfileUrl = NULL)
-{
-    LibreOfficeKit* pThis = lok_init_2(pInstallPath, pUserProfileUrl);
-    if (pThis == NULL || pThis->pClass->nSize == 0)
-        return NULL;
-    return new ::lok::Office(pThis);
-}
-
-}
-
-#endif // INCLUDED_LIBREOFFICEKIT_LIBREOFFICEKIT_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/bundled/include/LibreOfficeKit/LibreOfficeKitEnums.h b/bundled/include/LibreOfficeKit/LibreOfficeKitEnums.h
deleted file mode 100644
index 7ef3a3884..000000000
--- a/bundled/include/LibreOfficeKit/LibreOfficeKitEnums.h
+++ /dev/null
@@ -1,908 +0,0 @@
-/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- */
-
-#ifndef INCLUDED_LIBREOFFICEKIT_LIBREOFFICEKITENUMS_H
-#define INCLUDED_LIBREOFFICEKIT_LIBREOFFICEKITENUMS_H
-
-#include <assert.h>
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-#if defined LOK_USE_UNSTABLE_API || defined LIBO_INTERNAL_ONLY
-typedef enum
-{
-  LOK_DOCTYPE_TEXT,
-  LOK_DOCTYPE_SPREADSHEET,
-  LOK_DOCTYPE_PRESENTATION,
-  LOK_DOCTYPE_DRAWING,
-  LOK_DOCTYPE_OTHER
-}
-LibreOfficeKitDocumentType;
-
-typedef enum
-{
-    LOK_PARTMODE_SLIDES,
-    LOK_PARTMODE_NOTES
-}
-LibreOfficeKitPartMode;
-
-typedef enum
-{
-    LOK_TILEMODE_RGBA,
-    LOK_TILEMODE_BGRA
-}
-LibreOfficeKitTileMode;
-
-typedef enum
-{
-    LOK_WINDOW_CLOSE,
-    LOK_WINDOW_PASTE
-}
-LibreOfficeKitWindowAction;
-
-typedef enum
-{
-    LOK_SELTYPE_NONE,
-    LOK_SELTYPE_TEXT,
-    LOK_SELTYPE_LARGE_TEXT,
-    LOK_SELTYPE_COMPLEX
-}
-LibreOfficeKitSelectionType;
-
-/** Optional features of LibreOfficeKit, in particular callbacks that block
- *  LibreOfficeKit until the corresponding reply is received, which would
- *  deadlock if the client does not support the feature.
- *
- *  @see lok::Office::setOptionalFeatures().
- */
-typedef enum
-{
-    /**
-     * Handle LOK_CALLBACK_DOCUMENT_PASSWORD by prompting the user
-     * for a password.
-     *
-     * @see lok::Office::setDocumentPassword().
-     */
-    LOK_FEATURE_DOCUMENT_PASSWORD = (1ULL << 0),
-
-    /**
-     * Handle LOK_CALLBACK_DOCUMENT_PASSWORD_TO_MODIFY by prompting the user
-     * for a password.
-     *
-     * @see lok::Office::setDocumentPassword().
-     */
-    LOK_FEATURE_DOCUMENT_PASSWORD_TO_MODIFY = (1ULL << 1),
-
-    /**
-     * Request to have the part number as an 5th value in the
-     * LOK_CALLBACK_INVALIDATE_TILES payload.
-     */
-    LOK_FEATURE_PART_IN_INVALIDATION_CALLBACK = (1ULL << 2),
-
-    /**
-     * Turn off tile rendering for annotations
-     */
-    LOK_FEATURE_NO_TILED_ANNOTATIONS = (1ULL << 3),
-
-    /**
-     * Enable range based header data
-     */
-    LOK_FEATURE_RANGE_HEADERS = (1ULL << 4),
-
-    /**
-     * Request to have the active view's Id as the 1st value in the
-     * LOK_CALLBACK_INVALIDATE_VISIBLE_CURSOR payload.
-     */
-    LOK_FEATURE_VIEWID_IN_VISCURSOR_INVALIDATION_CALLBACK = (1ULL << 5)
-}
-LibreOfficeKitOptionalFeatures;
-
-// This enumerates the types of callbacks emitted to a LibreOfficeKit
-// object's callback function or to a LibreOfficeKitDocument object's
-// callback function. No callback type will be emitted to both. It is a
-// bit unfortunate that the same enum contains both kinds of
-// callbacks.
-
-// TODO: We should really add some indication at the documentation for
-// each enum value telling which type of callback it is.
-
-typedef enum
-{
-    /**
-     * Any tiles which are over the rectangle described in the payload are no
-     * longer valid.
-     *
-     * Rectangle format: "x, y, width, height", where all numbers are document
-     * coordinates, in twips. When all tiles are supposed to be dropped, the
-     * format is the "EMPTY" string.
-     *
-     * @see LOK_FEATURE_PART_IN_INVALIDATION_CALLBACK.
-     */
-    LOK_CALLBACK_INVALIDATE_TILES = 0,
-    /**
-     * The size and/or the position of the visible cursor changed.
-     *
-     * Old format is the same as LOK_CALLBACK_INVALIDATE_TILES.
-     * New format is a JSON with 3 elements the 'viewId' element represented by
-     * an integer value, a 'rectangle' element in the format "x, y, width, height",
-     * and a 'mispelledWord' element represented by an integer value: '1' when
-     * a mispelled word is at the cursor position, '0' when the word is
-     * not mispelled.
-     */
-    LOK_CALLBACK_INVALIDATE_VISIBLE_CURSOR = 1,
-    /**
-     * The list of rectangles representing the current text selection changed.
-     *
-     * List format is "rectangle1[; rectangle2[; ...]]" (without quotes and
-     * brackets), where rectangleN has the same format as
-     * LOK_CALLBACK_INVALIDATE_TILES. When there is no selection, an empty
-     * string is provided.
-     */
-    LOK_CALLBACK_TEXT_SELECTION = 2,
-    /**
-     * The position and size of the cursor rectangle at the text
-     * selection start. It is used to draw the selection handles.
-     *
-     * This callback must be called prior to LOK_CALLBACK_TEXT_SELECTION every
-     * time the selection is updated.
-     *
-     * Rectangle format is the same as LOK_CALLBACK_INVALIDATE_TILES.
-     */
-    LOK_CALLBACK_TEXT_SELECTION_START = 3,
-    /**
-     * The position and size of the cursor rectangle at the text
-     * selection end. It is used to draw the selection handles.
-     *
-     * This callback must be called prior to LOK_CALLBACK_TEXT_SELECTION every
-     * time the selection is updated.
-     *
-     * Rectangle format is the same as LOK_CALLBACK_INVALIDATE_TILES.
-     */
-    LOK_CALLBACK_TEXT_SELECTION_END = 4,
-    /**
-     * The blinking text cursor is now visible or not.
-     *
-     * Clients should assume that this is true initially and are expected to
-     * hide the blinking cursor at the rectangle described by
-     * LOK_CALLBACK_INVALIDATE_VISIBLE_CURSOR once it becomes false. Payload is
-     * either the "true" or the "false" string.
-     */
-    LOK_CALLBACK_CURSOR_VISIBLE = 5,
-    /**
-     * The size and/or the position of the graphic selection changed,
-     * the rotation angle of the embedded graphic object, and a property list
-     * which can be used for informing the client about several properties.
-     *
-     * Format is "x, y, width, height, angle, { list of properties }",
-     * where angle is in 100th of degree, and the property list is optional.
-     *
-     * The "{ list of properties }" part is in JSON format.
-     * Follow some examples of the property list part:
-     *
-     * 1) when the selected object is an image inserted in Writer:
-     *
-     *      { "isWriterGraphic": true }
-     *
-     * 2) when the selected object is a chart legend:
-     *
-     *      { "isDraggable": true, "isResizable": true, "isRotatable": false }
-     *
-     * 3) when the selected object is a pie segment in a chart:
-     *
-     *      {
-     *          "isDraggable": true,
-     *          "isResizable": false,
-     *          "isRotatable": false,
-     *          "dragInfo": {
-     *              "dragMethod": "PieSegmentDragging",
-     *              "initialOffset": 50,
-     *              "dragDirection": [x, y],
-     *              "svg": "<svg ..."
-     *          }
-     *      }
-     *
-     *      where the "svg" property is a string containing an svg document
-     *      which is a representation of the pie segment.
-     */
-    LOK_CALLBACK_GRAPHIC_SELECTION = 6,
-
-    /**
-     * User clicked on an hyperlink that should be handled by other
-     * applications accordingly.
-     */
-    LOK_CALLBACK_HYPERLINK_CLICKED = 7,
-
-    /**
-     * Emit state update to the client.
-     * For example, when cursor is on bold text, this callback is triggered
-     * with payload: ".uno:Bold=true"
-     */
-    LOK_CALLBACK_STATE_CHANGED = 8,
-
-    /**
-     * Start a "status indicator" (here restricted to a progress bar type
-     * indicator). The payload is the descriptive text (or empty). Even if
-     * there is no documentation that would promise so, we assume that de facto
-     * for a document being viewed or edited, there will be at most one status
-     * indicator, and its descriptive text will not change.
-     *
-     * Note that for the case of the progress indication during loading of a
-     * document, the status indicator callbacks will arrive to the callback
-     * registered for the LibreOfficeKit (singleton) object, not a
-     * LibreOfficeKitDocument one, because we are in the very progress of
-     * loading a document and then constructing a LibreOfficeKitDocument
-     * object.
-     */
-    LOK_CALLBACK_STATUS_INDICATOR_START = 9,
-
-    /**
-     * Sets the numeric value of the status indicator.
-     * The payload should be a percentage, an integer between 0 and 100.
-     */
-    LOK_CALLBACK_STATUS_INDICATOR_SET_VALUE = 10,
-
-    /**
-     * Ends the status indicator.
-     *
-     * Not necessarily ever emitted.
-     */
-    LOK_CALLBACK_STATUS_INDICATOR_FINISH = 11,
-
-    /**
-     * No match was found for the search input
-     */
-    LOK_CALLBACK_SEARCH_NOT_FOUND = 12,
-
-    /**
-     * Size of the document changed.
-     *
-     * Payload format is "width, height", i.e. clients get the new size without
-     * having to do an explicit lok::Document::getDocumentSize() call.
-     *
-     * A size change is always preceeded by a series of
-     * LOK_CALLBACK_INVALIDATE_TILES events invalidating any areas
-     * need re-rendering to adapt.
-     */
-    LOK_CALLBACK_DOCUMENT_SIZE_CHANGED = 13,
-
-    /**
-     * The current part number is changed.
-     *
-     * Payload is a single 0-based integer.
-     */
-    LOK_CALLBACK_SET_PART = 14,
-
-    /**
-     * Selection rectangles of the search result when find all is performed.
-     *
-     * Payload format example, in case of two matches:
-     *
-     * {
-     *     "searchString": "...",
-     *     "highlightAll": true|false, // this is a result of 'search all'
-     *     "searchResultSelection": [
-     *         {
-     *             "part": "...",
-     *             "rectangles": "..."
-     *         },
-     *         {
-     *             "part": "...",
-     *             "rectangles": "..."
-     *         }
-     *     ]
-     * }
-     *
-     * - searchString is the search query
-     * - searchResultSelection is an array of part-number and rectangle list
-     *   pairs, in LOK_CALLBACK_SET_PART / LOK_CALLBACK_TEXT_SELECTION format.
-     */
-    LOK_CALLBACK_SEARCH_RESULT_SELECTION = 15,
-
-    /**
-     * Result of the UNO command execution when bNotifyWhenFinished was set
-     * to 'true' during the postUnoCommand() call.
-     *
-     * The result returns a success / failure state, and potentially
-     * additional data:
-     *
-     * {
-     *     "commandName": "...",    // the command for which this is the result
-     *     "success": true/false,   // when the result is "don't know", this is missing
-     *     // TODO "result": "..."  // UNO Any converted to JSON (not implemented yet)
-     * }
-     */
-    LOK_CALLBACK_UNO_COMMAND_RESULT = 16,
-
-    /**
-     * The size and/or the position of the cell cursor changed.
-     *
-     * Payload format: "x, y, width, height, column, row", where the first
-     * 4 numbers are document coordinates, in twips, and the last 2 are table
-     * coordinates starting from 0.
-     * When the cursor is not shown the payload format is the "EMPTY" string.
-     *
-     * Rectangle format is the same as LOK_CALLBACK_INVALIDATE_TILES.
-     */
-    LOK_CALLBACK_CELL_CURSOR = 17,
-
-    /**
-     * The current mouse pointer style.
-     *
-     * Payload is a css mouse pointer style.
-     */
-    LOK_CALLBACK_MOUSE_POINTER = 18,
-
-    /**
-     * The text content of the formula bar in Calc.
-     */
-    LOK_CALLBACK_CELL_FORMULA = 19,
-
-    /**
-     * Loading a document requires a password.
-     *
-     * Loading the document is blocked until the password is provided via
-     * lok::Office::setDocumentPassword().  The document cannot be loaded
-     * without the password.
-     */
-    LOK_CALLBACK_DOCUMENT_PASSWORD = 20,
-
-    /**
-     * Editing a document requires a password.
-     *
-     * Loading the document is blocked until the password is provided via
-     * lok::Office::setDocumentPassword().
-     */
-    LOK_CALLBACK_DOCUMENT_PASSWORD_TO_MODIFY = 21,
-
-    /**
-     * An error happened.
-     *
-     * The payload returns information further identifying the error, like:
-     *
-     * {
-     *     "classification": "error" | "warning" | "info"
-     *     "kind": "network" etc.
-     *     "code": a structured 32-bit error code, the ErrCode from LibreOffice's <tools/errcode.hxx>
-     *     "message": freeform description
-     * }
-     */
-    LOK_CALLBACK_ERROR = 22,
-
-    /**
-     * Context menu structure
-     *
-     * Returns the structure of context menu.  Contains all the separators &
-     * submenus, example of the returned structure:
-     *
-     * {
-     *     "menu": [
-     *         { "text": "label text1", "type": "command", "command": ".uno:Something1", "enabled": "true" },
-     *         { "text": "label text2", "type": "command", "command": ".uno:Something2", "enabled": "false" },
-     *         { "type": "separator" },
-     *         { "text": "label text2", "type": "menu", "menu": [ { ... }, { ... }, ... ] },
-     *         ...
-     *     ]
-     * }
-     *
-     * The 'command' can additionally have a checkable status, like:
-     *
-     *     {"text": "label text3", "type": "command", "command": ".uno:Something3", "checktype": "checkmark|radio|auto", "checked": "true|false"}
-     */
-    LOK_CALLBACK_CONTEXT_MENU = 23,
-
-    /**
-     * The size and/or the position of the view cursor changed. A view cursor
-     * is a cursor of another view, the current view can't change it.
-     *
-     * The payload format:
-     *
-     * {
-     *     "viewId": "..."
-     *     "rectangle": "..."
-     * }
-     *
-     * - viewId is a value returned earlier by lok::Document::createView()
-     * - rectangle uses the format of LOK_CALLBACK_INVALIDATE_VISIBLE_CURSOR
-     */
-    LOK_CALLBACK_INVALIDATE_VIEW_CURSOR = 24,
-
-    /**
-     * The text selection in one of the other views has changed.
-     *
-     * The payload format:
-     *
-     * {
-     *     "viewId": "..."
-     *     "selection": "..."
-     * }
-     *
-     * - viewId is a value returned earlier by lok::Document::createView()
-     * - selection uses the format of LOK_CALLBACK_TEXT_SELECTION.
-     */
-    LOK_CALLBACK_TEXT_VIEW_SELECTION = 25,
-
-    /**
-     * The cell cursor in one of the other views has changed.
-     *
-     * The payload format:
-     *
-     * {
-     *     "viewId": "..."
-     *     "rectangle": "..."
-     * }
-     *
-     * - viewId is a value returned earlier by lok::Document::createView()
-     * - rectangle uses the format of LOK_CALLBACK_CELL_CURSOR.
-     */
-    LOK_CALLBACK_CELL_VIEW_CURSOR = 26,
-
-    /**
-     * The size and/or the position of a graphic selection in one of the other
-     * views has changed.
-     *
-     * The payload format:
-     *
-     * {
-     *     "viewId": "..."
-     *     "selection": "..."
-     * }
-     *
-     * - viewId is a value returned earlier by lok::Document::createView()
-     * - selection uses the format of LOK_CALLBACK_INVALIDATE_TILES.
-     */
-    LOK_CALLBACK_GRAPHIC_VIEW_SELECTION = 27,
-
-    /**
-     * The blinking text cursor in one of the other views is now visible or
-     * not.
-     *
-     * The payload format:
-     *
-     * {
-     *     "viewId": "..."
-     *     "visible": "..."
-     * }
-     *
-     * - viewId is a value returned earlier by lok::Document::createView()
-     * - visible uses the format of LOK_CALLBACK_CURSOR_VISIBLE.
-     */
-    LOK_CALLBACK_VIEW_CURSOR_VISIBLE = 28,
-
-    /**
-     * The size and/or the position of a lock rectangle in one of the other
-     * views has changed.
-     *
-     * The payload format:
-     *
-     * {
-     *     "viewId": "..."
-     *     "rectangle": "..."
-     * }
-     *
-     * - viewId is a value returned earlier by lok::Document::createView()
-     * - rectangle uses the format of LOK_CALLBACK_INVALIDATE_TILES.
-     */
-    LOK_CALLBACK_VIEW_LOCK = 29,
-
-    /**
-     * The size of the change tracking table has changed.
-     *
-     * The payload example:
-     * {
-     *     "redline": {
-     *         "action": "Remove",
-     *         "index": "1",
-     *         "author": "Unknown Author",
-     *         "type": "Delete",
-     *         "comment": "",
-     *         "description": "Delete 'abc'",
-     *         "dateTime": "2016-08-18T12:14:00"
-     *     }
-     * }
-     *
-     * The format is the same as an entry of
-     * lok::Document::getCommandValues('.uno:AcceptTrackedChanges'), extra
-     * fields:
-     *
-     * - 'action' is either 'Add' or 'Remove', depending on if this is an
-     *   insertion into the table or a removal.
-     */
-    LOK_CALLBACK_REDLINE_TABLE_SIZE_CHANGED = 30,
-
-    /**
-     * An entry in the change tracking table has been modified.
-     *
-     * The payload example:
-     * {
-     *     "redline": {
-     *         "action": "Modify",
-     *         "index": "1",
-     *         "author": "Unknown Author",
-     *         "type": "Insert",
-     *         "comment": "",
-     *         "description": "Insert 'abcd'",
-     *         "dateTime": "2016-08-18T13:13:00"
-     *     }
-     * }
-     *
-     * The format is the same as an entry of
-     * lok::Document::getCommandValues('.uno:AcceptTrackedChanges'), extra
-     * fields:
-     *
-     * - 'action' is 'Modify'.
-     */
-    LOK_CALLBACK_REDLINE_TABLE_ENTRY_MODIFIED = 31,
-
-    /**
-     * There is some change in comments in the document
-     *
-     * The payload example:
-     * {
-     *     "comment": {
-     *         "action": "Add",
-     *         "id": "11",
-     *         "parent": "4",
-     *         "author": "Unknown Author",
-     *         "text": "",
-     *         "dateTime": "2016-08-18T13:13:00",
-     *         "anchorPos": "4529, 3906",
-     *         "textRange": "1418, 3906, 3111, 919"
-     *     }
-     * }
-     *
-     * The format is the same as an entry of
-     * lok::Document::getCommandValues('.uno:ViewAnnotations'), extra
-     * fields:
-     *
-     * - 'action' can be 'Add', 'Remove' or 'Modify' depending on whether
-     *    comment has been added, removed or modified.
-     */
-    LOK_CALLBACK_COMMENT = 32,
-
-    /**
-     * The column/row header is no more valid because of a column/row insertion
-     * or a similar event. Clients must query a new column/row header set.
-     *
-     * The payload says if we are invalidating a row or column header. So,
-     * payload values can be: "row", "column", "all".
-     */
-    LOK_CALLBACK_INVALIDATE_HEADER = 33,
-    /**
-     * The text content of the address field in Calc. Eg: "A7"
-     */
-    LOK_CALLBACK_CELL_ADDRESS = 34,
-    /**
-     * The key ruler related properties on change are reported by this.
-     *
-     * The payload format is:
-     *
-     * {
-     *      "margin1": "...",
-     *      "margin2": "...",
-     *      "leftOffset": "...",
-     *      "pageOffset": "...",
-     *      "pageWidth": "...",
-     *      "unit": "..."
-     *  }
-     *
-     * Here all aproperties are same as described in svxruler.
-     */
-    LOK_CALLBACK_RULER_UPDATE = 35,
-    /**
-     * Window related callbacks are emitted under this category. It includes
-     * external windows like dialogs, autopopups for now.
-     *
-     * The payload format is:
-     *
-     * {
-     *    "id": "unique integer id of the dialog",
-     *    "action": "<see below>",
-     *    "type": "<see below>"
-     *    "rectangle": "x, y, width, height"
-     * }
-     *
-     * "type" tells the type of the window the action is associated with
-     *  - "dialog" - window is a dialog
-     *  - "child" - window is a floating window (combo boxes, etc.)
-     *  - "deck" - window is a docked/floating deck (i.e. the sidebar)
-     *
-     * "action" can take following values:
-     * - "created" - window is created in the backend, client can render it now
-     * - "title_changed" - window's title is changed
-     * - "size_changed" - window's size is changed
-     * - "invalidate" - the area as described by "rectangle" is invalidated
-     *    Clients must request the new area
-     * - "cursor_invalidate" - cursor is invalidated. New position is in "rectangle"
-     * - "cursor_visible" - cursor visible status is changed. Status is available
-     *    in "visible" field
-     * - "close" - window is closed
-     * - "show" - show the window
-     * - "hide" - hide the window
-     */
-    LOK_CALLBACK_WINDOW = 36,
-
-    /**
-     * When for the current cell is defined a validity list we need to show
-     * a drop down button in the form of a marker.
-     *
-     * The payload format is: "x, y, visible" where x, y are the current
-     * cell cursor coordinates and visible is set to 0 or 1.
-     */
-    LOK_CALLBACK_VALIDITY_LIST_BUTTON = 37,
-
-    /**
-     * Notification that the clipboard contents have changed.
-     * Typically fired in response to copying to clipboard.
-     *
-     * The payload currently is empty and it's up to the
-     * client to get the contents, if necessary. However,
-     * in the future the contents might be included for
-     * convenience.
-     */
-    LOK_CALLBACK_CLIPBOARD_CHANGED = 38,
-
-    /**
-     * When the (editing) context changes - like the user switches from
-     * editing textbox in Impress to editing a shape there.
-     *
-     * Payload is the application ID and context, delimited by space.
-     * Eg. com.sun.star.presentation.PresentationDocument TextObject
-     */
-    LOK_CALLBACK_CONTEXT_CHANGED = 39,
-
-    /**
-     * On-load notification of the document signature status.
-     */
-    LOK_CALLBACK_SIGNATURE_STATUS = 40,
-
-    /**
-     * Profiling tracing information single string of multiple lines
-     * containing <pid> <timestamp> and zone start/stop information
-     */
-    LOK_CALLBACK_PROFILE_FRAME = 41,
-
-    /**
-     * The position and size of the cell selection area. It is used to
-     * draw the selection handles for cells in Calc documents.
-     *
-     * Rectangle format is the same as LOK_CALLBACK_INVALIDATE_TILES.
-     */
-    LOK_CALLBACK_CELL_SELECTION_AREA = 42,
-
-    /**
-     * The position and size of the cell auto fill area. It is used to
-     * trigger auto fill functionality if that area is hit.
-     *
-     * Rectangle format is the same as LOK_CALLBACK_INVALIDATE_TILES.
-     */
-    LOK_CALLBACK_CELL_AUTO_FILL_AREA = 43,
-
-    /**
-     * When the cursor is in a table or a table is selected in the
-     * document, this sends the table's column and row border positions
-     * to the client. If the payload is empty (empty JSON object), then
-     * no table is currently selected or the cursor is not inside a table
-     * cell.
-     */
-    LOK_CALLBACK_TABLE_SELECTED = 44,
-
-    /*
-     * Show reference marks from payload.
-     *
-     * Example payload:
-     * {
-     *     "marks": [
-     *         { "rectangle": "3825, 3315, 1245, 2010", "color": "0000ff", "part": "0" },
-     *         { "rectangle": "8925, 4335, 2520, 735", "color": "ff0000", "part": "0" },
-     *         ...
-     *     ]
-     * }
-     */
-    LOK_CALLBACK_REFERENCE_MARKS = 45,
-
-    /**
-     * Callback related to native dialogs generated in JavaScript from
-     * the description.
-     */
-    LOK_CALLBACK_JSDIALOG = 46,
-
-    /**
-     * Send the list of functions whose name starts with the characters entered
-     * by the user in the formula input bar.
-     */
-    LOK_CALLBACK_CALC_FUNCTION_LIST = 47
-}
-LibreOfficeKitCallbackType;
-
-typedef enum
-{
-    /// A key on the keyboard is pressed.
-    LOK_KEYEVENT_KEYINPUT,
-    /// A key on the keyboard is released.
-    LOK_KEYEVENT_KEYUP
-}
-LibreOfficeKitKeyEventType;
-
-typedef enum
-{
-    /// cf. SalEvent::ExtTextInput
-    LOK_EXT_TEXTINPUT,
-    /// cf. SalEvent::ExtTextInputPos
-    LOK_EXT_TEXTINPUT_POS,
-    /// cf. SalEvent::EndExtTextInput
-    LOK_EXT_TEXTINPUT_END
-}
-LibreOfficeKitExtTextInputType;
-
-/// Returns the string representation of a LibreOfficeKitCallbackType enumeration element.
-static inline const char* lokCallbackTypeToString(int nType)
-{
-    switch (static_cast<LibreOfficeKitCallbackType>(nType))
-    {
-    case LOK_CALLBACK_INVALIDATE_TILES:
-        return "LOK_CALLBACK_INVALIDATE_TILES";
-    case LOK_CALLBACK_INVALIDATE_VISIBLE_CURSOR:
-        return "LOK_CALLBACK_INVALIDATE_VISIBLE_CURSOR";
-    case LOK_CALLBACK_TEXT_SELECTION:
-        return "LOK_CALLBACK_TEXT_SELECTION";
-    case LOK_CALLBACK_TEXT_SELECTION_START:
-        return "LOK_CALLBACK_TEXT_SELECTION_START";
-    case LOK_CALLBACK_TEXT_SELECTION_END:
-        return "LOK_CALLBACK_TEXT_SELECTION_END";
-    case LOK_CALLBACK_CURSOR_VISIBLE:
-        return "LOK_CALLBACK_CURSOR_VISIBLE";
-    case LOK_CALLBACK_VIEW_CURSOR_VISIBLE:
-        return "LOK_CALLBACK_VIEW_CURSOR_VISIBLE";
-    case LOK_CALLBACK_GRAPHIC_SELECTION:
-        return "LOK_CALLBACK_GRAPHIC_SELECTION";
-    case LOK_CALLBACK_GRAPHIC_VIEW_SELECTION:
-        return "LOK_CALLBACK_GRAPHIC_VIEW_SELECTION";
-    case LOK_CALLBACK_CELL_CURSOR:
-        return "LOK_CALLBACK_CELL_CURSOR";
-    case LOK_CALLBACK_HYPERLINK_CLICKED:
-        return "LOK_CALLBACK_HYPERLINK_CLICKED";
-    case LOK_CALLBACK_MOUSE_POINTER:
-        return "LOK_CALLBACK_MOUSE_POINTER";
-    case LOK_CALLBACK_STATE_CHANGED:
-        return "LOK_CALLBACK_STATE_CHANGED";
-    case LOK_CALLBACK_STATUS_INDICATOR_START:
-        return "LOK_CALLBACK_STATUS_INDICATOR_START";
-    case LOK_CALLBACK_STATUS_INDICATOR_SET_VALUE:
-        return "LOK_CALLBACK_STATUS_INDICATOR_SET_VALUE";
-    case LOK_CALLBACK_STATUS_INDICATOR_FINISH:
-        return "LOK_CALLBACK_STATUS_INDICATOR_FINISH";
-    case LOK_CALLBACK_SEARCH_NOT_FOUND:
-        return "LOK_CALLBACK_SEARCH_NOT_FOUND";
-    case LOK_CALLBACK_DOCUMENT_SIZE_CHANGED:
-        return "LOK_CALLBACK_DOCUMENT_SIZE_CHANGED";
-    case LOK_CALLBACK_SET_PART:
-        return "LOK_CALLBACK_SET_PART";
-    case LOK_CALLBACK_SEARCH_RESULT_SELECTION:
-        return "LOK_CALLBACK_SEARCH_RESULT_SELECTION";
-    case LOK_CALLBACK_DOCUMENT_PASSWORD:
-        return "LOK_CALLBACK_DOCUMENT_PASSWORD";
-    case LOK_CALLBACK_DOCUMENT_PASSWORD_TO_MODIFY:
-        return "LOK_CALLBACK_DOCUMENT_PASSWORD_TO_MODIFY";
-    case LOK_CALLBACK_CONTEXT_MENU:
-        return "LOK_CALLBACK_CONTEXT_MENU";
-    case LOK_CALLBACK_INVALIDATE_VIEW_CURSOR:
-        return "LOK_CALLBACK_INVALIDATE_VIEW_CURSOR";
-    case LOK_CALLBACK_TEXT_VIEW_SELECTION:
-        return "LOK_CALLBACK_TEXT_VIEW_SELECTION";
-    case LOK_CALLBACK_CELL_VIEW_CURSOR:
-        return "LOK_CALLBACK_CELL_VIEW_CURSOR";
-    case LOK_CALLBACK_CELL_ADDRESS:
-        return "LOK_CALLBACK_CELL_ADDRESS";
-    case LOK_CALLBACK_CELL_FORMULA:
-        return "LOK_CALLBACK_CELL_FORMULA";
-    case LOK_CALLBACK_UNO_COMMAND_RESULT:
-        return "LOK_CALLBACK_UNO_COMMAND_RESULT";
-    case LOK_CALLBACK_ERROR:
-        return "LOK_CALLBACK_ERROR";
-    case LOK_CALLBACK_VIEW_LOCK:
-        return "LOK_CALLBACK_VIEW_LOCK";
-    case LOK_CALLBACK_REDLINE_TABLE_SIZE_CHANGED:
-        return "LOK_CALLBACK_REDLINE_TABLE_SIZE_CHANGED";
-    case LOK_CALLBACK_REDLINE_TABLE_ENTRY_MODIFIED:
-        return "LOK_CALLBACK_REDLINE_TABLE_ENTRY_MODIFIED";
-    case LOK_CALLBACK_INVALIDATE_HEADER:
-        return "LOK_CALLBACK_INVALIDATE_HEADER";
-    case LOK_CALLBACK_COMMENT:
-        return "LOK_CALLBACK_COMMENT";
-    case LOK_CALLBACK_RULER_UPDATE:
-        return "LOK_CALLBACK_RULER_UPDATE";
-    case LOK_CALLBACK_WINDOW:
-        return "LOK_CALLBACK_WINDOW";
-    case LOK_CALLBACK_VALIDITY_LIST_BUTTON:
-        return "LOK_CALLBACK_VALIDITY_LIST_BUTTON";
-    case LOK_CALLBACK_CLIPBOARD_CHANGED:
-        return "LOK_CALLBACK_CLIPBOARD_CHANGED";
-    case LOK_CALLBACK_CONTEXT_CHANGED:
-        return "LOK_CALLBACK_CONTEXT_CHANGED";
-    case LOK_CALLBACK_SIGNATURE_STATUS:
-        return "LOK_CALLBACK_SIGNATURE_STATUS";
-    case LOK_CALLBACK_PROFILE_FRAME:
-        return "LOK_CALLBACK_PROFILE_FRAME";
-    case LOK_CALLBACK_CELL_SELECTION_AREA:
-        return "LOK_CALLBACK_CELL_SELECTION_AREA";
-    case LOK_CALLBACK_CELL_AUTO_FILL_AREA:
-        return "LOK_CALLBACK_CELL_AUTO_FILL_AREA";
-    case LOK_CALLBACK_TABLE_SELECTED:
-        return "LOK_CALLBACK_TABLE_SELECTED";
-    case LOK_CALLBACK_REFERENCE_MARKS:
-        return "LOK_CALLBACK_REFERENCE_MARKS";
-    case LOK_CALLBACK_JSDIALOG:
-        return "LOK_CALLBACK_JSDIALOG";
-    case LOK_CALLBACK_CALC_FUNCTION_LIST:
-        return "LOK_CALLBACK_CALC_FUNCTION_LIST";
-    }
-
-    assert(!"Unknown LibreOfficeKitCallbackType type.");
-    return nullptr;
-}
-
-typedef enum
-{
-    /// A pressed gesture has started.
-    LOK_MOUSEEVENT_MOUSEBUTTONDOWN,
-    /// A pressed gesture has finished.
-    LOK_MOUSEEVENT_MOUSEBUTTONUP,
-    /// A change has happened during a press gesture.
-    LOK_MOUSEEVENT_MOUSEMOVE
-}
-LibreOfficeKitMouseEventType;
-
-typedef enum
-{
-    /// The start of selection is to be adjusted.
-    LOK_SETTEXTSELECTION_START,
-    /// The end of selection is to be adjusted.
-    LOK_SETTEXTSELECTION_END,
-    /// Both the start and the end of selection is to be adjusted.
-    LOK_SETTEXTSELECTION_RESET
-}
-LibreOfficeKitSetTextSelectionType;
-
-typedef enum
-{
-    /**
-     * A move or a resize action starts. It is assumed that there is a valid
-     * graphic selection (see LOK_CALLBACK_GRAPHIC_SELECTION) and the supplied
-     * coordinates are the ones the user tapped on.
-     *
-     * The type of the action is move by default, unless the coordinates are
-     * the position of a handle (see below), in which case it's a resize.
-     *
-     * There are 8 handles for a graphic selection:
-     * - top-left, top-center, top-right
-     * - middle-left, middle-right
-     * - bottom-left, bottom-center, bottom-right
-     */
-    LOK_SETGRAPHICSELECTION_START,
-    /**
-     * A move or resize action stops. It is assumed that this is always used
-     * only after a LOK_SETTEXTSELECTION_START. The supplied coordinates are
-     * the ones where the user released the screen.
-     */
-    LOK_SETGRAPHICSELECTION_END
-}
-LibreOfficeKitSetGraphicSelectionType;
-
-#endif // defined LOK_USE_UNSTABLE_API || defined LIBO_INTERNAL_ONLY
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif // INCLUDED_LIBREOFFICEKIT_LIBREOFFICEKITENUMS_H
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/bundled/include/LibreOfficeKit/LibreOfficeKitInit.h b/bundled/include/LibreOfficeKit/LibreOfficeKitInit.h
deleted file mode 100644
index c00c33193..000000000
--- a/bundled/include/LibreOfficeKit/LibreOfficeKitInit.h
+++ /dev/null
@@ -1,356 +0,0 @@
-/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- */
-
-#ifndef INCLUDED_LIBREOFFICEKIT_LIBREOFFICEKITINIT_H
-#define INCLUDED_LIBREOFFICEKIT_LIBREOFFICEKITINIT_H
-
-#include <LibreOfficeKit/LibreOfficeKit.h>
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-#if defined __GNUC__ || defined __clang__
-#  define LOK_TOLERATE_UNUSED __attribute__((used))
-#else
-#  define LOK_TOLERATE_UNUSED
-#endif
-
-#if defined(__linux__) || defined (__FreeBSD_kernel__) || defined(_AIX) ||\
-    defined(_WIN32) || defined(__APPLE__) || defined (__NetBSD__) ||\
-    defined (__sun) || defined(__OpenBSD__)
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/stat.h>
-
-#ifndef _WIN32
-
-    #include <dlfcn.h>
-
-    #ifdef  _AIX
-    #  include <sys/ldr.h>
-    #endif
-    #ifdef __APPLE__
-        #define TARGET_LIB        "lib" "sofficeapp" ".dylib"
-        #define TARGET_MERGED_LIB "lib" "mergedlo" ".dylib"
-    #else
-        #define TARGET_LIB        "lib" "sofficeapp" ".so"
-        #define TARGET_MERGED_LIB "lib" "mergedlo" ".so"
-    #endif
-    #define SEPARATOR         '/'
-
-#if !defined(IOS)
-        static void *lok_loadlib(const char *pFN)
-    {
-        return dlopen(pFN, RTLD_LAZY
-#if defined LOK_LOADLIB_GLOBAL
-                      | RTLD_GLOBAL
-#endif
-                      );
-    }
-
-    static char *lok_dlerror(void)
-    {
-        return dlerror();
-    }
-
-    // This function must be called to release memory allocated by lok_dlerror()
-    static void lok_dlerror_free(char *pErrMessage)
-    {
-        (void)pErrMessage;
-        // Do nothing for return of dlerror()
-    }
-
-    static void extendUnoPath(const char *pPath)
-    {
-        (void)pPath;
-    }
-
-    static void *lok_dlsym(void *Hnd, const char *pName)
-    {
-        return dlsym(Hnd, pName);
-    }
-
-    static int lok_dlclose(void *Hnd)
-    {
-        return dlclose(Hnd);
-    }
-#endif // IOS
-
-
-#else
-    #if !defined WIN32_LEAN_AND_MEAN
-        #define WIN32_LEAN_AND_MEAN
-    #endif
-    #include  <windows.h>
-    #define TARGET_LIB        "sofficeapp" ".dll"
-    #define TARGET_MERGED_LIB "mergedlo" ".dll"
-    #define SEPARATOR         '\\'
-    #define UNOPATH           "\\..\\URE\\bin"
-
-    static void *lok_loadlib(const char *pFN)
-    {
-        return (void *) LoadLibraryA(pFN);
-    }
-
-    static char *lok_dlerror(void)
-    {
-        LPSTR buf = NULL;
-        FormatMessageA(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
-            NULL, GetLastError(), 0, reinterpret_cast<LPSTR>(&buf), 0, NULL);
-        return buf;
-    }
-
-    // This function must be called to release memory allocated by lok_dlerror()
-    static void lok_dlerror_free(char *pErrMessage)
-    {
-        HeapFree(GetProcessHeap(), 0, pErrMessage);
-    }
-
-    static void *lok_dlsym(void *Hnd, const char *pName)
-    {
-        return reinterpret_cast<void *>(GetProcAddress((HINSTANCE) Hnd, pName));
-    }
-
-    static int lok_dlclose(void *Hnd)
-    {
-        return FreeLibrary((HINSTANCE) Hnd);
-    }
-
-    static void extendUnoPath(const char *pPath)
-    {
-        char *sNewPath = NULL, *sEnvPath = NULL;
-        size_t size_sEnvPath = 0, buffer_size = 0;
-        DWORD cChars;
-
-        if (!pPath)
-            return;
-
-        cChars = GetEnvironmentVariableA("PATH", sEnvPath, 0);
-        if (cChars > 0)
-        {
-            sEnvPath = (char *) malloc(cChars);
-            cChars = GetEnvironmentVariableA("PATH", sEnvPath, cChars);
-            //If PATH is not set then it is no error
-            if (cChars == 0 && GetLastError() != ERROR_ENVVAR_NOT_FOUND)
-            {
-                free(sEnvPath);
-                return;
-            }
-        }
-        //prepare the new PATH. Add the Ure/bin directory at the front.
-        //note also adding ';'
-        if(sEnvPath)
-            size_sEnvPath = strlen(sEnvPath);
-        buffer_size = size_sEnvPath + 2*strlen(pPath) + strlen(UNOPATH) + 4;
-        sNewPath = (char *) malloc(buffer_size);
-        sNewPath[0] = L'\0';
-        strcat_s(sNewPath, buffer_size, pPath);     // program to PATH
-        strcat_s(sNewPath, buffer_size, ";");
-        strcat_s(sNewPath, buffer_size, UNOPATH);   // UNO to PATH
-        if (size_sEnvPath > 0)
-        {
-            strcat_s(sNewPath, buffer_size, ";");
-            strcat_s(sNewPath, buffer_size, sEnvPath);
-        }
-
-        SetEnvironmentVariableA("PATH", sNewPath);
-
-        free(sNewPath);
-        free(sEnvPath);
-    }
-#endif
-
-#if !defined(IOS)
-static void *lok_dlopen( const char *install_path, char ** _imp_lib )
-{
-    char *imp_lib;
-    void *dlhandle;
-
-    size_t partial_length, imp_lib_size;
-    struct stat dir_st;
-
-    *_imp_lib = NULL;
-
-    if (!install_path)
-        return NULL;
-
-    if (stat(install_path, &dir_st) != 0)
-    {
-        fprintf(stderr, "installation path \"%s\" does not exist\n", install_path);
-        return NULL;
-    }
-
-    // allocate large enough buffer
-    partial_length = strlen(install_path);
-    imp_lib_size = partial_length + sizeof(TARGET_LIB) + sizeof(TARGET_MERGED_LIB) + 2;
-    imp_lib = (char *) malloc(imp_lib_size);
-    if (!imp_lib)
-    {
-        fprintf( stderr, "failed to open library : not enough memory\n");
-        return NULL;
-    }
-
-    memcpy(imp_lib, install_path, partial_length);
-
-    extendUnoPath(install_path);
-
-    imp_lib[partial_length++] = SEPARATOR;
-    strncpy(imp_lib + partial_length, TARGET_LIB, imp_lib_size - partial_length);
-
-    dlhandle = lok_loadlib(imp_lib);
-    if (!dlhandle)
-    {
-        // If TARGET_LIB exists, and likely is a real library (not a
-        // small one-line text stub as in the --enable-mergedlib
-        // case), but dlopen failed for some reason, don't try
-        // TARGET_MERGED_LIB.
-        struct stat st;
-        if (stat(imp_lib, &st) == 0 && st.st_size > 100)
-        {
-            char *pErrMessage = lok_dlerror();
-            fprintf(stderr, "failed to open library '%s': %s\n",
-                    imp_lib, pErrMessage);
-            lok_dlerror_free(pErrMessage);
-            free(imp_lib);
-            return NULL;
-        }
-
-        strncpy(imp_lib + partial_length, TARGET_MERGED_LIB, imp_lib_size - partial_length);
-
-        dlhandle = lok_loadlib(imp_lib);
-        if (!dlhandle)
-        {
-            char *pErrMessage = lok_dlerror();
-            fprintf(stderr, "failed to open library '%s': %s\n",
-                    imp_lib, pErrMessage);
-            lok_dlerror_free(pErrMessage);
-            free(imp_lib);
-            return NULL;
-        }
-    }
-    *_imp_lib = imp_lib;
-    return dlhandle;
-}
-#endif
-
-typedef LibreOfficeKit *(LokHookFunction)( const char *install_path);
-
-typedef LibreOfficeKit *(LokHookFunction2)( const char *install_path, const char *user_profile_url );
-
-typedef int             (LokHookPreInit)  ( const char *install_path, const char *user_profile_url );
-
-#if defined(IOS) || defined(ANDROID)
-LibreOfficeKit *libreofficekit_hook_2(const char* install_path, const char* user_profile_path);
-#endif
-
-static LibreOfficeKit *lok_init_2( const char *install_path,  const char *user_profile_url )
-{
-#if !defined(IOS) && !defined(ANDROID)
-    void *dlhandle;
-    char *imp_lib;
-    LokHookFunction *pSym;
-    LokHookFunction2 *pSym2;
-
-    dlhandle = lok_dlopen(install_path, &imp_lib);
-    if (!dlhandle)
-        return NULL;
-
-    pSym2 = (LokHookFunction2 *) lok_dlsym(dlhandle, "libreofficekit_hook_2");
-    if (!pSym2)
-    {
-        if (user_profile_url != NULL)
-        {
-            fprintf( stderr, "the LibreOffice version in '%s' does not support passing a user profile to the hook function\n",
-                     imp_lib );
-            lok_dlclose( dlhandle );
-            free( imp_lib );
-            return NULL;
-        }
-        pSym = (LokHookFunction *) lok_dlsym( dlhandle, "libreofficekit_hook" );
-        if (!pSym)
-        {
-            fprintf( stderr, "failed to find hook in library '%s'\n", imp_lib );
-            lok_dlclose( dlhandle );
-            free( imp_lib );
-            return NULL;
-        }
-        free( imp_lib );
-        // dlhandle is "leaked"
-        // coverity[leaked_storage] - on purpose
-        return pSym( install_path );
-    }
-
-    if (user_profile_url != NULL && user_profile_url[0] == '/')
-    {
-        // It should be either a file: URL or a vnd.sun.star.pathname: URL.
-        fprintf( stderr, "second parameter to lok_init_2 '%s' should be a URL, not a pathname\n", user_profile_url );
-        lok_dlclose( dlhandle );
-        free( imp_lib );
-        return NULL;
-    }
-
-    free( imp_lib );
-    // dlhandle is "leaked"
-    // coverity[leaked_storage] - on purpose
-    return pSym2( install_path, user_profile_url );
-#else
-    return libreofficekit_hook_2( install_path, user_profile_url );
-#endif
-}
-
-static LOK_TOLERATE_UNUSED
-LibreOfficeKit *lok_init( const char *install_path )
-{
-    return lok_init_2( install_path, NULL );
-}
-
-#if !defined(IOS)
-static LOK_TOLERATE_UNUSED
-int lok_preinit( const char *install_path,  const char *user_profile_url )
-{
-    void *dlhandle;
-    char *imp_lib;
-    LokHookPreInit *pSym;
-
-    dlhandle = lok_dlopen(install_path, &imp_lib);
-    if (!dlhandle)
-        return -1;
-
-    pSym = (LokHookPreInit *) lok_dlsym(dlhandle, "lok_preinit");
-    if (!pSym)
-    {
-        fprintf( stderr, "failed to find pre-init hook in library '%s'\n", imp_lib );
-        lok_dlclose( dlhandle );
-        free( imp_lib );
-        return -1;
-    }
-
-    free( imp_lib );
-
-    // dlhandle is "leaked"
-    // coverity[leaked_storage] - on purpose
-    return pSym( install_path, user_profile_url );
-}
-#endif
-
-#undef SEPARATOR // It is used at least in enum class MenuItemType
-
-#endif // defined(__linux__) || defined (__FreeBSD_kernel__) || defined(_AIX) || defined(_WIN32) || defined(__APPLE__)
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif // INCLUDED_LIBREOFFICEKIT_LIBREOFFICEKITINIT_H
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/bundled/include/LibreOfficeKit/LibreOfficeKitTypes.h b/bundled/include/LibreOfficeKit/LibreOfficeKitTypes.h
deleted file mode 100644
index e12ddad19..000000000
--- a/bundled/include/LibreOfficeKit/LibreOfficeKitTypes.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- */
-
-#ifndef INCLUDED_LIBREOFFICEKIT_LIBREOFFICEKIT_TYPES_H
-#define INCLUDED_LIBREOFFICEKIT_LIBREOFFICEKIT_TYPES_H
-
-#include <stddef.h>
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-/** @see lok::Office::registerCallback().
-    @since LibreOffice 6.0
- */
-typedef void (*LibreOfficeKitCallback)(int nType, const char* pPayload, void* pData);
-
-/** @see lok::Office::runLoop().
-    @since LibreOffice 6.3
- */
-typedef int (*LibreOfficeKitPollCallback)(void* pData, int timeoutUs);
-typedef void (*LibreOfficeKitWakeCallback)(void* pData);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif // INCLUDED_LIBREOFFICEKIT_LIBREOFFICEKIT_TYPES_H
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */


More information about the Libreoffice-commits mailing list