|
 |
f325b2 |
From 4692ad2debc22ba83d79b6c13e22e694f33b5a03 Mon Sep 17 00:00:00 2001
|
|
 |
f325b2 |
From: Miklos Vajna <vmiklos@collabora.co.uk>
|
|
 |
f325b2 |
Date: Mon, 14 Sep 2015 14:36:56 +0200
|
|
 |
f325b2 |
Subject: [PATCH 119/398] lok::Document: add createView()
|
|
 |
f325b2 |
|
|
 |
f325b2 |
Change-Id: Ic871ec41992b611b10958799b2dc12375a91efe4
|
|
 |
f325b2 |
(cherry picked from commit 655c7877a0650b7bfd04a3294cdf92bc7ab94055)
|
|
 |
f325b2 |
---
|
|
 |
f325b2 |
desktop/source/lib/init.cxx | 19 +++++++++++++++++++
|
|
 |
f325b2 |
include/LibreOfficeKit/LibreOfficeKit.h | 3 +++
|
|
 |
f325b2 |
include/LibreOfficeKit/LibreOfficeKit.hxx | 10 ++++++++++
|
|
 |
f325b2 |
libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx | 14 ++++++++++++++
|
|
 |
f325b2 |
4 files changed, 46 insertions(+)
|
|
 |
f325b2 |
|
|
 |
f325b2 |
diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx
|
|
 |
f325b2 |
index 87471454b5d2..ea5de4df1a5c 100644
|
|
 |
f325b2 |
--- a/desktop/source/lib/init.cxx
|
|
 |
f325b2 |
+++ b/desktop/source/lib/init.cxx
|
|
 |
f325b2 |
@@ -53,6 +53,7 @@
|
|
 |
f325b2 |
#include <sfx2/viewfrm.hxx>
|
|
 |
f325b2 |
#include <sfx2/msgpool.hxx>
|
|
 |
f325b2 |
#include <sfx2/dispatch.hxx>
|
|
 |
f325b2 |
+#include <sfx2/lokhelper.hxx>
|
|
 |
f325b2 |
#include <svx/svxids.hrc>
|
|
 |
f325b2 |
#include <vcl/svapp.hxx>
|
|
 |
f325b2 |
#include <vcl/svpforlokit.hxx>
|
|
 |
f325b2 |
@@ -249,6 +250,7 @@ static void doc_setGraphicSelection (LibreOfficeKitDocument* pThis,
|
|
 |
f325b2 |
static void doc_resetSelection (LibreOfficeKitDocument* pThis);
|
|
 |
f325b2 |
static char* doc_getCommandValues(LibreOfficeKitDocument* pThis, const char* pCommand);
|
|
 |
f325b2 |
|
|
 |
f325b2 |
+static int doc_createView(LibreOfficeKitDocument* pThis);
|
|
 |
f325b2 |
|
|
 |
f325b2 |
LibLODocument_Impl::LibLODocument_Impl(const uno::Reference <css::lang::XComponent> &xComponent) :
|
|
 |
f325b2 |
mxComponent( xComponent )
|
|
 |
f325b2 |
@@ -280,6 +282,8 @@ LibLODocument_Impl::LibLODocument_Impl(const uno::Reference
|
|
 |
f325b2 |
m_pDocumentClass->resetSelection = doc_resetSelection;
|
|
 |
f325b2 |
m_pDocumentClass->getCommandValues = doc_getCommandValues;
|
|
 |
f325b2 |
|
|
 |
f325b2 |
+ m_pDocumentClass->createView = doc_createView;
|
|
 |
f325b2 |
+
|
|
 |
f325b2 |
gDocumentClass = m_pDocumentClass;
|
|
 |
f325b2 |
}
|
|
 |
f325b2 |
pClass = m_pDocumentClass.get();
|
|
 |
f325b2 |
@@ -1032,6 +1036,21 @@ static char* doc_getCommandValues(LibreOfficeKitDocument* pThis, const char* pCo
|
|
 |
f325b2 |
}
|
|
 |
f325b2 |
}
|
|
 |
f325b2 |
|
|
 |
f325b2 |
+static int doc_createView(LibreOfficeKitDocument* pThis)
|
|
 |
f325b2 |
+{
|
|
 |
f325b2 |
+ SolarMutexGuard aGuard;
|
|
 |
f325b2 |
+
|
|
 |
f325b2 |
+ ITiledRenderable* pDoc = getTiledRenderable(pThis);
|
|
 |
f325b2 |
+ if (!pDoc)
|
|
 |
f325b2 |
+ {
|
|
 |
f325b2 |
+ gImpl->maLastExceptionMsg = "Document doesn't support tiled rendering";
|
|
 |
f325b2 |
+ return -1;
|
|
 |
f325b2 |
+ }
|
|
 |
f325b2 |
+
|
|
 |
f325b2 |
+ SfxViewShell* pViewShell = pDoc->getCurrentViewShell();
|
|
 |
f325b2 |
+ return SfxLokHelper::createView(pViewShell);
|
|
 |
f325b2 |
+}
|
|
 |
f325b2 |
+
|
|
 |
f325b2 |
static char* lo_getError (LibreOfficeKit *pThis)
|
|
 |
f325b2 |
{
|
|
 |
f325b2 |
LibLibreOffice_Impl* pLib = static_cast<LibLibreOffice_Impl*>(pThis);
|
|
 |
f325b2 |
diff --git a/include/LibreOfficeKit/LibreOfficeKit.h b/include/LibreOfficeKit/LibreOfficeKit.h
|
|
 |
f325b2 |
index 8060f0e6ec7c..eae35374e032 100644
|
|
 |
f325b2 |
--- a/include/LibreOfficeKit/LibreOfficeKit.h
|
|
 |
f325b2 |
+++ b/include/LibreOfficeKit/LibreOfficeKit.h
|
|
 |
f325b2 |
@@ -162,6 +162,9 @@ struct _LibreOfficeKitDocumentClass
|
|
 |
f325b2 |
|
|
 |
f325b2 |
/// @see lok::Document:getStyles
|
|
 |
f325b2 |
char* (*getCommandValues) (LibreOfficeKitDocument* pThis, const char* pCommand);
|
|
 |
f325b2 |
+
|
|
 |
f325b2 |
+ /// @see lok::Document::createView().
|
|
 |
f325b2 |
+ int (*createView) (LibreOfficeKitDocument* pThis);
|
|
 |
f325b2 |
#endif // LOK_USE_UNSTABLE_API
|
|
 |
f325b2 |
};
|
|
 |
f325b2 |
|
|
 |
f325b2 |
diff --git a/include/LibreOfficeKit/LibreOfficeKit.hxx b/include/LibreOfficeKit/LibreOfficeKit.hxx
|
|
 |
f325b2 |
index 44599948e659..1a8b002ecba6 100644
|
|
 |
f325b2 |
--- a/include/LibreOfficeKit/LibreOfficeKit.hxx
|
|
 |
f325b2 |
+++ b/include/LibreOfficeKit/LibreOfficeKit.hxx
|
|
 |
f325b2 |
@@ -257,6 +257,16 @@ public:
|
|
 |
f325b2 |
{
|
|
 |
f325b2 |
return mpDoc->pClass->getCommandValues(mpDoc, pCommand);
|
|
 |
f325b2 |
}
|
|
 |
f325b2 |
+
|
|
 |
f325b2 |
+ /**
|
|
 |
f325b2 |
+ * Create a new view for an existing document.
|
|
 |
f325b2 |
+ * By default a loaded document has 1 view.
|
|
 |
f325b2 |
+ * @return the ID of the new view.
|
|
 |
f325b2 |
+ */
|
|
 |
f325b2 |
+ int createView()
|
|
 |
f325b2 |
+ {
|
|
 |
f325b2 |
+ return mpDoc->pClass->createView(mpDoc);
|
|
 |
f325b2 |
+ }
|
|
 |
f325b2 |
#endif // LOK_USE_UNSTABLE_API
|
|
 |
f325b2 |
};
|
|
 |
f325b2 |
|
|
 |
f325b2 |
diff --git a/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx b/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx
|
|
 |
f325b2 |
index ab33fc703731..60c5281974f4 100644
|
|
 |
f325b2 |
--- a/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx
|
|
 |
f325b2 |
+++ b/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx
|
|
 |
f325b2 |
@@ -147,6 +147,14 @@ static void toggleFindbar(GtkWidget* /*pButton*/, gpointer /*pItem*/)
|
|
 |
f325b2 |
}
|
|
 |
f325b2 |
}
|
|
 |
f325b2 |
|
|
 |
f325b2 |
+/// Calls lok::Document::createView().
|
|
 |
f325b2 |
+static void createView(GtkWidget* /*pButton*/, gpointer /*pItem*/)
|
|
 |
f325b2 |
+{
|
|
 |
f325b2 |
+ LOKDocView* pLOKDocView = LOK_DOC_VIEW(pDocView);
|
|
 |
f325b2 |
+ LibreOfficeKitDocument* pDocument = lok_doc_view_get_document(pLOKDocView);
|
|
 |
f325b2 |
+ pDocument->pClass->createView(pDocument);
|
|
 |
f325b2 |
+}
|
|
 |
f325b2 |
+
|
|
 |
f325b2 |
/// Our GtkClipboardGetFunc implementation for HTML.
|
|
 |
f325b2 |
static void htmlGetFunc(GtkClipboard* /*pClipboard*/, GtkSelectionData* pSelectionData, guint /*info*/, gpointer pUserData)
|
|
 |
f325b2 |
{
|
|
 |
f325b2 |
@@ -554,6 +562,12 @@ int main( int argc, char* argv[] )
|
|
 |
f325b2 |
gtk_toolbar_insert(GTK_TOOLBAR(pToolbar), pFindButton, -1);
|
|
 |
f325b2 |
g_signal_connect(G_OBJECT(pFindButton), "clicked", G_CALLBACK(toggleFindbar), NULL);
|
|
 |
f325b2 |
|
|
 |
f325b2 |
+ GtkToolItem* pNewViewButton = gtk_tool_button_new( NULL, NULL);
|
|
 |
f325b2 |
+ gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON (pNewViewButton), "view-continuous-symbolic");
|
|
 |
f325b2 |
+ gtk_tool_item_set_tooltip_text(pNewViewButton, "New View");
|
|
 |
f325b2 |
+ gtk_toolbar_insert(GTK_TOOLBAR(pToolbar), pNewViewButton, -1);
|
|
 |
f325b2 |
+ g_signal_connect(G_OBJECT(pNewViewButton), "clicked", G_CALLBACK(createView), NULL);
|
|
 |
f325b2 |
+
|
|
 |
f325b2 |
gtk_toolbar_insert( GTK_TOOLBAR(pToolbar), gtk_separator_tool_item_new(), -1);
|
|
 |
f325b2 |
|
|
 |
f325b2 |
pBold = gtk_toggle_tool_button_new();
|
|
 |
f325b2 |
--
|
|
 |
f325b2 |
2.12.0
|
|
 |
f325b2 |
|