diff options
author | Andrzej Hunt <andrzej.hunt@collabora.com> | 2014-05-07 20:14:59 +0100 |
---|---|---|
committer | Andrzej Hunt <andrzej.hunt@collabora.com> | 2014-05-07 20:14:59 +0100 |
commit | c5c3f286f06d16101603eb684404b5778ed95a11 (patch) | |
tree | 818eae85884f6170750d5795bb957e5d4cde76af | |
parent | 4cf3629fcb8817e1675cbafcbbafc9b809f5e01f (diff) |
TiledRendering: outline of basic gtk tiled rendering app using liblibreoffice.
Change-Id: I46760c0a1329b9823fd999c470b57fef66d28914
-rw-r--r-- | Repository.mk | 1 | ||||
-rw-r--r-- | desktop/Executable_gtktiledviewer.mk | 44 | ||||
-rw-r--r-- | desktop/Module_desktop.mk | 6 | ||||
-rw-r--r-- | desktop/qa/gtktiledviewer/gtktiledviewer.cxx | 75 |
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 |