f325b2
From 12553d62d3738a51b1021c9a5d37a70cb2bc1e45 Mon Sep 17 00:00:00 2001
f325b2
From: Miklos Vajna <vmiklos@collabora.co.uk>
f325b2
Date: Mon, 23 Nov 2015 09:32:37 +0100
f325b2
Subject: [PATCH 352/398] LOK: add Document::getTileMode()
f325b2
f325b2
So that clients can know if they get old-style RGBA or new-style ARGB
f325b2
output in paintTile().
f325b2
f325b2
Change-Id: Icfde4b3259444b3524e64478ccd976664a3fe0ed
f325b2
(cherry picked from commit fc06f801ee79fd49d54c27121ae9b2904d99f09c)
f325b2
---
f325b2
 desktop/source/lib/init.cxx                  |  7 +++++++
f325b2
 include/LibreOfficeKit/LibreOfficeKit.h      |  3 +++
f325b2
 include/LibreOfficeKit/LibreOfficeKit.hxx    | 10 ++++++++++
f325b2
 include/LibreOfficeKit/LibreOfficeKitEnums.h |  7 +++++++
f325b2
 4 files changed, 27 insertions(+)
f325b2
f325b2
diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx
f325b2
index 3c6be03a7132..00c1f63ddf4c 100644
f325b2
--- a/desktop/source/lib/init.cxx
f325b2
+++ b/desktop/source/lib/init.cxx
f325b2
@@ -311,6 +311,7 @@ void        doc_paintTile(LibreOfficeKitDocument* pThis,
f325b2
                           const int nCanvasWidth, const int nCanvasHeight,
f325b2
                           const int nTilePosX, const int nTilePosY,
f325b2
                           const int nTileWidth, const int nTileHeight);
f325b2
+static int doc_getTileMode(LibreOfficeKitDocument* pThis);
f325b2
 static void doc_getDocumentSize(LibreOfficeKitDocument* pThis,
f325b2
                                 long* pWidth,
f325b2
                                 long* pHeight);
f325b2
@@ -384,6 +385,7 @@ LibLODocument_Impl::LibLODocument_Impl(const uno::Reference 
f325b2
         m_pDocumentClass->getPartName = doc_getPartName;
f325b2
         m_pDocumentClass->setPartMode = doc_setPartMode;
f325b2
         m_pDocumentClass->paintTile = doc_paintTile;
f325b2
+        m_pDocumentClass->getTileMode = doc_getTileMode;
f325b2
         m_pDocumentClass->getDocumentSize = doc_getDocumentSize;
f325b2
         m_pDocumentClass->initializeForRendering = doc_initializeForRendering;
f325b2
         m_pDocumentClass->registerCallback = doc_registerCallback;
f325b2
@@ -956,6 +958,11 @@ void doc_paintTile (LibreOfficeKitDocument* pThis,
f325b2
 #endif
f325b2
 }
f325b2
 
f325b2
+static int doc_getTileMode(LibreOfficeKitDocument* /*pThis*/)
f325b2
+{
f325b2
+    return LOK_TILEMODE_RGBA;
f325b2
+}
f325b2
+
f325b2
 static void doc_getDocumentSize(LibreOfficeKitDocument* pThis,
f325b2
                                 long* pWidth,
f325b2
                                 long* pHeight)
f325b2
diff --git a/include/LibreOfficeKit/LibreOfficeKit.h b/include/LibreOfficeKit/LibreOfficeKit.h
f325b2
index 93f7dca6d455..5189cca5eb5e 100644
f325b2
--- a/include/LibreOfficeKit/LibreOfficeKit.h
f325b2
+++ b/include/LibreOfficeKit/LibreOfficeKit.h
f325b2
@@ -118,6 +118,9 @@ struct _LibreOfficeKitDocumentClass
f325b2
                        const int nTileWidth,
f325b2
                        const int nTileHeight);
f325b2
 
f325b2
+    /// @see lok::Document::getTileMode().
f325b2
+    int (*getTileMode) (LibreOfficeKitDocument* pThis);
f325b2
+
f325b2
     /// @see lok::Document::getDocumentSize().
f325b2
     void (*getDocumentSize) (LibreOfficeKitDocument* pThis,
f325b2
                              long* pWidth,
f325b2
diff --git a/include/LibreOfficeKit/LibreOfficeKit.hxx b/include/LibreOfficeKit/LibreOfficeKit.hxx
f325b2
index 152d0f415f17..e592bbe549ab 100644
f325b2
--- a/include/LibreOfficeKit/LibreOfficeKit.hxx
f325b2
+++ b/include/LibreOfficeKit/LibreOfficeKit.hxx
f325b2
@@ -143,6 +143,16 @@ public:
f325b2
                                 nTilePosX, nTilePosY, nTileWidth, nTileHeight);
f325b2
     }
f325b2
 
f325b2
+    /**
f325b2
+     * Gets the tile mode: the pixel format used for the pBuffer of paintTile().
f325b2
+     *
f325b2
+     * @return an element of the LibreOfficeKitTileMode enum.
f325b2
+     */
f325b2
+    inline int getTileMode()
f325b2
+    {
f325b2
+        return mpDoc->pClass->getTileMode(mpDoc);
f325b2
+    }
f325b2
+
f325b2
     /// Get the document sizes in TWIPs.
f325b2
     inline void getDocumentSize(long* pWidth, long* pHeight)
f325b2
     {
f325b2
diff --git a/include/LibreOfficeKit/LibreOfficeKitEnums.h b/include/LibreOfficeKit/LibreOfficeKitEnums.h
f325b2
index 7b23fcbab1c3..b713f0ed49b7 100644
f325b2
--- a/include/LibreOfficeKit/LibreOfficeKitEnums.h
f325b2
+++ b/include/LibreOfficeKit/LibreOfficeKitEnums.h
f325b2
@@ -35,6 +35,13 @@ LibreOfficeKitPartMode;
f325b2
 
f325b2
 typedef enum
f325b2
 {
f325b2
+    LOK_TILEMODE_RGBA,
f325b2
+    LOK_TILEMODE_ARGB
f325b2
+}
f325b2
+LibreOfficeKitTileMode;
f325b2
+
f325b2
+typedef enum
f325b2
+{
f325b2
     /**
f325b2
      * Any tiles which are over the rectangle described in the payload are no
f325b2
      * longer valid.
f325b2
-- 
f325b2
2.12.0
f325b2