diff options
author | Tor Lillqvist <tml@collabora.com> | 2013-12-18 00:03:02 +0200 |
---|---|---|
committer | Tor Lillqvist <tml@collabora.com> | 2013-12-18 22:59:23 +0200 |
commit | 48f625b899b2c7774548af078f25dfccd7602d27 (patch) | |
tree | cd45eb893d6b8e9270202cbe053bd7a2a73d6ca7 /ios | |
parent | aec792c1a429bd96a172d529521247a2b3391987 (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')
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: |