summaryrefslogtreecommitdiff
path: root/ios
diff options
context:
space:
mode:
authorTor Lillqvist <tml@collabora.com>2013-12-18 00:03:02 +0200
committerTor Lillqvist <tml@collabora.com>2013-12-18 22:59:23 +0200
commit48f625b899b2c7774548af078f25dfccd7602d27 (patch)
treecd45eb893d6b8e9270202cbe053bd7a2a73d6ca7 /ios
parentaec792c1a429bd96a172d529521247a2b3391987 (diff)
Add a view-only iOS test app using tiled rendering
I had to add some horrible hacks to make sure the test doc has been loaded into a Writer shell before retrieving its size and being able to render it. Obviously some better solution is needed. But this is just a testbed to get some profiling data. The app is built using an Xcode project, and in gbuild through a custom target based on the MobileLibreOffice one. Setting up the various files used (or not used...) at run-time should really be factored out from the CustomTarget files. Change-Id: I1711b0cae9d28a09b73476b2d37d98b1820c9943
Diffstat (limited to 'ios')
-rw-r--r--ios/CustomTarget_MobileLibreOffice_app.mk44
-rw-r--r--ios/CustomTarget_TiledLibreOffice_app.mk100
-rw-r--r--ios/MobileLibreOffice/MobileLibreOffice.xcodeproj/project.pbxproj48
-rw-r--r--ios/Module_ios.mk1
-rw-r--r--ios/experimental/TiledLibreOffice/TiledLibreOffice.xcodeproj/project.pbxproj497
-rw-r--r--ios/experimental/TiledLibreOffice/TiledLibreOffice/AppDelegate.h19
-rw-r--r--ios/experimental/TiledLibreOffice/TiledLibreOffice/AppDelegate.m118
-rw-r--r--ios/experimental/TiledLibreOffice/TiledLibreOffice/Images.xcassets/AppIcon.appiconset/Contents.json38
-rw-r--r--ios/experimental/TiledLibreOffice/TiledLibreOffice/Images.xcassets/LaunchImage.launchimage/Contents.json36
-rw-r--r--ios/experimental/TiledLibreOffice/TiledLibreOffice/TiledLibreOffice-Info.plist39
-rw-r--r--ios/experimental/TiledLibreOffice/TiledLibreOffice/TiledLibreOffice-Prefix.pch22
-rw-r--r--ios/experimental/TiledLibreOffice/TiledLibreOffice/TiledView.h17
-rw-r--r--ios/experimental/TiledLibreOffice/TiledLibreOffice/TiledView.m62
-rw-r--r--ios/experimental/TiledLibreOffice/TiledLibreOffice/View.h15
-rw-r--r--ios/experimental/TiledLibreOffice/TiledLibreOffice/View.m57
-rw-r--r--ios/experimental/TiledLibreOffice/TiledLibreOffice/ViewController.h15
-rw-r--r--ios/experimental/TiledLibreOffice/TiledLibreOffice/ViewController.m29
-rw-r--r--ios/experimental/TiledLibreOffice/TiledLibreOffice/en.lproj/InfoPlist.strings2
-rw-r--r--ios/experimental/TiledLibreOffice/TiledLibreOffice/lo.h19
-rw-r--r--ios/experimental/TiledLibreOffice/TiledLibreOffice/lo.mm181
-rw-r--r--ios/experimental/TiledLibreOffice/TiledLibreOffice/main.m20
21 files changed, 1357 insertions, 22 deletions
diff --git a/ios/CustomTarget_MobileLibreOffice_app.mk b/ios/CustomTarget_MobileLibreOffice_app.mk
index 262cf9deb11b..dcf20d911308 100644
--- a/ios/CustomTarget_MobileLibreOffice_app.mk
+++ b/ios/CustomTarget_MobileLibreOffice_app.mk
@@ -8,14 +8,14 @@
#- Env ------------------------------------------------------------------------
-DEST_RESOURCE := MobileLibreOffice/resource_link
+MobileLibreOffice_resource := MobileLibreOffice/resource_link
BUILDID :=$(shell cd $(SRCDIR) && git log -1 --format=%H)
#- Macros ---------------------------------------------------------------------
define MobileLibreOfficeXcodeBuild
- CC=;xcodebuild -project shared/ios_sharedlo.xcodeproj -target ios_sharedlo -arch armv7 -configuration $(if $(ENABLE_DEBUG),Debug,Release) $(1) $(if $(verbose)$(VERBOSE),,>/dev/null)
- CC=;xcodebuild -project MobileLibreOffice/MobileLibreOffice.xcodeproj -target MobileLibreOffice -arch armv7 -configuration $(if $(ENABLE_DEBUG),Debug,Release) $(1) $(if $(verbose)$(VERBOSE),,>/dev/null)
+ CC=;xcodebuild -project shared/ios_sharedlo.xcodeproj -target ios_sharedlo -arch $(XCODE_ARCHS) -configuration $(if $(ENABLE_DEBUG),Debug,Release) $(1) $(if $(verbose)$(VERBOSE),,>/dev/null)
+ CC=;xcodebuild -project MobileLibreOffice/MobileLibreOffice.xcodeproj -target MobileLibreOffice -arch $(XCODE_ARCHS) -configuration $(if $(ENABLE_DEBUG),Debug,Release) $(1) $(if $(verbose)$(VERBOSE),,>/dev/null)
endef
#- Targets --------------------------------------------------------------------
@@ -42,56 +42,56 @@ MobileLibreOffice_setup:
$(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),ENV,2)
# Resources #
- rm -rf $(DEST_RESOURCE) 2>/dev/null
- mkdir -p $(DEST_RESOURCE)
- mkdir -p $(DEST_RESOURCE)/ure
+ rm -rf $(MobileLibreOffice_resource) 2>/dev/null
+ mkdir -p $(MobileLibreOffice_resource)
+ mkdir -p $(MobileLibreOffice_resource)/ure
# copy rdb files
- cp $(INSTDIR)/ure/share/misc/types.rdb $(DEST_RESOURCE)
- cp $(INSTDIR)/program/types/offapi.rdb $(DEST_RESOURCE)
- cp $(INSTDIR)/program/types/oovbaapi.rdb $(DEST_RESOURCE)
- cp $(INSTDIR)/program/services/services.rdb $(DEST_RESOURCE)
- cp $(INSTDIR)/ure/share/misc/services.rdb $(DEST_RESOURCE)/ure
+ cp $(INSTDIR)/ure/share/misc/types.rdb $(MobileLibreOffice_resource)
+ cp $(INSTDIR)/program/types/offapi.rdb $(MobileLibreOffice_resource)
+ cp $(INSTDIR)/program/types/oovbaapi.rdb $(MobileLibreOffice_resource)
+ cp $(INSTDIR)/program/services/services.rdb $(MobileLibreOffice_resource)
+ cp $(INSTDIR)/ure/share/misc/services.rdb $(MobileLibreOffice_resource)/ure
# copy .res files
# program/resource is hardcoded in tools/source/rc/resmgr.cxx. Sure,
# we could set STAR_RESOURCE_PATH instead. sigh...
- mkdir -p $(DEST_RESOURCE)/program/resource
- cp $(INSTDIR)/program/resource/*en-US.res $(DEST_RESOURCE)/program/resource
+ mkdir -p $(MobileLibreOffice_resource)/program/resource
+ cp $(INSTDIR)/program/resource/*en-US.res $(MobileLibreOffice_resource)/program/resource
# soffice.cfg
- mkdir -p $(DEST_RESOURCE)/share/config
- cp -R $(INSTDIR)/share/config/soffice.cfg $(DEST_RESOURCE)/share/config
+ mkdir -p $(MobileLibreOffice_resource)/share/config
+ cp -R $(INSTDIR)/share/config/soffice.cfg $(MobileLibreOffice_resource)/share/config
# "registry"
- cp -R $(INSTDIR)/share/registry $(DEST_RESOURCE)/share
+ cp -R $(INSTDIR)/share/registry $(MobileLibreOffice_resource)/share
# Set up rc, the "inifile". See getIniFileName_Impl().
- file=$(DEST_RESOURCE)/rc; \
+ file=$(MobileLibreOffice_resource)/rc; \
echo '[Bootstrap]' > $$file; \
echo 'URE_BOOTSTRAP=file://$$APP_DATA_DIR/fundamentalrc' >> $$file; \
echo 'HOME=$$APP_DATA_DIR/tmp' >> $$file;
# Set up fundamentalrc, unorc, bootstraprc and versionrc.
# Do we really need all these?
- file=$(DEST_RESOURCE)/fundamentalrc; \
+ file=$(MobileLibreOffice_resource)/fundamentalrc; \
echo '[Bootstrap]' > $$file; \
echo 'BRAND_BASE_DIR=file://$$APP_DATA_DIR' >> $$file; \
echo 'CONFIGURATION_LAYERS=xcsxcu:$${BRAND_BASE_DIR}/share/registry res:$${BRAND_BASE_DIR}/registry' >> $$file;
- file=$(DEST_RESOURCE)/unorc; \
+ file=$(MobileLibreOffice_resource)/unorc; \
echo '[Bootstrap]' > $$file;
# bootstraprc must be in $BRAND_BASE_DIR/program
- mkdir -p $(DEST_RESOURCE)/program
- file=$(DEST_RESOURCE)/program/bootstraprc; \
+ mkdir -p $(MobileLibreOffice_resource)/program
+ file=$(MobileLibreOffice_resource)/program/bootstraprc; \
echo '[Bootstrap]' > $$file; \
echo 'InstallMode=<installmode>' >> $$file; \
echo "ProductKey=LibreOffice $(PRODUCTVERSION)" >> $$file; \
echo 'UserInstallation=file://$$APP_DATA_DIR/../Library/Application%20Support' >> $$file;
# Is this really needed?
- file=$(DEST_RESOURCE)/program/versionrc; \
+ file=$(MobileLibreOffice_resource)/program/versionrc; \
echo '[Version]' > $$file; \
echo 'AllLanguages=en-US' >> $$file; \
echo 'BuildVersion=' >> $$file; \
diff --git a/ios/CustomTarget_TiledLibreOffice_app.mk b/ios/CustomTarget_TiledLibreOffice_app.mk
new file mode 100644
index 000000000000..44cacf50f4ac
--- /dev/null
+++ b/ios/CustomTarget_TiledLibreOffice_app.mk
@@ -0,0 +1,100 @@
+# -*- 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/.
+
+#- Env ------------------------------------------------------------------------
+
+TiledLibreOffice_resource := experimental/TiledLibreOffice/Resources
+BUILDID :=$(shell cd $(SRCDIR) && git log -1 --format=%H)
+
+#- Macros ---------------------------------------------------------------------
+
+define TiledLibreOfficeXcodeBuild
+ CC=;xcodebuild -project experimental/TiledLibreOffice/TiledLibreOffice.xcodeproj -target TiledLibreOffice -arch $(XCODE_ARCHS) -configuration $(if $(ENABLE_DEBUG),Debug,Release) $(1) $(if $(verbose)$(VERBOSE),,>/dev/null)
+endef
+
+#- Targets --------------------------------------------------------------------
+
+.PHONY: TiledLibreOffice_setup
+
+# Register target
+$(eval $(call gb_CustomTarget_CustomTarget,ios/TiledLibreOffice))
+
+# Build
+# Depend on the custom target that sets up lo.xcconfig
+$(call gb_CustomTarget_get_target,ios/TiledLibreOffice): $(call gb_CustomTarget_get_target,ios/Lo_Xcconfig) TiledLibreOffice_setup
+ $(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),APP,2)
+ $(call TiledLibreOfficeXcodeBuild, clean build)
+
+# Setup
+TiledLibreOffice_setup:
+ $(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),ENV,2)
+
+ # Resources #
+ rm -rf $(TiledLibreOffice_resource) 2>/dev/null
+ mkdir -p $(TiledLibreOffice_resource)
+ mkdir -p $(TiledLibreOffice_resource)/ure
+
+ # copy rdb files
+ cp $(INSTDIR)/ure/share/misc/types.rdb $(TiledLibreOffice_resource)
+ cp $(INSTDIR)/program/types/offapi.rdb $(TiledLibreOffice_resource)
+ cp $(INSTDIR)/program/types/oovbaapi.rdb $(TiledLibreOffice_resource)
+ cp $(INSTDIR)/program/services/services.rdb $(TiledLibreOffice_resource)
+ cp $(INSTDIR)/ure/share/misc/services.rdb $(TiledLibreOffice_resource)/ure
+
+ # copy .res files
+ # program/resource is hardcoded in tools/source/rc/resmgr.cxx. Sure,
+ # we could set STAR_RESOURCE_PATH instead. sigh...
+ mkdir -p $(TiledLibreOffice_resource)/program/resource
+ cp $(INSTDIR)/program/resource/*en-US.res $(TiledLibreOffice_resource)/program/resource
+
+ # soffice.cfg
+ mkdir -p $(TiledLibreOffice_resource)/share/config
+ cp -R $(INSTDIR)/share/config/soffice.cfg $(TiledLibreOffice_resource)/share/config
+
+ # "registry"
+ cp -R $(INSTDIR)/share/registry $(TiledLibreOffice_resource)/share
+
+ # Set up rc, the "inifile". See getIniFileName_Impl().
+ file=$(TiledLibreOffice_resource)/rc; \
+ echo '[Bootstrap]' > $$file; \
+ echo 'URE_BOOTSTRAP=file://$$APP_DATA_DIR/fundamentalrc' >> $$file; \
+ echo 'HOME=$$APP_DATA_DIR/tmp' >> $$file;
+
+ # Set up fundamentalrc, unorc, bootstraprc and versionrc.
+ # Do we really need all these?
+ file=$(TiledLibreOffice_resource)/fundamentalrc; \
+ echo '[Bootstrap]' > $$file; \
+ echo 'BRAND_BASE_DIR=file://$$APP_DATA_DIR' >> $$file; \
+ echo 'CONFIGURATION_LAYERS=xcsxcu:$${BRAND_BASE_DIR}/share/registry res:$${BRAND_BASE_DIR}/registry' >> $$file;
+
+ file=$(TiledLibreOffice_resource)/unorc; \
+ echo '[Bootstrap]' > $$file;
+
+ # bootstraprc must be in $BRAND_BASE_DIR/program
+ mkdir -p $(TiledLibreOffice_resource)/program
+ file=$(TiledLibreOffice_resource)/program/bootstraprc; \
+ echo '[Bootstrap]' > $$file; \
+ echo 'InstallMode=<installmode>' >> $$file; \
+ echo "ProductKey=LibreOffice $(PRODUCTVERSION)" >> $$file; \
+ echo 'UserInstallation=file://$$APP_DATA_DIR/../Library/Application%20Support' >> $$file;
+
+ # Is this really needed?
+ file=$(TiledLibreOffice_resource)/program/versionrc; \
+ echo '[Version]' > $$file; \
+ echo 'AllLanguages=en-US' >> $$file; \
+ echo 'BuildVersion=' >> $$file; \
+ echo "buildid=$(BUILDID)" >> $$file; \
+ echo 'ProductMajor=360' >> $$file; \
+ echo 'ProductMinor=1' >> $$file;
+
+# Clean
+$(call gb_CustomTarget_get_clean_target,ios/TiledLibreOffice):
+ $(call gb_Output_announce,$(subst $(WORKDIR)/Clean/,,$@),$(false),APP,2)
+ $(call TiledLibreOfficeXcodeBuild, clean)
+
+# vim: set noet sw=4 ts=4:
diff --git a/ios/MobileLibreOffice/MobileLibreOffice.xcodeproj/project.pbxproj b/ios/MobileLibreOffice/MobileLibreOffice.xcodeproj/project.pbxproj
index ce340065f7d8..e0dcfc9afc20 100644
--- a/ios/MobileLibreOffice/MobileLibreOffice.xcodeproj/project.pbxproj
+++ b/ios/MobileLibreOffice/MobileLibreOffice.xcodeproj/project.pbxproj
@@ -129,6 +129,26 @@
691D78B0180C12D300D52D5E /* types.rdb */ = {isa = PBXFileReference; lastKnownFileType = file; name = types.rdb; path = resource_link/types.rdb; sourceTree = SOURCE_ROOT; };
88E94769180DB9B600771808 /* NSObject+MLOFileUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSObject+MLOFileUtils.h"; sourceTree = "<group>"; };
88E9476A180DB9B600771808 /* NSObject+MLOFileUtils.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSObject+MLOFileUtils.m"; sourceTree = "<group>"; };
+ BE0898FE1860D5580021A679 /* brand.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = brand.cxx; path = ../../vcl/source/app/brand.cxx; sourceTree = "<group>"; };
+ BE0898FF1860D5580021A679 /* dbggui.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = dbggui.cxx; path = ../../vcl/source/app/dbggui.cxx; sourceTree = "<group>"; };
+ BE0899001860D5580021A679 /* dndhelp.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = dndhelp.cxx; path = ../../vcl/source/app/dndhelp.cxx; sourceTree = "<group>"; };
+ BE0899011860D5580021A679 /* help.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = help.cxx; path = ../../vcl/source/app/help.cxx; sourceTree = "<group>"; };
+ BE0899021860D5580021A679 /* i18nhelp.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = i18nhelp.cxx; path = ../../vcl/source/app/i18nhelp.cxx; sourceTree = "<group>"; };
+ BE0899031860D5580021A679 /* idlemgr.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = idlemgr.cxx; path = ../../vcl/source/app/idlemgr.cxx; sourceTree = "<group>"; };
+ BE0899041860D5580021A679 /* salvtables.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = salvtables.cxx; path = ../../vcl/source/app/salvtables.cxx; sourceTree = "<group>"; };
+ BE0899051860D5580021A679 /* session.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = session.cxx; path = ../../vcl/source/app/session.cxx; sourceTree = "<group>"; };
+ BE0899061860D5580021A679 /* settings.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = settings.cxx; path = ../../vcl/source/app/settings.cxx; sourceTree = "<group>"; };
+ BE0899071860D5580021A679 /* solarmutex.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = solarmutex.cxx; path = ../../vcl/source/app/solarmutex.cxx; sourceTree = "<group>"; };
+ BE0899081860D5580021A679 /* sound.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = sound.cxx; path = ../../vcl/source/app/sound.cxx; sourceTree = "<group>"; };
+ BE0899091860D5580021A679 /* stdtext.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = stdtext.cxx; path = ../../vcl/source/app/stdtext.cxx; sourceTree = "<group>"; };
+ BE08990A1860D5580021A679 /* svapp.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = svapp.cxx; path = ../../vcl/source/app/svapp.cxx; sourceTree = "<group>"; };
+ BE08990B1860D5580021A679 /* svdata.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = svdata.cxx; path = ../../vcl/source/app/svdata.cxx; sourceTree = "<group>"; };
+ BE08990C1860D5580021A679 /* svmain.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = svmain.cxx; path = ../../vcl/source/app/svmain.cxx; sourceTree = "<group>"; };
+ BE08990D1860D5580021A679 /* svmainhook.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = svmainhook.cxx; path = ../../vcl/source/app/svmainhook.cxx; sourceTree = "<group>"; };
+ BE08990E1860D5580021A679 /* timer.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = timer.cxx; path = ../../vcl/source/app/timer.cxx; sourceTree = "<group>"; };
+ BE08990F1860D5580021A679 /* unohelp.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = unohelp.cxx; path = ../../vcl/source/app/unohelp.cxx; sourceTree = "<group>"; };
+ BE0899101860D5580021A679 /* unohelp2.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = unohelp2.cxx; path = ../../vcl/source/app/unohelp2.cxx; sourceTree = "<group>"; };
+ BE0899111860D5580021A679 /* vclevent.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = vclevent.cxx; path = ../../vcl/source/app/vclevent.cxx; sourceTree = "<group>"; };
BE82BDB8182261AD00A447B5 /* pagechg.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = pagechg.cxx; path = ../../sw/source/core/layout/pagechg.cxx; sourceTree = "<group>"; };
BE82BDBA182261E900A447B5 /* pagepreviewlayout.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = pagepreviewlayout.cxx; path = ../../sw/source/core/view/pagepreviewlayout.cxx; sourceTree = "<group>"; };
BE82BDBB182261E900A447B5 /* printdata.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = printdata.cxx; path = ../../sw/source/core/view/printdata.cxx; sourceTree = "<group>"; };
@@ -482,6 +502,33 @@
name = Images;
sourceTree = "<group>";
};
+ BE0898FC1860D5380021A679 /* app */ = {
+ isa = PBXGroup;
+ children = (
+ BE0898FE1860D5580021A679 /* brand.cxx */,
+ BE0898FF1860D5580021A679 /* dbggui.cxx */,
+ BE0899001860D5580021A679 /* dndhelp.cxx */,
+ BE0899011860D5580021A679 /* help.cxx */,
+ BE0899021860D5580021A679 /* i18nhelp.cxx */,
+ BE0899031860D5580021A679 /* idlemgr.cxx */,
+ BE0899041860D5580021A679 /* salvtables.cxx */,
+ BE0899051860D5580021A679 /* session.cxx */,
+ BE0899061860D5580021A679 /* settings.cxx */,
+ BE0899071860D5580021A679 /* solarmutex.cxx */,
+ BE0899081860D5580021A679 /* sound.cxx */,
+ BE0899091860D5580021A679 /* stdtext.cxx */,
+ BE08990A1860D5580021A679 /* svapp.cxx */,
+ BE08990B1860D5580021A679 /* svdata.cxx */,
+ BE08990C1860D5580021A679 /* svmain.cxx */,
+ BE08990D1860D5580021A679 /* svmainhook.cxx */,
+ BE08990E1860D5580021A679 /* timer.cxx */,
+ BE08990F1860D5580021A679 /* unohelp.cxx */,
+ BE0899101860D5580021A679 /* unohelp2.cxx */,
+ BE0899111860D5580021A679 /* vclevent.cxx */,
+ );
+ name = app;
+ sourceTree = "<group>";
+ };
BE82BDB41822616200A447B5 /* LibreOffice source files */ = {
isa = PBXGroup;
children = (
@@ -496,6 +543,7 @@
BE82BDB51822617500A447B5 /* vcl */ = {
isa = PBXGroup;
children = (
+ BE0898FC1860D5380021A679 /* app */,
BE82BE4A1822D0E900A447B5 /* quartz */,
BE82BDF11822626C00A447B5 /* gdi */,
BE82BDF01822625C00A447B5 /* headless */,
diff --git a/ios/Module_ios.mk b/ios/Module_ios.mk
index caf3220d9909..f112b53ed4e3 100644
--- a/ios/Module_ios.mk
+++ b/ios/Module_ios.mk
@@ -14,6 +14,7 @@ $(eval $(call gb_Module_add_targets,ios,\
CustomTarget_Lo_Xcconfig \
Executable_LibreOffice \
CustomTarget_LibreOffice_app \
+ CustomTarget_TiledLibreOffice_app \
CustomTarget_MobileLibreOffice_app \
))
diff --git a/ios/experimental/TiledLibreOffice/TiledLibreOffice.xcodeproj/project.pbxproj b/ios/experimental/TiledLibreOffice/TiledLibreOffice.xcodeproj/project.pbxproj
new file mode 100644
index 000000000000..0f7ad53a4c98
--- /dev/null
+++ b/ios/experimental/TiledLibreOffice/TiledLibreOffice.xcodeproj/project.pbxproj
@@ -0,0 +1,497 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 46;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ BE82BD7618218E2E00A447B5 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE82BD7518218E2E00A447B5 /* Foundation.framework */; };
+ BE82BD7818218E2E00A447B5 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE82BD7718218E2E00A447B5 /* CoreGraphics.framework */; };
+ BE82BD7A18218E2E00A447B5 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE82BD7918218E2E00A447B5 /* UIKit.framework */; };
+ BE82BD8018218E2E00A447B5 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = BE82BD7E18218E2E00A447B5 /* InfoPlist.strings */; };
+ BE82BD8218218E2E00A447B5 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = BE82BD8118218E2E00A447B5 /* main.m */; };
+ BE82BD8618218E2E00A447B5 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = BE82BD8518218E2E00A447B5 /* AppDelegate.m */; };
+ BE82BD8C18218E2E00A447B5 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = BE82BD8B18218E2E00A447B5 /* ViewController.m */; };
+ BE82BD8E18218E2E00A447B5 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = BE82BD8D18218E2E00A447B5 /* Images.xcassets */; };
+ BE82BDAC182190E400A447B5 /* TiledView.m in Sources */ = {isa = PBXBuildFile; fileRef = BE82BDAB182190E400A447B5 /* TiledView.m */; };
+ BE82BDAF1821A1D000A447B5 /* View.m in Sources */ = {isa = PBXBuildFile; fileRef = BE82BDAE1821A1D000A447B5 /* View.m */; };
+ BECAB372186054DE00F814F9 /* lo.mm in Sources */ = {isa = PBXBuildFile; fileRef = BECAB371186054DE00F814F9 /* lo.mm */; };
+ BEEE02D11860ABDB00FBDE67 /* program in Resources */ = {isa = PBXBuildFile; fileRef = BEEE02CE1860ABB700FBDE67 /* program */; };
+ BEEE02D21860ABDB00FBDE67 /* share in Resources */ = {isa = PBXBuildFile; fileRef = BEEE02CF1860ABB700FBDE67 /* share */; };
+ BEEE02D31860ABDB00FBDE67 /* ure in Resources */ = {isa = PBXBuildFile; fileRef = BEEE02D01860ABB700FBDE67 /* ure */; };
+ BEEEF9641860740400FBDE67 /* libiconv.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = BEEEF9631860740400FBDE67 /* libiconv.dylib */; };
+ BEEEF9661860741400FBDE67 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = BEEEF9651860741400FBDE67 /* libz.dylib */; };
+ BEEEF96A1860A25400FBDE67 /* test1.odt in Resources */ = {isa = PBXBuildFile; fileRef = BEEEF9691860A25400FBDE67 /* test1.odt */; };
+ BEEEFE011860A89100FBDE67 /* fundamentalrc in Resources */ = {isa = PBXBuildFile; fileRef = BEEEF96D1860A82900FBDE67 /* fundamentalrc */; };
+ BEEEFE021860A89100FBDE67 /* offapi.rdb in Resources */ = {isa = PBXBuildFile; fileRef = BEEEF96E1860A82900FBDE67 /* offapi.rdb */; };
+ BEEEFE031860A89100FBDE67 /* oovbaapi.rdb in Resources */ = {isa = PBXBuildFile; fileRef = BEEEF96F1860A82900FBDE67 /* oovbaapi.rdb */; };
+ BEEEFE041860A89100FBDE67 /* rc in Resources */ = {isa = PBXBuildFile; fileRef = BEEEF9AA1860A82900FBDE67 /* rc */; };
+ BEEEFE051860A89100FBDE67 /* services.rdb in Resources */ = {isa = PBXBuildFile; fileRef = BEEEF9AB1860A82900FBDE67 /* services.rdb */; };
+ BEEEFE061860A89100FBDE67 /* types.rdb in Resources */ = {isa = PBXBuildFile; fileRef = BEEEFDFD1860A82C00FBDE67 /* types.rdb */; };
+ BEEEFE071860A89100FBDE67 /* unorc in Resources */ = {isa = PBXBuildFile; fileRef = BEEEFDFE1860A82C00FBDE67 /* unorc */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXFileReference section */
+ BE0898E81860D42B0021A679 /* brand.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = brand.cxx; path = ../../../vcl/source/app/brand.cxx; sourceTree = "<group>"; };
+ BE0898E91860D42B0021A679 /* dbggui.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = dbggui.cxx; path = ../../../vcl/source/app/dbggui.cxx; sourceTree = "<group>"; };
+ BE0898EA1860D42B0021A679 /* dndhelp.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = dndhelp.cxx; path = ../../../vcl/source/app/dndhelp.cxx; sourceTree = "<group>"; };
+ BE0898EB1860D42B0021A679 /* help.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = help.cxx; path = ../../../vcl/source/app/help.cxx; sourceTree = "<group>"; };
+ BE0898EC1860D42B0021A679 /* i18nhelp.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = i18nhelp.cxx; path = ../../../vcl/source/app/i18nhelp.cxx; sourceTree = "<group>"; };
+ BE0898ED1860D42B0021A679 /* idlemgr.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = idlemgr.cxx; path = ../../../vcl/source/app/idlemgr.cxx; sourceTree = "<group>"; };
+ BE0898EE1860D42B0021A679 /* salvtables.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = salvtables.cxx; path = ../../../vcl/source/app/salvtables.cxx; sourceTree = "<group>"; };
+ BE0898EF1860D42B0021A679 /* session.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = session.cxx; path = ../../../vcl/source/app/session.cxx; sourceTree = "<group>"; };
+ BE0898F01860D42B0021A679 /* settings.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = settings.cxx; path = ../../../vcl/source/app/settings.cxx; sourceTree = "<group>"; };
+ BE0898F11860D42B0021A679 /* solarmutex.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = solarmutex.cxx; path = ../../../vcl/source/app/solarmutex.cxx; sourceTree = "<group>"; };
+ BE0898F21860D42B0021A679 /* sound.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = sound.cxx; path = ../../../vcl/source/app/sound.cxx; sourceTree = "<group>"; };
+ BE0898F31860D42B0021A679 /* stdtext.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = stdtext.cxx; path = ../../../vcl/source/app/stdtext.cxx; sourceTree = "<group>"; };
+ BE0898F41860D42B0021A679 /* svapp.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = svapp.cxx; path = ../../../vcl/source/app/svapp.cxx; sourceTree = "<group>"; };
+ BE0898F51860D42B0021A679 /* svdata.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = svdata.cxx; path = ../../../vcl/source/app/svdata.cxx; sourceTree = "<group>"; };
+ BE0898F61860D42B0021A679 /* svmain.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = svmain.cxx; path = ../../../vcl/source/app/svmain.cxx; sourceTree = "<group>"; };
+ BE0898F71860D42B0021A679 /* svmainhook.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = svmainhook.cxx; path = ../../../vcl/source/app/svmainhook.cxx; sourceTree = "<group>"; };
+ BE0898F81860D42B0021A679 /* timer.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = timer.cxx; path = ../../../vcl/source/app/timer.cxx; sourceTree = "<group>"; };
+ BE0898F91860D42B0021A679 /* unohelp.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = unohelp.cxx; path = ../../../vcl/source/app/unohelp.cxx; sourceTree = "<group>"; };
+ BE0898FA1860D42B0021A679 /* unohelp2.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = unohelp2.cxx; path = ../../../vcl/source/app/unohelp2.cxx; sourceTree = "<group>"; };
+ BE0898FB1860D42B0021A679 /* vclevent.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = vclevent.cxx; path = ../../../vcl/source/app/vclevent.cxx; sourceTree = "<group>"; };
+ BE0899141860F6450021A679 /* ctfonts.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = ctfonts.cxx; path = ../../../vcl/quartz/ctfonts.cxx; sourceTree = "<group>"; };
+ BE0899151860F6450021A679 /* ctlayout.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = ctlayout.cxx; path = ../../../vcl/quartz/ctlayout.cxx; sourceTree = "<group>"; };
+ BE0899161860F6450021A679 /* salbmp.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = salbmp.cxx; path = ../../../vcl/quartz/salbmp.cxx; sourceTree = "<group>"; };
+ BE0899171860F6450021A679 /* salgdi.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = salgdi.cxx; path = ../../../vcl/quartz/salgdi.cxx; sourceTree = "<group>"; };
+ BE0899181860F6450021A679 /* salgdicommon.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = salgdicommon.cxx; path = ../../../vcl/quartz/salgdicommon.cxx; sourceTree = "<group>"; };
+ BE0899191860F6450021A679 /* salgdiutils.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = salgdiutils.cxx; path = ../../../vcl/quartz/salgdiutils.cxx; sourceTree = "<group>"; };
+ BE08991A1860F6450021A679 /* salmathutils.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = salmathutils.cxx; path = ../../../vcl/quartz/salmathutils.cxx; sourceTree = "<group>"; };
+ BE08991B1860F6450021A679 /* salvd.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = salvd.cxx; path = ../../../vcl/quartz/salvd.cxx; sourceTree = "<group>"; };
+ BE08991C1860F6450021A679 /* utils.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = utils.cxx; path = ../../../vcl/quartz/utils.cxx; sourceTree = "<group>"; };
+ BE82BD7218218E2E00A447B5 /* TiledLibreOffice.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = TiledLibreOffice.app; sourceTree = BUILT_PRODUCTS_DIR; };
+ BE82BD7518218E2E00A447B5 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
+ BE82BD7718218E2E00A447B5 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
+ BE82BD7918218E2E00A447B5 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
+ BE82BD7D18218E2E00A447B5 /* TiledLibreOffice-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "TiledLibreOffice-Info.plist"; sourceTree = "<group>"; };
+ BE82BD7F18218E2E00A447B5 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
+ BE82BD8118218E2E00A447B5 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
+ BE82BD8318218E2E00A447B5 /* TiledLibreOffice-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "TiledLibreOffice-Prefix.pch"; sourceTree = "<group>"; };
+ BE82BD8418218E2E00A447B5 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
+ BE82BD8518218E2E00A447B5 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
+ BE82BD8A18218E2E00A447B5 /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = "<group>"; };
+ BE82BD8B18218E2E00A447B5 /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = "<group>"; };
+ BE82BD8D18218E2E00A447B5 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = "<group>"; };
+ BE82BD9418218E2E00A447B5 /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; };
+ BE82BDAA182190E400A447B5 /* TiledView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TiledView.h; sourceTree = "<group>"; };
+ BE82BDAB182190E400A447B5 /* TiledView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TiledView.m; sourceTree = "<group>"; };
+ BE82BDAD1821A1D000A447B5 /* View.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = View.h; sourceTree = "<group>"; };
+ BE82BDAE1821A1D000A447B5 /* View.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = View.m; sourceTree = "<group>"; };
+ BECAB371186054DE00F814F9 /* lo.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = lo.mm; sourceTree = "<group>"; };
+ BEDB0F08185B7537009A6F26 /* lo.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = lo.xcconfig; path = ../../../lo.xcconfig; sourceTree = "<group>"; };
+ BEEE02CE1860ABB700FBDE67 /* program */ = {isa = PBXFileReference; lastKnownFileType = folder; name = program; path = Resources/program; sourceTree = SOURCE_ROOT; };
+ BEEE02CF1860ABB700FBDE67 /* share */ = {isa = PBXFileReference; lastKnownFileType = folder; name = share; path = Resources/share; sourceTree = SOURCE_ROOT; };
+ BEEE02D01860ABB700FBDE67 /* ure */ = {isa = PBXFileReference; lastKnownFileType = folder; name = ure; path = Resources/ure; sourceTree = SOURCE_ROOT; };
+ BEEEF9631860740400FBDE67 /* libiconv.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libiconv.dylib; path = usr/lib/libiconv.dylib; sourceTree = SDKROOT; };
+ BEEEF9651860741400FBDE67 /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; };
+ BEEEF9691860A25400FBDE67 /* test1.odt */ = {isa = PBXFileReference; lastKnownFileType = file; name = test1.odt; path = ../../../../odk/examples/java/DocumentHandling/test/test1.odt; sourceTree = "<group>"; };
+ BEEEF96D1860A82900FBDE67 /* fundamentalrc */ = {isa = PBXFileReference; lastKnownFileType = text; name = fundamentalrc; path = Resources/fundamentalrc; sourceTree = SOURCE_ROOT; };
+ BEEEF96E1860A82900FBDE67 /* offapi.rdb */ = {isa = PBXFileReference; lastKnownFileType = file; name = offapi.rdb; path = Resources/offapi.rdb; sourceTree = SOURCE_ROOT; };
+ BEEEF96F1860A82900FBDE67 /* oovbaapi.rdb */ = {isa = PBXFileReference; lastKnownFileType = file; name = oovbaapi.rdb; path = Resources/oovbaapi.rdb; sourceTree = SOURCE_ROOT; };
+ BEEEF9AA1860A82900FBDE67 /* rc */ = {isa = PBXFileReference; lastKnownFileType = text; name = rc; path = Resources/rc; sourceTree = SOURCE_ROOT; };
+ BEEEF9AB1860A82900FBDE67 /* services.rdb */ = {isa = PBXFileReference; lastKnownFileType = text.xml; name = services.rdb; path = Resources/services.rdb; sourceTree = SOURCE_ROOT; };
+ BEEEFDFD1860A82C00FBDE67 /* types.rdb */ = {isa = PBXFileReference; lastKnownFileType = file; name = types.rdb; path = Resources/types.rdb; sourceTree = SOURCE_ROOT; };
+ BEEEFDFE1860A82C00FBDE67 /* unorc */ = {isa = PBXFileReference; lastKnownFileType = text; name = unorc; path = Resources/unorc; sourceTree = SOURCE_ROOT; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ BE82BD6F18218E2E00A447B5 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ BEEEF9661860741400FBDE67 /* libz.dylib in Frameworks */,
+ BEEEF9641860740400FBDE67 /* libiconv.dylib in Frameworks */,
+ BE82BD7818218E2E00A447B5 /* CoreGraphics.framework in Frameworks */,
+ BE82BD7A18218E2E00A447B5 /* UIKit.framework in Frameworks */,
+ BE82BD7618218E2E00A447B5 /* Foundation.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ BE0898E61860D3CD0021A679 /* LibreOffice source files */ = {
+ isa = PBXGroup;
+ children = (
+ BE0898E71860D3DA0021A679 /* vcl */,
+ );
+ name = "LibreOffice source files";
+ sourceTree = "<group>";
+ };
+ BE0898E71860D3DA0021A679 /* vcl */ = {
+ isa = PBXGroup;
+ children = (
+ BE0899121860D78B0021A679 /* app */,
+ BE0899131860F6100021A679 /* quartz */,
+ );
+ name = vcl;
+ sourceTree = "<group>";
+ };
+ BE0899121860D78B0021A679 /* app */ = {
+ isa = PBXGroup;
+ children = (
+ BE0898E81860D42B0021A679 /* brand.cxx */,
+ BE0898E91860D42B0021A679 /* dbggui.cxx */,
+ BE0898EA1860D42B0021A679 /* dndhelp.cxx */,
+ BE0898EB1860D42B0021A679 /* help.cxx */,
+ BE0898EC1860D42B0021A679 /* i18nhelp.cxx */,
+ BE0898ED1860D42B0021A679 /* idlemgr.cxx */,
+ BE0898EE1860D42B0021A679 /* salvtables.cxx */,
+ BE0898EF1860D42B0021A679 /* session.cxx */,
+ BE0898F01860D42B0021A679 /* settings.cxx */,
+ BE0898F11860D42B0021A679 /* solarmutex.cxx */,
+ BE0898F21860D42B0021A679 /* sound.cxx */,
+ BE0898F31860D42B0021A679 /* stdtext.cxx */,
+ BE0898F41860D42B0021A679 /* svapp.cxx */,
+ BE0898F51860D42B0021A679 /* svdata.cxx */,
+ BE0898F61860D42B0021A679 /* svmain.cxx */,
+ BE0898F71860D42B0021A679 /* svmainhook.cxx */,
+ BE0898F81860D42B0021A679 /* timer.cxx */,
+ BE0898F91860D42B0021A679 /* unohelp.cxx */,
+ BE0898FA1860D42B0021A679 /* unohelp2.cxx */,
+ BE0898FB1860D42B0021A679 /* vclevent.cxx */,
+ );
+ name = app;
+ sourceTree = "<group>";
+ };
+ BE0899131860F6100021A679 /* quartz */ = {
+ isa = PBXGroup;
+ children = (
+ BE0899141860F6450021A679 /* ctfonts.cxx */,
+ BE0899151860F6450021A679 /* ctlayout.cxx */,
+ BE0899161860F6450021A679 /* salbmp.cxx */,
+ BE0899171860F6450021A679 /* salgdi.cxx */,
+ BE0899181860F6450021A679 /* salgdicommon.cxx */,
+ BE0899191860F6450021A679 /* salgdiutils.cxx */,
+ BE08991A1860F6450021A679 /* salmathutils.cxx */,
+ BE08991B1860F6450021A679 /* salvd.cxx */,
+ BE08991C1860F6450021A679 /* utils.cxx */,
+ );
+ name = quartz;
+ sourceTree = "<group>";
+ };
+ BE82BD6918218E2E00A447B5 = {
+ isa = PBXGroup;
+ children = (
+ BE0898E61860D3CD0021A679 /* LibreOffice source files */,
+ BE82BD7B18218E2E00A447B5 /* TiledLibreOffice */,
+ BEEEF9681860A21F00FBDE67 /* Resources */,
+ BE82BD7418218E2E00A447B5 /* Frameworks */,
+ BE82BD7318218E2E00A447B5 /* Products */,
+ );
+ sourceTree = "<group>";
+ };
+ BE82BD7318218E2E00A447B5 /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ BE82BD7218218E2E00A447B5 /* TiledLibreOffice.app */,
+ );
+ name = Products;
+ sourceTree = "<group>";
+ };
+ BE82BD7418218E2E00A447B5 /* Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ BEEEF9651860741400FBDE67 /* libz.dylib */,
+ BEEEF9631860740400FBDE67 /* libiconv.dylib */,
+ BE82BD7518218E2E00A447B5 /* Foundation.framework */,
+ BE82BD7718218E2E00A447B5 /* CoreGraphics.framework */,
+ BE82BD7918218E2E00A447B5 /* UIKit.framework */,
+ BE82BD9418218E2E00A447B5 /* XCTest.framework */,
+ );
+ name = Frameworks;
+ sourceTree = "<group>";
+ };
+ BE82BD7B18218E2E00A447B5 /* TiledLibreOffice */ = {
+ isa = PBXGroup;
+ children = (
+ BECAB371186054DE00F814F9 /* lo.mm */,
+ BE82BD8418218E2E00A447B5 /* AppDelegate.h */,
+ BE82BD8518218E2E00A447B5 /* AppDelegate.m */,
+ BE82BDAA182190E400A447B5 /* TiledView.h */,
+ BE82BDAB182190E400A447B5 /* TiledView.m */,
+ BE82BDAD1821A1D000A447B5 /* View.h */,
+ BE82BDAE1821A1D000A447B5 /* View.m */,
+ BE82BD8A18218E2E00A447B5 /* ViewController.h */,
+ BE82BD8B18218E2E00A447B5 /* ViewController.m */,
+ BE82BD8D18218E2E00A447B5 /* Images.xcassets */,
+ BE82BD7C18218E2E00A447B5 /* Supporting Files */,
+ );
+ path = TiledLibreOffice;
+ sourceTree = "<group>";
+ };
+ BE82BD7C18218E2E00A447B5 /* Supporting Files */ = {
+ isa = PBXGroup;
+ children = (
+ BEDB0F08185B7537009A6F26 /* lo.xcconfig */,
+ BE82BD7D18218E2E00A447B5 /* TiledLibreOffice-Info.plist */,
+ BE82BD7E18218E2E00A447B5 /* InfoPlist.strings */,
+ BE82BD8118218E2E00A447B5 /* main.m */,
+ BE82BD8318218E2E00A447B5 /* TiledLibreOffice-Prefix.pch */,
+ );
+ name = "Supporting Files";
+ sourceTree = "<group>";
+ };
+ BEEEF9681860A21F00FBDE67 /* Resources */ = {
+ isa = PBXGroup;
+ children = (
+ BEEEF96D1860A82900FBDE67 /* fundamentalrc */,
+ BEEEF96E1860A82900FBDE67 /* offapi.rdb */,
+ BEEEF96F1860A82900FBDE67 /* oovbaapi.rdb */,
+ BEEE02CE1860ABB700FBDE67 /* program */,
+ BEEEF9AA1860A82900FBDE67 /* rc */,
+ BEEEF9AB1860A82900FBDE67 /* services.rdb */,
+ BEEE02CF1860ABB700FBDE67 /* share */,
+ BEEEFDFD1860A82C00FBDE67 /* types.rdb */,
+ BEEEFDFE1860A82C00FBDE67 /* unorc */,
+ BEEE02D01860ABB700FBDE67 /* ure */,
+ BEEEF9691860A25400FBDE67 /* test1.odt */,
+ );
+ name = Resources;
+ path = TiledLibreOffice;
+ sourceTree = "<group>";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+ BE82BD7118218E2E00A447B5 /* TiledLibreOffice */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = BE82BDA418218E2E00A447B5 /* Build configuration list for PBXNativeTarget "TiledLibreOffice" */;
+ buildPhases = (
+ BE82BD6E18218E2E00A447B5 /* Sources */,
+ BE82BD6F18218E2E00A447B5 /* Frameworks */,
+ BE82BD7018218E2E00A447B5 /* Resources */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = TiledLibreOffice;
+ productName = TiledLibreOffice;
+ productReference = BE82BD7218218E2E00A447B5 /* TiledLibreOffice.app */;
+ productType = "com.apple.product-type.application";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ BE82BD6A18218E2E00A447B5 /* Project object */ = {
+ isa = PBXProject;
+ attributes = {
+ LastUpgradeCheck = 0500;
+ };
+ buildConfigurationList = BE82BD6D18218E2E00A447B5 /* Build configuration list for PBXProject "TiledLibreOffice" */;
+ compatibilityVersion = "Xcode 3.2";
+ developmentRegion = English;
+ hasScannedForEncodings = 0;
+ knownRegions = (
+ en,
+ Base,
+ );
+ mainGroup = BE82BD6918218E2E00A447B5;
+ productRefGroup = BE82BD7318218E2E00A447B5 /* Products */;
+ projectDirPath = "";
+ projectRoot = "";
+ targets = (
+ BE82BD7118218E2E00A447B5 /* TiledLibreOffice */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+ BE82BD7018218E2E00A447B5 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ BE82BD8E18218E2E00A447B5 /* Images.xcassets in Resources */,
+ BE82BD8018218E2E00A447B5 /* InfoPlist.strings in Resources */,
+ BEEEFE011860A89100FBDE67 /* fundamentalrc in Resources */,
+ BEEEFE021860A89100FBDE67 /* offapi.rdb in Resources */,
+ BEEEFE031860A89100FBDE67 /* oovbaapi.rdb in Resources */,
+ BEEE02D11860ABDB00FBDE67 /* program in Resources */,
+ BEEEFE041860A89100FBDE67 /* rc in Resources */,
+ BEEEFE051860A89100FBDE67 /* services.rdb in Resources */,
+ BEEE02D21860ABDB00FBDE67 /* share in Resources */,
+ BEEEFE061860A89100FBDE67 /* types.rdb in Resources */,
+ BEEEFE071860A89100FBDE67 /* unorc in Resources */,
+ BEEE02D31860ABDB00FBDE67 /* ure in Resources */,
+ BEEEF96A1860A25400FBDE67 /* test1.odt in Resources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ BE82BD6E18218E2E00A447B5 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ BECAB372186054DE00F814F9 /* lo.mm in Sources */,
+ BE82BDAF1821A1D000A447B5 /* View.m in Sources */,
+ BE82BDAC182190E400A447B5 /* TiledView.m in Sources */,
+ BE82BD8C18218E2E00A447B5 /* ViewController.m in Sources */,
+ BE82BD8618218E2E00A447B5 /* AppDelegate.m in Sources */,
+ BE82BD8218218E2E00A447B5 /* main.m in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXVariantGroup section */
+ BE82BD7E18218E2E00A447B5 /* InfoPlist.strings */ = {
+ isa = PBXVariantGroup;
+ children = (
+ BE82BD7F18218E2E00A447B5 /* en */,
+ );
+ name = InfoPlist.strings;
+ sourceTree = "<group>";
+ };
+/* End PBXVariantGroup section */
+
+/* Begin XCBuildConfiguration section */
+ BE82BDA218218E2E00A447B5 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = BEDB0F08185B7537009A6F26 /* lo.xcconfig */;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+ CLANG_ENABLE_MODULES = YES;
+ CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+ COPY_PHASE_STRIP = NO;
+ DEBUG_INFORMATION_FORMAT = dwarf;
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ "DEBUG=1",
+ "$(inherited)",
+ );
+ GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ HEADER_SEARCH_PATHS = (
+ "$(inherited)",
+ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
+ "$(LO_BUILDDIR)/config_host",
+ "$(LO_SRCDIR)/include",
+ "$(LO_WORKDIR)/UnoApiHeadersTarget/udkapi/comprehensive",
+ "$(LO_WORKDIR)/UnoApiHeadersTarget/offapi/comprehensive",
+ );
+ IPHONEOS_DEPLOYMENT_TARGET = 6.1;
+ ONLY_ACTIVE_ARCH = YES;
+ OTHER_LDFLAGS = "$(LINK_LDFLAGS)";
+ SDKROOT = iphoneos;
+ TARGETED_DEVICE_FAMILY = 2;
+ };
+ name = Debug;
+ };
+ BE82BDA318218E2E00A447B5 /* Release */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = BEDB0F08185B7537009A6F26 /* lo.xcconfig */;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+ CLANG_ENABLE_MODULES = YES;
+ CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+ COPY_PHASE_STRIP = YES;
+ ENABLE_NS_ASSERTIONS = NO;
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ HEADER_SEARCH_PATHS = (
+ "$(inherited)",
+ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
+ "$(LO_BUILDDIR)/config_host",
+ $LO_SRCDIR/include,
+ "$(LO_WORKDIR)/UnoApiHeadersTarget/udkapi/comprehensive",
+ "$(LO_WORKDIR)/UnoApiHeadersTarget/offapi/comprehensive",
+ );
+ IPHONEOS_DEPLOYMENT_TARGET = 6.1;
+ ONLY_ACTIVE_ARCH = YES;
+ OTHER_LDFLAGS = "$(LINK_LDFLAGS)";
+ SDKROOT = iphoneos;
+ TARGETED_DEVICE_FAMILY = 2;
+ VALIDATE_PRODUCT = YES;
+ };
+ name = Release;
+ };
+ BE82BDA518218E2E00A447B5 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+ ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = "TiledLibreOffice/TiledLibreOffice-Prefix.pch";
+ INFOPLIST_FILE = "TiledLibreOffice/TiledLibreOffice-Info.plist";
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ WRAPPER_EXTENSION = app;
+ };
+ name = Debug;
+ };
+ BE82BDA618218E2E00A447B5 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+ ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = "TiledLibreOffice/TiledLibreOffice-Prefix.pch";
+ INFOPLIST_FILE = "TiledLibreOffice/TiledLibreOffice-Info.plist";
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ WRAPPER_EXTENSION = app;
+ };
+ name = Release;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ BE82BD6D18218E2E00A447B5 /* Build configuration list for PBXProject "TiledLibreOffice" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ BE82BDA218218E2E00A447B5 /* Debug */,
+ BE82BDA318218E2E00A447B5 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ BE82BDA418218E2E00A447B5 /* Build configuration list for PBXNativeTarget "TiledLibreOffice" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ BE82BDA518218E2E00A447B5 /* Debug */,
+ BE82BDA618218E2E00A447B5 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = BE82BD6A18218E2E00A447B5 /* Project object */;
+}
diff --git a/ios/experimental/TiledLibreOffice/TiledLibreOffice/AppDelegate.h b/ios/experimental/TiledLibreOffice/TiledLibreOffice/AppDelegate.h
new file mode 100644
index 000000000000..e128714fbc5a
--- /dev/null
+++ b/ios/experimental/TiledLibreOffice/TiledLibreOffice/AppDelegate.h
@@ -0,0 +1,19 @@
+// -*- Mode: ObjC; 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/.
+
+#import <UIKit/UIKit.h>
+
+@interface AppDelegate : UIResponder <UIApplicationDelegate>
+
+@property (strong, nonatomic) UIWindow *window;
+
+- (void)threadMainMethod: (id) argument;
+
+@end
+
+// vim:set shiftwidth=4 softtabstop=4 expandtab:
diff --git a/ios/experimental/TiledLibreOffice/TiledLibreOffice/AppDelegate.m b/ios/experimental/TiledLibreOffice/TiledLibreOffice/AppDelegate.m
new file mode 100644
index 000000000000..9b9e52516948
--- /dev/null
+++ b/ios/experimental/TiledLibreOffice/TiledLibreOffice/AppDelegate.m
@@ -0,0 +1,118 @@
+// -*- Mode: ObjC; 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 <touch/touch.h>
+
+#import "AppDelegate.h"
+#import "View.h"
+#import "ViewController.h"
+#import "lo.h"
+
+@implementation AppDelegate
+
+- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
+{
+ self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
+ self.window.backgroundColor = [UIColor whiteColor];
+ [self.window makeKeyAndVisible];
+
+ ViewController *vc = [[ViewController alloc] init];
+ self.window.rootViewController = vc;
+
+ [[[NSThread alloc] initWithTarget:self selector:@selector(threadMainMethod:) object:nil] start];
+
+ vc.view = [[View alloc] initWithFrame:[self.window frame]];
+
+ return YES;
+}
+
+- (void)threadMainMethod:(id)argument
+{
+ (void) argument;
+
+ @autoreleasepool {
+ lo_initialize();
+ touch_lo_runMain();
+ }
+}
+
+- (void)applicationWillResignActive:(UIApplication *)application
+{
+ // Sent when the application is about to move from active to
+ // inactive state. This can occur for certain types of temporary
+ // interruptions (such as an incoming phone call or SMS message)
+ // or when the user quits the application and it begins the
+ // transition to the background state. Use this method to pause
+ // ongoing tasks, disable timers, and throttle down OpenGL ES
+ // frame rates. Games should use this method to pause the game.
+}
+
+- (void)applicationDidEnterBackground:(UIApplication *)application
+{
+ // Use this method to release shared resources, save user data,
+ // invalidate timers, and store enough application state
+ // information to restore your application to its current state in
+ // case it is terminated later. If your application supports
+ // background execution, this method is called instead of
+ // applicationWillTerminate: when the user quits.
+}
+
+- (void)applicationWillEnterForeground:(UIApplication *)application
+{
+ // Called as part of the transition from the background to the
+ // inactive state; here you can undo many of the changes made on
+ // entering the background.
+}
+
+- (void)applicationDidBecomeActive:(UIApplication *)application
+{
+ // Restart any tasks that were paused (or not yet started) while
+ // the application was inactive. If the application was previously
+ // in the background, optionally refresh the user interface.
+}
+
+- (void)applicationWillTerminate:(UIApplication *)application
+{
+ // Called when the application is about to terminate. Save data if
+ // appropriate. See also applicationDidEnterBackground:.
+}
+
+@end
+
+// dummies
+
+void touch_ui_selection_start(MLOSelectionKind kind,
+ const void *documentHandle,
+ MLORect *rectangles,
+ int rectangleCount,
+ void *preview)
+{
+}
+
+void touch_ui_selection_none()
+{
+}
+
+MLODialogResult touch_ui_dialog_modal(MLODialogKind kind, const char *message)
+{
+ return MLODialogCancel;
+}
+
+void touch_ui_show_keyboard()
+{
+}
+
+void touch_ui_hide_keyboard()
+{
+}
+
+void touch_ui_damaged(int minX, int minY, int width, int height)
+{
+}
+
+// vim:set shiftwidth=4 softtabstop=4 expandtab:
diff --git a/ios/experimental/TiledLibreOffice/TiledLibreOffice/Images.xcassets/AppIcon.appiconset/Contents.json b/ios/experimental/TiledLibreOffice/TiledLibreOffice/Images.xcassets/AppIcon.appiconset/Contents.json
new file mode 100644
index 000000000000..a4645e6b015d
--- /dev/null
+++ b/ios/experimental/TiledLibreOffice/TiledLibreOffice/Images.xcassets/AppIcon.appiconset/Contents.json
@@ -0,0 +1,38 @@
+{
+ "images" : [
+ {
+ "idiom" : "ipad",
+ "size" : "29x29",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "ipad",
+ "size" : "29x29",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "ipad",
+ "size" : "40x40",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "ipad",
+ "size" : "40x40",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "ipad",
+ "size" : "76x76",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "ipad",
+ "size" : "76x76",
+ "scale" : "2x"
+ }
+ ],
+ "info" : {
+ "version" : 1,
+ "author" : "xcode"
+ }
+} \ No newline at end of file
diff --git a/ios/experimental/TiledLibreOffice/TiledLibreOffice/Images.xcassets/LaunchImage.launchimage/Contents.json b/ios/experimental/TiledLibreOffice/TiledLibreOffice/Images.xcassets/LaunchImage.launchimage/Contents.json
new file mode 100644
index 000000000000..a0ad363c85ee
--- /dev/null
+++ b/ios/experimental/TiledLibreOffice/TiledLibreOffice/Images.xcassets/LaunchImage.launchimage/Contents.json
@@ -0,0 +1,36 @@
+{
+ "images" : [
+ {
+ "orientation" : "portrait",
+ "idiom" : "ipad",
+ "extent" : "full-screen",
+ "minimum-system-version" : "7.0",
+ "scale" : "1x"
+ },
+ {
+ "orientation" : "landscape",
+ "idiom" : "ipad",
+ "extent" : "full-screen",
+ "minimum-system-version" : "7.0",
+ "scale" : "1x"
+ },
+ {
+ "orientation" : "portrait",
+ "idiom" : "ipad",
+ "extent" : "full-screen",
+ "minimum-system-version" : "7.0",
+ "scale" : "2x"
+ },
+ {
+ "orientation" : "landscape",
+ "idiom" : "ipad",
+ "extent" : "full-screen",
+ "minimum-system-version" : "7.0",
+ "scale" : "2x"
+ }
+ ],
+ "info" : {
+ "version" : 1,
+ "author" : "xcode"
+ }
+} \ No newline at end of file
diff --git a/ios/experimental/TiledLibreOffice/TiledLibreOffice/TiledLibreOffice-Info.plist b/ios/experimental/TiledLibreOffice/TiledLibreOffice/TiledLibreOffice-Info.plist
new file mode 100644
index 000000000000..c20aa82d7467
--- /dev/null
+++ b/ios/experimental/TiledLibreOffice/TiledLibreOffice/TiledLibreOffice-Info.plist
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>en</string>
+ <key>CFBundleDisplayName</key>
+ <string>${PRODUCT_NAME}</string>
+ <key>CFBundleExecutable</key>
+ <string>${EXECUTABLE_NAME}</string>
+ <key>CFBundleIdentifier</key>
+ <string>org.libreoffice.${PRODUCT_NAME:rfc1034identifier}</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundleName</key>
+ <string>${PRODUCT_NAME}</string>
+ <key>CFBundlePackageType</key>
+ <string>APPL</string>
+ <key>CFBundleShortVersionString</key>
+ <string>1.0</string>
+ <key>CFBundleSignature</key>
+ <string>????</string>
+ <key>CFBundleVersion</key>
+ <string>1.0</string>
+ <key>LSRequiresIPhoneOS</key>
+ <true/>
+ <key>UIRequiredDeviceCapabilities</key>
+ <array>
+ <string>armv7</string>
+ </array>
+ <key>UISupportedInterfaceOrientations~ipad</key>
+ <array>
+ <string>UIInterfaceOrientationPortrait</string>
+ <string>UIInterfaceOrientationPortraitUpsideDown</string>
+ <string>UIInterfaceOrientationLandscapeLeft</string>
+ <string>UIInterfaceOrientationLandscapeRight</string>
+ </array>
+</dict>
+</plist>
diff --git a/ios/experimental/TiledLibreOffice/TiledLibreOffice/TiledLibreOffice-Prefix.pch b/ios/experimental/TiledLibreOffice/TiledLibreOffice/TiledLibreOffice-Prefix.pch
new file mode 100644
index 000000000000..638bf30e867e
--- /dev/null
+++ b/ios/experimental/TiledLibreOffice/TiledLibreOffice/TiledLibreOffice-Prefix.pch
@@ -0,0 +1,22 @@
+// -*- Mode: ObjC; 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/.
+
+#import <Availability.h>
+
+#ifndef __IPHONE_5_0
+#warning "This project uses features only available in iOS SDK 5.0 and later."
+#endif
+
+#ifdef __OBJC__
+ #include <premac.h>
+ #import <UIKit/UIKit.h>
+ #import <Foundation/Foundation.h>
+ #include <postmac.h>
+#endif
+
+// vim:set shiftwidth=4 softtabstop=4 expandtab:
diff --git a/ios/experimental/TiledLibreOffice/TiledLibreOffice/TiledView.h b/ios/experimental/TiledLibreOffice/TiledLibreOffice/TiledView.h
new file mode 100644
index 000000000000..fb42358941ad
--- /dev/null
+++ b/ios/experimental/TiledLibreOffice/TiledLibreOffice/TiledView.h
@@ -0,0 +1,17 @@
+// -*- Mode: ObjC; 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/.
+
+#import <UIKit/UIKit.h>
+
+@interface TiledView : UIView
+
+- (id)initWithFrame:(CGRect)frame andScale:(CGFloat)scale;
+
+@end
+
+// vim:set shiftwidth=4 softtabstop=4 expandtab:
diff --git a/ios/experimental/TiledLibreOffice/TiledLibreOffice/TiledView.m b/ios/experimental/TiledLibreOffice/TiledLibreOffice/TiledView.m
new file mode 100644
index 000000000000..0fe9c9450b1c
--- /dev/null
+++ b/ios/experimental/TiledLibreOffice/TiledLibreOffice/TiledView.m
@@ -0,0 +1,62 @@
+// -*- Mode: ObjC; 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 <touch/touch.h>
+
+#import "View.h"
+#import "TiledView.h"
+
+@interface TiledView ()
+
+@property CGFloat scale;
+
+@end
+
+@implementation TiledView
+
+- (id)initWithFrame:(CGRect)frame andScale:(CGFloat)scale
+{
+ self = [super initWithFrame:frame];
+ if (self) {
+ self.scale = scale;
+ CATiledLayer *catl = (CATiledLayer*) [self layer];
+ catl.tileSize = CGSizeMake(512, 512);
+ catl.levelsOfDetail = 4;
+ catl.levelsOfDetailBias = 4;
+ }
+ return self;
+}
+
++ (Class)layerClass
+{
+ return [CATiledLayer class];
+}
+
+- (void)drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx
+{
+ CGContextSaveGState(ctx);
+
+ CGRect bb = CGContextGetClipBoundingBox(ctx);
+
+ // NSLog(@"%.0fx%.0f@(%.0f,%.0f) %f", bb.size.width, bb.size.height, bb.origin.x, bb.origin.y, 1/[(View *) [self superview] zoomScale]);
+
+ CGContextTranslateCTM(ctx, bb.origin.x, bb.origin.y);
+
+ NSLog(@"tile:%.0fx%.0f at:(%.0f,%.0f) size:%.0fx%.0f", bb.size.width, bb.size.height, bb.origin.x/self.scale, bb.origin.y/self.scale, bb.size.width/self.scale, bb.size.height/self.scale);
+
+ touch_lo_draw_tile(ctx,
+ bb.size.width, bb.size.height,
+ CGPointMake(bb.origin.x/self.scale, bb.origin.y/self.scale),
+ CGSizeMake(bb.size.width/self.scale, bb.size.height/self.scale));
+
+ CGContextRestoreGState(ctx);
+}
+
+@end
+
+// vim:set shiftwidth=4 softtabstop=4 expandtab:
diff --git a/ios/experimental/TiledLibreOffice/TiledLibreOffice/View.h b/ios/experimental/TiledLibreOffice/TiledLibreOffice/View.h
new file mode 100644
index 000000000000..3043632d03c9
--- /dev/null
+++ b/ios/experimental/TiledLibreOffice/TiledLibreOffice/View.h
@@ -0,0 +1,15 @@
+// -*- Mode: ObjC; 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/.
+
+#import <UIKit/UIKit.h>
+
+@interface View : UIScrollView <UIScrollViewDelegate>
+
+@end
+
+// vim:set shiftwidth=4 softtabstop=4 expandtab:
diff --git a/ios/experimental/TiledLibreOffice/TiledLibreOffice/View.m b/ios/experimental/TiledLibreOffice/TiledLibreOffice/View.m
new file mode 100644
index 000000000000..be27c0903e68
--- /dev/null
+++ b/ios/experimental/TiledLibreOffice/TiledLibreOffice/View.m
@@ -0,0 +1,57 @@
+// -*- Mode: ObjC; 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 <touch/touch.h>
+
+#import "View.h"
+#import "TiledView.h"
+
+@interface View ()
+
+@property UIView *subView;
+
+@end
+
+@implementation View
+
+- (id)initWithFrame:(CGRect)frame
+{
+ self = [super initWithFrame:frame];
+ if (self) {
+ [self setMaximumZoomScale:4];
+ [self setDelegate:self];
+
+ MLODpxSize docSize = touch_lo_get_content_size();
+
+ double widthScale = frame.size.width / docSize.width;
+ double docAspectRatio = docSize.height / docSize.width;
+
+ NSLog(@"View frame=%.0fx%.0f docSize=%.0fx%.0f scale=%.3f aspectRatio=%.3f", frame.size.width, frame.size.height, docSize.width, docSize.height, widthScale, docAspectRatio);
+
+ self.subView = [[TiledView alloc] initWithFrame:CGRectMake(0, 0, frame.size.width, frame.size.width*docAspectRatio) andScale:widthScale];
+ [self addSubview:self.subView];
+ }
+ return self;
+}
+
+- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
+{
+ return self.subView;
+}
+
+- (void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(UIView *)view
+{
+}
+
+- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(CGFloat)scale
+{
+}
+
+@end
+
+// vim:set shiftwidth=4 softtabstop=4 expandtab:
diff --git a/ios/experimental/TiledLibreOffice/TiledLibreOffice/ViewController.h b/ios/experimental/TiledLibreOffice/TiledLibreOffice/ViewController.h
new file mode 100644
index 000000000000..b94b71815de7
--- /dev/null
+++ b/ios/experimental/TiledLibreOffice/TiledLibreOffice/ViewController.h
@@ -0,0 +1,15 @@
+// -*- Mode: ObjC; 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/.
+
+#import <UIKit/UIKit.h>
+
+@interface ViewController : UIViewController
+
+@end
+
+// vim:set shiftwidth=4 softtabstop=4 expandtab:
diff --git a/ios/experimental/TiledLibreOffice/TiledLibreOffice/ViewController.m b/ios/experimental/TiledLibreOffice/TiledLibreOffice/ViewController.m
new file mode 100644
index 000000000000..b8bc2e3314fb
--- /dev/null
+++ b/ios/experimental/TiledLibreOffice/TiledLibreOffice/ViewController.m
@@ -0,0 +1,29 @@
+// -*- Mode: ObjC; 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/.
+
+#import "ViewController.h"
+
+@interface ViewController ()
+
+@end
+
+@implementation ViewController
+
+- (void)viewDidLoad
+{
+ [super viewDidLoad];
+}
+
+- (void)didReceiveMemoryWarning
+{
+ [super didReceiveMemoryWarning];
+}
+
+@end
+
+// vim:set shiftwidth=4 softtabstop=4 expandtab:
diff --git a/ios/experimental/TiledLibreOffice/TiledLibreOffice/en.lproj/InfoPlist.strings b/ios/experimental/TiledLibreOffice/TiledLibreOffice/en.lproj/InfoPlist.strings
new file mode 100644
index 000000000000..477b28ff8f86
--- /dev/null
+++ b/ios/experimental/TiledLibreOffice/TiledLibreOffice/en.lproj/InfoPlist.strings
@@ -0,0 +1,2 @@
+/* Localized versions of Info.plist keys */
+
diff --git a/ios/experimental/TiledLibreOffice/TiledLibreOffice/lo.h b/ios/experimental/TiledLibreOffice/TiledLibreOffice/lo.h
new file mode 100644
index 000000000000..0997c84379cb
--- /dev/null
+++ b/ios/experimental/TiledLibreOffice/TiledLibreOffice/lo.h
@@ -0,0 +1,19 @@
+// -*- Mode: ObjC; 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/.
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void lo_initialize(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+// vim:set shiftwidth=4 softtabstop=4 expandtab:
diff --git a/ios/experimental/TiledLibreOffice/TiledLibreOffice/lo.mm b/ios/experimental/TiledLibreOffice/TiledLibreOffice/lo.mm
new file mode 100644
index 000000000000..d9f724c19fbb
--- /dev/null
+++ b/ios/experimental/TiledLibreOffice/TiledLibreOffice/lo.mm
@@ -0,0 +1,181 @@
+// -*- Mode: ObjC; 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 <stdlib.h>
+
+#include <premac.h>
+#import <UIKit/UIKit.h>
+#include <postmac.h>
+
+#include <osl/detail/component-mapping.h>
+#include <osl/process.h>
+#include <touch/touch.h>
+
+extern "C" {
+ extern void * analysis_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey );
+ extern void * animcore_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey );
+ extern void * avmedia_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey );
+ extern void * chartcore_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey );
+ extern void * cui_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey );
+ extern void * date_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey );
+ extern void * dba_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey );
+ extern void * dbaxml_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey );
+ extern void * embobj_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey );
+ extern void * emboleobj_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey );
+ extern void * evtatt_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey );
+ extern void * expwrap_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey );
+ extern void * filterconfig1_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey );
+ extern void * frm_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey );
+ extern void * fsstorage_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey );
+ extern void * fwk_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey );
+ extern void * fwl_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey );
+ extern void * fwm_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey );
+ extern void * hwp_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey );
+ extern void * hyphen_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey );
+ extern void * lng_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey );
+ extern void * lnth_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey );
+ extern void * oox_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey );
+ extern void * pricing_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey );
+ extern void * sc_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey );
+ extern void * scd_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey );
+ extern void * scfilt_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey );
+ extern void * sd_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey );
+ extern void * sdd_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey );
+ extern void * sm_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey );
+ extern void * smd_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey );
+ extern void * sot_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey );
+ extern void * spell_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey );
+ extern void * spl_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey );
+ extern void * svgfilter_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey );
+ extern void * svt_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey );
+ extern void * svx_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey );
+ extern void * svxcore_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey );
+ extern void * sw_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey );
+ extern void * swd_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey );
+ extern void * t602filter_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey );
+ extern void * textfd_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey );
+ extern void * tk_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey );
+ extern void * ucppkg1_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey );
+ extern void * unordf_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey );
+ extern void * unoxml_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey );
+ extern void * uui_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey );
+ extern void * wpftdraw_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey );
+ extern void * wpftwriter_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey );
+ extern void * writerfilter_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey );
+ extern void * xmlfd_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey );
+ extern void * xmlsecurity_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey );
+ extern void * xo_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey );
+ extern void * xof_component_getFactory( const char * pImplName, void * pServiceManager, void * pRegistryKey );
+
+}
+
+extern "C"
+const lib_to_component_mapping *
+lo_get_libmap(void)
+{
+ static lib_to_component_mapping map[] = {
+ { "libanalysislo.a", analysis_component_getFactory },
+ { "libanimcorelo.a", animcore_component_getFactory },
+ { "libavmedialo.a", avmedia_component_getFactory },
+ { "libchartcorelo.a", chartcore_component_getFactory },
+ { "libcuilo.a", cui_component_getFactory },
+ { "libdatelo.a", date_component_getFactory },
+ { "libdbalo.a", dba_component_getFactory },
+ { "libdbaxmllo.a", dbaxml_component_getFactory },
+ { "libembobj.a", embobj_component_getFactory },
+ { "libemboleobj.a", emboleobj_component_getFactory },
+ { "libevtattlo.a", evtatt_component_getFactory },
+ { "libexpwraplo.a", expwrap_component_getFactory },
+ { "libfilterconfiglo.a", filterconfig1_component_getFactory },
+ { "libfrmlo.a", frm_component_getFactory },
+ { "libfsstoragelo.a", fsstorage_component_getFactory },
+ { "libfwklo.a", fwk_component_getFactory },
+ { "libfwllo.a", fwl_component_getFactory },
+ { "libfwmlo.a", fwm_component_getFactory },
+ { "libhwplo.a", hwp_component_getFactory },
+ { "libhyphenlo.a", hyphen_component_getFactory },
+ { "liblnglo.a", lng_component_getFactory },
+ { "liblnthlo.a", lnth_component_getFactory },
+ { "libooxlo.a", oox_component_getFactory },
+ { "libpricinglo.a", pricing_component_getFactory },
+ { "libscdlo.a", scd_component_getFactory },
+ { "libscfiltlo.a", scfilt_component_getFactory },
+ { "libsclo.a", sc_component_getFactory },
+ { "libsddlo.a", sdd_component_getFactory },
+ { "libsdlo.a", sd_component_getFactory },
+ { "libsmdlo.a", smd_component_getFactory },
+ { "libsmlo.a", sm_component_getFactory },
+ { "libsotlo.a", sot_component_getFactory },
+ { "libspelllo.a", spell_component_getFactory },
+ { "libspllo.a", spl_component_getFactory },
+ { "libsvgfilterlo.a", svgfilter_component_getFactory },
+ { "libsvtlo.a", svt_component_getFactory },
+ { "libsvxcorelo.a", svxcore_component_getFactory },
+ { "libsvxlo.a", svx_component_getFactory },
+ { "libswdlo.a", swd_component_getFactory },
+ { "libswlo.a", sw_component_getFactory },
+ { "libt602filterlo.a", t602filter_component_getFactory },
+ { "libtextfdlo.a", textfd_component_getFactory },
+ { "libtklo.a", tk_component_getFactory },
+ { "libucppkg1.a", ucppkg1_component_getFactory },
+ { "libunordflo.a", unordf_component_getFactory },
+ { "libunoxmllo.a", unoxml_component_getFactory },
+ { "libuuilo.a", uui_component_getFactory },
+ { "libwpftdrawlo.a", wpftdraw_component_getFactory },
+ { "libwpftwriterlo.a", wpftwriter_component_getFactory },
+ { "libwriterfilterlo.a", writerfilter_component_getFactory },
+ { "libxmlfdlo.a", xmlfd_component_getFactory },
+ { "libxmlsecurity.a", xmlsecurity_component_getFactory },
+ { "libxoflo.a", xof_component_getFactory },
+ { "libxolo.a", xo_component_getFactory },
+ { NULL, NULL }
+ };
+
+ return map;
+}
+
+static NSString *createPaths(NSString *base, NSString *appRootEscaped, NSArray *fileNames)
+{
+ NSString *result;
+ NSString *prefix = @"file://";
+ BOOL first = YES;
+
+ result = base;
+ for (NSString *fileName in fileNames) {
+ result = [result stringByAppendingString: prefix];
+ result = [result stringByAppendingString: [appRootEscaped stringByAppendingPathComponent: fileName]];
+
+ if (first) {
+ prefix = [@" " stringByAppendingString:prefix];
+ first = NO;
+ }
+ }
+
+ return result;
+}
+
+extern "C" void lo_initialize(void)
+{
+ NSString * bundlePath = [[NSBundle mainBundle] bundlePath];
+ NSString * app_root_escaped = [bundlePath stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding];
+ NSString * uno_types = createPaths(@"-env:UNO_TYPES=", app_root_escaped, @[@"offapi.rdb", @"oovbaapi.rdb", @"types.rdb"]);
+ NSString * uno_services = createPaths(@"-env:UNO_SERVICES=", app_root_escaped, @[@"ure/services.rdb", @"services.rdb"]);
+
+ const char *argv[] = {
+ [[[NSBundle mainBundle] executablePath] UTF8String],
+ "-env:URE_INTERNAL_LIB_DIR=file:///",
+ [uno_types UTF8String],
+ [uno_services UTF8String],
+ [[@"file://" stringByAppendingString: [app_root_escaped stringByAppendingPathComponent: @"test1.odt"]] UTF8String]};
+
+ const int argc = sizeof(argv)/sizeof(*argv);
+
+ osl_setCommandArgs(argc, (char **) argv);
+}
+
+// vim:set shiftwidth=4 softtabstop=4 expandtab:
diff --git a/ios/experimental/TiledLibreOffice/TiledLibreOffice/main.m b/ios/experimental/TiledLibreOffice/TiledLibreOffice/main.m
new file mode 100644
index 000000000000..79f7dcc21903
--- /dev/null
+++ b/ios/experimental/TiledLibreOffice/TiledLibreOffice/main.m
@@ -0,0 +1,20 @@
+// -*- Mode: ObjC; 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/.
+
+#import <UIKit/UIKit.h>
+
+#import "AppDelegate.h"
+
+int main(int argc, char * argv[])
+{
+ @autoreleasepool {
+ return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
+ }
+}
+
+// vim:set shiftwidth=4 softtabstop=4 expandtab: