summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrzej Hunt <andrzej.hunt@collabora.com>2014-05-07 20:14:59 +0100
committerAndrzej Hunt <andrzej.hunt@collabora.com>2014-05-07 20:14:59 +0100
commitc5c3f286f06d16101603eb684404b5778ed95a11 (patch)
tree818eae85884f6170750d5795bb957e5d4cde76af
parent4cf3629fcb8817e1675cbafcbbafc9b809f5e01f (diff)
TiledRendering: outline of basic gtk tiled rendering app using liblibreoffice.
Change-Id: I46760c0a1329b9823fd999c470b57fef66d28914
-rw-r--r--Repository.mk1
-rw-r--r--desktop/Executable_gtktiledviewer.mk44
-rw-r--r--desktop/Module_desktop.mk6
-rw-r--r--desktop/qa/gtktiledviewer/gtktiledviewer.cxx75
4 files changed, 126 insertions, 0 deletions
diff --git a/Repository.mk b/Repository.mk
index a02d3d65981e..564e0ff69920 100644
--- a/Repository.mk
+++ b/Repository.mk
@@ -98,6 +98,7 @@ $(eval $(call gb_Helper_register_executables,OOO, \
) \
ui-previewer \
tiledrendering \
+ $(if $(and $(ENABLE_GTK), $(filter LINUX,$(OS))), gtktiledviewer) \
$(if $(filter DESKTOP,$(BUILD_TYPE)),unopkg_bin) \
xpdfimport \
$(if $(filter WNT,$(OS)), \
diff --git a/desktop/Executable_gtktiledviewer.mk b/desktop/Executable_gtktiledviewer.mk
new file mode 100644
index 000000000000..17dc2d6439db
--- /dev/null
+++ b/desktop/Executable_gtktiledviewer.mk
@@ -0,0 +1,44 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#
+# 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/.
+#
+
+$(eval $(call gb_Executable_Executable,gtktiledviewer))
+
+$(eval $(call gb_Executable_set_include,gtktiledviewer,\
+ $$(INCLUDE) \
+ -I$(SRCDIR)/desktop/inc \
+))
+
+$(eval $(call gb_Executable_use_externals,gtktiledviewer,\
+ gtk \
+))
+
+$(eval $(call gb_Executable_use_static_libraries,gtktiledviewer,\
+ libreoffice \
+))
+
+$(eval $(call gb_Executable_add_libs,gtktiledviewer,\
+ -lX11 \
+ -lXext \
+ -lSM \
+ -lICE \
+))
+
+ifeq ($(OS),LINUX)
+$(eval $(call gb_Executable_add_libs,gtktiledviewer,\
+ -lm \
+ -ldl \
+ -lpthread \
+))
+endif
+
+$(eval $(call gb_Executable_add_exception_objects,gtktiledviewer,\
+ desktop/qa/gtktiledviewer/gtktiledviewer \
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/desktop/Module_desktop.mk b/desktop/Module_desktop.mk
index 584b70d76fe7..b1b67d81a0d9 100644
--- a/desktop/Module_desktop.mk
+++ b/desktop/Module_desktop.mk
@@ -33,6 +33,12 @@ ifeq ($(OS),LINUX)
$(eval $(call gb_Module_add_targets,desktop,\
Library_libreoffice \
))
+
+ifneq ($(ENABLE_GTK),)
+$(eval $(call gb_Module_add_targets,desktop,\
+ Executable_gtktiledviewer \
+))
+endif
endif
ifneq (,$(filter DESKTOP,$(BUILD_TYPE)))
diff --git a/desktop/qa/gtktiledviewer/gtktiledviewer.cxx b/desktop/qa/gtktiledviewer/gtktiledviewer.cxx
new file mode 100644
index 000000000000..22f76849191e
--- /dev/null
+++ b/desktop/qa/gtktiledviewer/gtktiledviewer.cxx
@@ -0,0 +1,75 @@
+/* -*- 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/.
+ */
+
+#include <stdio.h>
+#include <string.h>
+
+#include <gtk/gtk.h>
+
+#define LLO_USE_UNSTABLE_API
+#include <liblibreoffice.hxx>
+
+static int help()
+{
+ fprintf( stderr, "Usage: gtktiledviewer <absolute-path-to-libreoffice-install> [path to document]\n" );
+ return 1;
+}
+
+int main( int argc, char* argv[] )
+{
+ if( argc < 2 ||
+ ( argc > 1 && ( !strcmp( argv[1], "--help" ) || !strcmp( argv[1], "-h" ) ) ) )
+ return help();
+
+ if ( argv[1][0] != '/' )
+ {
+ fprintf(stderr, "Absolute path required to libreoffice install\n");
+ return 1;
+ }
+
+ LibLibreOffice *pOffice = lo_cpp_init( argv[1] );
+ if( !pOffice )
+ {
+ fprintf( stderr, "Failed to initialize\n" );
+ return -1;
+ }
+
+ // "This separate init is lame I think."
+ if( !pOffice->initialize( argv[1] ) )
+ {
+ fprintf( stderr, "failed to initialize\n" );
+ return -1;
+ }
+
+ LODocument* pDocument = pOffice->documentLoad( argv[2] );
+ (void) pDocument;
+
+ GtkWidget *pWindow;
+ GtkWidget *pScroller;
+
+ gtk_init( &argc, &argv );
+
+ pWindow = gtk_window_new( GTK_WINDOW_TOPLEVEL );
+ gtk_window_set_title( GTK_WINDOW(pWindow), "LibreOffice GTK Tiled Viewer" );
+ gtk_window_set_default_size(GTK_WINDOW(pWindow), 800, 600);
+ g_signal_connect( pWindow, "destroy", G_CALLBACK(gtk_main_quit), NULL );
+
+
+ pScroller = gtk_scrolled_window_new( 0, 0 );
+ gtk_container_add( GTK_CONTAINER(pWindow), pScroller );
+
+ gtk_widget_show( pScroller );
+ gtk_widget_show( pWindow );
+
+ //GDK_WINDOW_XWINDOW
+
+ gtk_main();
+
+ return 0;
+} \ No newline at end of file