diff --git a/IosFizmo-Info.plist b/IosFizmo-Info.plist
index eb27a68..2a88506 100644
--- a/IosFizmo-Info.plist
+++ b/IosFizmo-Info.plist
@@ -19,29 +19,6 @@
- UTExportedTypeDeclarations
-
-
- UTTypeIdentifier
- com.eblong.glk.glksave
- UTTypeDescription
- Glk save file
- UTTypeReferenceURL
- http://eblong.com/zarf/glk/
- UTTypeConformsTo
-
- public.content
- public.data
-
- UTTypeTagSpecification
-
- public.filename-extension
- glksave
- public.mime-type
- application/x-glksave
-
-
-
CFBundleExecutable
${EXECUTABLE_NAME}
CFBundleIconFiles
@@ -75,52 +52,37 @@
1.0
LSRequiresIPhoneOS
- NSMainNibFile
- MainWindow
- UILaunchImages
+ LSSupportsOpeningDocumentsInPlace
+
+ NSUserActivityTypes
-
- UILaunchImageMinimumOSVersion
- 7.0
- UILaunchImageName
- Default-New
- UILaunchImageSize
- {320, 480}
-
-
- UILaunchImageMinimumOSVersion
- 7.0
- UILaunchImageName
- Default-New
- UILaunchImageOrientation
- Portrait
- UILaunchImageSize
- {320, 568}
-
+ com.eblong.iosfizmotest.mainActivity
- UILaunchImages~ipad
-
+ UIApplicationSceneManifest
+
+ UIApplicationSupportsMultipleScenes
+
+ UISceneConfigurations
- UILaunchImageMinimumOSVersion
- 7.0
- UILaunchImageName
- Default-New-Landscape
- UILaunchImageOrientation
- Landscape
- UILaunchImageSize
- {768, 1024}
-
-
- UILaunchImageMinimumOSVersion
- 7.0
- UILaunchImageName
- Default-New-Portrait
- UILaunchImageOrientation
- Portrait
- UILaunchImageSize
- {768, 1024}
+ UIWindowSceneSessionRoleApplication
+
+
+ UISceneClassName
+ UIWindowScene
+ UISceneConfigurationName
+ Default Configuration
+ UISceneDelegateClassName
+ IosGlkSceneDelegate
+ UISceneStoryboardFile
+ MainStoryboard
+
+
-
+
+ UILaunchStoryboardName
+ Launch Screen.storyboard
+ UIMainStoryboardFile
+ MainStoryboard
UIPrerenderedIcon
UISupportedInterfaceOrientations
@@ -130,5 +92,28 @@
UIInterfaceOrientationLandscapeLeft
UIInterfaceOrientationLandscapeRight
+ UTExportedTypeDeclarations
+
+
+ UTTypeConformsTo
+
+ public.content
+ public.data
+
+ UTTypeDescription
+ Glk save file
+ UTTypeIdentifier
+ com.eblong.glk.glksave
+ UTTypeReferenceURL
+ http://eblong.com/zarf/glk/
+ UTTypeTagSpecification
+
+ public.filename-extension
+ glksave
+ public.mime-type
+ application/x-glksave
+
+
+
diff --git a/IosFizmo-Prefix.pch b/IosFizmo-Prefix.pch
index 6f9a2d2..5c5d672 100755
--- a/IosFizmo-Prefix.pch
+++ b/IosFizmo-Prefix.pch
@@ -10,3 +10,5 @@
#else
#include "fizmo-config.h"
#endif
+
+#define IOS_GLK
diff --git a/IosFizmo.xcodeproj/project.pbxproj b/IosFizmo.xcodeproj/project.pbxproj
index f5de1e3..c193c2b 100644
--- a/IosFizmo.xcodeproj/project.pbxproj
+++ b/IosFizmo.xcodeproj/project.pbxproj
@@ -7,6 +7,19 @@
objects = {
/* Begin PBXBuildFile section */
+ C31C79B62906A6260030F3AC /* GlkEventState.m in Sources */ = {isa = PBXBuildFile; fileRef = C31C79B42906A6260030F3AC /* GlkEventState.m */; };
+ C34235A4293796FC0054CB78 /* IosGlkSceneDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = C34235A3293796FC0054CB78 /* IosGlkSceneDelegate.m */; };
+ C34235A7293797070054CB78 /* IosGlkTabBarControllerDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = C34235A6293797070054CB78 /* IosGlkTabBarControllerDelegate.m */; };
+ C34235AA293797180054CB78 /* GlkWindowViewUIState.m in Sources */ = {isa = PBXBuildFile; fileRef = C34235A9293797180054CB78 /* GlkWindowViewUIState.m */; };
+ C34235AD29379B420054CB78 /* FIzmoGlkTabBarControllerDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = C34235AC29379B420054CB78 /* FIzmoGlkTabBarControllerDelegate.m */; };
+ C34235B029379F6F0054CB78 /* UnderlinedTextView.m in Sources */ = {isa = PBXBuildFile; fileRef = C34235AE29379F6E0054CB78 /* UnderlinedTextView.m */; };
+ C3A4D0AB28FF975E00FE34E5 /* ShareFiles.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C3A4D0A628FF975D00FE34E5 /* ShareFiles.storyboard */; };
+ C3A4D0AC28FF975E00FE34E5 /* MainStoryboard.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C3A4D0A728FF975D00FE34E5 /* MainStoryboard.storyboard */; };
+ C3A4D0AD28FF975E00FE34E5 /* Transcript.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C3A4D0A828FF975E00FE34E5 /* Transcript.storyboard */; };
+ C3A4D0AE28FF975E00FE34E5 /* Launch Screen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C3A4D0A928FF975E00FE34E5 /* Launch Screen.storyboard */; };
+ C3A4D0AF28FF975E00FE34E5 /* DisplayText.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C3A4D0AA28FF975E00FE34E5 /* DisplayText.storyboard */; };
+ C3A4D0B128FF978600FE34E5 /* Media.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C3A4D0B028FF978500FE34E5 /* Media.xcassets */; };
+ C3A4D0B328FF9D3F00FE34E5 /* GlkFileSelect.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C3A4D0B228FF9D3F00FE34E5 /* GlkFileSelect.storyboard */; };
DF0C5FB51545F73F002081D5 /* InputMenuDecor~ipad.xib in Resources */ = {isa = PBXBuildFile; fileRef = DF0C5FB31545F73F002081D5 /* InputMenuDecor~ipad.xib */; };
DF0C5FB91545F75B002081D5 /* HistoryMenuView~ipad.xib in Resources */ = {isa = PBXBuildFile; fileRef = DF0C5FB71545F75B002081D5 /* HistoryMenuView~ipad.xib */; };
DF0C5FBA1545F75B002081D5 /* PaletteMenuView~ipad.xib in Resources */ = {isa = PBXBuildFile; fileRef = DF0C5FB81545F75B002081D5 /* PaletteMenuView~ipad.xib */; };
@@ -22,10 +35,8 @@
DF19DDDB14E8A069007DCB29 /* HistoryMenuView.xib in Resources */ = {isa = PBXBuildFile; fileRef = DF19DDD914E8A069007DCB29 /* HistoryMenuView.xib */; };
DF19DDDC14E8A069007DCB29 /* PaletteMenuView.xib in Resources */ = {isa = PBXBuildFile; fileRef = DF19DDDA14E8A069007DCB29 /* PaletteMenuView.xib */; };
DF19DDE314E8A950007DCB29 /* FizmoGlkDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = DF19DDE214E8A950007DCB29 /* FizmoGlkDelegate.m */; };
- DF19DDE514E8DF5C007DCB29 /* IosGlkViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = DF19DDE414E8DF5C007DCB29 /* IosGlkViewController.xib */; };
DF19DDF914EA0776007DCB29 /* FizmoGlkViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = DF19DDF814EA0776007DCB29 /* FizmoGlkViewController.m */; };
DF19E97D1E06209D005C3ED7 /* ShareFilesViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = DF19E97C1E06209D005C3ED7 /* ShareFilesViewController.m */; };
- DF19E97F1E0622F6005C3ED7 /* ShareFilesVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = DF19E97E1E0622F6005C3ED7 /* ShareFilesVC.xib */; };
DF1DCC0E14FDC4C7001660B9 /* GlkWindowState.m in Sources */ = {isa = PBXBuildFile; fileRef = DF1DCC0D14FDC4C7001660B9 /* GlkWindowState.m */; };
DF1DCC1214FDC8B2001660B9 /* GlkLibraryState.m in Sources */ = {isa = PBXBuildFile; fileRef = DF1DCC1114FDC8B2001660B9 /* GlkLibraryState.m */; };
DF1F3FEF14F1FD19008FF1C7 /* NotesViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = DF1F3FEE14F1FD19008FF1C7 /* NotesViewController.m */; };
@@ -40,13 +51,10 @@
DF2247D51551DCF6002EBC30 /* FatalGameOverView.xib in Resources */ = {isa = PBXBuildFile; fileRef = DF2247D71551DCF6002EBC30 /* FatalGameOverView.xib */; };
DF2247DA1551E15E002EBC30 /* ios-restart.m in Sources */ = {isa = PBXBuildFile; fileRef = DF2247D91551E15E002EBC30 /* ios-restart.m */; };
DF29B823155AE24E009DA4BE /* SettingsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = DF29B822155AE24E009DA4BE /* SettingsViewController.m */; };
- DF29B827155AE4D2009DA4BE /* SettingsVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = DF29B829155AE4D2009DA4BE /* SettingsVC.xib */; };
DF29B82C155AE576009DA4BE /* tabicon-settings.png in Resources */ = {isa = PBXBuildFile; fileRef = DF29B82A155AE576009DA4BE /* tabicon-settings.png */; };
DF29B82D155AE576009DA4BE /* tabicon-settings@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = DF29B82B155AE576009DA4BE /* tabicon-settings@2x.png */; };
DF29B830155B0351009DA4BE /* DisplayWebViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = DF29B82F155B0351009DA4BE /* DisplayWebViewController.m */; };
- DF29B832155B051B009DA4BE /* WebDocVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = DF29B831155B051B009DA4BE /* WebDocVC.xib */; };
DF361B5F14F72B5C00A8D670 /* DisplayTextViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = DF361B5E14F72B5C00A8D670 /* DisplayTextViewController.m */; };
- DF361B6214F72C5C00A8D670 /* DisplayTextVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = DF361B6114F72C5C00A8D670 /* DisplayTextVC.xib */; };
DF361B6414F73B7000A8D670 /* MessageUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DF361B6314F73B7000A8D670 /* MessageUI.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
DF361B7014FAAFED00A8D670 /* MoreBoxView.m in Sources */ = {isa = PBXBuildFile; fileRef = DF361B6F14FAAFEC00A8D670 /* MoreBoxView.m */; };
DF4ACCAE169CAB8100620E03 /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = DF4ACCAD169CAB8100620E03 /* Default-568h@2x.png */; };
@@ -66,7 +74,6 @@
DF56495B15898256002A52E2 /* button-done@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = DF56495715898256002A52E2 /* button-done@2x.png */; };
DF70A1521513D9EE00B109A2 /* selecthandle.png in Resources */ = {isa = PBXBuildFile; fileRef = DF70A1501513D9EE00B109A2 /* selecthandle.png */; };
DF70A1531513D9EE00B109A2 /* selecthandle@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = DF70A1511513D9EE00B109A2 /* selecthandle@2x.png */; };
- DF8FD3F51500AA8C00890116 /* TextSelectView.m in Sources */ = {isa = PBXBuildFile; fileRef = DF8FD3F41500AA8C00890116 /* TextSelectView.m */; };
DF9A837214E0CD5B002C2FCB /* gi_blorb.c in Sources */ = {isa = PBXBuildFile; fileRef = DF9A836C14E0CD5B002C2FCB /* gi_blorb.c */; };
DF9A837314E0CD5B002C2FCB /* gi_dispa.c in Sources */ = {isa = PBXBuildFile; fileRef = DF9A836E14E0CD5B002C2FCB /* gi_dispa.c */; };
DF9A838A14E0CD7C002C2FCB /* GlkAppWrapper.m in Sources */ = {isa = PBXBuildFile; fileRef = DF9A837714E0CD7C002C2FCB /* GlkAppWrapper.m */; };
@@ -78,7 +85,6 @@
DF9A839014E0CD7C002C2FCB /* IosGlkAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = DF9A838314E0CD7C002C2FCB /* IosGlkAppDelegate.m */; };
DF9A839114E0CD7C002C2FCB /* IosGlkViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = DF9A838514E0CD7C002C2FCB /* IosGlkViewController.m */; };
DF9A839214E0CD7C002C2FCB /* RelDateFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = DF9A838714E0CD7C002C2FCB /* RelDateFormatter.m */; };
- DF9A839314E0CD7C002C2FCB /* StyledTextView.m in Sources */ = {isa = PBXBuildFile; fileRef = DF9A838914E0CD7C002C2FCB /* StyledTextView.m */; };
DF9A83A514E0CD8D002C2FCB /* Geometry.m in Sources */ = {isa = PBXBuildFile; fileRef = DF9A839614E0CD8D002C2FCB /* Geometry.m */; };
DF9A83A614E0CD8D002C2FCB /* GlkFileRef.m in Sources */ = {isa = PBXBuildFile; fileRef = DF9A839814E0CD8D002C2FCB /* GlkFileRef.m */; };
DF9A83A714E0CD8D002C2FCB /* GlkFileTypes.m in Sources */ = {isa = PBXBuildFile; fileRef = DF9A839A14E0CD8D002C2FCB /* GlkFileTypes.m */; };
@@ -143,13 +149,10 @@
DF9A848614E0F097002C2FCB /* fizmo-iosglk.m in Sources */ = {isa = PBXBuildFile; fileRef = DF9A848514E0F097002C2FCB /* fizmo-iosglk.m */; };
DF9D1A4D14E1BFCF006A6749 /* ios-trace.m in Sources */ = {isa = PBXBuildFile; fileRef = DF9D1A4C14E1BFCF006A6749 /* ios-trace.m */; };
DF9D1A5414E47E85006A6749 /* FizmoLocales in Resources */ = {isa = PBXBuildFile; fileRef = DF9D1A5314E47E85006A6749 /* FizmoLocales */; };
- DF9D1A5914E59EF0006A6749 /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = DF9D1A5814E59EF0006A6749 /* MainWindow.xib */; };
DFA0DF7E14E0B41900B67057 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DFA0DF7D14E0B41900B67057 /* UIKit.framework */; };
DFA0DF8014E0B41900B67057 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DFA0DF7F14E0B41900B67057 /* Foundation.framework */; };
DFA0DF8214E0B41900B67057 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DFA0DF8114E0B41900B67057 /* CoreGraphics.framework */; };
DFA0DF8A14E0B41900B67057 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = DFA0DF8914E0B41900B67057 /* main.m */; };
- DFA0DFAB14E0BDA700B67057 /* GlkFileSelectLoad.xib in Resources */ = {isa = PBXBuildFile; fileRef = DFA0DFA714E0BDA700B67057 /* GlkFileSelectLoad.xib */; };
- DFA0DFAC14E0BDA700B67057 /* GlkFileSelectStore.xib in Resources */ = {isa = PBXBuildFile; fileRef = DFA0DFA814E0BDA700B67057 /* GlkFileSelectStore.xib */; };
DFA5BD621860CBA300F11F5F /* baricon-edit-old.png in Resources */ = {isa = PBXBuildFile; fileRef = DFA5BD5E1860CBA300F11F5F /* baricon-edit-old.png */; };
DFA5BD631860CBA300F11F5F /* baricon-edit-old@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = DFA5BD5F1860CBA300F11F5F /* baricon-edit-old@2x.png */; };
DFA5BD641860CBA300F11F5F /* baricon-styles-old.png in Resources */ = {isa = PBXBuildFile; fileRef = DFA5BD601860CBA300F11F5F /* baricon-styles-old.png */; };
@@ -177,7 +180,6 @@
DFB7A721151ED33700C07499 /* background-notesopaque-s.png in Resources */ = {isa = PBXBuildFile; fileRef = DFB7A71F151ED33700C07499 /* background-notesopaque-s.png */; };
DFB7A722151ED33700C07499 /* background-notesopaque.png in Resources */ = {isa = PBXBuildFile; fileRef = DFB7A720151ED33700C07499 /* background-notesopaque.png */; };
DFBB4DE914F5D72D0041016A /* FizmoGlkWindows.m in Sources */ = {isa = PBXBuildFile; fileRef = DFBB4DE814F5D72D0041016A /* FizmoGlkWindows.m */; };
- DFBB4E4214F6E4450041016A /* TranscriptVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = DFBB4E4114F6E4450041016A /* TranscriptVC.xib */; };
DFBB4E4614F6E5700041016A /* TranscriptViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = DFBB4E4514F6E5700041016A /* TranscriptViewController.m */; };
DFC755A715242354009F4137 /* background-popbox.png in Resources */ = {isa = PBXBuildFile; fileRef = DFC755A615242354009F4137 /* background-popbox.png */; };
DFC755AA15242808009F4137 /* background-popbox@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = DFC755A915242808009F4137 /* background-popbox@2x.png */; };
@@ -214,8 +216,6 @@
DFCB1639153FB02700936D28 /* button-input-menu.png in Resources */ = {isa = PBXBuildFile; fileRef = DFCB1633153FB02700936D28 /* button-input-menu.png */; };
DFCB163A153FB02700936D28 /* button-input-menu@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = DFCB1634153FB02700936D28 /* button-input-menu@2x.png */; };
DFCB163D153FB03800936D28 /* TextFieldRightView.xib in Resources */ = {isa = PBXBuildFile; fileRef = DFCB163C153FB03800936D28 /* TextFieldRightView.xib */; };
- DFCB163E153FB13700936D28 /* NotesVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = DFCB1640153FB13700936D28 /* NotesVC.xib */; };
- DFCB1641153FB13C00936D28 /* NotesVC~ipad.xib in Resources */ = {isa = PBXBuildFile; fileRef = DFCB1643153FB13C00936D28 /* NotesVC~ipad.xib */; };
DFCB1644153FB14A00936D28 /* PrefsMenuView.xib in Resources */ = {isa = PBXBuildFile; fileRef = DFCB1646153FB14A00936D28 /* PrefsMenuView.xib */; };
DFCB1647153FB14D00936D28 /* PrefsMenuView~ipad.xib in Resources */ = {isa = PBXBuildFile; fileRef = DFCB1649153FB14D00936D28 /* PrefsMenuView~ipad.xib */; };
DFCB169A1544842700936D28 /* Icon-50.png in Resources */ = {isa = PBXBuildFile; fileRef = DFCB16901544842700936D28 /* Icon-50.png */; };
@@ -241,11 +241,29 @@
DFDA85DD153545DC00891B91 /* ios-autosave.m in Sources */ = {isa = PBXBuildFile; fileRef = DFDA85DC153545DC00891B91 /* ios-autosave.m */; };
DFDFBD4B151F7DFD0053783F /* GlkAccessTypes.m in Sources */ = {isa = PBXBuildFile; fileRef = DFDFBD4A151F7DFD0053783F /* GlkAccessTypes.m */; };
DFEFAC2E14F1E0E50062859F /* HelpViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = DFEFAC2C14F1E0E50062859F /* HelpViewController.m */; };
- DFEFAC2F14F1E0E50062859F /* HelpVC.xib in Resources */ = {isa = PBXBuildFile; fileRef = DFEFAC2D14F1E0E50062859F /* HelpVC.xib */; };
DFEFAC3214F1E4B00062859F /* WebSite in Resources */ = {isa = PBXBuildFile; fileRef = DFEFAC3114F1E4B00062859F /* WebSite */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
+ C31C79B42906A6260030F3AC /* GlkEventState.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GlkEventState.m; sourceTree = ""; };
+ C31C79B52906A6260030F3AC /* GlkEventState.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GlkEventState.h; sourceTree = ""; };
+ C34235A2293796FC0054CB78 /* IosGlkSceneDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IosGlkSceneDelegate.h; sourceTree = ""; };
+ C34235A3293796FC0054CB78 /* IosGlkSceneDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IosGlkSceneDelegate.m; sourceTree = ""; };
+ C34235A5293797070054CB78 /* IosGlkTabBarControllerDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IosGlkTabBarControllerDelegate.h; sourceTree = ""; };
+ C34235A6293797070054CB78 /* IosGlkTabBarControllerDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IosGlkTabBarControllerDelegate.m; sourceTree = ""; };
+ C34235A8293797180054CB78 /* GlkWindowViewUIState.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GlkWindowViewUIState.h; sourceTree = ""; };
+ C34235A9293797180054CB78 /* GlkWindowViewUIState.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GlkWindowViewUIState.m; sourceTree = ""; };
+ C34235AB29379B420054CB78 /* FizmoGlkTabBarControllerDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FizmoGlkTabBarControllerDelegate.h; sourceTree = ""; };
+ C34235AC29379B420054CB78 /* FIzmoGlkTabBarControllerDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FIzmoGlkTabBarControllerDelegate.m; sourceTree = ""; };
+ C34235AE29379F6E0054CB78 /* UnderlinedTextView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UnderlinedTextView.m; sourceTree = ""; };
+ C34235AF29379F6E0054CB78 /* UnderlinedTextView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UnderlinedTextView.h; sourceTree = ""; };
+ C3A4D0A628FF975D00FE34E5 /* ShareFiles.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = ShareFiles.storyboard; sourceTree = ""; };
+ C3A4D0A728FF975D00FE34E5 /* MainStoryboard.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = MainStoryboard.storyboard; sourceTree = ""; };
+ C3A4D0A828FF975E00FE34E5 /* Transcript.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Transcript.storyboard; sourceTree = ""; };
+ C3A4D0A928FF975E00FE34E5 /* Launch Screen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = "Launch Screen.storyboard"; sourceTree = ""; };
+ C3A4D0AA28FF975E00FE34E5 /* DisplayText.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = DisplayText.storyboard; sourceTree = ""; };
+ C3A4D0B028FF978500FE34E5 /* Media.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Media.xcassets; sourceTree = ""; };
+ C3A4D0B228FF9D3F00FE34E5 /* GlkFileSelect.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = GlkFileSelect.storyboard; path = iosglk/Resources/GlkFileSelect.storyboard; sourceTree = SOURCE_ROOT; };
DF0C5FB71545F75B002081D5 /* HistoryMenuView~ipad.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = "HistoryMenuView~ipad.xib"; path = "iosglk/Resources/HistoryMenuView~ipad.xib"; sourceTree = SOURCE_ROOT; };
DF0C5FB81545F75B002081D5 /* PaletteMenuView~ipad.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = "PaletteMenuView~ipad.xib"; path = "iosglk/Resources/PaletteMenuView~ipad.xib"; sourceTree = SOURCE_ROOT; };
DF0FBD46159B6D34002CE66A /* iTunesArtwork */ = {isa = PBXFileReference; lastKnownFileType = file; path = iTunesArtwork; sourceTree = ""; };
@@ -265,12 +283,10 @@
DF19DDDA14E8A069007DCB29 /* PaletteMenuView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = PaletteMenuView.xib; path = iosglk/Resources/PaletteMenuView.xib; sourceTree = SOURCE_ROOT; };
DF19DDE114E8A950007DCB29 /* FizmoGlkDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FizmoGlkDelegate.h; sourceTree = ""; };
DF19DDE214E8A950007DCB29 /* FizmoGlkDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FizmoGlkDelegate.m; sourceTree = ""; };
- DF19DDE414E8DF5C007DCB29 /* IosGlkViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = IosGlkViewController.xib; sourceTree = ""; };
DF19DDF714EA0776007DCB29 /* FizmoGlkViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FizmoGlkViewController.h; sourceTree = ""; };
DF19DDF814EA0776007DCB29 /* FizmoGlkViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FizmoGlkViewController.m; sourceTree = ""; };
DF19E97B1E06209D005C3ED7 /* ShareFilesViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ShareFilesViewController.h; sourceTree = ""; };
DF19E97C1E06209D005C3ED7 /* ShareFilesViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ShareFilesViewController.m; sourceTree = ""; };
- DF19E97E1E0622F6005C3ED7 /* ShareFilesVC.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ShareFilesVC.xib; sourceTree = ""; };
DF1DCC0C14FDC4C7001660B9 /* GlkWindowState.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GlkWindowState.h; sourceTree = ""; };
DF1DCC0D14FDC4C7001660B9 /* GlkWindowState.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GlkWindowState.m; sourceTree = ""; };
DF1DCC1014FDC8B2001660B9 /* GlkLibraryState.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GlkLibraryState.h; sourceTree = ""; };
@@ -296,10 +312,8 @@
DF29B82B155AE576009DA4BE /* tabicon-settings@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "tabicon-settings@2x.png"; sourceTree = ""; };
DF29B82E155B0351009DA4BE /* DisplayWebViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DisplayWebViewController.h; sourceTree = ""; };
DF29B82F155B0351009DA4BE /* DisplayWebViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DisplayWebViewController.m; sourceTree = ""; };
- DF29B831155B051B009DA4BE /* WebDocVC.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = WebDocVC.xib; sourceTree = ""; };
DF361B5D14F72B5C00A8D670 /* DisplayTextViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DisplayTextViewController.h; sourceTree = ""; };
DF361B5E14F72B5C00A8D670 /* DisplayTextViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DisplayTextViewController.m; sourceTree = ""; };
- DF361B6114F72C5C00A8D670 /* DisplayTextVC.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = DisplayTextVC.xib; sourceTree = ""; };
DF361B6314F73B7000A8D670 /* MessageUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MessageUI.framework; path = System/Library/Frameworks/MessageUI.framework; sourceTree = SDKROOT; };
DF361B6514F83CC200A8D670 /* glkstart.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = glkstart.h; sourceTree = ""; };
DF361B6E14FAAFEC00A8D670 /* MoreBoxView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MoreBoxView.h; sourceTree = ""; };
@@ -321,8 +335,6 @@
DF56495715898256002A52E2 /* button-done@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "button-done@2x.png"; path = "iosglk/Media/button-done@2x.png"; sourceTree = SOURCE_ROOT; };
DF70A1501513D9EE00B109A2 /* selecthandle.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = selecthandle.png; path = iosglk/Media/selecthandle.png; sourceTree = SOURCE_ROOT; };
DF70A1511513D9EE00B109A2 /* selecthandle@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "selecthandle@2x.png"; path = "iosglk/Media/selecthandle@2x.png"; sourceTree = SOURCE_ROOT; };
- DF8FD3F31500AA8C00890116 /* TextSelectView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TextSelectView.h; sourceTree = ""; };
- DF8FD3F41500AA8C00890116 /* TextSelectView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TextSelectView.m; sourceTree = ""; };
DF9A836C14E0CD5B002C2FCB /* gi_blorb.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = gi_blorb.c; sourceTree = ""; };
DF9A836D14E0CD5B002C2FCB /* gi_blorb.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = gi_blorb.h; sourceTree = ""; };
DF9A836E14E0CD5B002C2FCB /* gi_dispa.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = gi_dispa.c; sourceTree = ""; };
@@ -347,8 +359,6 @@
DF9A838514E0CD7C002C2FCB /* IosGlkViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IosGlkViewController.m; sourceTree = ""; };
DF9A838614E0CD7C002C2FCB /* RelDateFormatter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RelDateFormatter.h; sourceTree = ""; };
DF9A838714E0CD7C002C2FCB /* RelDateFormatter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RelDateFormatter.m; sourceTree = ""; };
- DF9A838814E0CD7C002C2FCB /* StyledTextView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StyledTextView.h; sourceTree = ""; };
- DF9A838914E0CD7C002C2FCB /* StyledTextView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = StyledTextView.m; sourceTree = ""; };
DF9A839514E0CD8D002C2FCB /* Geometry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Geometry.h; sourceTree = ""; };
DF9A839614E0CD8D002C2FCB /* Geometry.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Geometry.m; sourceTree = ""; };
DF9A839714E0CD8D002C2FCB /* GlkFileRef.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GlkFileRef.h; sourceTree = ""; };
@@ -376,13 +386,13 @@
DF9A83B614E0CD98002C2FCB /* GlkUtilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GlkUtilities.h; sourceTree = ""; };
DF9A83B714E0CD98002C2FCB /* GlkUtilities.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GlkUtilities.m; sourceTree = ""; };
DF9A83B814E0CD98002C2FCB /* GlkWindowLayer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GlkWindowLayer.m; sourceTree = ""; };
- DF9A83C414E0D825002C2FCB /* glk_blorb_if.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = glk_blorb_if.c; sourceTree = ""; };
+ DF9A83C414E0D825002C2FCB /* glk_blorb_if.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.objc.preprocessed; fileEncoding = 4; path = glk_blorb_if.c; sourceTree = ""; };
DF9A83C514E0D825002C2FCB /* glk_blorb_if.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = glk_blorb_if.h; sourceTree = ""; };
- DF9A83C614E0D825002C2FCB /* glk_filesys_if.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = glk_filesys_if.c; sourceTree = ""; };
+ DF9A83C614E0D825002C2FCB /* glk_filesys_if.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.objc; fileEncoding = 4; path = glk_filesys_if.c; sourceTree = ""; };
DF9A83C714E0D825002C2FCB /* glk_filesys_if.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = glk_filesys_if.h; sourceTree = ""; };
- DF9A83C814E0D825002C2FCB /* glk_interface.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = glk_interface.c; sourceTree = ""; };
+ DF9A83C814E0D825002C2FCB /* glk_interface.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.objc; fileEncoding = 4; path = glk_interface.c; sourceTree = ""; };
DF9A83C914E0D825002C2FCB /* glk_interface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = glk_interface.h; sourceTree = ""; };
- DF9A83CA14E0D825002C2FCB /* glk_screen_if.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = glk_screen_if.c; sourceTree = ""; };
+ DF9A83CA14E0D825002C2FCB /* glk_screen_if.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.objc; fileEncoding = 4; indentWidth = 2; path = glk_screen_if.c; sourceTree = ""; tabWidth = 2; };
DF9A83CB14E0D825002C2FCB /* glk_screen_if.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = glk_screen_if.h; sourceTree = ""; };
DF9A83D414E0D994002C2FCB /* blorb_interface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = blorb_interface.h; sourceTree = ""; };
DF9A83D614E0D994002C2FCB /* filesys_interface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = filesys_interface.h; sourceTree = ""; };
@@ -440,7 +450,7 @@
DF9A840D14E0D994002C2FCB /* variable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = variable.h; sourceTree = ""; };
DF9A840E14E0D994002C2FCB /* wordwrap.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = wordwrap.c; sourceTree = ""; };
DF9A840F14E0D994002C2FCB /* wordwrap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = wordwrap.h; sourceTree = ""; };
- DF9A841014E0D994002C2FCB /* zpu.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = zpu.c; sourceTree = ""; };
+ DF9A841014E0D994002C2FCB /* zpu.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.objc; fileEncoding = 4; indentWidth = 2; path = zpu.c; sourceTree = ""; tabWidth = 2; };
DF9A841114E0D994002C2FCB /* zpu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = zpu.h; sourceTree = ""; };
DF9A841214E0D994002C2FCB /* zscii.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = zscii.h; sourceTree = ""; };
DF9A841D14E0D994002C2FCB /* libfizmo_locales.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = libfizmo_locales.c; sourceTree = ""; };
@@ -471,7 +481,6 @@
DF9A848514E0F097002C2FCB /* fizmo-iosglk.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "fizmo-iosglk.m"; sourceTree = ""; };
DF9D1A4C14E1BFCF006A6749 /* ios-trace.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "ios-trace.m"; sourceTree = ""; };
DF9D1A5314E47E85006A6749 /* FizmoLocales */ = {isa = PBXFileReference; lastKnownFileType = folder; path = FizmoLocales; sourceTree = ""; };
- DF9D1A5814E59EF0006A6749 /* MainWindow.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MainWindow.xib; sourceTree = ""; };
DFA0DF7914E0B41900B67057 /* IosFizmo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = IosFizmo.app; sourceTree = BUILT_PRODUCTS_DIR; };
DFA0DF7D14E0B41900B67057 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
DFA0DF7F14E0B41900B67057 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
@@ -479,8 +488,6 @@
DFA0DF8514E0B41900B67057 /* IosFizmo-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "IosFizmo-Info.plist"; sourceTree = ""; };
DFA0DF8914E0B41900B67057 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; };
DFA0DF8B14E0B41900B67057 /* IosFizmo-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "IosFizmo-Prefix.pch"; sourceTree = ""; };
- DFA0DFA714E0BDA700B67057 /* GlkFileSelectLoad.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = GlkFileSelectLoad.xib; path = ../iosglk/Resources/GlkFileSelectLoad.xib; sourceTree = ""; };
- DFA0DFA814E0BDA700B67057 /* GlkFileSelectStore.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = GlkFileSelectStore.xib; path = ../iosglk/Resources/GlkFileSelectStore.xib; sourceTree = ""; };
DFA5BD5E1860CBA300F11F5F /* baricon-edit-old.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "baricon-edit-old.png"; sourceTree = ""; };
DFA5BD5F1860CBA300F11F5F /* baricon-edit-old@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "baricon-edit-old@2x.png"; sourceTree = ""; };
DFA5BD601860CBA300F11F5F /* baricon-styles-old.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "baricon-styles-old.png"; sourceTree = ""; };
@@ -496,9 +503,6 @@
DFA5BD8418623C0B00F11F5F /* Default@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default@2x.png"; sourceTree = ""; };
DFA7F4F11E04E64B00C97556 /* MobileCoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MobileCoreServices.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/MobileCoreServices.framework; sourceTree = DEVELOPER_DIR; };
DFAA384914F1DAAE0096A848 /* tabicon-game.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "tabicon-game.png"; sourceTree = ""; };
- DFAC4C7D23BB35270063C565 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/SettingsVC.xib; sourceTree = ""; };
- DFAC4C7E23BB35270063C565 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/NotesVC.xib; sourceTree = ""; };
- DFAC4C7F23BB35270063C565 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = "Base.lproj/NotesVC~ipad.xib"; sourceTree = ""; };
DFAC4C8023BB35350063C565 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/InputMenuDecor.xib; sourceTree = ""; };
DFAC4C8123BB353B0063C565 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/PrefsMenuView.xib; sourceTree = ""; };
DFAC4C8223BB35420063C565 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = "../iosglk/Resources/Base.lproj/InputMenuDecor~ipad.xib"; sourceTree = ""; };
@@ -519,7 +523,6 @@
DFB7A720151ED33700C07499 /* background-notesopaque.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "background-notesopaque.png"; sourceTree = ""; };
DFBB4DE714F5D72D0041016A /* FizmoGlkWindows.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FizmoGlkWindows.h; sourceTree = ""; };
DFBB4DE814F5D72D0041016A /* FizmoGlkWindows.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FizmoGlkWindows.m; sourceTree = ""; };
- DFBB4E4114F6E4450041016A /* TranscriptVC.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = TranscriptVC.xib; sourceTree = ""; };
DFBB4E4414F6E5700041016A /* TranscriptViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TranscriptViewController.h; sourceTree = ""; };
DFBB4E4514F6E5700041016A /* TranscriptViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TranscriptViewController.m; sourceTree = ""; };
DFC755A615242354009F4137 /* background-popbox.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "background-popbox.png"; path = "iosglk/Media/background-popbox.png"; sourceTree = SOURCE_ROOT; };
@@ -582,7 +585,6 @@
DFDFBD4A151F7DFD0053783F /* GlkAccessTypes.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GlkAccessTypes.m; sourceTree = ""; };
DFEFAC2B14F1E0E50062859F /* HelpViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HelpViewController.h; sourceTree = ""; };
DFEFAC2C14F1E0E50062859F /* HelpViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HelpViewController.m; sourceTree = ""; };
- DFEFAC2D14F1E0E50062859F /* HelpVC.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = HelpVC.xib; sourceTree = ""; };
DFEFAC3114F1E4B00062859F /* WebSite */ = {isa = PBXFileReference; lastKnownFileType = folder; path = WebSite; sourceTree = ""; };
/* End PBXFileReference section */
@@ -606,10 +608,13 @@
DF19DDCF14E89EFA007DCB29 /* Resources */ = {
isa = PBXGroup;
children = (
- DF9D1A5814E59EF0006A6749 /* MainWindow.xib */,
- DF19DDE414E8DF5C007DCB29 /* IosGlkViewController.xib */,
- DFA0DFA714E0BDA700B67057 /* GlkFileSelectLoad.xib */,
- DFA0DFA814E0BDA700B67057 /* GlkFileSelectStore.xib */,
+ C3A4D0B028FF978500FE34E5 /* Media.xcassets */,
+ C3A4D0A928FF975E00FE34E5 /* Launch Screen.storyboard */,
+ C3A4D0A728FF975D00FE34E5 /* MainStoryboard.storyboard */,
+ C3A4D0B228FF9D3F00FE34E5 /* GlkFileSelect.storyboard */,
+ C3A4D0A828FF975E00FE34E5 /* Transcript.storyboard */,
+ C3A4D0AA28FF975E00FE34E5 /* DisplayText.storyboard */,
+ C3A4D0A628FF975D00FE34E5 /* ShareFiles.storyboard */,
DF1F3FFD14F2BA68008FF1C7 /* PopBoxView.xib */,
DFCB163C153FB03800936D28 /* TextFieldRightView.xib */,
DFCB1626153FAF8500936D28 /* InputMenuDecor.xib */,
@@ -623,14 +628,6 @@
DFCB1649153FB14D00936D28 /* PrefsMenuView~ipad.xib */,
DF188B9515479B4900CC6929 /* GameOverView.xib */,
DF2247D71551DCF6002EBC30 /* FatalGameOverView.xib */,
- DFEFAC2D14F1E0E50062859F /* HelpVC.xib */,
- DF29B829155AE4D2009DA4BE /* SettingsVC.xib */,
- DFCB1640153FB13700936D28 /* NotesVC.xib */,
- DFCB1643153FB13C00936D28 /* NotesVC~ipad.xib */,
- DFBB4E4114F6E4450041016A /* TranscriptVC.xib */,
- DF19E97E1E0622F6005C3ED7 /* ShareFilesVC.xib */,
- DF29B831155B051B009DA4BE /* WebDocVC.xib */,
- DF361B6114F72C5C00A8D670 /* DisplayTextVC.xib */,
DFCB15D6153E158800936D28 /* Localizable.strings */,
DFCB15DB153E1D5600936D28 /* TerpLocalize.strings */,
);
@@ -644,12 +641,16 @@
DF19DDF814EA0776007DCB29 /* FizmoGlkViewController.m */,
DF19DDE114E8A950007DCB29 /* FizmoGlkDelegate.h */,
DF19DDE214E8A950007DCB29 /* FizmoGlkDelegate.m */,
+ C34235AB29379B420054CB78 /* FizmoGlkTabBarControllerDelegate.h */,
+ C34235AC29379B420054CB78 /* FIzmoGlkTabBarControllerDelegate.m */,
DFBB4DE714F5D72D0041016A /* FizmoGlkWindows.h */,
DFBB4DE814F5D72D0041016A /* FizmoGlkWindows.m */,
DF2247CF1551D97C002EBC30 /* FizmoGameOverView.h */,
DF2247D01551D97C002EBC30 /* FizmoGameOverView.m */,
DF1F3FED14F1FD19008FF1C7 /* NotesViewController.h */,
DF1F3FEE14F1FD19008FF1C7 /* NotesViewController.m */,
+ C34235AF29379F6E0054CB78 /* UnderlinedTextView.h */,
+ C34235AE29379F6E0054CB78 /* UnderlinedTextView.m */,
DFBB4E4414F6E5700041016A /* TranscriptViewController.h */,
DFBB4E4514F6E5700041016A /* TranscriptViewController.m */,
DF19E97B1E06209D005C3ED7 /* ShareFilesViewController.h */,
@@ -687,16 +688,22 @@
DF9A837514E0CD7C002C2FCB /* AppSrc */ = {
isa = PBXGroup;
children = (
+ DF19DDD414E89F8A007DCB29 /* IosGlkLibDelegate.h */,
+ DF19DDD514E89F8A007DCB29 /* IosGlkLibDelegate.m */,
DF9A838214E0CD7C002C2FCB /* IosGlkAppDelegate.h */,
DF9A838314E0CD7C002C2FCB /* IosGlkAppDelegate.m */,
+ C34235A2293796FC0054CB78 /* IosGlkSceneDelegate.h */,
+ C34235A3293796FC0054CB78 /* IosGlkSceneDelegate.m */,
+ C34235A5293797070054CB78 /* IosGlkTabBarControllerDelegate.h */,
+ C34235A6293797070054CB78 /* IosGlkTabBarControllerDelegate.m */,
DF9A838414E0CD7C002C2FCB /* IosGlkViewController.h */,
DF9A838514E0CD7C002C2FCB /* IosGlkViewController.m */,
- DF19DDD414E89F8A007DCB29 /* IosGlkLibDelegate.h */,
- DF19DDD514E89F8A007DCB29 /* IosGlkLibDelegate.m */,
- DF9A837614E0CD7C002C2FCB /* GlkAppWrapper.h */,
- DF9A837714E0CD7C002C2FCB /* GlkAppWrapper.m */,
DF9A837814E0CD7C002C2FCB /* GlkFileSelectViewController.h */,
DF9A837914E0CD7C002C2FCB /* GlkFileSelectViewController.m */,
+ DF9A837614E0CD7C002C2FCB /* GlkAppWrapper.h */,
+ DF9A837714E0CD7C002C2FCB /* GlkAppWrapper.m */,
+ C31C79B52906A6260030F3AC /* GlkEventState.h */,
+ C31C79B42906A6260030F3AC /* GlkEventState.m */,
DF9A837A14E0CD7C002C2FCB /* GlkFrameView.h */,
DF9A837B14E0CD7C002C2FCB /* GlkFrameView.m */,
DF9A837E14E0CD7C002C2FCB /* GlkWindowView.h */,
@@ -705,22 +712,20 @@
DF9A837D14E0CD7C002C2FCB /* GlkWinBufferView.m */,
DF9A838014E0CD7C002C2FCB /* GlkWinGridView.h */,
DF9A838114E0CD7C002C2FCB /* GlkWinGridView.m */,
+ C34235A8293797180054CB78 /* GlkWindowViewUIState.h */,
+ C34235A9293797180054CB78 /* GlkWindowViewUIState.m */,
DF9A838614E0CD7C002C2FCB /* RelDateFormatter.h */,
DF9A838714E0CD7C002C2FCB /* RelDateFormatter.m */,
+ DF19DDD214E89F8A007DCB29 /* InputMenuView.h */,
+ DF19DDD314E89F8A007DCB29 /* InputMenuView.m */,
DF19DDD014E89F8A007DCB29 /* CmdTextField.h */,
DF19DDD114E89F8A007DCB29 /* CmdTextField.m */,
DF361B6E14FAAFEC00A8D670 /* MoreBoxView.h */,
DF361B6F14FAAFEC00A8D670 /* MoreBoxView.m */,
DF1F3FFA14F221FB008FF1C7 /* PopMenuView.h */,
DF1F3FFB14F221FB008FF1C7 /* PopMenuView.m */,
- DF19DDD214E89F8A007DCB29 /* InputMenuView.h */,
- DF19DDD314E89F8A007DCB29 /* InputMenuView.m */,
DF188B8F15479A3000CC6929 /* GameOverView.h */,
DF188B9015479A3000CC6929 /* GameOverView.m */,
- DF9A838814E0CD7C002C2FCB /* StyledTextView.h */,
- DF9A838914E0CD7C002C2FCB /* StyledTextView.m */,
- DF8FD3F31500AA8C00890116 /* TextSelectView.h */,
- DF8FD3F41500AA8C00890116 /* TextSelectView.m */,
DF188B9115479A3000CC6929 /* MButton.h */,
DF188B9215479A3000CC6929 /* MButton.m */,
);
@@ -1140,11 +1145,12 @@
DFA0DF7014E0B41900B67057 /* Project object */ = {
isa = PBXProject;
attributes = {
- LastUpgradeCheck = 1130;
+ LastUpgradeCheck = 1400;
ORGANIZATIONNAME = Zarfhome;
TargetAttributes = {
DFA0DF7814E0B41900B67057 = {
- DevelopmentTeam = BK75QRDQ9E;
+ DevelopmentTeam = 6U7YY3724Y;
+ ProvisioningStyle = Automatic;
};
};
};
@@ -1171,35 +1177,27 @@
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
- DFA0DFAB14E0BDA700B67057 /* GlkFileSelectLoad.xib in Resources */,
DFA5BD8718623C0B00F11F5F /* Default-New-Portrait.png in Resources */,
DFA5BD651860CBA300F11F5F /* baricon-styles-old@2x.png in Resources */,
- DFA0DFAC14E0BDA700B67057 /* GlkFileSelectStore.xib in Resources */,
DF9A848114E0EE8A002C2FCB /* Game.z5 in Resources */,
DF9D1A5414E47E85006A6749 /* FizmoLocales in Resources */,
- DF9D1A5914E59EF0006A6749 /* MainWindow.xib in Resources */,
DF19DDDB14E8A069007DCB29 /* HistoryMenuView.xib in Resources */,
DF19DDDC14E8A069007DCB29 /* PaletteMenuView.xib in Resources */,
- DF19DDE514E8DF5C007DCB29 /* IosGlkViewController.xib in Resources */,
DFAA384A14F1DAAE0096A848 /* tabicon-game.png in Resources */,
- DFEFAC2F14F1E0E50062859F /* HelpVC.xib in Resources */,
DFEFAC3214F1E4B00062859F /* WebSite in Resources */,
- DFCB163E153FB13700936D28 /* NotesVC.xib in Resources */,
DF1F3FF214F1FF1D008FF1C7 /* tabicon-help.png in Resources */,
DF1F3FF314F1FF1D008FF1C7 /* tabicon-notes.png in Resources */,
DF1F3FFE14F2BA68008FF1C7 /* PopBoxView.xib in Resources */,
DFCB1644153FB14A00936D28 /* PrefsMenuView.xib in Resources */,
- DFBB4E4214F6E4450041016A /* TranscriptVC.xib in Resources */,
- DF361B6214F72C5C00A8D670 /* DisplayTextVC.xib in Resources */,
DF53C4451559E61800709FC2 /* MoreBoxView.xib in Resources */,
DFA5BD8518623C0B00F11F5F /* Default-New-568h@2x.png in Resources */,
- DFCB1641153FB13C00936D28 /* NotesVC~ipad.xib in Resources */,
DF70A1521513D9EE00B109A2 /* selecthandle.png in Resources */,
DF70A1531513D9EE00B109A2 /* selecthandle@2x.png in Resources */,
DFB7A70A151E395600C07499 /* tabicon-game@2x.png in Resources */,
DFB7A70D151E3B3300C07499 /* tabicon-help@2x.png in Resources */,
DFB7A70F151E463E00C07499 /* tabicon-notes@2x.png in Resources */,
DFB7A711151E59ED00C07499 /* baricon-styles.png in Resources */,
+ C3A4D0B328FF9D3F00FE34E5 /* GlkFileSelect.storyboard in Resources */,
DFB7A713151E5D1A00C07499 /* baricon-styles@2x.png in Resources */,
DFB7A717151E674500C07499 /* background-notes.png in Resources */,
DFB7A719151E69B300C07499 /* background-notes-s.png in Resources */,
@@ -1212,6 +1210,7 @@
DFC755B71524C02E009F4137 /* button-pref-base.png in Resources */,
DFC755B81524C02E009F4137 /* button-pref-base@2x.png in Resources */,
DFC755BB1524C607009F4137 /* button-pref-hi.png in Resources */,
+ C3A4D0AE28FF975E00FE34E5 /* Launch Screen.storyboard in Resources */,
DFC755BC1524C607009F4137 /* button-pref-hi@2x.png in Resources */,
DFC755BF1524D372009F4137 /* checkmark.png in Resources */,
DFC755C01524D372009F4137 /* checkmark@2x.png in Resources */,
@@ -1219,6 +1218,7 @@
DFA5BD641860CBA300F11F5F /* baricon-styles-old.png in Resources */,
DFC755C91527EC54009F4137 /* col-12.png in Resources */,
DFC755CA1527EC54009F4137 /* col-12@2x.png in Resources */,
+ C3A4D0AD28FF975E00FE34E5 /* Transcript.storyboard in Resources */,
DFA5BD8918623C0B00F11F5F /* Default@2x.png in Resources */,
DFC755CB1527EC54009F4137 /* col-34.png in Resources */,
DFC755CC1527EC54009F4137 /* col-34@2x.png in Resources */,
@@ -1247,7 +1247,9 @@
DFCB1639153FB02700936D28 /* button-input-menu.png in Resources */,
DFA5BD8618623C0B00F11F5F /* Default-New-Landscape.png in Resources */,
DFCB163A153FB02700936D28 /* button-input-menu@2x.png in Resources */,
+ C3A4D0AF28FF975E00FE34E5 /* DisplayText.storyboard in Resources */,
DFA5BD6A1860F4B900F11F5F /* Icon-40@2x.png in Resources */,
+ C3A4D0AC28FF975E00FE34E5 /* MainStoryboard.storyboard in Resources */,
DFCB163D153FB03800936D28 /* TextFieldRightView.xib in Resources */,
DFCB169A1544842700936D28 /* Icon-50.png in Resources */,
DFCB169B1544842700936D28 /* Icon-50@2x.png in Resources */,
@@ -1282,13 +1284,12 @@
DFD1D7401555E6540091E8EB /* lead-wide@2x.png in Resources */,
DF53C4411559E4D800709FC2 /* more-arrow.png in Resources */,
DF53C4441559E4EA00709FC2 /* more-arrow@2x.png in Resources */,
- DF29B827155AE4D2009DA4BE /* SettingsVC.xib in Resources */,
DF29B82C155AE576009DA4BE /* tabicon-settings.png in Resources */,
DF29B82D155AE576009DA4BE /* tabicon-settings@2x.png in Resources */,
- DF29B832155B051B009DA4BE /* WebDocVC.xib in Resources */,
DF564933158909F1002A52E2 /* Default-Landscape.png in Resources */,
+ C3A4D0AB28FF975E00FE34E5 /* ShareFiles.storyboard in Resources */,
DF564934158909F1002A52E2 /* Default-Portrait.png in Resources */,
- DF19E97F1E0622F6005C3ED7 /* ShareFilesVC.xib in Resources */,
+ C3A4D0B128FF978600FE34E5 /* Media.xcassets in Resources */,
DF564935158909F1002A52E2 /* Default.png in Resources */,
DF56494115894112002A52E2 /* brightness-hi.png in Resources */,
DF56494215894112002A52E2 /* brightness-lo.png in Resources */,
@@ -1322,7 +1323,6 @@
DF9A839014E0CD7C002C2FCB /* IosGlkAppDelegate.m in Sources */,
DF9A839114E0CD7C002C2FCB /* IosGlkViewController.m in Sources */,
DF9A839214E0CD7C002C2FCB /* RelDateFormatter.m in Sources */,
- DF9A839314E0CD7C002C2FCB /* StyledTextView.m in Sources */,
DF9A83A514E0CD8D002C2FCB /* Geometry.m in Sources */,
DF9A83A614E0CD8D002C2FCB /* GlkFileRef.m in Sources */,
DF9A83A714E0CD8D002C2FCB /* GlkFileTypes.m in Sources */,
@@ -1348,6 +1348,7 @@
DF9A844414E0D994002C2FCB /* babel.c in Sources */,
DF9A844514E0D994002C2FCB /* blockbuf.c in Sources */,
DF9A844614E0D994002C2FCB /* blorb.c in Sources */,
+ C34235A7293797070054CB78 /* IosGlkTabBarControllerDelegate.m in Sources */,
DF9A844714E0D994002C2FCB /* cmd_hst.c in Sources */,
DF9A844814E0D994002C2FCB /* config.c in Sources */,
DF9A844914E0D994002C2FCB /* debugger.c in Sources */,
@@ -1371,7 +1372,9 @@
DF9A845C14E0D994002C2FCB /* text.c in Sources */,
DF9A845D14E0D994002C2FCB /* undo.c in Sources */,
DF9A845E14E0D994002C2FCB /* variable.c in Sources */,
+ C31C79B62906A6260030F3AC /* GlkEventState.m in Sources */,
DF9A845F14E0D994002C2FCB /* wordwrap.c in Sources */,
+ C34235A4293796FC0054CB78 /* IosGlkSceneDelegate.m in Sources */,
DF9A846014E0D994002C2FCB /* zpu.c in Sources */,
DF9A846714E0D994002C2FCB /* libfizmo_locales.c in Sources */,
DF9A847114E0D994002C2FCB /* filesys.c in Sources */,
@@ -1389,6 +1392,7 @@
DF19DDD714E89F8A007DCB29 /* InputMenuView.m in Sources */,
DF19DDD814E89F8A007DCB29 /* IosGlkLibDelegate.m in Sources */,
DF19DDE314E8A950007DCB29 /* FizmoGlkDelegate.m in Sources */,
+ C34235AA293797180054CB78 /* GlkWindowViewUIState.m in Sources */,
DF19DDF914EA0776007DCB29 /* FizmoGlkViewController.m in Sources */,
DFEFAC2E14F1E0E50062859F /* HelpViewController.m in Sources */,
DF1F3FEF14F1FD19008FF1C7 /* NotesViewController.m in Sources */,
@@ -1400,9 +1404,9 @@
DF361B7014FAAFED00A8D670 /* MoreBoxView.m in Sources */,
DF1DCC0E14FDC4C7001660B9 /* GlkWindowState.m in Sources */,
DF1DCC1214FDC8B2001660B9 /* GlkLibraryState.m in Sources */,
- DF8FD3F51500AA8C00890116 /* TextSelectView.m in Sources */,
DF19E97D1E06209D005C3ED7 /* ShareFilesViewController.m in Sources */,
DFB7A71C151EBDC500C07499 /* GradientView.m in Sources */,
+ C34235AD29379B420054CB78 /* FIzmoGlkTabBarControllerDelegate.m in Sources */,
DFDFBD4B151F7DFD0053783F /* GlkAccessTypes.m in Sources */,
DFDA85DD153545DC00891B91 /* ios-autosave.m in Sources */,
DF188B9315479A3000CC6929 /* GameOverView.m in Sources */,
@@ -1410,6 +1414,7 @@
DF2247D11551D97C002EBC30 /* FizmoGameOverView.m in Sources */,
DF2247DA1551E15E002EBC30 /* ios-restart.m in Sources */,
DF29B823155AE24E009DA4BE /* SettingsViewController.m in Sources */,
+ C34235B029379F6F0054CB78 /* UnderlinedTextView.m in Sources */,
DF29B830155B0351009DA4BE /* DisplayWebViewController.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
@@ -1441,14 +1446,6 @@
name = FatalGameOverView.xib;
sourceTree = "";
};
- DF29B829155AE4D2009DA4BE /* SettingsVC.xib */ = {
- isa = PBXVariantGroup;
- children = (
- DFAC4C7D23BB35270063C565 /* Base */,
- );
- name = SettingsVC.xib;
- sourceTree = "";
- };
DFCB15D6153E158800936D28 /* Localizable.strings */ = {
isa = PBXVariantGroup;
children = (
@@ -1475,22 +1472,6 @@
path = iosglk/Resources;
sourceTree = SOURCE_ROOT;
};
- DFCB1640153FB13700936D28 /* NotesVC.xib */ = {
- isa = PBXVariantGroup;
- children = (
- DFAC4C7E23BB35270063C565 /* Base */,
- );
- name = NotesVC.xib;
- sourceTree = "";
- };
- DFCB1643153FB13C00936D28 /* NotesVC~ipad.xib */ = {
- isa = PBXVariantGroup;
- children = (
- DFAC4C7F23BB35270063C565 /* Base */,
- );
- name = "NotesVC~ipad.xib";
- sourceTree = "";
- };
DFCB1646153FB14A00936D28 /* PrefsMenuView.xib */ = {
isa = PBXVariantGroup;
children = (
@@ -1527,12 +1508,13 @@
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
- "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "Apple Development: Petter Sjolund (B48XUPZHD9)";
COPY_PHASE_STRIP = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
@@ -1555,7 +1537,7 @@
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
HEADER_SEARCH_PATHS = fizmo/libfizmo/src;
- IPHONEOS_DEPLOYMENT_TARGET = 8.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 13.0;
ONLY_ACTIVE_ARCH = YES;
OTHER_LDFLAGS = "-weak-lSystem";
SDKROOT = iphoneos;
@@ -1580,12 +1562,13 @@
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
- "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "Apple Development: Petter Sjolund (B48XUPZHD9)";
COPY_PHASE_STRIP = YES;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
@@ -1600,7 +1583,7 @@
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
HEADER_SEARCH_PATHS = fizmo/libfizmo/src;
- IPHONEOS_DEPLOYMENT_TARGET = 8.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 13.0;
OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1";
OTHER_LDFLAGS = "-weak-lSystem";
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "";
@@ -1613,14 +1596,18 @@
DFA0DF9B14E0B41900B67057 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
+ CLANG_ENABLE_OBJC_ARC = YES;
CLANG_ENABLE_OBJC_WEAK = YES;
- DEVELOPMENT_TEAM = BK75QRDQ9E;
+ CODE_SIGN_IDENTITY = "Apple Development";
+ CODE_SIGN_STYLE = Automatic;
+ DEVELOPMENT_TEAM = 6U7YY3724Y;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "IosFizmo-Prefix.pch";
GCC_THUMB_SUPPORT = NO;
INFOPLIST_FILE = "IosFizmo-Info.plist";
PRODUCT_BUNDLE_IDENTIFIER = com.eblong.iosfizmotest;
PRODUCT_NAME = "$(TARGET_NAME)";
+ PROVISIONING_PROFILE_SPECIFIER = "";
WRAPPER_EXTENSION = app;
};
name = Debug;
@@ -1628,14 +1615,18 @@
DFA0DF9C14E0B41900B67057 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
+ CLANG_ENABLE_OBJC_ARC = YES;
CLANG_ENABLE_OBJC_WEAK = YES;
- DEVELOPMENT_TEAM = BK75QRDQ9E;
+ CODE_SIGN_IDENTITY = "Apple Development";
+ CODE_SIGN_STYLE = Automatic;
+ DEVELOPMENT_TEAM = 6U7YY3724Y;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "IosFizmo-Prefix.pch";
GCC_THUMB_SUPPORT = NO;
INFOPLIST_FILE = "IosFizmo-Info.plist";
PRODUCT_BUNDLE_IDENTIFIER = com.eblong.iosfizmotest;
PRODUCT_NAME = "$(TARGET_NAME)";
+ PROVISIONING_PROFILE_SPECIFIER = "";
WRAPPER_EXTENSION = app;
};
name = Release;
diff --git a/IosFizmo.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/IosFizmo.xcodeproj/project.xcworkspace/contents.xcworkspacedata
new file mode 100644
index 0000000..919434a
--- /dev/null
+++ b/IosFizmo.xcodeproj/project.xcworkspace/contents.xcworkspacedata
@@ -0,0 +1,7 @@
+
+
+
+
+
diff --git a/IosFizmo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/IosFizmo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
new file mode 100644
index 0000000..18d9810
--- /dev/null
+++ b/IosFizmo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
@@ -0,0 +1,8 @@
+
+
+
+
+ IDEDidComputeMac32BitWarning
+
+
+
diff --git a/IosFizmo.xcodeproj/project.xcworkspace/xcuserdata/administrator.xcuserdatad/UserInterfaceState.xcuserstate b/IosFizmo.xcodeproj/project.xcworkspace/xcuserdata/administrator.xcuserdatad/UserInterfaceState.xcuserstate
new file mode 100644
index 0000000..b84f9ff
Binary files /dev/null and b/IosFizmo.xcodeproj/project.xcworkspace/xcuserdata/administrator.xcuserdatad/UserInterfaceState.xcuserstate differ
diff --git a/Resources/Base.lproj/FatalGameOverView.xib b/Resources/Base.lproj/FatalGameOverView.xib
index c604d76..d9bcce5 100644
--- a/Resources/Base.lproj/FatalGameOverView.xib
+++ b/Resources/Base.lproj/FatalGameOverView.xib
@@ -1,223 +1,56 @@
-
-
- 1536
- 12C60
- 2844
- 1187.34
- 625.00
-
-
- IBProxyObject
- IBUIButton
- IBUILabel
- IBUIView
-
-
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
-
-
-
-
-
-
-
-
-
-
- container
-
-
-
- 20
-
-
-
- handleQuitButton:
-
-
- 7
-
- 66
-
-
-
-
-
- 0
-
-
-
-
-
- 1
-
-
-
-
-
-
- Container
-
-
- -1
-
-
- File's Owner
-
-
- -2
-
-
-
-
- 60
-
-
-
-
- 65
-
-
-
-
-
-
- FizmoGameOverView
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- UIResponder
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- MButton
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
-
-
-
-
-
- 66
-
-
- 0
- IBIPadFramework
-
- com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS
-
-
-
- com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3
-
-
- YES
- 3
-
- {32, 32}
- {32, 32}
-
- 1930
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Resources/Base.lproj/GameOverView.xib b/Resources/Base.lproj/GameOverView.xib
index 706dcd7..e7123d1 100644
--- a/Resources/Base.lproj/GameOverView.xib
+++ b/Resources/Base.lproj/GameOverView.xib
@@ -1,267 +1,71 @@
-
-
- 1536
- 12C60
- 2844
- 1187.34
- 625.00
-
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- 1930
-
-
- IBProxyObject
- IBUIButton
- IBUILabel
- IBUIView
-
-
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
-
- PluginDependencyRecalculationVersion
-
-
-
-
- IBFilesOwner
- IBIPadFramework
-
-
- IBFirstResponder
- IBIPadFramework
-
-
-
- 274
-
-
-
- 306
- {200, 63}
-
-
- _NS:9
- NO
- YES
- 7
- NO
- IBIPadFramework
- The game has ended. You can start over from the beginning, or restore a saved game.
-
- 1
- MCAwIDAAA
- darkTextColor
-
-
- 0
- 10
- 0
- 1
-
- 1
- 14
-
-
- Helvetica
- 14
- 16
-
- 200
-
-
-
- 269
- {{50, 71}, {100, 37}}
-
-
- _NS:9
- NO
- IBIPadFramework
- 0
- 0
- Restart
-
- 1
- MC4xNjg5ODk2ODgyIDAuMTAxNzU0NTE2NCAwLjA0MzgzMTk3Nzk5AA
-
-
- 1
- MC40NDQzMjI4MjQ1IDAuMzEzNDIzMTI2OSAwLjE5MzIyNzYwNAA
-
-
- 3
- MC41AA
-
-
- NSImage
- button-pref-hi.png
-
-
- NSImage
- button-pref-base.png
-
-
- 2
- 15
-
-
- Helvetica-Bold
- 15
- 16
-
-
-
-
- 269
- {{50, 116}, {100, 37}}
-
- _NS:9
- NO
- IBIPadFramework
- 0
- 0
- Restore
-
- 1
- MC4xNjg5ODk2ODgyIDAuMTAxNzU0NTE2NCAwLjA0MzgzMTk3Nzk5AA
-
-
- 1
- MC40NDQzMjI4MjQ1IDAuMzEzNDIzMTI2OSAwLjE5MzIyNzYwNAA
-
-
-
-
-
-
-
-
- {200, 153}
-
-
-
- 3
- MCAwAA
-
- NO
- IBIPadFramework
-
-
-
-
-
-
- container
-
-
-
- 20
-
-
-
- handleRestartButton:
-
-
- 7
-
- 61
-
-
-
- handleRestoreButton:
-
-
- 7
-
- 64
-
-
-
-
-
- 0
-
-
-
-
-
- 1
-
-
-
-
-
-
-
- Container
-
-
- -1
-
-
- File's Owner
-
-
- -2
-
-
-
-
- 28
-
-
-
-
- 60
-
-
-
-
- 62
-
-
-
-
-
-
- FizmoGameOverView
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- UIResponder
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- MButton
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- MButton
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
-
-
-
-
-
- 64
-
-
- 0
- IBIPadFramework
-
- com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS
-
-
-
- com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3
-
-
- YES
- 3
-
- {32, 32}
- {32, 32}
-
- 1930
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Resources/Base.lproj/NotesVC.xib b/Resources/Base.lproj/NotesVC.xib
deleted file mode 100644
index d91652b..0000000
--- a/Resources/Base.lproj/NotesVC.xib
+++ /dev/null
@@ -1,259 +0,0 @@
-
-
-
- 1536
- 12C60
- 2844
- 1187.34
- 625.00
-
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- 1930
-
-
- IBProxyObject
- IBUITableView
- IBUITextView
- IBUIView
-
-
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
-
- PluginDependencyRecalculationVersion
-
-
-
-
- IBFilesOwner
- IBCocoaTouchFramework
-
-
- IBFirstResponder
- IBCocoaTouchFramework
-
-
-
- 274
-
-
-
- 274
- {320, 416}
-
-
- _NS:9
-
- 1
- MC45NDc0Njg0IDAuOTE2OTIzMDQ2MSAwLjczNTg3OTI0MjQAA
-
- NO
- NO
- IBCocoaTouchFramework
-
-
-
- 274
- {320, 416}
-
-
- _NS:9
-
- 3
- MCAwAA
-
- NO
- YES
- YES
- IBCocoaTouchFramework
- YES
- TXkgam91cm5leSBiZWdhbi4uLgooWW91IGNhbiB0YWtlIG5vdGVzIG9uIHRoaXMgcGFnZS4pA
-
- 2
- 1
- IBCocoaTouchFramework
-
-
- Noteworthy-Bold
- Noteworthy
- 2
- 14
-
-
- Noteworthy-Bold
- 14
- 16
-
-
-
-
- 290
- {320, 38}
-
- _NS:9
-
- 3
- MQA
-
- YES
- IBCocoaTouchFramework
- NO
- NO
- NO
- NO
- 1
- 0
- YES
- 38
- 22
- 22
-
-
- {{0, 64}, {320, 416}}
-
-
-
- 3
- MQA
-
- 2
-
-
-
-
- NO
-
- IBCocoaTouchFramework
-
-
-
-
-
-
- view
-
-
-
- 3
-
-
-
- textview
-
-
-
- 7
-
-
-
- gradview
-
-
-
- 9
-
-
-
- buttontable
-
-
-
- 19
-
-
-
- dataSource
-
-
-
- 21
-
-
-
- delegate
-
-
-
- 22
-
-
-
-
-
- 0
-
-
-
-
-
- 1
-
-
-
-
-
-
-
-
-
- -1
-
-
- File's Owner
-
-
- -2
-
-
-
-
- 6
-
-
-
-
- 8
-
-
-
-
- 18
-
-
-
-
-
-
- NotesViewController
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- UIResponder
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- GradientView
-
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
-
-
-
-
- 22
-
-
- 0
- IBCocoaTouchFramework
-
- com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS
-
-
-
- com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3
-
-
- YES
- 3
- 1930
-
-
diff --git a/Resources/Base.lproj/NotesVC~ipad.xib b/Resources/Base.lproj/NotesVC~ipad.xib
deleted file mode 100644
index 44dba35..0000000
--- a/Resources/Base.lproj/NotesVC~ipad.xib
+++ /dev/null
@@ -1,261 +0,0 @@
-
-
-
- 1536
- 12C60
- 2844
- 1187.34
- 625.00
-
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- 1930
-
-
- IBProxyObject
- IBUITableView
- IBUITextView
- IBUIView
-
-
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
-
- PluginDependencyRecalculationVersion
-
-
-
-
- IBFilesOwner
- IBCocoaTouchFramework
-
-
- IBFirstResponder
- IBCocoaTouchFramework
-
-
-
- 274
-
-
-
- 274
- {320, 416}
-
-
- _NS:9
-
- 1
- MC45NDc0Njg0IDAuOTE2OTIzMDQ2MSAwLjczNTg3OTI0MjQAA
-
- NO
- NO
- IBCocoaTouchFramework
-
-
-
- 274
- {320, 416}
-
-
- _NS:9
-
- 3
- MCAwAA
-
- NO
- YES
- YES
- IBCocoaTouchFramework
- YES
- TXkgam91cm5leSBiZWdhbi4uLgoKKFlvdSBjYW4gdGFrZSBub3RlcyBvbiB0aGlzIHBhZ2UuKQ
-
- 2
- 1
- IBCocoaTouchFramework
-
-
- Noteworthy-Bold
- Noteworthy
- 2
- 16
-
-
- Noteworthy-Bold
- 16
- 16
-
-
-
-
- 290
- {320, 92}
-
- _NS:9
-
- 1
- MCAwIDAgMAA
- groupTableViewBackgroundColor
-
- YES
- IBCocoaTouchFramework
- NO
- NO
- NO
- NO
- 1
- 2
- 0
- YES
- 44
- 2
- 2
-
-
- {{0, 64}, {320, 416}}
-
-
-
- 3
- MQA
-
- 2
-
-
-
-
- NO
-
- IBCocoaTouchFramework
-
-
-
-
-
-
- view
-
-
-
- 3
-
-
-
- textview
-
-
-
- 7
-
-
-
- gradview
-
-
-
- 9
-
-
-
- buttontable
-
-
-
- 22
-
-
-
- dataSource
-
-
-
- 24
-
-
-
- delegate
-
-
-
- 25
-
-
-
-
-
- 0
-
-
-
-
-
- 1
-
-
-
-
-
-
-
-
-
- -1
-
-
- File's Owner
-
-
- -2
-
-
-
-
- 6
-
-
-
-
- 8
-
-
-
-
- 15
-
-
-
-
-
-
- NotesViewController
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- UIResponder
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- GradientView
-
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
-
-
-
-
- 25
-
-
- 0
- IBCocoaTouchFramework
-
- com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS
-
-
-
- com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3
-
-
- YES
- 3
- 1930
-
-
diff --git a/Resources/Base.lproj/PrefsMenuView.xib b/Resources/Base.lproj/PrefsMenuView.xib
index 9850077..44571b3 100644
--- a/Resources/Base.lproj/PrefsMenuView.xib
+++ b/Resources/Base.lproj/PrefsMenuView.xib
@@ -1,11 +1,9 @@
-
-
-
-
+
+
-
+
@@ -13,7 +11,6 @@
-
@@ -35,7 +32,7 @@
-
-
+
@@ -67,7 +64,7 @@
-
+
@@ -83,7 +80,7 @@
-
+
@@ -99,7 +96,7 @@
-
+
@@ -114,7 +111,7 @@
-
+
@@ -129,7 +126,7 @@
-
+
@@ -143,12 +140,13 @@
+
-
+
@@ -163,7 +161,7 @@
-
+
@@ -182,14 +180,17 @@
+
-
+
-
+
-
+
+
+
@@ -205,9 +206,11 @@
-
+
-
+
+
+
@@ -223,41 +226,34 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
diff --git a/Resources/Base.lproj/PrefsMenuView~ipad.xib b/Resources/Base.lproj/PrefsMenuView~ipad.xib
index 6f890f3..b5f0d7c 100644
--- a/Resources/Base.lproj/PrefsMenuView~ipad.xib
+++ b/Resources/Base.lproj/PrefsMenuView~ipad.xib
@@ -1,11 +1,9 @@
-
-
-
-
+
+
-
+
@@ -16,7 +14,6 @@
-
@@ -38,7 +35,7 @@
-
+
@@ -54,7 +51,7 @@
-
+
@@ -70,7 +67,7 @@
-
+
@@ -86,7 +83,7 @@
-
+
@@ -102,7 +99,7 @@
-
+
@@ -121,7 +118,7 @@
-
+
@@ -140,7 +137,7 @@
-
+
@@ -159,7 +156,7 @@
-
+
@@ -174,7 +171,7 @@
-
+
@@ -189,7 +186,7 @@
-
+
@@ -203,12 +200,13 @@
+
-
+
@@ -223,7 +221,7 @@
-
+
@@ -242,14 +240,17 @@
+
-
+
-
+
-
+
+
+
@@ -265,9 +266,11 @@
-
+
-
+
+
+
@@ -283,28 +286,20 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
@@ -321,9 +316,4 @@
-
-
-
-
-
diff --git a/Resources/Base.lproj/SettingsVC.xib b/Resources/Base.lproj/SettingsVC.xib
deleted file mode 100644
index 416e8b4..0000000
--- a/Resources/Base.lproj/SettingsVC.xib
+++ /dev/null
@@ -1,250 +0,0 @@
-
-
-
- 1536
- 12C60
- 2844
- 1187.34
- 625.00
-
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- 1930
-
-
- IBProxyObject
- IBUISwitch
- IBUITableView
- IBUIView
-
-
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
-
- PluginDependencyRecalculationVersion
-
-
-
-
- IBFilesOwner
- IBCocoaTouchFramework
-
-
- IBFirstResponder
- IBCocoaTouchFramework
-
-
-
- 274
-
-
-
- 274
- {320, 460}
-
- _NS:9
-
- 1
- MCAwIDAgMAA
- groupTableViewBackgroundColor
-
- YES
- IBCocoaTouchFramework
- 1
- 2
- 0
- YES
- 44
- 10
- 10
-
-
- {{0, 20}, {320, 460}}
-
-
-
- 3
- MC41AA
-
-
- IBCocoaTouchFramework
-
-
-
- 292
- {79, 27}
-
- _NS:9
- NO
- IBCocoaTouchFramework
- 0
- 0
- YES
-
- 1
- MC42MzEyNzUyOTYyIDAuNTAzMjI5NTU4NSAwAA
-
-
-
-
- 292
- {79, 27}
-
- _NS:9
- NO
- IBCocoaTouchFramework
- 0
- 0
- YES
-
- 1
- MC42MzEyNzUyOTYyIDAuNTAzMjI5NTU4NSAwAA
-
-
-
-
-
-
-
- view
-
-
-
- 3
-
-
-
- tableview
-
-
-
- 7
-
-
-
- autocorrectswitch
-
-
-
- 27
-
-
-
- keepopenswitch
-
-
-
- 31
-
-
-
- dataSource
-
-
-
- 12
-
-
-
- delegate
-
-
-
- 13
-
-
-
- handleAutoCorrect:
-
-
- 13
-
- 29
-
-
-
- handleKeepOpen:
-
-
- 13
-
- 32
-
-
-
-
-
- 0
-
-
-
-
-
- 1
-
-
-
-
-
-
-
- -1
-
-
- File's Owner
-
-
- -2
-
-
-
-
- 6
-
-
-
-
- 23
-
-
- Autocorrect Switch
-
-
- 25
-
-
- Keep Open Switch
-
-
-
-
- SettingsViewController
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- UIResponder
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
-
-
-
-
- 32
-
-
- 0
- IBCocoaTouchFramework
-
- com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS
-
-
-
- com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3
-
-
- YES
- 3
- 1930
-
-
diff --git a/Resources/DisplayText.storyboard b/Resources/DisplayText.storyboard
new file mode 100644
index 0000000..93fa6d3
--- /dev/null
+++ b/Resources/DisplayText.storyboard
@@ -0,0 +1,121 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Resources/DisplayTextVC.xib b/Resources/DisplayTextVC.xib
deleted file mode 100644
index ae2acf8..0000000
--- a/Resources/DisplayTextVC.xib
+++ /dev/null
@@ -1,253 +0,0 @@
-
-
-
- 1536
- 12C60
- 2844
- 1187.34
- 625.00
-
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- 1930
-
-
- IBProxyObject
- IBUILabel
- IBUITextView
- IBUIView
-
-
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
-
- PluginDependencyRecalculationVersion
-
-
-
-
- IBFilesOwner
- IBCocoaTouchFramework
-
-
- IBFirstResponder
- IBCocoaTouchFramework
-
-
-
- 274
-
-
-
- 274
- {{0, 26}, {320, 390}}
-
-
- _NS:9
-
- 1
- MSAxIDEAA
-
- YES
- YES
- IBCocoaTouchFramework
- YES
- NO
- Transcript text
-
- 2
- 1
- IBCocoaTouchFramework
-
-
- 1
- 14
-
-
- Helvetica
- 14
- 16
-
-
-
-
- 290
- {{20, 4}, {280, 16}}
-
-
- _NS:9
- NO
- YES
- 7
- NO
- IBCocoaTouchFramework
- Date
-
- 1
- MCAwIDAAA
- darkTextColor
-
-
- 0
- 10
- 2
-
- 3
- 13
-
-
- Helvetica-Oblique
- 13
- 16
-
-
-
-
- 290
- {{20, 4}, {280, 16}}
-
-
- _NS:9
- NO
- YES
- 7
- NO
- IBCocoaTouchFramework
- Title
-
-
- 0
- 10
-
- 2
- 14
-
-
- Helvetica-Bold
- 14
- 16
-
-
-
- {{0, 64}, {320, 416}}
-
-
-
- 1
- MC44NTE1NDc4Njk5IDAuODAwNjc4ODM5IDAuNTk5MDAyMjIzOAA
-
-
-
- NO
-
- IBCocoaTouchFramework
-
-
-
-
-
-
- view
-
-
-
- 3
-
-
-
- textview
-
-
-
- 7
-
-
-
- titlelabel
-
-
-
- 9
-
-
-
- datelabel
-
-
-
- 11
-
-
-
-
-
- 0
-
-
-
-
-
- 1
-
-
-
-
-
-
-
-
-
- -1
-
-
- File's Owner
-
-
- -2
-
-
-
-
- 6
-
-
-
-
- 8
-
-
-
-
- 10
-
-
-
-
-
-
- DisplayTextViewController
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- UIResponder
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
-
-
-
-
- 11
-
-
- 0
- IBCocoaTouchFramework
-
- com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3
-
-
- YES
- 3
- 1930
-
-
diff --git a/Resources/GlkFileSelect.storyboard b/Resources/GlkFileSelect.storyboard
new file mode 100644
index 0000000..4b656d2
--- /dev/null
+++ b/Resources/GlkFileSelect.storyboard
@@ -0,0 +1,183 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Resources/HelpVC.xib b/Resources/HelpVC.xib
deleted file mode 100644
index fb16912..0000000
--- a/Resources/HelpVC.xib
+++ /dev/null
@@ -1,147 +0,0 @@
-
-
-
- 1536
- 12C60
- 2844
- 1187.34
- 625.00
-
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- 1930
-
-
- IBProxyObject
- IBUIView
- IBUIWebView
-
-
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
-
- PluginDependencyRecalculationVersion
-
-
-
-
- IBFilesOwner
- IBCocoaTouchFramework
-
-
- IBFirstResponder
- IBCocoaTouchFramework
-
-
-
- 274
-
-
-
- 274
- {320, 460}
-
- _NS:693
-
- 3
- MC41AA
-
- 2
-
-
- IBCocoaTouchFramework
-
-
- {{0, 20}, {320, 460}}
-
-
-
- 3
- MC41AA
-
-
- IBCocoaTouchFramework
-
-
-
-
-
-
- view
-
-
-
- 3
-
-
-
- webview
-
-
-
- 5
-
-
-
-
-
- 0
-
-
-
-
-
- 1
-
-
-
-
-
-
-
- -1
-
-
- File's Owner
-
-
- -2
-
-
-
-
- 4
-
-
-
-
-
-
- HelpViewController
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- UIResponder
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
-
-
-
-
- 5
-
-
- 0
- IBCocoaTouchFramework
-
- com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS
-
-
-
- com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3
-
-
- YES
- 3
- 1930
-
-
diff --git a/Resources/IosGlkViewController.xib b/Resources/IosGlkViewController.xib
deleted file mode 100644
index f9ce7fe..0000000
--- a/Resources/IosGlkViewController.xib
+++ /dev/null
@@ -1,144 +0,0 @@
-
-
-
- 1536
- 12C60
- 2844
- 1187.34
- 625.00
-
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- 1930
-
-
- IBProxyObject
- IBUIView
-
-
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
-
- PluginDependencyRecalculationVersion
-
-
-
-
- IBFilesOwner
- IBCocoaTouchFramework
-
-
- IBFirstResponder
- IBCocoaTouchFramework
-
-
-
- 274
-
-
-
- 274
- {320, 460}
-
- _NS:196
-
- 3
- MQA
-
- NO
- IBCocoaTouchFramework
-
-
- {{0, 20}, {320, 460}}
-
-
- 3
- MC42OTA2OTc2NzQ0AA
-
-
- IBCocoaTouchFramework
-
-
-
-
-
-
- view
-
-
-
- 7
-
-
-
- frameview
-
-
-
- 11
-
-
-
-
-
- 0
-
-
-
-
-
- -1
-
-
- File's Owner
-
-
- -2
-
-
-
-
- 6
-
-
-
-
-
-
-
- 10
-
-
-
-
-
-
- IosGlkViewController
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- UIResponder
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- GlkFrameView
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
-
-
-
-
- 11
-
-
- 0
- IBCocoaTouchFramework
-
- com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS
-
-
-
- com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3
-
-
- YES
- 3
- 1930
-
-
diff --git a/Resources/Launch Screen.storyboard b/Resources/Launch Screen.storyboard
new file mode 100644
index 0000000..8bd60f8
--- /dev/null
+++ b/Resources/Launch Screen.storyboard
@@ -0,0 +1,147 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Resources/MainStoryboard.storyboard b/Resources/MainStoryboard.storyboard
new file mode 100644
index 0000000..5800ffa
--- /dev/null
+++ b/Resources/MainStoryboard.storyboard
@@ -0,0 +1,397 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ My journey began...
+(You can take notes on this page.)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Resources/MainWindow.xib b/Resources/MainWindow.xib
deleted file mode 100644
index 365e0e9..0000000
--- a/Resources/MainWindow.xib
+++ /dev/null
@@ -1,665 +0,0 @@
-
-
-
- 1536
- 12C60
- 2844
- 1187.34
- 625.00
-
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- 1930
-
-
- IBProxyObject
- IBUIBarButtonItem
- IBUICustomObject
- IBUINavigationBar
- IBUINavigationController
- IBUINavigationItem
- IBUITabBar
- IBUITabBarController
- IBUITabBarItem
- IBUIViewController
- IBUIWindow
-
-
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
-
- PluginDependencyRecalculationVersion
-
-
-
-
- IBFilesOwner
- IBCocoaTouchFramework
-
-
- IBFirstResponder
- IBCocoaTouchFramework
-
-
- IBCocoaTouchFramework
-
-
-
- 292
- {320, 480}
-
- 1
- MSAxIDEAA
-
- NO
- NO
-
- IBCocoaTouchFramework
- YES
-
-
-
-
- NO
-
-
-
- 1
- 1
-
- YES
- IBCocoaTouchFramework
- NO
-
-
- Notes
-
- NSImage
- tabicon-notes.png
-
- IBCocoaTouchFramework
-
-
-
-
- 1
- 1
-
- YES
- IBCocoaTouchFramework
- NO
-
-
- 256
- {0, 0}
- _NS:451
- NO
- YES
- YES
- IBCocoaTouchFramework
-
-
-
-
- My Notes
-
-
- NSImage
- baricon-edit.png
-
- IBCocoaTouchFramework
- 1
-
-
- IBCocoaTouchFramework
-
-
- NotesVC
-
- 1
- 1
-
- IBCocoaTouchFramework
- NO
-
-
-
-
-
-
- Game
-
- NSImage
- tabicon-game.png
-
- IBCocoaTouchFramework
-
-
-
-
- 1
- 1
-
- YES
- IBCocoaTouchFramework
- NO
-
-
- 256
- {0, 0}
- _NS:451
- NO
- YES
- YES
- IBCocoaTouchFramework
-
-
-
-
- -
-
-
- NSImage
- baricon-styles.png
-
- IBCocoaTouchFramework
- 1
-
-
-
-
- IBCocoaTouchFramework
- 1
-
-
- IBCocoaTouchFramework
-
-
- IosGlkViewController
-
-
- 1
- 1
-
- IBCocoaTouchFramework
- NO
-
-
-
-
-
-
- Help
-
- NSImage
- tabicon-help.png
-
- IBCocoaTouchFramework
-
-
-
-
- 1
- 1
-
- YES
- IBCocoaTouchFramework
- NO
-
-
- 256
- {0, 0}
- _NS:451
- NO
- YES
- YES
- IBCocoaTouchFramework
-
-
-
-
- How to Play
- IBCocoaTouchFramework
-
-
- HelpVC
-
- 1
- 1
-
- IBCocoaTouchFramework
- NO
-
-
-
-
-
- Settings
-
- NSImage
- tabicon-settings.png
-
- IBCocoaTouchFramework
-
-
-
-
- 1
- 1
-
- YES
- IBCocoaTouchFramework
- NO
-
-
- 256
- {0, 0}
- _NS:15
- NO
- YES
- YES
- IBCocoaTouchFramework
-
-
-
-
- Settings
- IBCocoaTouchFramework
-
-
- SettingsVC
-
- 1
- 1
-
- IBCocoaTouchFramework
- NO
-
-
-
-
-
-
- 266
- {{0, 431}, {320, 49}}
-
- _NS:473
-
- 3
- MCAwAA
-
- IBCocoaTouchFramework
-
-
-
- IBCocoaTouchFramework
-
-
-
-
-
-
- delegate
-
-
-
- 4
-
-
-
- window
-
-
-
- 14
-
-
-
- rootviewc
-
-
-
- 46
-
-
-
- glkviewc
-
-
-
- 16
-
-
-
- glkdelegate
-
-
-
- 28
-
-
-
- notesvc
-
-
-
- 69
-
-
-
- settingsvc
-
-
-
- 77
-
-
-
- toggleKeyboard
-
-
-
- 26
-
-
-
- showPreferences
-
-
-
- 38
-
-
-
- delegate
-
-
-
- 71
-
-
-
- toggleKeyboard
-
-
-
- 68
-
-
-
-
-
- 0
-
-
-
-
-
- -1
-
-
- File's Owner
-
-
- 3
-
-
- IosGlk App Delegate
-
-
- -2
-
-
-
-
- 12
-
-
-
-
- 27
-
-
-
-
- 40
-
-
-
-
-
-
-
-
-
-
-
- 41
-
-
-
-
- 47
-
-
-
-
-
-
-
-
-
- 48
-
-
-
-
- 51
-
-
-
-
- 10
-
-
-
-
-
-
-
- 22
-
-
-
-
-
-
-
-
- 31
-
-
-
-
- 24
-
-
-
-
- 52
-
-
-
-
-
-
-
-
-
- 53
-
-
-
-
- 54
-
-
-
-
-
-
-
- 55
-
-
-
-
-
-
-
- 56
-
-
-
-
- 57
-
-
-
-
-
-
-
-
-
- 58
-
-
-
-
- 59
-
-
-
-
-
-
-
- 60
-
-
-
-
- 61
-
-
-
-
- 66
-
-
-
-
- 72
-
-
-
-
-
-
-
-
-
- 73
-
-
-
-
- 74
-
-
-
-
-
-
-
- 75
-
-
-
-
- 76
-
-
-
-
-
-
- UIApplication
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- UIResponder
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- FizmoGlkViewController
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- FizmoGlkDelegate
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- IosGlkAppDelegate
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- NotesViewController
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- HelpViewController
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- SettingsViewController
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
-
-
-
-
- 77
-
-
- 0
- IBCocoaTouchFramework
-
- com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS
-
-
-
- com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3
-
-
- YES
- 3
-
- {28, 20}
- {28, 20}
- {30, 30}
- {30, 30}
- {30, 30}
- {30, 30}
-
- 1930
-
-
diff --git a/Resources/Media.xcassets/Contents.json b/Resources/Media.xcassets/Contents.json
new file mode 100644
index 0000000..73c0059
--- /dev/null
+++ b/Resources/Media.xcassets/Contents.json
@@ -0,0 +1,6 @@
+{
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Media.xcassets/Media/AppIcon.appiconset/Contents.json b/Resources/Media.xcassets/Media/AppIcon.appiconset/Contents.json
new file mode 100644
index 0000000..4acc1b3
--- /dev/null
+++ b/Resources/Media.xcassets/Media/AppIcon.appiconset/Contents.json
@@ -0,0 +1,82 @@
+{
+ "images" : [
+ {
+ "filename" : "iTunesArtwork.png",
+ "idiom" : "universal",
+ "platform" : "ios",
+ "size" : "1024x1024"
+ },
+ {
+ "idiom" : "iphone",
+ "scale" : "2x",
+ "size" : "20x20"
+ },
+ {
+ "idiom" : "iphone",
+ "scale" : "3x",
+ "size" : "20x20"
+ },
+ {
+ "filename" : "Icon-Small.png",
+ "idiom" : "iphone",
+ "scale" : "1x",
+ "size" : "29x29"
+ },
+ {
+ "filename" : "Icon-Small@2x.png",
+ "idiom" : "iphone",
+ "scale" : "2x",
+ "size" : "29x29"
+ },
+ {
+ "idiom" : "iphone",
+ "scale" : "3x",
+ "size" : "29x29"
+ },
+ {
+ "filename" : "Icon-40@2x.png",
+ "idiom" : "iphone",
+ "scale" : "2x",
+ "size" : "40x40"
+ },
+ {
+ "filename" : "Icon-60@2x 1.png",
+ "idiom" : "iphone",
+ "scale" : "3x",
+ "size" : "40x40"
+ },
+ {
+ "filename" : "Icon.png",
+ "idiom" : "iphone",
+ "scale" : "1x",
+ "size" : "57x57"
+ },
+ {
+ "filename" : "Icon@2x.png",
+ "idiom" : "iphone",
+ "scale" : "2x",
+ "size" : "57x57"
+ },
+ {
+ "filename" : "Icon-60@2x.png",
+ "idiom" : "iphone",
+ "scale" : "2x",
+ "size" : "60x60"
+ },
+ {
+ "idiom" : "iphone",
+ "scale" : "3x",
+ "size" : "60x60"
+ },
+ {
+ "filename" : "iTunesArtwork 1.png",
+ "idiom" : "ios-marketing",
+ "scale" : "1x",
+ "size" : "1024x1024"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Media.xcassets/Media/AppIcon.appiconset/Icon-40@2x.png b/Resources/Media.xcassets/Media/AppIcon.appiconset/Icon-40@2x.png
new file mode 100644
index 0000000..15a2b4f
Binary files /dev/null and b/Resources/Media.xcassets/Media/AppIcon.appiconset/Icon-40@2x.png differ
diff --git a/Resources/Media.xcassets/Media/AppIcon.appiconset/Icon-60@2x 1.png b/Resources/Media.xcassets/Media/AppIcon.appiconset/Icon-60@2x 1.png
new file mode 100644
index 0000000..43b3676
Binary files /dev/null and b/Resources/Media.xcassets/Media/AppIcon.appiconset/Icon-60@2x 1.png differ
diff --git a/Resources/Media.xcassets/Media/AppIcon.appiconset/Icon-60@2x.png b/Resources/Media.xcassets/Media/AppIcon.appiconset/Icon-60@2x.png
new file mode 100644
index 0000000..43b3676
Binary files /dev/null and b/Resources/Media.xcassets/Media/AppIcon.appiconset/Icon-60@2x.png differ
diff --git a/Resources/Media.xcassets/Media/AppIcon.appiconset/Icon-Small.png b/Resources/Media.xcassets/Media/AppIcon.appiconset/Icon-Small.png
new file mode 100644
index 0000000..92f3ece
Binary files /dev/null and b/Resources/Media.xcassets/Media/AppIcon.appiconset/Icon-Small.png differ
diff --git a/Resources/Media.xcassets/Media/AppIcon.appiconset/Icon-Small@2x.png b/Resources/Media.xcassets/Media/AppIcon.appiconset/Icon-Small@2x.png
new file mode 100644
index 0000000..525af71
Binary files /dev/null and b/Resources/Media.xcassets/Media/AppIcon.appiconset/Icon-Small@2x.png differ
diff --git a/Resources/Media.xcassets/Media/AppIcon.appiconset/Icon.png b/Resources/Media.xcassets/Media/AppIcon.appiconset/Icon.png
new file mode 100644
index 0000000..f29a064
Binary files /dev/null and b/Resources/Media.xcassets/Media/AppIcon.appiconset/Icon.png differ
diff --git a/Resources/Media.xcassets/Media/AppIcon.appiconset/Icon@2x.png b/Resources/Media.xcassets/Media/AppIcon.appiconset/Icon@2x.png
new file mode 100644
index 0000000..446bb75
Binary files /dev/null and b/Resources/Media.xcassets/Media/AppIcon.appiconset/Icon@2x.png differ
diff --git a/Resources/Media.xcassets/Media/AppIcon.appiconset/iTunesArtwork 1.png b/Resources/Media.xcassets/Media/AppIcon.appiconset/iTunesArtwork 1.png
new file mode 100644
index 0000000..71b0555
Binary files /dev/null and b/Resources/Media.xcassets/Media/AppIcon.appiconset/iTunesArtwork 1.png differ
diff --git a/Resources/Media.xcassets/Media/AppIcon.appiconset/iTunesArtwork.png b/Resources/Media.xcassets/Media/AppIcon.appiconset/iTunesArtwork.png
new file mode 100644
index 0000000..71b0555
Binary files /dev/null and b/Resources/Media.xcassets/Media/AppIcon.appiconset/iTunesArtwork.png differ
diff --git a/Resources/Media.xcassets/Media/Contents.json b/Resources/Media.xcassets/Media/Contents.json
new file mode 100644
index 0000000..73c0059
--- /dev/null
+++ b/Resources/Media.xcassets/Media/Contents.json
@@ -0,0 +1,6 @@
+{
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Media.xcassets/Media/CustomBackground.colorset/Contents.json b/Resources/Media.xcassets/Media/CustomBackground.colorset/Contents.json
new file mode 100644
index 0000000..0425637
--- /dev/null
+++ b/Resources/Media.xcassets/Media/CustomBackground.colorset/Contents.json
@@ -0,0 +1,38 @@
+{
+ "colors" : [
+ {
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "1.000",
+ "green" : "1.000",
+ "red" : "1.000"
+ }
+ },
+ "idiom" : "universal"
+ },
+ {
+ "appearances" : [
+ {
+ "appearance" : "luminosity",
+ "value" : "dark"
+ }
+ ],
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0.000",
+ "green" : "0.000",
+ "red" : "0.000"
+ }
+ },
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Media.xcassets/Media/CustomCellBackground.colorset/Contents.json b/Resources/Media.xcassets/Media/CustomCellBackground.colorset/Contents.json
new file mode 100644
index 0000000..e86362a
--- /dev/null
+++ b/Resources/Media.xcassets/Media/CustomCellBackground.colorset/Contents.json
@@ -0,0 +1,38 @@
+{
+ "colors" : [
+ {
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0.920",
+ "green" : "0.980",
+ "red" : "1.000"
+ }
+ },
+ "idiom" : "universal"
+ },
+ {
+ "appearances" : [
+ {
+ "appearance" : "luminosity",
+ "value" : "dark"
+ }
+ ],
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0.200",
+ "green" : "0.200",
+ "red" : "0.200"
+ }
+ },
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Media.xcassets/Media/CustomCellText.colorset/Contents.json b/Resources/Media.xcassets/Media/CustomCellText.colorset/Contents.json
new file mode 100644
index 0000000..255c56f
--- /dev/null
+++ b/Resources/Media.xcassets/Media/CustomCellText.colorset/Contents.json
@@ -0,0 +1,38 @@
+{
+ "colors" : [
+ {
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0.000",
+ "green" : "0.215",
+ "red" : "0.350"
+ }
+ },
+ "idiom" : "universal"
+ },
+ {
+ "appearances" : [
+ {
+ "appearance" : "luminosity",
+ "value" : "dark"
+ }
+ ],
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0.800",
+ "green" : "0.800",
+ "red" : "0.800"
+ }
+ },
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Media.xcassets/Media/CustomNoteBackground1.colorset/Contents.json b/Resources/Media.xcassets/Media/CustomNoteBackground1.colorset/Contents.json
new file mode 100644
index 0000000..7e07e6e
--- /dev/null
+++ b/Resources/Media.xcassets/Media/CustomNoteBackground1.colorset/Contents.json
@@ -0,0 +1,38 @@
+{
+ "colors" : [
+ {
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0.651",
+ "green" : "0.992",
+ "red" : "1.000"
+ }
+ },
+ "idiom" : "universal"
+ },
+ {
+ "appearances" : [
+ {
+ "appearance" : "luminosity",
+ "value" : "dark"
+ }
+ ],
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0.349",
+ "green" : "0.008",
+ "red" : "0.000"
+ }
+ },
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Media.xcassets/Media/CustomNoteBackground2.colorset/Contents.json b/Resources/Media.xcassets/Media/CustomNoteBackground2.colorset/Contents.json
new file mode 100644
index 0000000..4690fb8
--- /dev/null
+++ b/Resources/Media.xcassets/Media/CustomNoteBackground2.colorset/Contents.json
@@ -0,0 +1,38 @@
+{
+ "colors" : [
+ {
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0.500",
+ "green" : "1.000",
+ "red" : "1.000"
+ }
+ },
+ "idiom" : "universal"
+ },
+ {
+ "appearances" : [
+ {
+ "appearance" : "luminosity",
+ "value" : "dark"
+ }
+ ],
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0.500",
+ "green" : "0.000",
+ "red" : "0.000"
+ }
+ },
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Media.xcassets/Media/CustomNoteBackground3.colorset/Contents.json b/Resources/Media.xcassets/Media/CustomNoteBackground3.colorset/Contents.json
new file mode 100644
index 0000000..5e7e08f
--- /dev/null
+++ b/Resources/Media.xcassets/Media/CustomNoteBackground3.colorset/Contents.json
@@ -0,0 +1,38 @@
+{
+ "colors" : [
+ {
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0.470",
+ "green" : "0.980",
+ "red" : "0.976"
+ }
+ },
+ "idiom" : "universal"
+ },
+ {
+ "appearances" : [
+ {
+ "appearance" : "luminosity",
+ "value" : "dark"
+ }
+ ],
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0.530",
+ "green" : "0.020",
+ "red" : "0.024"
+ }
+ },
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Media.xcassets/Media/CustomNoteLines.colorset/Contents.json b/Resources/Media.xcassets/Media/CustomNoteLines.colorset/Contents.json
new file mode 100644
index 0000000..92aa282
--- /dev/null
+++ b/Resources/Media.xcassets/Media/CustomNoteLines.colorset/Contents.json
@@ -0,0 +1,38 @@
+{
+ "colors" : [
+ {
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0.805",
+ "green" : "0.814",
+ "red" : "0.821"
+ }
+ },
+ "idiom" : "universal"
+ },
+ {
+ "appearances" : [
+ {
+ "appearance" : "luminosity",
+ "value" : "dark"
+ }
+ ],
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0.445",
+ "green" : "0.285",
+ "red" : "0.143"
+ }
+ },
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Media.xcassets/Media/CustomSwitchBackground.colorset/Contents.json b/Resources/Media.xcassets/Media/CustomSwitchBackground.colorset/Contents.json
new file mode 100644
index 0000000..92e3c7a
--- /dev/null
+++ b/Resources/Media.xcassets/Media/CustomSwitchBackground.colorset/Contents.json
@@ -0,0 +1,38 @@
+{
+ "colors" : [
+ {
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0.000",
+ "green" : "0.503",
+ "red" : "0.631"
+ }
+ },
+ "idiom" : "universal"
+ },
+ {
+ "appearances" : [
+ {
+ "appearance" : "luminosity",
+ "value" : "dark"
+ }
+ ],
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0.400",
+ "green" : "0.300",
+ "red" : "0.300"
+ }
+ },
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Media.xcassets/Media/CustomTableBackground.colorset/Contents.json b/Resources/Media.xcassets/Media/CustomTableBackground.colorset/Contents.json
new file mode 100644
index 0000000..3eb16ce
--- /dev/null
+++ b/Resources/Media.xcassets/Media/CustomTableBackground.colorset/Contents.json
@@ -0,0 +1,38 @@
+{
+ "colors" : [
+ {
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0.600",
+ "green" : "0.800",
+ "red" : "0.850"
+ }
+ },
+ "idiom" : "universal"
+ },
+ {
+ "appearances" : [
+ {
+ "appearance" : "luminosity",
+ "value" : "dark"
+ }
+ ],
+ "color" : {
+ "color-space" : "display-p3",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0.102",
+ "green" : "0.098",
+ "red" : "0.098"
+ }
+ },
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Media.xcassets/Media/CustomTerpBGBright.colorset/Contents.json b/Resources/Media.xcassets/Media/CustomTerpBGBright.colorset/Contents.json
new file mode 100644
index 0000000..ce302c0
--- /dev/null
+++ b/Resources/Media.xcassets/Media/CustomTerpBGBright.colorset/Contents.json
@@ -0,0 +1,38 @@
+{
+ "colors" : [
+ {
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0.950",
+ "green" : "1.000",
+ "red" : "1.000"
+ }
+ },
+ "idiom" : "universal"
+ },
+ {
+ "appearances" : [
+ {
+ "appearance" : "luminosity",
+ "value" : "dark"
+ }
+ ],
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0.000",
+ "green" : "0.000",
+ "red" : "0.000"
+ }
+ },
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Media.xcassets/Media/CustomTerpBGQuiet.colorset/Contents.json b/Resources/Media.xcassets/Media/CustomTerpBGQuiet.colorset/Contents.json
new file mode 100644
index 0000000..e3ba853
--- /dev/null
+++ b/Resources/Media.xcassets/Media/CustomTerpBGQuiet.colorset/Contents.json
@@ -0,0 +1,38 @@
+{
+ "colors" : [
+ {
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0.700",
+ "green" : "0.850",
+ "red" : "0.900"
+ }
+ },
+ "idiom" : "universal"
+ },
+ {
+ "appearances" : [
+ {
+ "appearance" : "luminosity",
+ "value" : "dark"
+ }
+ ],
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0.200",
+ "green" : "0.100",
+ "red" : "0.100"
+ }
+ },
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Media.xcassets/Media/CustomTerpGridBGBright.colorset/Contents.json b/Resources/Media.xcassets/Media/CustomTerpGridBGBright.colorset/Contents.json
new file mode 100644
index 0000000..328e0be
--- /dev/null
+++ b/Resources/Media.xcassets/Media/CustomTerpGridBGBright.colorset/Contents.json
@@ -0,0 +1,38 @@
+{
+ "colors" : [
+ {
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0.600",
+ "green" : "0.800",
+ "red" : "0.850"
+ }
+ },
+ "idiom" : "universal"
+ },
+ {
+ "appearances" : [
+ {
+ "appearance" : "luminosity",
+ "value" : "dark"
+ }
+ ],
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0.500",
+ "green" : "0.550",
+ "red" : "0.550"
+ }
+ },
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Media.xcassets/Media/CustomTerpGridBGQuiet.colorset/Contents.json b/Resources/Media.xcassets/Media/CustomTerpGridBGQuiet.colorset/Contents.json
new file mode 100644
index 0000000..a490b2e
--- /dev/null
+++ b/Resources/Media.xcassets/Media/CustomTerpGridBGQuiet.colorset/Contents.json
@@ -0,0 +1,38 @@
+{
+ "colors" : [
+ {
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0.500",
+ "green" : "0.700",
+ "red" : "0.750"
+ }
+ },
+ "idiom" : "universal"
+ },
+ {
+ "appearances" : [
+ {
+ "appearance" : "luminosity",
+ "value" : "dark"
+ }
+ ],
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0.500",
+ "green" : "0.400",
+ "red" : "0.400"
+ }
+ },
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Media.xcassets/Media/CustomTerpTextBright.colorset/Contents.json b/Resources/Media.xcassets/Media/CustomTerpTextBright.colorset/Contents.json
new file mode 100644
index 0000000..ec489a0
--- /dev/null
+++ b/Resources/Media.xcassets/Media/CustomTerpTextBright.colorset/Contents.json
@@ -0,0 +1,38 @@
+{
+ "colors" : [
+ {
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0.000",
+ "green" : "0.200",
+ "red" : "0.250"
+ }
+ },
+ "idiom" : "universal"
+ },
+ {
+ "appearances" : [
+ {
+ "appearance" : "luminosity",
+ "value" : "dark"
+ }
+ ],
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "1.000",
+ "green" : "1.000",
+ "red" : "1.000"
+ }
+ },
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Media.xcassets/Media/CustomTerpTextQuiet.colorset/Contents.json b/Resources/Media.xcassets/Media/CustomTerpTextQuiet.colorset/Contents.json
new file mode 100644
index 0000000..7003689
--- /dev/null
+++ b/Resources/Media.xcassets/Media/CustomTerpTextQuiet.colorset/Contents.json
@@ -0,0 +1,38 @@
+{
+ "colors" : [
+ {
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0.000",
+ "green" : "0.100",
+ "red" : "0.150"
+ }
+ },
+ "idiom" : "universal"
+ },
+ {
+ "appearances" : [
+ {
+ "appearance" : "luminosity",
+ "value" : "dark"
+ }
+ ],
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0.850",
+ "green" : "1.000",
+ "red" : "1.000"
+ }
+ },
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Media.xcassets/Media/CustomText.colorset/Contents.json b/Resources/Media.xcassets/Media/CustomText.colorset/Contents.json
new file mode 100644
index 0000000..d890719
--- /dev/null
+++ b/Resources/Media.xcassets/Media/CustomText.colorset/Contents.json
@@ -0,0 +1,38 @@
+{
+ "colors" : [
+ {
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "0.000",
+ "green" : "0.000",
+ "red" : "0.000"
+ }
+ },
+ "idiom" : "universal"
+ },
+ {
+ "appearances" : [
+ {
+ "appearance" : "luminosity",
+ "value" : "dark"
+ }
+ ],
+ "color" : {
+ "color-space" : "srgb",
+ "components" : {
+ "alpha" : "1.000",
+ "blue" : "1.000",
+ "green" : "1.000",
+ "red" : "1.000"
+ }
+ },
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Media.xcassets/Media/background-notes-s.imageset/Contents.json b/Resources/Media.xcassets/Media/background-notes-s.imageset/Contents.json
new file mode 100644
index 0000000..2b7e975
--- /dev/null
+++ b/Resources/Media.xcassets/Media/background-notes-s.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "background-notes-s.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Media.xcassets/Media/background-notes-s.imageset/background-notes-s.png b/Resources/Media.xcassets/Media/background-notes-s.imageset/background-notes-s.png
new file mode 100644
index 0000000..2056509
Binary files /dev/null and b/Resources/Media.xcassets/Media/background-notes-s.imageset/background-notes-s.png differ
diff --git a/Resources/Media.xcassets/Media/background-notes.imageset/Contents.json b/Resources/Media.xcassets/Media/background-notes.imageset/Contents.json
new file mode 100644
index 0000000..a61d802
--- /dev/null
+++ b/Resources/Media.xcassets/Media/background-notes.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "background-notes.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Media.xcassets/Media/background-notes.imageset/background-notes.png b/Resources/Media.xcassets/Media/background-notes.imageset/background-notes.png
new file mode 100644
index 0000000..70b99f3
Binary files /dev/null and b/Resources/Media.xcassets/Media/background-notes.imageset/background-notes.png differ
diff --git a/Resources/Media.xcassets/Media/background-notesopaque-s.imageset/Contents.json b/Resources/Media.xcassets/Media/background-notesopaque-s.imageset/Contents.json
new file mode 100644
index 0000000..9a797b9
--- /dev/null
+++ b/Resources/Media.xcassets/Media/background-notesopaque-s.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "background-notesopaque-s.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Media.xcassets/Media/background-notesopaque-s.imageset/background-notesopaque-s.png b/Resources/Media.xcassets/Media/background-notesopaque-s.imageset/background-notesopaque-s.png
new file mode 100644
index 0000000..8c15e9a
Binary files /dev/null and b/Resources/Media.xcassets/Media/background-notesopaque-s.imageset/background-notesopaque-s.png differ
diff --git a/Resources/Media.xcassets/Media/background-notesopaque.imageset/Contents.json b/Resources/Media.xcassets/Media/background-notesopaque.imageset/Contents.json
new file mode 100644
index 0000000..cff8696
--- /dev/null
+++ b/Resources/Media.xcassets/Media/background-notesopaque.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "background-notesopaque.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Media.xcassets/Media/background-notesopaque.imageset/background-notesopaque.png b/Resources/Media.xcassets/Media/background-notesopaque.imageset/background-notesopaque.png
new file mode 100644
index 0000000..76268fb
Binary files /dev/null and b/Resources/Media.xcassets/Media/background-notesopaque.imageset/background-notesopaque.png differ
diff --git a/Resources/Media.xcassets/Media/background-popbox.imageset/Contents.json b/Resources/Media.xcassets/Media/background-popbox.imageset/Contents.json
new file mode 100644
index 0000000..b4b571d
--- /dev/null
+++ b/Resources/Media.xcassets/Media/background-popbox.imageset/Contents.json
@@ -0,0 +1,22 @@
+{
+ "images" : [
+ {
+ "filename" : "background-popbox.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "filename" : "background-popbox@2x.png",
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Media.xcassets/Media/background-popbox.imageset/background-popbox.png b/Resources/Media.xcassets/Media/background-popbox.imageset/background-popbox.png
new file mode 100644
index 0000000..5f68fed
Binary files /dev/null and b/Resources/Media.xcassets/Media/background-popbox.imageset/background-popbox.png differ
diff --git a/Resources/Media.xcassets/Media/background-popbox.imageset/background-popbox@2x.png b/Resources/Media.xcassets/Media/background-popbox.imageset/background-popbox@2x.png
new file mode 100644
index 0000000..2508064
Binary files /dev/null and b/Resources/Media.xcassets/Media/background-popbox.imageset/background-popbox@2x.png differ
diff --git a/Resources/Media.xcassets/Media/baricon-edit-old.imageset/Contents.json b/Resources/Media.xcassets/Media/baricon-edit-old.imageset/Contents.json
new file mode 100644
index 0000000..2f6eb91
--- /dev/null
+++ b/Resources/Media.xcassets/Media/baricon-edit-old.imageset/Contents.json
@@ -0,0 +1,23 @@
+{
+ "images" : [
+ {
+ "filename" : "baricon-edit-old.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "filename" : "baricon-edit-old@2x.png",
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "filename" : "baricon-edit-old@3x.png",
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Media.xcassets/Media/baricon-edit-old.imageset/baricon-edit-old.png b/Resources/Media.xcassets/Media/baricon-edit-old.imageset/baricon-edit-old.png
new file mode 100644
index 0000000..dc1112b
Binary files /dev/null and b/Resources/Media.xcassets/Media/baricon-edit-old.imageset/baricon-edit-old.png differ
diff --git a/Resources/Media.xcassets/Media/baricon-edit-old.imageset/baricon-edit-old@2x.png b/Resources/Media.xcassets/Media/baricon-edit-old.imageset/baricon-edit-old@2x.png
new file mode 100644
index 0000000..9e878c0
Binary files /dev/null and b/Resources/Media.xcassets/Media/baricon-edit-old.imageset/baricon-edit-old@2x.png differ
diff --git a/Resources/Media.xcassets/Media/baricon-edit-old.imageset/baricon-edit-old@3x.png b/Resources/Media.xcassets/Media/baricon-edit-old.imageset/baricon-edit-old@3x.png
new file mode 100644
index 0000000..918c210
Binary files /dev/null and b/Resources/Media.xcassets/Media/baricon-edit-old.imageset/baricon-edit-old@3x.png differ
diff --git a/Resources/Media.xcassets/Media/baricon-edit.imageset/Contents.json b/Resources/Media.xcassets/Media/baricon-edit.imageset/Contents.json
new file mode 100644
index 0000000..8b30167
--- /dev/null
+++ b/Resources/Media.xcassets/Media/baricon-edit.imageset/Contents.json
@@ -0,0 +1,23 @@
+{
+ "images" : [
+ {
+ "filename" : "baricon-edit.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "filename" : "baricon-edit@2x.png",
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "filename" : "baricon-edit@3x.png",
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Media.xcassets/Media/baricon-edit.imageset/baricon-edit.png b/Resources/Media.xcassets/Media/baricon-edit.imageset/baricon-edit.png
new file mode 100644
index 0000000..ffa53b3
Binary files /dev/null and b/Resources/Media.xcassets/Media/baricon-edit.imageset/baricon-edit.png differ
diff --git a/Resources/Media.xcassets/Media/baricon-edit.imageset/baricon-edit@2x.png b/Resources/Media.xcassets/Media/baricon-edit.imageset/baricon-edit@2x.png
new file mode 100644
index 0000000..06ff0b7
Binary files /dev/null and b/Resources/Media.xcassets/Media/baricon-edit.imageset/baricon-edit@2x.png differ
diff --git a/Resources/Media.xcassets/Media/baricon-edit.imageset/baricon-edit@3x.png b/Resources/Media.xcassets/Media/baricon-edit.imageset/baricon-edit@3x.png
new file mode 100644
index 0000000..b0a5813
Binary files /dev/null and b/Resources/Media.xcassets/Media/baricon-edit.imageset/baricon-edit@3x.png differ
diff --git a/Resources/Media.xcassets/Media/baricon-styles-old.imageset/Contents.json b/Resources/Media.xcassets/Media/baricon-styles-old.imageset/Contents.json
new file mode 100644
index 0000000..d1b2ab3
--- /dev/null
+++ b/Resources/Media.xcassets/Media/baricon-styles-old.imageset/Contents.json
@@ -0,0 +1,23 @@
+{
+ "images" : [
+ {
+ "filename" : "baricon-styles-old.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "filename" : "baricon-styles-old@2x.png",
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "filename" : "baricon-styles-old@3x.png",
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Media.xcassets/Media/baricon-styles-old.imageset/baricon-styles-old.png b/Resources/Media.xcassets/Media/baricon-styles-old.imageset/baricon-styles-old.png
new file mode 100644
index 0000000..57a76e0
Binary files /dev/null and b/Resources/Media.xcassets/Media/baricon-styles-old.imageset/baricon-styles-old.png differ
diff --git a/Resources/Media.xcassets/Media/baricon-styles-old.imageset/baricon-styles-old@2x.png b/Resources/Media.xcassets/Media/baricon-styles-old.imageset/baricon-styles-old@2x.png
new file mode 100644
index 0000000..96d99e7
Binary files /dev/null and b/Resources/Media.xcassets/Media/baricon-styles-old.imageset/baricon-styles-old@2x.png differ
diff --git a/Resources/Media.xcassets/Media/baricon-styles-old.imageset/baricon-styles-old@3x.png b/Resources/Media.xcassets/Media/baricon-styles-old.imageset/baricon-styles-old@3x.png
new file mode 100644
index 0000000..aefee7d
Binary files /dev/null and b/Resources/Media.xcassets/Media/baricon-styles-old.imageset/baricon-styles-old@3x.png differ
diff --git a/Resources/Media.xcassets/Media/baricon-styles.imageset/Contents.json b/Resources/Media.xcassets/Media/baricon-styles.imageset/Contents.json
new file mode 100644
index 0000000..0f5e3da
--- /dev/null
+++ b/Resources/Media.xcassets/Media/baricon-styles.imageset/Contents.json
@@ -0,0 +1,23 @@
+{
+ "images" : [
+ {
+ "filename" : "baricon-styles.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "filename" : "baricon-styles@2x.png",
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "filename" : "baricon-styles@3x.png",
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Media.xcassets/Media/baricon-styles.imageset/baricon-styles.png b/Resources/Media.xcassets/Media/baricon-styles.imageset/baricon-styles.png
new file mode 100644
index 0000000..8a98465
Binary files /dev/null and b/Resources/Media.xcassets/Media/baricon-styles.imageset/baricon-styles.png differ
diff --git a/Resources/Media.xcassets/Media/baricon-styles.imageset/baricon-styles@2x.png b/Resources/Media.xcassets/Media/baricon-styles.imageset/baricon-styles@2x.png
new file mode 100644
index 0000000..b0a5714
Binary files /dev/null and b/Resources/Media.xcassets/Media/baricon-styles.imageset/baricon-styles@2x.png differ
diff --git a/Resources/Media.xcassets/Media/baricon-styles.imageset/baricon-styles@3x.png b/Resources/Media.xcassets/Media/baricon-styles.imageset/baricon-styles@3x.png
new file mode 100644
index 0000000..9706d9b
Binary files /dev/null and b/Resources/Media.xcassets/Media/baricon-styles.imageset/baricon-styles@3x.png differ
diff --git a/Resources/Media.xcassets/Media/brightness-hi.imageset/Contents.json b/Resources/Media.xcassets/Media/brightness-hi.imageset/Contents.json
new file mode 100644
index 0000000..9bcd3c3
--- /dev/null
+++ b/Resources/Media.xcassets/Media/brightness-hi.imageset/Contents.json
@@ -0,0 +1,22 @@
+{
+ "images" : [
+ {
+ "filename" : "brightness-hi.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "filename" : "brightness-hi@2x.png",
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Media.xcassets/Media/brightness-hi.imageset/brightness-hi.png b/Resources/Media.xcassets/Media/brightness-hi.imageset/brightness-hi.png
new file mode 100644
index 0000000..0ab2470
Binary files /dev/null and b/Resources/Media.xcassets/Media/brightness-hi.imageset/brightness-hi.png differ
diff --git a/Resources/Media.xcassets/Media/brightness-hi.imageset/brightness-hi@2x.png b/Resources/Media.xcassets/Media/brightness-hi.imageset/brightness-hi@2x.png
new file mode 100644
index 0000000..818ea8c
Binary files /dev/null and b/Resources/Media.xcassets/Media/brightness-hi.imageset/brightness-hi@2x.png differ
diff --git a/Resources/Media.xcassets/Media/brightness-lo.imageset/Contents.json b/Resources/Media.xcassets/Media/brightness-lo.imageset/Contents.json
new file mode 100644
index 0000000..803c517
--- /dev/null
+++ b/Resources/Media.xcassets/Media/brightness-lo.imageset/Contents.json
@@ -0,0 +1,22 @@
+{
+ "images" : [
+ {
+ "filename" : "brightness-lo.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "filename" : "brightness-lo@2x.png",
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Media.xcassets/Media/brightness-lo.imageset/brightness-lo.png b/Resources/Media.xcassets/Media/brightness-lo.imageset/brightness-lo.png
new file mode 100644
index 0000000..35e5d91
Binary files /dev/null and b/Resources/Media.xcassets/Media/brightness-lo.imageset/brightness-lo.png differ
diff --git a/Resources/Media.xcassets/Media/brightness-lo.imageset/brightness-lo@2x.png b/Resources/Media.xcassets/Media/brightness-lo.imageset/brightness-lo@2x.png
new file mode 100644
index 0000000..b298cff
Binary files /dev/null and b/Resources/Media.xcassets/Media/brightness-lo.imageset/brightness-lo@2x.png differ
diff --git a/Resources/Media.xcassets/Media/button-detail-base.imageset/Contents.json b/Resources/Media.xcassets/Media/button-detail-base.imageset/Contents.json
new file mode 100644
index 0000000..a26f629
--- /dev/null
+++ b/Resources/Media.xcassets/Media/button-detail-base.imageset/Contents.json
@@ -0,0 +1,22 @@
+{
+ "images" : [
+ {
+ "filename" : "button-detail-base.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "filename" : "button-detail-base@2x.png",
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Media.xcassets/Media/button-detail-base.imageset/button-detail-base.png b/Resources/Media.xcassets/Media/button-detail-base.imageset/button-detail-base.png
new file mode 100644
index 0000000..379c240
Binary files /dev/null and b/Resources/Media.xcassets/Media/button-detail-base.imageset/button-detail-base.png differ
diff --git a/Resources/Media.xcassets/Media/button-detail-base.imageset/button-detail-base@2x.png b/Resources/Media.xcassets/Media/button-detail-base.imageset/button-detail-base@2x.png
new file mode 100644
index 0000000..d103ff0
Binary files /dev/null and b/Resources/Media.xcassets/Media/button-detail-base.imageset/button-detail-base@2x.png differ
diff --git a/Resources/Media.xcassets/Media/button-detail-hi.imageset/Contents.json b/Resources/Media.xcassets/Media/button-detail-hi.imageset/Contents.json
new file mode 100644
index 0000000..675abfa
--- /dev/null
+++ b/Resources/Media.xcassets/Media/button-detail-hi.imageset/Contents.json
@@ -0,0 +1,22 @@
+{
+ "images" : [
+ {
+ "filename" : "button-detail-hi.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "filename" : "button-detail-hi@2x.png",
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Media.xcassets/Media/button-detail-hi.imageset/button-detail-hi.png b/Resources/Media.xcassets/Media/button-detail-hi.imageset/button-detail-hi.png
new file mode 100644
index 0000000..ae66d1e
Binary files /dev/null and b/Resources/Media.xcassets/Media/button-detail-hi.imageset/button-detail-hi.png differ
diff --git a/Resources/Media.xcassets/Media/button-detail-hi.imageset/button-detail-hi@2x.png b/Resources/Media.xcassets/Media/button-detail-hi.imageset/button-detail-hi@2x.png
new file mode 100644
index 0000000..30fd35f
Binary files /dev/null and b/Resources/Media.xcassets/Media/button-detail-hi.imageset/button-detail-hi@2x.png differ
diff --git a/Resources/Media.xcassets/Media/button-done-hi.imageset/Contents.json b/Resources/Media.xcassets/Media/button-done-hi.imageset/Contents.json
new file mode 100644
index 0000000..692d5aa
--- /dev/null
+++ b/Resources/Media.xcassets/Media/button-done-hi.imageset/Contents.json
@@ -0,0 +1,22 @@
+{
+ "images" : [
+ {
+ "filename" : "button-done-hi.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "filename" : "button-done-hi@2x.png",
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Media.xcassets/Media/button-done-hi.imageset/button-done-hi.png b/Resources/Media.xcassets/Media/button-done-hi.imageset/button-done-hi.png
new file mode 100644
index 0000000..4d597d3
Binary files /dev/null and b/Resources/Media.xcassets/Media/button-done-hi.imageset/button-done-hi.png differ
diff --git a/Resources/Media.xcassets/Media/button-done-hi.imageset/button-done-hi@2x.png b/Resources/Media.xcassets/Media/button-done-hi.imageset/button-done-hi@2x.png
new file mode 100644
index 0000000..d089fb9
Binary files /dev/null and b/Resources/Media.xcassets/Media/button-done-hi.imageset/button-done-hi@2x.png differ
diff --git a/Resources/Media.xcassets/Media/button-done.imageset/Contents.json b/Resources/Media.xcassets/Media/button-done.imageset/Contents.json
new file mode 100644
index 0000000..6bbeac3
--- /dev/null
+++ b/Resources/Media.xcassets/Media/button-done.imageset/Contents.json
@@ -0,0 +1,22 @@
+{
+ "images" : [
+ {
+ "filename" : "button-done.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "filename" : "button-done@2x.png",
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Media.xcassets/Media/button-done.imageset/button-done.png b/Resources/Media.xcassets/Media/button-done.imageset/button-done.png
new file mode 100644
index 0000000..04346d4
Binary files /dev/null and b/Resources/Media.xcassets/Media/button-done.imageset/button-done.png differ
diff --git a/Resources/Media.xcassets/Media/button-done.imageset/button-done@2x.png b/Resources/Media.xcassets/Media/button-done.imageset/button-done@2x.png
new file mode 100644
index 0000000..e9013e9
Binary files /dev/null and b/Resources/Media.xcassets/Media/button-done.imageset/button-done@2x.png differ
diff --git a/Resources/Media.xcassets/Media/button-input-back.imageset/Contents.json b/Resources/Media.xcassets/Media/button-input-back.imageset/Contents.json
new file mode 100644
index 0000000..ce82a57
--- /dev/null
+++ b/Resources/Media.xcassets/Media/button-input-back.imageset/Contents.json
@@ -0,0 +1,22 @@
+{
+ "images" : [
+ {
+ "filename" : "button-input-back.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "filename" : "button-input-back@2x.png",
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Media.xcassets/Media/button-input-back.imageset/button-input-back.png b/Resources/Media.xcassets/Media/button-input-back.imageset/button-input-back.png
new file mode 100644
index 0000000..39b6ea0
Binary files /dev/null and b/Resources/Media.xcassets/Media/button-input-back.imageset/button-input-back.png differ
diff --git a/Resources/Media.xcassets/Media/button-input-back.imageset/button-input-back@2x.png b/Resources/Media.xcassets/Media/button-input-back.imageset/button-input-back@2x.png
new file mode 100644
index 0000000..1896818
Binary files /dev/null and b/Resources/Media.xcassets/Media/button-input-back.imageset/button-input-back@2x.png differ
diff --git a/Resources/Media.xcassets/Media/button-input-clear.imageset/Contents.json b/Resources/Media.xcassets/Media/button-input-clear.imageset/Contents.json
new file mode 100644
index 0000000..369a94a
--- /dev/null
+++ b/Resources/Media.xcassets/Media/button-input-clear.imageset/Contents.json
@@ -0,0 +1,22 @@
+{
+ "images" : [
+ {
+ "filename" : "button-input-clear.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "filename" : "button-input-clear@2x.png",
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Media.xcassets/Media/button-input-clear.imageset/button-input-clear.png b/Resources/Media.xcassets/Media/button-input-clear.imageset/button-input-clear.png
new file mode 100644
index 0000000..a9e73a8
Binary files /dev/null and b/Resources/Media.xcassets/Media/button-input-clear.imageset/button-input-clear.png differ
diff --git a/Resources/Media.xcassets/Media/button-input-clear.imageset/button-input-clear@2x.png b/Resources/Media.xcassets/Media/button-input-clear.imageset/button-input-clear@2x.png
new file mode 100644
index 0000000..713da2a
Binary files /dev/null and b/Resources/Media.xcassets/Media/button-input-clear.imageset/button-input-clear@2x.png differ
diff --git a/Resources/Media.xcassets/Media/button-input-menu-sel.imageset/Contents.json b/Resources/Media.xcassets/Media/button-input-menu-sel.imageset/Contents.json
new file mode 100644
index 0000000..3455e2a
--- /dev/null
+++ b/Resources/Media.xcassets/Media/button-input-menu-sel.imageset/Contents.json
@@ -0,0 +1,22 @@
+{
+ "images" : [
+ {
+ "filename" : "button-input-menu-sel.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "filename" : "button-input-menu-sel@2x.png",
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Media.xcassets/Media/button-input-menu-sel.imageset/button-input-menu-sel.png b/Resources/Media.xcassets/Media/button-input-menu-sel.imageset/button-input-menu-sel.png
new file mode 100644
index 0000000..32cde98
Binary files /dev/null and b/Resources/Media.xcassets/Media/button-input-menu-sel.imageset/button-input-menu-sel.png differ
diff --git a/Resources/Media.xcassets/Media/button-input-menu-sel.imageset/button-input-menu-sel@2x.png b/Resources/Media.xcassets/Media/button-input-menu-sel.imageset/button-input-menu-sel@2x.png
new file mode 100644
index 0000000..0183cd5
Binary files /dev/null and b/Resources/Media.xcassets/Media/button-input-menu-sel.imageset/button-input-menu-sel@2x.png differ
diff --git a/Resources/Media.xcassets/Media/button-input-menu.imageset/Contents.json b/Resources/Media.xcassets/Media/button-input-menu.imageset/Contents.json
new file mode 100644
index 0000000..8ee7b0a
--- /dev/null
+++ b/Resources/Media.xcassets/Media/button-input-menu.imageset/Contents.json
@@ -0,0 +1,22 @@
+{
+ "images" : [
+ {
+ "filename" : "button-input-menu.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "filename" : "button-input-menu@2x.png",
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Media.xcassets/Media/button-input-menu.imageset/button-input-menu.png b/Resources/Media.xcassets/Media/button-input-menu.imageset/button-input-menu.png
new file mode 100644
index 0000000..ebd495c
Binary files /dev/null and b/Resources/Media.xcassets/Media/button-input-menu.imageset/button-input-menu.png differ
diff --git a/Resources/Media.xcassets/Media/button-input-menu.imageset/button-input-menu@2x.png b/Resources/Media.xcassets/Media/button-input-menu.imageset/button-input-menu@2x.png
new file mode 100644
index 0000000..328d151
Binary files /dev/null and b/Resources/Media.xcassets/Media/button-input-menu.imageset/button-input-menu@2x.png differ
diff --git a/Resources/Media.xcassets/Media/button-pref-base.imageset/Contents.json b/Resources/Media.xcassets/Media/button-pref-base.imageset/Contents.json
new file mode 100644
index 0000000..2fd1d3e
--- /dev/null
+++ b/Resources/Media.xcassets/Media/button-pref-base.imageset/Contents.json
@@ -0,0 +1,22 @@
+{
+ "images" : [
+ {
+ "filename" : "button-pref-base.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "filename" : "button-pref-base@2x.png",
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Media.xcassets/Media/button-pref-base.imageset/button-pref-base.png b/Resources/Media.xcassets/Media/button-pref-base.imageset/button-pref-base.png
new file mode 100644
index 0000000..fe4cd74
Binary files /dev/null and b/Resources/Media.xcassets/Media/button-pref-base.imageset/button-pref-base.png differ
diff --git a/Resources/Media.xcassets/Media/button-pref-base.imageset/button-pref-base@2x.png b/Resources/Media.xcassets/Media/button-pref-base.imageset/button-pref-base@2x.png
new file mode 100644
index 0000000..2001034
Binary files /dev/null and b/Resources/Media.xcassets/Media/button-pref-base.imageset/button-pref-base@2x.png differ
diff --git a/Resources/Media.xcassets/Media/button-pref-hi.imageset/Contents.json b/Resources/Media.xcassets/Media/button-pref-hi.imageset/Contents.json
new file mode 100644
index 0000000..1a25497
--- /dev/null
+++ b/Resources/Media.xcassets/Media/button-pref-hi.imageset/Contents.json
@@ -0,0 +1,22 @@
+{
+ "images" : [
+ {
+ "filename" : "button-pref-hi.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "filename" : "button-pref-hi@2x.png",
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Media.xcassets/Media/button-pref-hi.imageset/button-pref-hi.png b/Resources/Media.xcassets/Media/button-pref-hi.imageset/button-pref-hi.png
new file mode 100644
index 0000000..dea1455
Binary files /dev/null and b/Resources/Media.xcassets/Media/button-pref-hi.imageset/button-pref-hi.png differ
diff --git a/Resources/Media.xcassets/Media/button-pref-hi.imageset/button-pref-hi@2x.png b/Resources/Media.xcassets/Media/button-pref-hi.imageset/button-pref-hi@2x.png
new file mode 100644
index 0000000..38bb7ed
Binary files /dev/null and b/Resources/Media.xcassets/Media/button-pref-hi.imageset/button-pref-hi@2x.png differ
diff --git a/Resources/Media.xcassets/Media/button-tab-sel.imageset/Contents.json b/Resources/Media.xcassets/Media/button-tab-sel.imageset/Contents.json
new file mode 100644
index 0000000..af34381
--- /dev/null
+++ b/Resources/Media.xcassets/Media/button-tab-sel.imageset/Contents.json
@@ -0,0 +1,22 @@
+{
+ "images" : [
+ {
+ "filename" : "button-tab-sel.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "filename" : "button-tab-sel@2x.png",
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Media.xcassets/Media/button-tab-sel.imageset/button-tab-sel.png b/Resources/Media.xcassets/Media/button-tab-sel.imageset/button-tab-sel.png
new file mode 100644
index 0000000..9f58e91
Binary files /dev/null and b/Resources/Media.xcassets/Media/button-tab-sel.imageset/button-tab-sel.png differ
diff --git a/Resources/Media.xcassets/Media/button-tab-sel.imageset/button-tab-sel@2x.png b/Resources/Media.xcassets/Media/button-tab-sel.imageset/button-tab-sel@2x.png
new file mode 100644
index 0000000..009815a
Binary files /dev/null and b/Resources/Media.xcassets/Media/button-tab-sel.imageset/button-tab-sel@2x.png differ
diff --git a/Resources/Media.xcassets/Media/checkmark-s.imageset/Contents.json b/Resources/Media.xcassets/Media/checkmark-s.imageset/Contents.json
new file mode 100644
index 0000000..ad8b761
--- /dev/null
+++ b/Resources/Media.xcassets/Media/checkmark-s.imageset/Contents.json
@@ -0,0 +1,22 @@
+{
+ "images" : [
+ {
+ "filename" : "checkmark-s.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "filename" : "checkmark-s@2x.png",
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Media.xcassets/Media/checkmark-s.imageset/checkmark-s.png b/Resources/Media.xcassets/Media/checkmark-s.imageset/checkmark-s.png
new file mode 100644
index 0000000..8a9a82e
Binary files /dev/null and b/Resources/Media.xcassets/Media/checkmark-s.imageset/checkmark-s.png differ
diff --git a/Resources/Media.xcassets/Media/checkmark-s.imageset/checkmark-s@2x.png b/Resources/Media.xcassets/Media/checkmark-s.imageset/checkmark-s@2x.png
new file mode 100644
index 0000000..0cd1e2d
Binary files /dev/null and b/Resources/Media.xcassets/Media/checkmark-s.imageset/checkmark-s@2x.png differ
diff --git a/Resources/Media.xcassets/Media/checkmark.imageset/Contents.json b/Resources/Media.xcassets/Media/checkmark.imageset/Contents.json
new file mode 100644
index 0000000..abfe7c7
--- /dev/null
+++ b/Resources/Media.xcassets/Media/checkmark.imageset/Contents.json
@@ -0,0 +1,22 @@
+{
+ "images" : [
+ {
+ "filename" : "checkmark.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "filename" : "checkmark@2x.png",
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Media.xcassets/Media/checkmark.imageset/checkmark.png b/Resources/Media.xcassets/Media/checkmark.imageset/checkmark.png
new file mode 100644
index 0000000..87a25b3
Binary files /dev/null and b/Resources/Media.xcassets/Media/checkmark.imageset/checkmark.png differ
diff --git a/Resources/Media.xcassets/Media/checkmark.imageset/checkmark@2x.png b/Resources/Media.xcassets/Media/checkmark.imageset/checkmark@2x.png
new file mode 100644
index 0000000..80dca3b
Binary files /dev/null and b/Resources/Media.xcassets/Media/checkmark.imageset/checkmark@2x.png differ
diff --git a/Resources/Media.xcassets/Media/col-12-sel.imageset/Contents.json b/Resources/Media.xcassets/Media/col-12-sel.imageset/Contents.json
new file mode 100644
index 0000000..37640f1
--- /dev/null
+++ b/Resources/Media.xcassets/Media/col-12-sel.imageset/Contents.json
@@ -0,0 +1,22 @@
+{
+ "images" : [
+ {
+ "filename" : "col-12-sel.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "filename" : "col-12-sel@2x.png",
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Media.xcassets/Media/col-12-sel.imageset/col-12-sel.png b/Resources/Media.xcassets/Media/col-12-sel.imageset/col-12-sel.png
new file mode 100644
index 0000000..7165082
Binary files /dev/null and b/Resources/Media.xcassets/Media/col-12-sel.imageset/col-12-sel.png differ
diff --git a/Resources/Media.xcassets/Media/col-12-sel.imageset/col-12-sel@2x.png b/Resources/Media.xcassets/Media/col-12-sel.imageset/col-12-sel@2x.png
new file mode 100644
index 0000000..4d7bb85
Binary files /dev/null and b/Resources/Media.xcassets/Media/col-12-sel.imageset/col-12-sel@2x.png differ
diff --git a/Resources/Media.xcassets/Media/col-12.imageset/Contents.json b/Resources/Media.xcassets/Media/col-12.imageset/Contents.json
new file mode 100644
index 0000000..75c6a42
--- /dev/null
+++ b/Resources/Media.xcassets/Media/col-12.imageset/Contents.json
@@ -0,0 +1,22 @@
+{
+ "images" : [
+ {
+ "filename" : "col-12.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "filename" : "col-12@2x.png",
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Media.xcassets/Media/col-12.imageset/col-12.png b/Resources/Media.xcassets/Media/col-12.imageset/col-12.png
new file mode 100644
index 0000000..3b1a54c
Binary files /dev/null and b/Resources/Media.xcassets/Media/col-12.imageset/col-12.png differ
diff --git a/Resources/Media.xcassets/Media/col-12.imageset/col-12@2x.png b/Resources/Media.xcassets/Media/col-12.imageset/col-12@2x.png
new file mode 100644
index 0000000..eba8b52
Binary files /dev/null and b/Resources/Media.xcassets/Media/col-12.imageset/col-12@2x.png differ
diff --git a/Resources/Media.xcassets/Media/col-34-sel.imageset/Contents.json b/Resources/Media.xcassets/Media/col-34-sel.imageset/Contents.json
new file mode 100644
index 0000000..51e4f6a
--- /dev/null
+++ b/Resources/Media.xcassets/Media/col-34-sel.imageset/Contents.json
@@ -0,0 +1,22 @@
+{
+ "images" : [
+ {
+ "filename" : "col-34-sel.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "filename" : "col-34-sel@2x.png",
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Media.xcassets/Media/col-34-sel.imageset/col-34-sel.png b/Resources/Media.xcassets/Media/col-34-sel.imageset/col-34-sel.png
new file mode 100644
index 0000000..07300ef
Binary files /dev/null and b/Resources/Media.xcassets/Media/col-34-sel.imageset/col-34-sel.png differ
diff --git a/Resources/Media.xcassets/Media/col-34-sel.imageset/col-34-sel@2x.png b/Resources/Media.xcassets/Media/col-34-sel.imageset/col-34-sel@2x.png
new file mode 100644
index 0000000..9baa8d9
Binary files /dev/null and b/Resources/Media.xcassets/Media/col-34-sel.imageset/col-34-sel@2x.png differ
diff --git a/Resources/Media.xcassets/Media/col-34.imageset/Contents.json b/Resources/Media.xcassets/Media/col-34.imageset/Contents.json
new file mode 100644
index 0000000..0a7e82d
--- /dev/null
+++ b/Resources/Media.xcassets/Media/col-34.imageset/Contents.json
@@ -0,0 +1,22 @@
+{
+ "images" : [
+ {
+ "filename" : "col-34.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "filename" : "col-34@2x.png",
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Media.xcassets/Media/col-34.imageset/col-34.png b/Resources/Media.xcassets/Media/col-34.imageset/col-34.png
new file mode 100644
index 0000000..f5f2138
Binary files /dev/null and b/Resources/Media.xcassets/Media/col-34.imageset/col-34.png differ
diff --git a/Resources/Media.xcassets/Media/col-34.imageset/col-34@2x.png b/Resources/Media.xcassets/Media/col-34.imageset/col-34@2x.png
new file mode 100644
index 0000000..094be94
Binary files /dev/null and b/Resources/Media.xcassets/Media/col-34.imageset/col-34@2x.png differ
diff --git a/Resources/Media.xcassets/Media/col-full-sel.imageset/Contents.json b/Resources/Media.xcassets/Media/col-full-sel.imageset/Contents.json
new file mode 100644
index 0000000..7df7c41
--- /dev/null
+++ b/Resources/Media.xcassets/Media/col-full-sel.imageset/Contents.json
@@ -0,0 +1,22 @@
+{
+ "images" : [
+ {
+ "filename" : "col-full-sel.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "filename" : "col-full-sel@2x.png",
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Media.xcassets/Media/col-full-sel.imageset/col-full-sel.png b/Resources/Media.xcassets/Media/col-full-sel.imageset/col-full-sel.png
new file mode 100644
index 0000000..5dc80be
Binary files /dev/null and b/Resources/Media.xcassets/Media/col-full-sel.imageset/col-full-sel.png differ
diff --git a/Resources/Media.xcassets/Media/col-full-sel.imageset/col-full-sel@2x.png b/Resources/Media.xcassets/Media/col-full-sel.imageset/col-full-sel@2x.png
new file mode 100644
index 0000000..104efd4
Binary files /dev/null and b/Resources/Media.xcassets/Media/col-full-sel.imageset/col-full-sel@2x.png differ
diff --git a/Resources/Media.xcassets/Media/col-full.imageset/Contents.json b/Resources/Media.xcassets/Media/col-full.imageset/Contents.json
new file mode 100644
index 0000000..bffd9f0
--- /dev/null
+++ b/Resources/Media.xcassets/Media/col-full.imageset/Contents.json
@@ -0,0 +1,22 @@
+{
+ "images" : [
+ {
+ "filename" : "col-full.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "filename" : "col-full@2x.png",
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Media.xcassets/Media/col-full.imageset/col-full.png b/Resources/Media.xcassets/Media/col-full.imageset/col-full.png
new file mode 100644
index 0000000..984c26c
Binary files /dev/null and b/Resources/Media.xcassets/Media/col-full.imageset/col-full.png differ
diff --git a/Resources/Media.xcassets/Media/col-full.imageset/col-full@2x.png b/Resources/Media.xcassets/Media/col-full.imageset/col-full@2x.png
new file mode 100644
index 0000000..516b8dc
Binary files /dev/null and b/Resources/Media.xcassets/Media/col-full.imageset/col-full@2x.png differ
diff --git a/Resources/Media.xcassets/Media/detail-arrow.imageset/Contents.json b/Resources/Media.xcassets/Media/detail-arrow.imageset/Contents.json
new file mode 100644
index 0000000..0d105f3
--- /dev/null
+++ b/Resources/Media.xcassets/Media/detail-arrow.imageset/Contents.json
@@ -0,0 +1,22 @@
+{
+ "images" : [
+ {
+ "filename" : "detail-arrow.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "filename" : "detail-arrow@2x.png",
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Media.xcassets/Media/detail-arrow.imageset/detail-arrow.png b/Resources/Media.xcassets/Media/detail-arrow.imageset/detail-arrow.png
new file mode 100644
index 0000000..5cd2767
Binary files /dev/null and b/Resources/Media.xcassets/Media/detail-arrow.imageset/detail-arrow.png differ
diff --git a/Resources/Media.xcassets/Media/detail-arrow.imageset/detail-arrow@2x.png b/Resources/Media.xcassets/Media/detail-arrow.imageset/detail-arrow@2x.png
new file mode 100644
index 0000000..45ecbb1
Binary files /dev/null and b/Resources/Media.xcassets/Media/detail-arrow.imageset/detail-arrow@2x.png differ
diff --git a/Resources/Media.xcassets/Media/fader-popbox.imageset/Contents.json b/Resources/Media.xcassets/Media/fader-popbox.imageset/Contents.json
new file mode 100644
index 0000000..be2ad15
--- /dev/null
+++ b/Resources/Media.xcassets/Media/fader-popbox.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+ "images" : [
+ {
+ "filename" : "fader-popbox.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Media.xcassets/Media/fader-popbox.imageset/fader-popbox.png b/Resources/Media.xcassets/Media/fader-popbox.imageset/fader-popbox.png
new file mode 100644
index 0000000..48161bc
Binary files /dev/null and b/Resources/Media.xcassets/Media/fader-popbox.imageset/fader-popbox.png differ
diff --git a/Resources/Media.xcassets/Media/lead-narrow.imageset/Contents.json b/Resources/Media.xcassets/Media/lead-narrow.imageset/Contents.json
new file mode 100644
index 0000000..29c5595
--- /dev/null
+++ b/Resources/Media.xcassets/Media/lead-narrow.imageset/Contents.json
@@ -0,0 +1,22 @@
+{
+ "images" : [
+ {
+ "filename" : "lead-narrow.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "filename" : "lead-narrow@2x.png",
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Media.xcassets/Media/lead-narrow.imageset/lead-narrow.png b/Resources/Media.xcassets/Media/lead-narrow.imageset/lead-narrow.png
new file mode 100644
index 0000000..9eae4eb
Binary files /dev/null and b/Resources/Media.xcassets/Media/lead-narrow.imageset/lead-narrow.png differ
diff --git a/Resources/Media.xcassets/Media/lead-narrow.imageset/lead-narrow@2x.png b/Resources/Media.xcassets/Media/lead-narrow.imageset/lead-narrow@2x.png
new file mode 100644
index 0000000..f87e1eb
Binary files /dev/null and b/Resources/Media.xcassets/Media/lead-narrow.imageset/lead-narrow@2x.png differ
diff --git a/Resources/Media.xcassets/Media/lead-wide.imageset/Contents.json b/Resources/Media.xcassets/Media/lead-wide.imageset/Contents.json
new file mode 100644
index 0000000..8fbe533
--- /dev/null
+++ b/Resources/Media.xcassets/Media/lead-wide.imageset/Contents.json
@@ -0,0 +1,22 @@
+{
+ "images" : [
+ {
+ "filename" : "lead-wide.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "filename" : "lead-wide@2x.png",
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Media.xcassets/Media/lead-wide.imageset/lead-wide.png b/Resources/Media.xcassets/Media/lead-wide.imageset/lead-wide.png
new file mode 100644
index 0000000..413eec6
Binary files /dev/null and b/Resources/Media.xcassets/Media/lead-wide.imageset/lead-wide.png differ
diff --git a/Resources/Media.xcassets/Media/lead-wide.imageset/lead-wide@2x.png b/Resources/Media.xcassets/Media/lead-wide.imageset/lead-wide@2x.png
new file mode 100644
index 0000000..3eee431
Binary files /dev/null and b/Resources/Media.xcassets/Media/lead-wide.imageset/lead-wide@2x.png differ
diff --git a/Resources/Media.xcassets/Media/more-arrow.imageset/Contents.json b/Resources/Media.xcassets/Media/more-arrow.imageset/Contents.json
new file mode 100644
index 0000000..54846d0
--- /dev/null
+++ b/Resources/Media.xcassets/Media/more-arrow.imageset/Contents.json
@@ -0,0 +1,22 @@
+{
+ "images" : [
+ {
+ "filename" : "more-arrow.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "filename" : "more-arrow@2x.png",
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Media.xcassets/Media/more-arrow.imageset/more-arrow.png b/Resources/Media.xcassets/Media/more-arrow.imageset/more-arrow.png
new file mode 100644
index 0000000..0d60a15
Binary files /dev/null and b/Resources/Media.xcassets/Media/more-arrow.imageset/more-arrow.png differ
diff --git a/Resources/Media.xcassets/Media/more-arrow.imageset/more-arrow@2x.png b/Resources/Media.xcassets/Media/more-arrow.imageset/more-arrow@2x.png
new file mode 100644
index 0000000..363251f
Binary files /dev/null and b/Resources/Media.xcassets/Media/more-arrow.imageset/more-arrow@2x.png differ
diff --git a/Resources/Media.xcassets/Media/selecthandle.imageset/Contents.json b/Resources/Media.xcassets/Media/selecthandle.imageset/Contents.json
new file mode 100644
index 0000000..26fa0cb
--- /dev/null
+++ b/Resources/Media.xcassets/Media/selecthandle.imageset/Contents.json
@@ -0,0 +1,22 @@
+{
+ "images" : [
+ {
+ "filename" : "selecthandle.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "filename" : "selecthandle@2x.png",
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Media.xcassets/Media/selecthandle.imageset/selecthandle.png b/Resources/Media.xcassets/Media/selecthandle.imageset/selecthandle.png
new file mode 100644
index 0000000..68dd965
Binary files /dev/null and b/Resources/Media.xcassets/Media/selecthandle.imageset/selecthandle.png differ
diff --git a/Resources/Media.xcassets/Media/selecthandle.imageset/selecthandle@2x.png b/Resources/Media.xcassets/Media/selecthandle.imageset/selecthandle@2x.png
new file mode 100644
index 0000000..15e4cee
Binary files /dev/null and b/Resources/Media.xcassets/Media/selecthandle.imageset/selecthandle@2x.png differ
diff --git a/Resources/Media.xcassets/Media/tabicon-game.imageset/Contents.json b/Resources/Media.xcassets/Media/tabicon-game.imageset/Contents.json
new file mode 100644
index 0000000..c9c5173
--- /dev/null
+++ b/Resources/Media.xcassets/Media/tabicon-game.imageset/Contents.json
@@ -0,0 +1,23 @@
+{
+ "images" : [
+ {
+ "filename" : "tabicon-game.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "filename" : "tabicon-game@2x.png",
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "filename" : "tabicon-game@3x.png",
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Media.xcassets/Media/tabicon-game.imageset/tabicon-game.png b/Resources/Media.xcassets/Media/tabicon-game.imageset/tabicon-game.png
new file mode 100644
index 0000000..e9197f6
Binary files /dev/null and b/Resources/Media.xcassets/Media/tabicon-game.imageset/tabicon-game.png differ
diff --git a/Resources/Media.xcassets/Media/tabicon-game.imageset/tabicon-game@2x.png b/Resources/Media.xcassets/Media/tabicon-game.imageset/tabicon-game@2x.png
new file mode 100644
index 0000000..3433bc2
Binary files /dev/null and b/Resources/Media.xcassets/Media/tabicon-game.imageset/tabicon-game@2x.png differ
diff --git a/Resources/Media.xcassets/Media/tabicon-game.imageset/tabicon-game@3x.png b/Resources/Media.xcassets/Media/tabicon-game.imageset/tabicon-game@3x.png
new file mode 100644
index 0000000..60bf336
Binary files /dev/null and b/Resources/Media.xcassets/Media/tabicon-game.imageset/tabicon-game@3x.png differ
diff --git a/Resources/Media.xcassets/Media/tabicon-help.imageset/Contents.json b/Resources/Media.xcassets/Media/tabicon-help.imageset/Contents.json
new file mode 100644
index 0000000..41c9335
--- /dev/null
+++ b/Resources/Media.xcassets/Media/tabicon-help.imageset/Contents.json
@@ -0,0 +1,23 @@
+{
+ "images" : [
+ {
+ "filename" : "tabicon-help.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "filename" : "tabicon-help@2x.png",
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "filename" : "tabicon-help@3x.png",
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Media.xcassets/Media/tabicon-help.imageset/tabicon-help.png b/Resources/Media.xcassets/Media/tabicon-help.imageset/tabicon-help.png
new file mode 100644
index 0000000..9191cf5
Binary files /dev/null and b/Resources/Media.xcassets/Media/tabicon-help.imageset/tabicon-help.png differ
diff --git a/Resources/Media.xcassets/Media/tabicon-help.imageset/tabicon-help@2x.png b/Resources/Media.xcassets/Media/tabicon-help.imageset/tabicon-help@2x.png
new file mode 100644
index 0000000..89eabcb
Binary files /dev/null and b/Resources/Media.xcassets/Media/tabicon-help.imageset/tabicon-help@2x.png differ
diff --git a/Resources/Media.xcassets/Media/tabicon-help.imageset/tabicon-help@3x.png b/Resources/Media.xcassets/Media/tabicon-help.imageset/tabicon-help@3x.png
new file mode 100644
index 0000000..386da9a
Binary files /dev/null and b/Resources/Media.xcassets/Media/tabicon-help.imageset/tabicon-help@3x.png differ
diff --git a/Resources/Media.xcassets/Media/tabicon-notes.imageset/Contents.json b/Resources/Media.xcassets/Media/tabicon-notes.imageset/Contents.json
new file mode 100644
index 0000000..b2b51f1
--- /dev/null
+++ b/Resources/Media.xcassets/Media/tabicon-notes.imageset/Contents.json
@@ -0,0 +1,23 @@
+{
+ "images" : [
+ {
+ "filename" : "tabicon-notes.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "filename" : "tabicon-notes@2x.png",
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "filename" : "tabicon-notes@3x.png",
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Media.xcassets/Media/tabicon-notes.imageset/tabicon-notes.png b/Resources/Media.xcassets/Media/tabicon-notes.imageset/tabicon-notes.png
new file mode 100644
index 0000000..2205579
Binary files /dev/null and b/Resources/Media.xcassets/Media/tabicon-notes.imageset/tabicon-notes.png differ
diff --git a/Resources/Media.xcassets/Media/tabicon-notes.imageset/tabicon-notes@2x.png b/Resources/Media.xcassets/Media/tabicon-notes.imageset/tabicon-notes@2x.png
new file mode 100644
index 0000000..3541e47
Binary files /dev/null and b/Resources/Media.xcassets/Media/tabicon-notes.imageset/tabicon-notes@2x.png differ
diff --git a/Resources/Media.xcassets/Media/tabicon-notes.imageset/tabicon-notes@3x.png b/Resources/Media.xcassets/Media/tabicon-notes.imageset/tabicon-notes@3x.png
new file mode 100644
index 0000000..97d5c22
Binary files /dev/null and b/Resources/Media.xcassets/Media/tabicon-notes.imageset/tabicon-notes@3x.png differ
diff --git a/Resources/Media.xcassets/Media/tabicon-settings.imageset/Contents.json b/Resources/Media.xcassets/Media/tabicon-settings.imageset/Contents.json
new file mode 100644
index 0000000..a179ffa
--- /dev/null
+++ b/Resources/Media.xcassets/Media/tabicon-settings.imageset/Contents.json
@@ -0,0 +1,23 @@
+{
+ "images" : [
+ {
+ "filename" : "tabicon-settings.png",
+ "idiom" : "universal",
+ "scale" : "1x"
+ },
+ {
+ "filename" : "tabicon-settings@2x.png",
+ "idiom" : "universal",
+ "scale" : "2x"
+ },
+ {
+ "filename" : "tabicon-settings@3x.png",
+ "idiom" : "universal",
+ "scale" : "3x"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Resources/Media.xcassets/Media/tabicon-settings.imageset/tabicon-settings.png b/Resources/Media.xcassets/Media/tabicon-settings.imageset/tabicon-settings.png
new file mode 100644
index 0000000..63f1a3b
Binary files /dev/null and b/Resources/Media.xcassets/Media/tabicon-settings.imageset/tabicon-settings.png differ
diff --git a/Resources/Media.xcassets/Media/tabicon-settings.imageset/tabicon-settings@2x.png b/Resources/Media.xcassets/Media/tabicon-settings.imageset/tabicon-settings@2x.png
new file mode 100644
index 0000000..2f32df4
Binary files /dev/null and b/Resources/Media.xcassets/Media/tabicon-settings.imageset/tabicon-settings@2x.png differ
diff --git a/Resources/Media.xcassets/Media/tabicon-settings.imageset/tabicon-settings@3x.png b/Resources/Media.xcassets/Media/tabicon-settings.imageset/tabicon-settings@3x.png
new file mode 100644
index 0000000..fccc21d
Binary files /dev/null and b/Resources/Media.xcassets/Media/tabicon-settings.imageset/tabicon-settings@3x.png differ
diff --git a/Resources/ShareFiles.storyboard b/Resources/ShareFiles.storyboard
new file mode 100644
index 0000000..67e42ba
--- /dev/null
+++ b/Resources/ShareFiles.storyboard
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Resources/ShareFilesVC.xib b/Resources/ShareFilesVC.xib
deleted file mode 100644
index e0e0bc3..0000000
--- a/Resources/ShareFilesVC.xib
+++ /dev/null
@@ -1,195 +0,0 @@
-
-
-
- 1296
- 14B25
- 6250
- 1343.16
- 755.00
-
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- 6244
-
-
- IBProxyObject
- IBUITableView
-
-
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
-
- PluginDependencyRecalculationVersion
-
-
-
-
- IBFilesOwner
- IBCocoaTouchFramework
-
-
- IBFirstResponder
- IBCocoaTouchFramework
-
-
-
- 274
- {{0, 64}, {320, 416}}
-
-
-
-
- 1
- MC45MzcyNTQ5MDIgMC45MzcyNTQ5MDIgMC45NTY4NjI3NDUxAA
- groupTableViewBackgroundColor
-
- NO
- YES
- NO
-
-
- NO
-
-
- IBUISimulatedFreeformSizeMetricsSentinel
- Freeform
-
- IBCocoaTouchFramework
- NO
- 1
- 2
- 0
- YES
- 44
- 10
- 10
-
-
-
-
-
-
- view
-
-
-
- 5
-
-
-
- tableView
-
-
-
- 8
-
-
-
- dataSource
-
-
-
- 6
-
-
-
- delegate
-
-
-
- 7
-
-
-
-
-
- 0
-
-
-
-
-
- -1
-
-
- File's Owner
-
-
- -2
-
-
-
-
- 4
-
-
-
-
-
-
- ShareFilesViewController
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- UIResponder
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
-
-
-
-
- 8
-
-
-
-
- UIGestureRecognizer
- NSObject
-
- IBFrameworkSource
- UIKit.framework/Headers/UIGestureRecognizer.h
-
-
-
- UIResponder
- NSObject
-
- IBFrameworkSource
- UIKit.framework/Headers/UIResponder.h
-
-
-
- UIScrollView
- UIView
-
- IBFrameworkSource
- UIKit.framework/Headers/UIScrollView.h
-
-
-
- UITableView
- UIScrollView
-
- IBFrameworkSource
- UIKit.framework/Headers/UITableView.h
-
-
-
- UIView
- UIResponder
-
- IBFrameworkSource
- UIKit.framework/Headers/UIView.h
-
-
-
-
- 0
- IBCocoaTouchFramework
- NO
-
- com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3
-
-
- YES
- 3
-
-
diff --git a/Resources/Transcript.storyboard b/Resources/Transcript.storyboard
new file mode 100644
index 0000000..b636952
--- /dev/null
+++ b/Resources/Transcript.storyboard
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Resources/TranscriptVC.xib b/Resources/TranscriptVC.xib
deleted file mode 100644
index ca604aa..0000000
--- a/Resources/TranscriptVC.xib
+++ /dev/null
@@ -1,148 +0,0 @@
-
-
-
- 1536
- 12C60
- 2844
- 1187.34
- 625.00
-
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- 1930
-
-
- IBProxyObject
- IBUITableView
-
-
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
-
- PluginDependencyRecalculationVersion
-
-
-
-
- IBFilesOwner
- IBCocoaTouchFramework
-
-
- IBFirstResponder
- IBCocoaTouchFramework
-
-
-
- 274
- {{0, 64}, {320, 416}}
-
-
- 3
- MQA
-
- NO
- YES
- NO
-
-
- NO
-
- IBCocoaTouchFramework
- NO
- 1
- 0
- YES
- 44
- 22
- 22
-
-
-
-
-
-
- view
-
-
-
- 5
-
-
-
- tableView
-
-
-
- 8
-
-
-
- dataSource
-
-
-
- 6
-
-
-
- delegate
-
-
-
- 7
-
-
-
-
-
- 0
-
-
-
-
-
- -1
-
-
- File's Owner
-
-
- -2
-
-
-
-
- 4
-
-
-
-
-
-
- TranscriptViewController
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- UIResponder
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
-
-
-
-
- 8
-
-
- 0
- IBCocoaTouchFramework
-
- com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS
-
-
-
- com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3
-
-
- YES
- 3
- 1930
-
-
diff --git a/Resources/WebDocVC.xib b/Resources/WebDocVC.xib
deleted file mode 100644
index aa85d86..0000000
--- a/Resources/WebDocVC.xib
+++ /dev/null
@@ -1,147 +0,0 @@
-
-
-
- 1536
- 12C60
- 2844
- 1187.34
- 625.00
-
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- 1930
-
-
- IBProxyObject
- IBUIView
- IBUIWebView
-
-
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
-
- PluginDependencyRecalculationVersion
-
-
-
-
- IBFilesOwner
- IBCocoaTouchFramework
-
-
- IBFirstResponder
- IBCocoaTouchFramework
-
-
-
- 274
-
-
-
- 274
- {320, 460}
-
- _NS:693
-
- 3
- MC41AA
-
- 2
-
-
- IBCocoaTouchFramework
-
-
- {{0, 20}, {320, 460}}
-
-
-
- 3
- MC41AA
-
-
- IBCocoaTouchFramework
-
-
-
-
-
-
- view
-
-
-
- 3
-
-
-
- webview
-
-
-
- 5
-
-
-
-
-
- 0
-
-
-
-
-
- 1
-
-
-
-
-
-
-
- -1
-
-
- File's Owner
-
-
- -2
-
-
-
-
- 4
-
-
-
-
-
-
- DisplayWebViewController
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- UIResponder
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
-
-
-
-
- 5
-
-
- 0
- IBCocoaTouchFramework
-
- com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS
-
-
-
- com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3
-
-
- YES
- 3
- 1930
-
-
diff --git a/Resources/en.lproj/TerpLocalize.strings b/Resources/en.lproj/TerpLocalize.strings
index 0ecb73c..bf4066e 100644
--- a/Resources/en.lproj/TerpLocalize.strings
+++ b/Resources/en.lproj/TerpLocalize.strings
@@ -29,3 +29,7 @@
"settings.cell.autocorrect" = "Auto-Correction";
"settings.cell.keepopen" = "Keyboard Stays Open";
"settings.cell.sharefiles" = "Share Saved Files";
+
+"prefs.button.dark" = "Dark";
+"prefs.button.bright" = "Bright";
+"prefs.button.quiet" = "Quiet";
diff --git a/TerpSrc/DisplayTextViewController.h b/TerpSrc/DisplayTextViewController.h
index d69c4ee..b5c9336 100644
--- a/TerpSrc/DisplayTextViewController.h
+++ b/TerpSrc/DisplayTextViewController.h
@@ -10,11 +10,11 @@
@interface DisplayTextViewController : UIViewController
-@property (nonatomic, retain) IBOutlet UITextView *textview;
-@property (nonatomic, retain) IBOutlet UILabel *titlelabel;
-@property (nonatomic, retain) IBOutlet UILabel *datelabel;
-@property (nonatomic, retain) GlkFileThumb *thumb;
+@property (nonatomic, strong) IBOutlet UITextView *textview;
+@property (nonatomic, strong) IBOutlet UILabel *titlelabel;
+@property (nonatomic, strong) IBOutlet UILabel *datelabel;
+@property (nonatomic, strong) GlkFileThumb *thumb;
-- (id) initWithNibName:(NSString *)nibName thumb:(GlkFileThumb *)thumb bundle:(NSBundle *)nibBundle;
+- (instancetype) initWithNibName:(NSString *)nibName thumb:(GlkFileThumb *)thumb bundle:(NSBundle *)nibBundle;
@end
diff --git a/TerpSrc/DisplayTextViewController.m b/TerpSrc/DisplayTextViewController.m
index e29b454..6ed3601 100644
--- a/TerpSrc/DisplayTextViewController.m
+++ b/TerpSrc/DisplayTextViewController.m
@@ -17,7 +17,7 @@ @implementation DisplayTextViewController
@synthesize datelabel;
@synthesize thumb;
-- (id) initWithNibName:(NSString *)nibName thumb:(GlkFileThumb *)thumbref bundle:(NSBundle *)nibBundle
+- (instancetype) initWithNibName:(NSString *)nibName thumb:(GlkFileThumb *)thumbref bundle:(NSBundle *)nibBundle
{
self = [super initWithNibName:nibName bundle:nibBundle];
if (self) {
@@ -27,13 +27,6 @@ - (id) initWithNibName:(NSString *)nibName thumb:(GlkFileThumb *)thumbref bundle
return self;
}
-- (void) dealloc {
- self.thumb = nil;
- self.textview = nil;
- self.titlelabel = nil;
- self.datelabel = nil;
- [super dealloc];
-}
- (void) viewDidLoad
{
@@ -41,21 +34,21 @@ - (void) viewDidLoad
self.navigationItem.title = NSLocalizedStringFromTable(@"title.transcript", @"TerpLocalize", nil);
- UIBarButtonItem *sendbutton = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAction target:self action:@selector(buttonSend:)] autorelease];
+ UIBarButtonItem *sendbutton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAction target:self action:@selector(buttonSend:)];
self.navigationItem.rightBarButtonItem = sendbutton;
titlelabel.text = thumb.label;
-
- if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {
- /* No room for this on the iphone layout */
- datelabel.hidden = YES;
- }
- else {
- RelDateFormatter *dateformatter = [[[RelDateFormatter alloc] init] autorelease];
- [dateformatter setDateStyle:NSDateFormatterMediumStyle];
- [dateformatter setTimeStyle:NSDateFormatterShortStyle];
+
+// if (UIDevice.currentDevice.userInterfaceIdiom == UIUserInterfaceIdiomPhone) {
+// /* No room for this on the iphone layout */
+// datelabel.hidden = YES;
+// }
+// else {
+ RelDateFormatter *dateformatter = [[RelDateFormatter alloc] init];
+ dateformatter.dateStyle = NSDateFormatterMediumStyle;
+ dateformatter.timeStyle = NSDateFormatterShortStyle;
datelabel.text = [dateformatter stringFromDate:thumb.modtime];
- }
+// }
NSString *str = [NSString stringWithContentsOfFile:thumb.pathname encoding:NSUTF8StringEncoding error:nil];
if (str)
@@ -63,7 +56,7 @@ - (void) viewDidLoad
if (true) {
UISwipeGestureRecognizer *recognizer;
- recognizer = [[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeRight:)] autorelease];
+ recognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeRight:)];
recognizer.direction = UISwipeGestureRecognizerDirectionRight;
[textview addGestureRecognizer:recognizer];
}
@@ -75,24 +68,12 @@ - (void) handleSwipeRight:(UIGestureRecognizer *)recognizer {
- (void) buttonSend:(id)sender
{
- if ([UIActivityViewController class]) {
- // Available in iOS6+
- NSArray *ls = [NSArray arrayWithObject:textview.text];
- UIActivityViewController *actvc = [[[UIActivityViewController alloc] initWithActivityItems:ls applicationActivities:nil] autorelease];
- if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {
+ NSArray *ls = @[textview.text];
+ UIActivityViewController *actvc = [[UIActivityViewController alloc] initWithActivityItems:ls applicationActivities:nil];
+ if (UIDevice.currentDevice.userInterfaceIdiom == UIUserInterfaceIdiomPhone) {
[self presentViewController:actvc animated:YES completion:nil];
}
- else {
- UIPopoverController *popover = [[[UIPopoverController alloc] initWithContentViewController:actvc] autorelease];
- [popover presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
- }
return;
}
-}
-
-- (BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)orientation {
- return [[IosGlkViewController singleton] shouldAutorotateToInterfaceOrientation:orientation];
-}
-
@end
diff --git a/TerpSrc/DisplayWebViewController.h b/TerpSrc/DisplayWebViewController.h
index 8999da7..f5fdfe6 100644
--- a/TerpSrc/DisplayWebViewController.h
+++ b/TerpSrc/DisplayWebViewController.h
@@ -5,13 +5,14 @@
*/
#import
+#import
-@interface DisplayWebViewController : UIViewController
+@interface DisplayWebViewController : UIViewController
-@property (nonatomic, retain) IBOutlet UIWebView *webview;
-@property (nonatomic, retain) NSString *filename;
-@property (nonatomic, retain) NSString *doctitle;
+@property (nonatomic, strong) IBOutlet WKWebView *webview;
+@property (nonatomic, strong) NSString *filename;
+@property (nonatomic, strong) NSString *doctitle;
-- (id) initWithNibName:(NSString *)nibName filename:(NSString *)filename title:(NSString *)title bundle:(NSBundle *)nibBundle;
+- (instancetype) initWithNibName:(NSString *)nibName filename:(NSString *)filename title:(NSString *)title bundle:(NSBundle *)nibBundle;
@end
diff --git a/TerpSrc/DisplayWebViewController.m b/TerpSrc/DisplayWebViewController.m
index 36651f4..9a60438 100644
--- a/TerpSrc/DisplayWebViewController.m
+++ b/TerpSrc/DisplayWebViewController.m
@@ -15,7 +15,7 @@ @implementation DisplayWebViewController
@synthesize filename;
@synthesize doctitle;
-- (id) initWithNibName:(NSString *)nibName filename:(NSString *)fileref title:(NSString *)titleref bundle:(NSBundle *)nibBundle
+- (instancetype) initWithNibName:(NSString *)nibName filename:(NSString *)fileref title:(NSString *)titleref bundle:(NSBundle *)nibBundle
{
self = [super initWithNibName:nibName bundle:nibBundle];
if (self) {
@@ -27,19 +27,15 @@ - (id) initWithNibName:(NSString *)nibName filename:(NSString *)fileref title:(N
}
- (void) dealloc {
- self.filename = nil;
- self.doctitle = nil;
if (webview) {
- webview.delegate = nil;
- self.webview = nil;
+ webview.navigationDelegate = nil;
}
- [super dealloc];
}
- (void) viewDidLoad
{
[super viewDidLoad];
-
+
self.navigationItem.title = doctitle;
NSBundle *bundle = [NSBundle mainBundle];
@@ -48,11 +44,11 @@ - (void) viewDidLoad
NSURL *url = [NSURL fileURLWithPath:path isDirectory:NO];
NSString *html = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];
[webview loadHTMLString:html baseURL:url];
- webview.delegate = self;
+ webview.navigationDelegate = self;
if (true) {
UISwipeGestureRecognizer *recognizer;
- recognizer = [[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeRight:)] autorelease];
+ recognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeRight:)];
recognizer.direction = UISwipeGestureRecognizerDirectionRight;
[webview addGestureRecognizer:recognizer];
}
@@ -64,20 +60,14 @@ - (void) handleSwipeRight:(UIGestureRecognizer *)recognizer {
/* Ensure that all external URLs are sent to Safari. (UIWebView delegate method.)
*/
-- (BOOL) webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
- if ([request.URL isFileURL]) {
+- (BOOL) webView:(WKWebView *)webView decidePolicyForNavigationAction:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
+ if ((request.URL).fileURL) {
/* Let file:... URLs load normally */
return YES;
}
-
- [[UIApplication sharedApplication] openURL:request.URL];
- return NO;
-}
-- (BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)orientation
-{
- IosGlkViewController *glkviewc = [IosGlkViewController singleton];
- return [glkviewc shouldAutorotateToInterfaceOrientation:orientation];
+ [[UIApplication sharedApplication] openURL:request.URL options:@{} completionHandler:nil];
+ return NO;
}
@end
diff --git a/TerpSrc/FIzmoGlkTabBarControllerDelegate.m b/TerpSrc/FIzmoGlkTabBarControllerDelegate.m
new file mode 100644
index 0000000..0eb463f
--- /dev/null
+++ b/TerpSrc/FIzmoGlkTabBarControllerDelegate.m
@@ -0,0 +1,58 @@
+/* FizmoGlkTabBarControllerDelegate.m: IosFizmo-specific subclass of IosGlkTabBarControllerDelegate.
+ for IosFizmo, an IosGlk port of the Fizmo Z-machine interpreter.
+ Designed by Andrew Plotkin
+ http://eblong.com/zarf/glk/
+ */
+
+#import "NotesViewController.h"
+#import "SettingsViewController.h"
+
+#import "FizmoGlkTabBarControllerDelegate.h"
+
+@implementation FizmoGlkTabBarControllerDelegate
+
+
+- (void) tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewc {
+
+ [super tabBarController:tabBarController didSelectViewController:viewc];
+
+ if (![viewc isKindOfClass:[UINavigationController class]])
+ return;
+ UINavigationController *navc = (UINavigationController *)viewc;
+ NSArray *viewcstack = navc.viewControllers;
+ if (!viewcstack || !viewcstack.count)
+ return;
+ UIViewController *rootviewc = viewcstack[0];
+ // NSLog(@"### tabBarController did select %@ (%@)", navc, rootviewc);
+
+ if (rootviewc != self.notesvc) {
+ /* If the notesvc was drilled into the transcripts view or subviews, pop out of there. */
+ [self.notesvc.navigationController popToRootViewControllerAnimated:NO];
+ }
+ if (rootviewc != self.settingsvc) {
+ /* If the settingsvc was drilled into a web subview, pop out of there. */
+ [self.settingsvc.navigationController popToRootViewControllerAnimated:NO];
+ }
+}
+
+- (NotesViewController *)notesvc {
+ if (_notesvc == nil) {
+ for (UIViewController *vc in self.tabBarController.viewControllers) {
+ if ([vc isKindOfClass:[NotesViewController class]])
+ _notesvc = (NotesViewController *)vc;
+ }
+ }
+ return _notesvc;
+}
+
+- (SettingsViewController *)settingsvc {
+ if (_settingsvc == nil) {
+ for (UIViewController *vc in self.tabBarController.viewControllers) {
+ if ([vc isKindOfClass:[SettingsViewController class]])
+ _settingsvc = (SettingsViewController *)vc;
+ }
+ }
+ return _settingsvc;
+}
+
+@end
diff --git a/TerpSrc/FizmoGameOverView.m b/TerpSrc/FizmoGameOverView.m
index 3bdf59f..c1d3b58 100644
--- a/TerpSrc/FizmoGameOverView.m
+++ b/TerpSrc/FizmoGameOverView.m
@@ -15,9 +15,6 @@
@implementation FizmoGameOverView
-- (void) dealloc {
- [super dealloc];
-}
- (NSString *) nibForContent {
if (iosglk_can_restart_cleanly())
@@ -40,7 +37,7 @@ - (IBAction) handleRestoreButton:(id)sender {
FizmoGlkViewController *viewc = [FizmoGlkViewController singleton];
- viewc.restorefileprompt = [[[GlkFileRefPrompt alloc] initWithUsage:fileusage_SavedGame fmode:filemode_Read dirname:dirname] autorelease];
+ viewc.restorefileprompt = [[GlkFileRefPrompt alloc] initWithUsage:fileusage_SavedGame fmode:filemode_Read dirname:dirname];
[viewc displayModalRequest:viewc.restorefileprompt];
// The callback from the FileSelectVC will trigger acceptEventRestart.
diff --git a/TerpSrc/FizmoGlkDelegate.h b/TerpSrc/FizmoGlkDelegate.h
index 694b378..8ef6bd0 100644
--- a/TerpSrc/FizmoGlkDelegate.h
+++ b/TerpSrc/FizmoGlkDelegate.h
@@ -15,21 +15,21 @@
int maxwidth; // 0 for full-width, 1 for 3/4-ish, 2 for 1/2-ish.
NSString *fontfamily; // as the user knows it -- not necessarily the true family name
int fontscale; // a number from 1 to FONTSCALE_MAX
- int colorscheme; // 0:Bright, 1:Quiet, 2:Dark
+ int colorscheme; // 0:Bright, 1:Quiet
int leading; // 0 to LEADING_MAX
}
@property (nonatomic) int maxwidth;
/* The following properties are read from multiple threads, so we declare them atomic. */
-@property (retain) NSString *fontfamily;
+@property (strong) NSString *fontfamily;
@property int fontscale;
@property int colorscheme;
@property int leading;
-- (NSString *) gameTitle;
-- (NSString *) gamePath;
-- (UIColor *) genBackgroundColor;
-- (UIColor *) genForegroundColor;
+@property (NS_NONATOMIC_IOSONLY, readonly, copy) NSString *gameTitle;
+@property (NS_NONATOMIC_IOSONLY, readonly, copy) NSString *gamePath;
+@property (NS_NONATOMIC_IOSONLY, readonly, copy) UIColor *genBackgroundColor;
+@property (NS_NONATOMIC_IOSONLY, readonly, copy) UIColor *genForegroundColor;
- (FontVariants) fontVariantsForSize:(CGFloat)size label:(NSString *)label;
@end
diff --git a/TerpSrc/FizmoGlkDelegate.m b/TerpSrc/FizmoGlkDelegate.m
index 408c3aa..08e46d9 100644
--- a/TerpSrc/FizmoGlkDelegate.m
+++ b/TerpSrc/FizmoGlkDelegate.m
@@ -11,7 +11,6 @@
#import "FizmoGlkWindows.h"
#import "GlkWindowState.h"
#import "StyleSet.h"
-#import "GlkUtilities.h"
// This typedef works around header file annoyance. We're not going to refer to it.
typedef struct z_file_struct z_file;
@@ -25,10 +24,6 @@ @implementation FizmoGlkDelegate
@synthesize colorscheme;
@synthesize leading;
-- (void) dealloc {
- self.fontfamily = nil;
- [super dealloc];
-}
- (NSString *) gameId {
return nil;
@@ -41,9 +36,9 @@ - (NSString *) gameId {
| (((glui32)c4)) )
/* Check whether the given file is a Glulx save file matching our game.
-
+
This replicates the Quetzal-parsing code in glulxe. It's a stable algorithm and I don't want to go chopping additional entry points into the interpreter.
-
+
Recall that for Z-code, the IFhd chunk contains: release (2 bytes), serial (6 bytes), checksum (2 bytes), PC (3 bytes).
http://inform-fiction.org/zmachine/standards/quetzal/index.html#five
*/
@@ -51,7 +46,7 @@ - (GlkSaveFormat) checkGlkSaveFileFormat:(NSString *)path {
NSFileHandle *fhan = [NSFileHandle fileHandleForReadingAtPath:path];
if (!fhan)
return saveformat_Unreadable;
-
+
// Let's do this using a block.
BOOL (^Read4)(glui32 *) = ^(glui32 *val) {
NSData *dat = [fhan readDataOfLength:4];
@@ -63,16 +58,16 @@ - (GlkSaveFormat) checkGlkSaveFileFormat:(NSString *)path {
*val = ((bytes[0] << 24) | (bytes[1] << 16) | (bytes[2] << 8) | (bytes[3]));
return YES;
};
-
+
BOOL res;
glui32 val;
-
+
res = Read4(&val);
if (!res || val != IFFID('F', 'O', 'R', 'M')) {
[fhan closeFile];
return saveformat_UnknownFormat;
}
-
+
glui32 filelen;
res = Read4(&filelen);
if (!res) {
@@ -80,19 +75,19 @@ - (GlkSaveFormat) checkGlkSaveFileFormat:(NSString *)path {
return saveformat_UnknownFormat;
}
glui32 filestart = fhan.offsetInFile;
-
+
res = Read4(&val);
if (!res || val != IFFID('I', 'F', 'Z', 'S')) {
[fhan closeFile];
return saveformat_UnknownFormat;
}
-
+
GlkSaveFormat result = saveformat_UnknownFormat;
-
+
while (fhan.offsetInFile < filestart+filelen) {
/* Read a chunk and deal with it. */
glui32 chunktype=0, chunkstart=0, chunklen=0;
-
+
res = Read4(&chunktype);
if (!res) {
result = saveformat_UnknownFormat;
@@ -104,7 +99,7 @@ - (GlkSaveFormat) checkGlkSaveFileFormat:(NSString *)path {
break;
}
chunkstart = fhan.offsetInFile;
-
+
if (chunktype == IFFID('I', 'F', 'h', 'd')) {
/* Read the value, compare to the game file. If it matches, we're good. */
NSData *dat = [fhan readDataOfLength:chunklen];
@@ -113,7 +108,7 @@ - (GlkSaveFormat) checkGlkSaveFileFormat:(NSString *)path {
break;
}
result = saveformat_UnknownFormat;
- NSFileHandle *gamehan = [NSFileHandle fileHandleForReadingAtPath:[self gamePath]];
+ NSFileHandle *gamehan = [NSFileHandle fileHandleForReadingAtPath:self.gamePath];
if (gamehan) {
int len = 0x20; // the Z-machine header
NSData *gamedat = [gamehan readDataOfLength:len];
@@ -154,13 +149,13 @@ - (GlkSaveFormat) checkGlkSaveFileFormat:(NSString *)path {
break;
}
}
-
+
if (chunkstart+chunklen != fhan.offsetInFile) {
/* Funny chunk length. */
result = saveformat_UnknownFormat;
break;
}
-
+
if ((chunklen & 1) != 0) {
/* Skip the mandatory byte after an odd-length chunk. */
NSData *dat = [fhan readDataOfLength:1];
@@ -170,9 +165,9 @@ - (GlkSaveFormat) checkGlkSaveFileFormat:(NSString *)path {
}
}
}
-
+
[fhan closeFile];
-
+
return result;
}
@@ -182,7 +177,7 @@ - (void) displayGlkFileUsage:(int)usage name:(NSString *)name {
UITabBarController *tabbc = terpvc.tabBarController;
if (!tabbc)
return;
-
+
if (tabbc.selectedViewController != terpvc.settingsvc.navigationController) {
// Switch to the settings view.
tabbc.selectedViewController = terpvc.settingsvc.navigationController;
@@ -204,7 +199,7 @@ - (NSString *) gamePath {
}
- (GlkWinBufferView *) viewForBufferWindow:(GlkWindowState *)win frame:(CGRect)box margin:(UIEdgeInsets)margin {
- return [[[FizmoGlkWinBufferView alloc] initWithWindow:win frame:box margin:margin] autorelease];
+ return [[FizmoGlkWinBufferView alloc] initWithWindow:win frame:box margin:margin];
}
- (GlkWinGridView *) viewForGridWindow:(GlkWindowState *)win frame:(CGRect)box margin:(UIEdgeInsets)margin {
@@ -240,12 +235,12 @@ - (FontVariants) fontVariantsForSize:(CGFloat)size label:(NSString *)label {
- (UIColor *) genForegroundColor {
switch (self.colorscheme) {
case 1: /* quiet */
- return [UIColor colorWithRed:0.25 green:0.2 blue:0.0 alpha:1];
+ return [UIColor colorNamed:@"CustomTerpTextQuiet"];
case 2: /* dark */
- return [UIColor colorWithRed:0.75 green:0.75 blue:0.7 alpha:1];
+ NSLog(@"dark is deprecated");
case 0: /* bright */
default:
- return [UIColor blackColor];
+ return [UIColor colorNamed:@"CustomTerpTextBright"];
}
}
@@ -254,26 +249,24 @@ - (UIColor *) genForegroundColor {
- (UIColor *) genBackgroundColor {
switch (self.colorscheme) {
case 1: /* quiet */
- return [UIColor colorWithRed:0.9 green:0.85 blue:0.7 alpha:1];
- case 2: /* dark */
- return [UIColor blackColor];
+ return [UIColor colorNamed:@"CustomTerpBGQuiet"];
case 0: /* bright */
default:
- return [UIColor colorWithRed:1 green:1 blue:0.95 alpha:1];
+ return [UIColor colorNamed:@"CustomTerpBGBright"];
}
}
/* This is invoked from both the VM and UI threads.
*/
- (void) prepareStyles:(StyleSet *)styles forWindowType:(glui32)wintype rock:(glui32)rock {
- BOOL isiphone = (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone);
-
+ BOOL isiphone = (UIDevice.currentDevice.userInterfaceIdiom == UIUserInterfaceIdiomPhone);
+
NSString *fontfam = self.fontfamily;
-
+
if (wintype == wintype_TextGrid) {
styles.margins = UIEdgeInsetsMake(6, 6, 6, 6);
styles.leading = self.leading;
-
+
CGFloat statusfontsize;
if (isiphone) {
statusfontsize = 9+self.fontscale;
@@ -281,7 +274,7 @@ - (void) prepareStyles:(StyleSet *)styles forWindowType:(glui32)wintype rock:(gl
else {
statusfontsize = 11+self.fontscale;
}
-
+
FontVariants variants = [StyleSet fontVariantsForSize:statusfontsize name:@"Courier", nil];
styles.fonts[style_Normal] = variants.normal;
styles.fonts[style_Emphasized] = variants.italic;
@@ -290,20 +283,19 @@ - (void) prepareStyles:(StyleSet *)styles forWindowType:(glui32)wintype rock:(gl
styles.fonts[style_Subheader] = variants.bold;
styles.fonts[style_Alert] = variants.italic;
styles.fonts[style_Note] = variants.italic;
-
+
switch (self.colorscheme) {
case 1: /* quiet */
- styles.backgroundcolor = [UIColor colorWithRed:0.75 green:0.7 blue:0.5 alpha:1];
- styles.colors[style_Normal] = [UIColor colorWithRed:0.15 green:0.1 blue:0.0 alpha:1];
+ styles.backgroundcolor = [UIColor colorNamed:@"CustomTerpGridBGQuiet"];
+ styles.colors[style_Normal] = [UIColor colorNamed:@"CustomTerpTextQuiet"];
break;
case 2: /* dark */
- styles.backgroundcolor = [UIColor colorWithRed:0.55 green:0.55 blue:0.5 alpha:1];
- styles.colors[style_Normal] = [UIColor blackColor];
+ NSLog(@"dark is deprecated");
break;
case 0: /* bright */
default:
- styles.backgroundcolor = [UIColor colorWithRed:0.85 green:0.8 blue:0.6 alpha:1];
- styles.colors[style_Normal] = [UIColor colorWithRed:0.25 green:0.2 blue:0.0 alpha:1];
+ styles.backgroundcolor = [UIColor colorNamed:@"CustomTerpGridBGBright"];
+ styles.colors[style_Normal] = [UIColor colorNamed:@"CustomTerpTextBright"];
break;
}
}
@@ -314,7 +306,7 @@ - (void) prepareStyles:(StyleSet *)styles forWindowType:(glui32)wintype rock:(gl
CGFloat statusfontsize = 11+self.fontscale;
FontVariants variants = [self fontVariantsForSize:statusfontsize label:fontfam];
-
+
styles.fonts[style_Normal] = variants.normal;
styles.fonts[style_Emphasized] = variants.italic;
styles.fonts[style_Preformatted] = [UIFont fontWithName:@"Courier" size:14];
@@ -323,16 +315,12 @@ - (void) prepareStyles:(StyleSet *)styles forWindowType:(glui32)wintype rock:(gl
styles.fonts[style_Input] = variants.bold;
styles.fonts[style_Alert] = variants.italic;
styles.fonts[style_Note] = variants.italic;
-
+
styles.backgroundcolor = self.genBackgroundColor;
styles.colors[style_Normal] = self.genForegroundColor;
}
}
-- (BOOL) hasDarkTheme {
- return (colorscheme == 2);
-}
-
/* This is invoked from both the VM and UI threads.
*/
- (CGSize) interWindowSpacing {
@@ -341,9 +329,9 @@ - (CGSize) interWindowSpacing {
- (CGRect) adjustFrame:(CGRect)rect {
/* Decode the maxwidth value into a pixel width. 0 means full-width. */
- if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
+ if (UIDevice.currentDevice.userInterfaceIdiom == UIUserInterfaceIdiomPhone)
return rect;
-
+
CGFloat limit = 0;
switch (maxwidth) {
case 0:
@@ -356,10 +344,10 @@ - (CGRect) adjustFrame:(CGRect)rect {
limit = 0.6667 * rect.size.width;
break;
}
-
+
// I hate odd widths
limit = ((int)floorf(limit)) & (~1);
-
+
if (limit > 64 && rect.size.width > limit) {
rect.origin.x = (rect.origin.x+0.5*rect.size.width) - 0.5*limit;
rect.size.width = limit;
@@ -368,9 +356,9 @@ - (CGRect) adjustFrame:(CGRect)rect {
}
- (UIEdgeInsets) viewMarginForWindow:(GlkWindowState *)win rect:(CGRect)rect framebounds:(CGRect)framebounds {
- if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
+ if (UIDevice.currentDevice.userInterfaceIdiom == UIUserInterfaceIdiomPhone)
return UIEdgeInsetsZero;
-
+
if ([win isKindOfClass:[GlkWindowBufferState class]]) {
CGFloat left = rect.origin.x - framebounds.origin.x;
CGFloat right = (framebounds.origin.x+framebounds.size.width) - (rect.origin.x+rect.size.width);
@@ -378,7 +366,7 @@ - (UIEdgeInsets) viewMarginForWindow:(GlkWindowState *)win rect:(CGRect)rect fra
return UIEdgeInsetsMake(0, left, 0, right);
}
}
-
+
return UIEdgeInsetsZero;
}
diff --git a/TerpSrc/FizmoGlkTabBarControllerDelegate.h b/TerpSrc/FizmoGlkTabBarControllerDelegate.h
new file mode 100644
index 0000000..929b64f
--- /dev/null
+++ b/TerpSrc/FizmoGlkTabBarControllerDelegate.h
@@ -0,0 +1,20 @@
+/* FizmoGlkTabBarControllerDelegate.h: IosFizmo-specific subclass of IosGlkTabBarControllerDelegate.
+ for IosFizmo, an IosGlk port of the Fizmo Z-machine interpreter.
+ Designed by Andrew Plotkin
+ http://eblong.com/zarf/glk/
+ */
+
+#import "IosGlkTabBarControllerDelegate.h"
+
+@class NotesViewController, SettingsViewController;
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface FizmoGlkTabBarControllerDelegate : IosGlkTabBarControllerDelegate
+
+@property (nonatomic, assign) NotesViewController *notesvc;
+@property (nonatomic, assign) SettingsViewController *settingsvc;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/TerpSrc/FizmoGlkViewController.h b/TerpSrc/FizmoGlkViewController.h
index 4f89046..d4cd0e8 100644
--- a/TerpSrc/FizmoGlkViewController.h
+++ b/TerpSrc/FizmoGlkViewController.h
@@ -14,13 +14,13 @@
@interface FizmoGlkViewController : IosGlkViewController
-@property (nonatomic, retain) IBOutlet NotesViewController *notesvc;
-@property (nonatomic, retain) IBOutlet SettingsViewController *settingsvc;
-@property (nonatomic, retain) GlkFileRefPrompt *restorefileprompt;
+@property (nonatomic, strong) NotesViewController *notesvc;
+@property (nonatomic, strong) SettingsViewController *settingsvc;
+@property (nonatomic, strong) GlkFileRefPrompt *restorefileprompt;
+ (FizmoGlkViewController *) singleton;
-- (FizmoGlkDelegate *) fizmoDelegate;
+@property (NS_NONATOMIC_IOSONLY, readonly, strong) FizmoGlkDelegate *fizmoDelegate;
- (IBAction) showPreferences;
- (void) handleSwipeLeft:(UIGestureRecognizer *)recognizer;
- (void) handleSwipeRight:(UIGestureRecognizer *)recognizer;
diff --git a/TerpSrc/FizmoGlkViewController.m b/TerpSrc/FizmoGlkViewController.m
index b40bfea..a0834f0 100644
--- a/TerpSrc/FizmoGlkViewController.m
+++ b/TerpSrc/FizmoGlkViewController.m
@@ -24,10 +24,6 @@
@implementation FizmoGlkViewController
-@synthesize notesvc;
-@synthesize settingsvc;
-@synthesize restorefileprompt;
-
+ (FizmoGlkViewController *) singleton {
return (FizmoGlkViewController *)([IosGlkAppDelegate singleton].glkviewc);
}
@@ -38,11 +34,11 @@ - (FizmoGlkDelegate *) fizmoDelegate {
- (void) didFinishLaunching {
[super didFinishLaunching];
-
+
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
-
+
/* Set some reasonable defaults, if none have ever been set. */
- if (UI_USER_INTERFACE_IDIOM() != UIUserInterfaceIdiomPhone) {
+ if (UIDevice.currentDevice.userInterfaceIdiom != UIUserInterfaceIdiomPhone) {
/* On the iPad, use a 3/4 column and bump the leading a little. */
if (![defaults objectForKey:@"FrameMaxWidth"])
[defaults setInteger:1 forKey:@"FrameMaxWidth"];
@@ -52,42 +48,45 @@ - (void) didFinishLaunching {
else {
/* On the iPhone, leave everything as-is. */
}
-
+
int maxwidth = [defaults integerForKey:@"FrameMaxWidth"];
self.fizmoDelegate.maxwidth = maxwidth;
-
+
/* Font-scale values are arbitrarily between 1 and 5. We default to 3. */
int fontscale = [defaults integerForKey:@"FontScale"];
if (fontscale == 0)
fontscale = 3;
self.fizmoDelegate.fontscale = fontscale;
-
+
/* Leading is between 0 and 5. */
int leading = [defaults integerForKey:@"FontLeading"];
self.fizmoDelegate.leading = leading;
-
+
/* Color-scheme values are 0 to 2. */
int colorscheme = [defaults integerForKey:@"ColorScheme"];
self.fizmoDelegate.colorscheme = colorscheme;
-
+
NSString *fontfamily = [defaults stringForKey:@"FontFamily"];
if (!fontfamily)
fontfamily = @"Georgia";
self.fizmoDelegate.fontfamily = fontfamily;
-
- self.navigationController.navigationBar.barStyle = (self.fizmoDelegate.hasDarkTheme ? UIBarStyleBlack : UIBarStyleDefault);
-
+
+ self.navigationController.navigationBar.barTintColor = ((UITraitCollection.currentTraitCollection.userInterfaceStyle == UIUserInterfaceStyleDark ? [UIColor blackColor] : [UIColor whiteColor]));
+ NSMutableDictionary *attr = self.navigationController.navigationBar.titleTextAttributes.mutableCopy;
+ attr[NSForegroundColorAttributeName] = ((UITraitCollection.currentTraitCollection.userInterfaceStyle == UIUserInterfaceStyleDark ? [UIColor whiteColor] : [UIColor blackColor]));
+ self.navigationController.navigationBar.titleTextAttributes = attr;
+
// Yes, this is in two places.
self.frameview.backgroundColor = [self.fizmoDelegate genBackgroundColor];
}
- (void) becameInactive {
- [notesvc saveIfNeeded];
+ [_notesvc saveIfNeeded];
}
- (void) enteredBackground {
[super enteredBackground];
-
+
/* If the interpreter hit a "fatal error" state, and we're just waiting around to tell the user about it, we want the Home button to shut down the app. That is, the user can kill the app by backgrounding it. */
GlkLibrary *library = [GlkLibrary singleton];
if (library && library.vmexited && !iosglk_can_restart_cleanly()) {
@@ -97,32 +96,32 @@ - (void) enteredBackground {
- (void) viewDidLoad {
[super viewDidLoad];
-
+
self.frameview.backgroundColor = [self.fizmoDelegate genBackgroundColor];
-
+
if (true) {
UISwipeGestureRecognizer *recognizer;
- recognizer = [[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeLeft:)] autorelease];
+ recognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeLeft:)];
recognizer.direction = UISwipeGestureRecognizerDirectionLeft;
recognizer.delegate = self;
- [frameview addGestureRecognizer:recognizer];
- recognizer = [[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeRight:)] autorelease];
+ [self.frameview addGestureRecognizer:recognizer];
+ recognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeRight:)];
recognizer.direction = UISwipeGestureRecognizerDirectionRight;
recognizer.delegate = self;
- [frameview addGestureRecognizer:recognizer];
+ [self.frameview addGestureRecognizer:recognizer];
}
-
+
/* Set the title of the game tab. */
NSString *maintitle = self.navigationItem.title;
if (maintitle.length <= 2) {
/* Use a title from the delegate */
- maintitle = [self.fizmoDelegate gameTitle];
+ maintitle = (self.fizmoDelegate).gameTitle;
/* ...If that's not provided, pull it from TerpLocalize.strings. */
if (!maintitle)
maintitle = NSLocalizedStringFromTable(@"title.game", @"TerpLocalize", nil);
self.navigationItem.title = maintitle;
}
-
+
/* Interface Builder currently doesn't allow us to set the voiceover labels for bar button items. We do it in code. */
UIBarButtonItem *stylebutton = self.navigationItem.leftBarButtonItem;
if (stylebutton && [stylebutton respondsToSelector:@selector(setAccessibilityLabel:)]) {
@@ -132,62 +131,45 @@ - (void) viewDidLoad {
if (keyboardbutton && [keyboardbutton respondsToSelector:@selector(setAccessibilityLabel:)]) {
[keyboardbutton setAccessibilityLabel:NSLocalizedStringFromTable(@"label.keyboard", @"TerpLocalize", nil)];
}
-
- if ([IosGlkAppDelegate oldstyleui]) {
- /* Use the old-style drop-shadowed buttons in the navbar. */
- if (stylebutton)
- [stylebutton setImage:[UIImage imageNamed:@"baricon-styles-old"]];
- if (keyboardbutton)
- [keyboardbutton setImage:[UIImage imageNamed:@"baricon-edit-old"]];
- }
}
- (id) filterEvent:(id)data {
- if (self.vmexited && data && [data isKindOfClass:[GlkFileRefPrompt class]] && data == restorefileprompt) {
+ if (self.vmexited && data && [data isKindOfClass:[GlkFileRefPrompt class]] && data == _restorefileprompt) {
/* Drop the field reference to the prompt. */
- GlkFileRefPrompt *prompt = restorefileprompt;
- [[prompt retain] autorelease];
+ GlkFileRefPrompt *prompt = _restorefileprompt;
self.restorefileprompt = nil;
-
+
if (!prompt.filename) {
/* Cancelled. Forget it. */
return nil;
}
-
+
/* Queue up the autorestore file, and restart the interpreter. */
- iosglk_queue_autosave(prompt.pathname);
+ iosglk_queue_autosave((__bridge void *)(prompt.pathname));
[[GlkAppWrapper singleton] acceptEventRestart];
return nil;
}
-
+
return data;
}
- (void) postGameOver {
- CGRect rect = frameview.bounds;
- FizmoGameOverView *menuview = [[[FizmoGameOverView alloc] initWithFrame:frameview.bounds centerInFrame:rect] autorelease];
- [frameview postPopMenu:menuview];
+ CGRect rect = self.frameview.bounds;
+ FizmoGameOverView *menuview = [[FizmoGameOverView alloc] initWithFrame:self.frameview.bounds centerInFrame:rect];
+ [self.frameview postPopMenu:menuview];
+
+ [GlkWinBufferView speakString:NSLocalizedString(iosglk_can_restart_cleanly() ? @"The game has ended. You can start over from the beginning." : @"The game has encountered a serious error. Please press the Home button to leave the app.", nil)];
}
-/* UITabBarController delegate method */
-- (void) tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewc {
- if (![viewc isKindOfClass:[UINavigationController class]])
- return;
- UINavigationController *navc = (UINavigationController *)viewc;
- NSArray *viewcstack = navc.viewControllers;
- if (!viewcstack || !viewcstack.count)
- return;
- UIViewController *rootviewc = [viewcstack objectAtIndex:0];
- //NSLog(@"### tabBarController did select %@ (%@)", navc, rootviewc);
-
- if (rootviewc != notesvc) {
- /* If the notesvc was drilled into the transcripts view or subviews, pop out of there. */
- [notesvc.navigationController popToRootViewControllerAnimated:NO];
- }
- if (rootviewc != settingsvc) {
- /* If the settingsvc was drilled into a web subview, pop out of there. */
- [settingsvc.navigationController popToRootViewControllerAnimated:NO];
- }
+- (void)traitCollectionDidChange:(UITraitCollection *)previousTraitCollection {
+ [super traitCollectionDidChange:previousTraitCollection];
+ if ([self.traitCollection hasDifferentColorAppearanceComparedToTraitCollection:previousTraitCollection]) {
+ [self.frameview updateWindowStyles];
+ NSMutableDictionary *attr = self.navigationController.navigationBar.titleTextAttributes.mutableCopy;
+ attr[NSForegroundColorAttributeName] = ((UITraitCollection.currentTraitCollection.userInterfaceStyle == UIUserInterfaceStyleDark ? [UIColor whiteColor] : [UIColor blackColor]));
+ self.navigationController.navigationBar.titleTextAttributes = attr;
+ self.navigationController.navigationBar.barTintColor = ((UITraitCollection.currentTraitCollection.userInterfaceStyle == UIUserInterfaceStyleDark ? [UIColor blackColor] : [UIColor whiteColor]));
+ }
}
#if 0 /* tab-slide not yet working */
@@ -205,7 +187,7 @@ - (void) tabBarController:(UITabBarController *)tabBarController didSelectViewCo
NSUInteger toindex = [self.tabBarController.viewControllers indexOfObjectIdenticalTo:tovc];
if (toindex == NSNotFound || fromindex == NSNotFound)
return nil;
-
+
TabSlideTransitioning *trans = [[[TabSlideTransitioning alloc] init] autorelease];
trans.forwards = (toindex > fromindex);
if ((toindex+fromindex+1 == self.tabBarController.viewControllers.count)
@@ -219,69 +201,37 @@ - (void) tabBarController:(UITabBarController *)tabBarController didSelectViewCo
/* UIGestureRecognizer delegate method */
- (BOOL) gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
/* Turn off tab-swiping if an input menu is open. */
- if (!frameview)
+ if (!self.frameview)
return NO;
- if (frameview.menuview)
+ if (self.frameview.menuview)
return NO;
- /* Reject the swipe if it's on a window's text-selection rectangle. */
- if (self.textselecttag) {
- GlkWindowView *winv = [frameview windowViewForTag:textselecttag];
- if (winv) {
- CGRect rect = winv.textSelectArea;
- if (rect.size.width > 0 && rect.size.height > 0) {
- CGPoint loc = [touch locationInView:winv];
- if (loc.y >= rect.origin.y - 32 && loc.y < rect.origin.y+rect.size.height + 32
- && loc.x >= rect.origin.x && loc.x < rect.origin.x+rect.size.width) {
- return NO;
- }
- }
- }
- }
return YES;
}
- (IBAction) toggleKeyboard {
- if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {
+ if (UIDevice.currentDevice.userInterfaceIdiom == UIUserInterfaceIdiomPhone) {
/* Can't have the prefs menu up at the same time as the keyboard -- the iPhone screen is too small. */
- if (frameview.menuview && [frameview.menuview isKindOfClass:[PrefsMenuView class]]) {
- [frameview removePopMenuAnimated:YES];
+ if (self.frameview.menuview && [self.frameview.menuview isKindOfClass:[PrefsMenuView class]]) {
+ [self.frameview removePopMenuAnimated:YES];
}
}
[super toggleKeyboard];
}
-- (void) keyboardWillBeShown:(NSNotification*)notification {
- [super keyboardWillBeShown:notification];
- //NSLog(@"Keyboard will be shown (fizmo)");
-
- if (notesvc) {
- [notesvc adjustToKeyboardBox];
- }
-}
-
-- (void) keyboardWillBeHidden:(NSNotification*)notification {
- [super keyboardWillBeHidden:notification];
- //NSLog(@"Keyboard will be hidden (fizmo)");
-
- if (notesvc) {
- [notesvc adjustToKeyboardBox];
- }
-}
-
- (IBAction) showPreferences {
- if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {
+ if (UIDevice.currentDevice.userInterfaceIdiom == UIUserInterfaceIdiomPhone) {
/* Can't have the prefs menu up at the same time as the keyboard */
[self hideKeyboard];
}
-
- if (frameview.menuview && [frameview.menuview isKindOfClass:[PrefsMenuView class]]) {
- [frameview removePopMenuAnimated:YES];
+
+ if (self.frameview.menuview && [self.frameview.menuview isKindOfClass:[PrefsMenuView class]]) {
+ [self.frameview removePopMenuAnimated:YES];
return;
}
-
+
CGRect rect = CGRectMake(4, 0, 40, 4);
- PrefsMenuView *menuview = [[[PrefsMenuView alloc] initWithFrame:frameview.bounds buttonFrame:rect belowButton:YES] autorelease];
- [frameview postPopMenu:menuview];
+ PrefsMenuView *menuview = [[PrefsMenuView alloc] initWithFrame:self.frameview.bounds buttonFrame:rect belowButton:YES];
+ [self.frameview postPopMenu:menuview];
}
- (void) handleSwipeLeft:(UIGestureRecognizer *)recognizer {
@@ -312,7 +262,7 @@ - (void) animateTransition:(id)transition
{
UIViewController *fromvc = [transition viewControllerForKey:UITransitionContextFromViewControllerKey];
UIViewController *tovc = [transition viewControllerForKey:UITransitionContextToViewControllerKey];
-
+
CGRect curframe = fromvc.view.frame;
CGRect oldframe = curframe;
CGRect newframe = curframe;
@@ -324,10 +274,10 @@ - (void) animateTransition:(id)transition
oldframe.origin.x += oldframe.size.width;
newframe.origin.x -= newframe.size.width;
}
-
+
tovc.view.frame = oldframe;
[transition.containerView addSubview:tovc.view];
-
+
[UIView animateWithDuration:0.2
delay:0
options:0
diff --git a/TerpSrc/FizmoGlkWindows.m b/TerpSrc/FizmoGlkWindows.m
index ad2bdbc..e820fd0 100644
--- a/TerpSrc/FizmoGlkWindows.m
+++ b/TerpSrc/FizmoGlkWindows.m
@@ -5,17 +5,16 @@
*/
#import "FizmoGlkWindows.h"
-#import "StyledTextView.h"
#import "FizmoGlkViewController.h"
#import "FizmoGlkDelegate.h"
@implementation FizmoGlkWinBufferView
-- (id) initWithWindow:(GlkWindowState *)winref frame:(CGRect)box margin:(UIEdgeInsets)margin {
+- (instancetype) initWithWindow:(GlkWindowState *)winref frame:(CGRect)box margin:(UIEdgeInsets)margin {
self = [super initWithWindow:winref frame:box margin:margin];
if (self) {
FizmoGlkViewController *glkviewc = [FizmoGlkViewController singleton];
- BOOL isdark = glkviewc.fizmoDelegate.hasDarkTheme;
+ BOOL isdark = glkviewc.hasDarkTheme;
self.textview.indicatorStyle = (isdark ? UIScrollViewIndicatorStyleWhite : UIScrollViewIndicatorStyleDefault);
}
return self;
@@ -25,7 +24,7 @@ - (void) uncacheLayoutAndStyles {
[super uncacheLayoutAndStyles];
FizmoGlkViewController *glkviewc = [FizmoGlkViewController singleton];
- BOOL isdark = glkviewc.fizmoDelegate.hasDarkTheme;
+ BOOL isdark = glkviewc.hasDarkTheme;
self.textview.indicatorStyle = (isdark ? UIScrollViewIndicatorStyleWhite : UIScrollViewIndicatorStyleDefault);
}
diff --git a/TerpSrc/GradientView.h b/TerpSrc/GradientView.h
index ccf589c..7542100 100644
--- a/TerpSrc/GradientView.h
+++ b/TerpSrc/GradientView.h
@@ -17,13 +17,13 @@
}
@property (nonatomic) int numcolors;
-@property (nonatomic, retain) UIColor *color0;
-@property (nonatomic, retain) UIColor *color1;
-@property (nonatomic, retain) UIColor *color2;
-@property (nonatomic, retain) UIColor *color3;
-@property (nonatomic, retain) UIColor *color4;
+@property (nonatomic, strong) UIColor *color0;
+@property (nonatomic, strong) UIColor *color1;
+@property (nonatomic, strong) UIColor *color2;
+@property (nonatomic, strong) UIColor *color3;
+@property (nonatomic, strong) UIColor *color4;
-- (BOOL) hasColors;
+@property (NS_NONATOMIC_IOSONLY, readonly) BOOL hasColors;
- (void) setUpColorsPreset:(int)val;
@end
diff --git a/TerpSrc/GradientView.m b/TerpSrc/GradientView.m
index 28f3dbc..5a8e3fc 100644
--- a/TerpSrc/GradientView.m
+++ b/TerpSrc/GradientView.m
@@ -20,22 +20,6 @@ + (Class) layerClass {
return [CAGradientLayer class];
}
-- (id) initWithCoder:(NSCoder *)decoder {
- self = [super initWithCoder:decoder];
- if (self) {
- }
- return self;
-}
-
-- (void) dealloc {
- self.color0 = nil;
- self.color1 = nil;
- self.color2 = nil;
- self.color3 = nil;
- self.color4 = nil;
- [super dealloc];
-}
-
- (BOOL) hasColors {
if (numcolors == 0)
return NO;
@@ -55,9 +39,9 @@ - (BOOL) hasColors {
- (void) setUpColorsPreset:(int)val {
switch (val) {
case 1:
- self.color0 = [UIColor colorWithRed:1.0 green:0.992 blue:0.651 alpha:1];
- self.color1 = [UIColor colorWithRed:1.0 green:1.0 blue:0.500 alpha:1];
- self.color2 = [UIColor colorWithRed:0.976 green:0.980 blue:0.470 alpha:1];
+ self.color0 = [UIColor colorNamed:@"CustomNoteBackground1"];
+ self.color1 = [UIColor colorNamed:@"CustomNoteBackground2"];
+ self.color2 = [UIColor colorNamed:@"CustomNoteBackground3"];
self.color3 = self.color1;
self.color4 = self.color0;
numcolors = 5;
@@ -65,47 +49,39 @@ - (void) setUpColorsPreset:(int)val {
default:
return;
}
-
+
self.backgroundColor = nil;
CAGradientLayer *layer = (CAGradientLayer *)self.layer;
layer.startPoint = CGPointMake(0.0, 0.5);
layer.endPoint = CGPointMake(1.0, 0.5);
-
+
switch (numcolors) {
case 2:
- layer.colors = [NSArray arrayWithObjects:
- (id)color0.CGColor,
- (id)color1.CGColor,
- nil];
+ layer.colors = @[(id)color0.CGColor,
+ (id)color1.CGColor];
break;
-
+
case 3:
- layer.colors = [NSArray arrayWithObjects:
- (id)color0.CGColor,
- (id)color1.CGColor,
- (id)color2.CGColor,
- nil];
+ layer.colors = @[(id)color0.CGColor,
+ (id)color1.CGColor,
+ (id)color2.CGColor];
break;
-
+
case 4:
- layer.colors = [NSArray arrayWithObjects:
- (id)color0.CGColor,
- (id)color1.CGColor,
- (id)color2.CGColor,
- (id)color3.CGColor,
- nil];
+ layer.colors = @[(id)color0.CGColor,
+ (id)color1.CGColor,
+ (id)color2.CGColor,
+ (id)color3.CGColor];
break;
-
+
case 5:
- layer.colors = [NSArray arrayWithObjects:
- (id)color0.CGColor,
- (id)color1.CGColor,
- (id)color2.CGColor,
- (id)color3.CGColor,
- (id)color4.CGColor,
- nil];
+ layer.colors = @[(id)color0.CGColor,
+ (id)color1.CGColor,
+ (id)color2.CGColor,
+ (id)color3.CGColor,
+ (id)color4.CGColor];
break;
}
}
diff --git a/TerpSrc/HelpViewController.h b/TerpSrc/HelpViewController.h
index b9660a3..818f728 100644
--- a/TerpSrc/HelpViewController.h
+++ b/TerpSrc/HelpViewController.h
@@ -5,9 +5,10 @@
*/
#import
+#import
-@interface HelpViewController : UIViewController
+@interface HelpViewController : UIViewController
-@property (nonatomic, retain) IBOutlet UIWebView *webview;
+@property (nonatomic, strong) IBOutlet WKWebView *webview;
@end
diff --git a/TerpSrc/HelpViewController.m b/TerpSrc/HelpViewController.m
index 54e3005..05f10c2 100644
--- a/TerpSrc/HelpViewController.m
+++ b/TerpSrc/HelpViewController.m
@@ -15,31 +15,29 @@ @implementation HelpViewController
- (void) dealloc {
if (webview) {
- webview.delegate = nil;
- self.webview = nil;
+ webview.navigationDelegate = nil;
}
- [super dealloc];
}
- (void) viewDidLoad
{
[super viewDidLoad];
-
+
NSBundle *bundle = [NSBundle mainBundle];
// Do this the annoying iOS3-compatible way
NSString *path = [bundle pathForResource:@"index" ofType:@"html" inDirectory:@"WebSite"];
NSURL *url = [NSURL fileURLWithPath:path isDirectory:NO];
NSString *html = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];
[webview loadHTMLString:html baseURL:url];
- webview.delegate = self;
+ webview.navigationDelegate = self;
if (true) {
FizmoGlkViewController *mainviewc = [FizmoGlkViewController singleton];
UISwipeGestureRecognizer *recognizer;
- recognizer = [[[UISwipeGestureRecognizer alloc] initWithTarget:mainviewc action:@selector(handleSwipeLeft:)] autorelease];
+ recognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:mainviewc action:@selector(handleSwipeLeft:)];
recognizer.direction = UISwipeGestureRecognizerDirectionLeft;
[webview addGestureRecognizer:recognizer];
- recognizer = [[[UISwipeGestureRecognizer alloc] initWithTarget:mainviewc action:@selector(handleSwipeRight:)] autorelease];
+ recognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:mainviewc action:@selector(handleSwipeRight:)];
recognizer.direction = UISwipeGestureRecognizerDirectionRight;
[webview addGestureRecognizer:recognizer];
}
@@ -47,26 +45,14 @@ - (void) viewDidLoad
/* Ensure that all external URLs are sent to Safari. (UIWebView delegate method.)
*/
-- (BOOL) webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
- if ([request.URL isFileURL]) {
+- (BOOL) webView:(WKWebView *)webView decidePolicyForNavigationAction:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
+ if ((request.URL).fileURL) {
/* Let file:... URLs load normally */
- NSString *anchor = request.URL.fragment;
- if (navigationType == UIWebViewNavigationTypeLinkClicked && anchor && anchor.length) {
- /* But handle internal anchor links with JS. UIWebView stopped handling this right in iOS11? */
- [webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"document.getElementsByName('%@')[0].scrollIntoView();", anchor]];
- return NO;
- }
return YES;
}
-
- [[UIApplication sharedApplication] openURL:request.URL];
- return NO;
-}
-- (BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)orientation
-{
- IosGlkViewController *glkviewc = [IosGlkViewController singleton];
- return [glkviewc shouldAutorotateToInterfaceOrientation:orientation];
+ [[UIApplication sharedApplication] openURL:request.URL options:@{} completionHandler:nil];
+ return NO;
}
@end
diff --git a/TerpSrc/NotesViewController.h b/TerpSrc/NotesViewController.h
index 18ce6fc..365f0e8 100644
--- a/TerpSrc/NotesViewController.h
+++ b/TerpSrc/NotesViewController.h
@@ -8,22 +8,18 @@
@class GradientView;
@class MButton;
+@class UnderlinedTextView;
-@interface NotesViewController : UIViewController {
- BOOL textchanged;
-}
+@interface NotesViewController : UIViewController
-@property (nonatomic, retain) IBOutlet GradientView *gradview;
-@property (nonatomic, retain) IBOutlet UITextView *textview;
-@property (nonatomic, retain) IBOutlet UITableView *buttontable;
-@property (nonatomic, retain) IBOutlet UITableViewCell *transcriptcell;
-
-@property (nonatomic, retain) NSString *notespath;
+@property (nonatomic, strong) IBOutlet GradientView *gradview;
+@property (nonatomic, strong) IBOutlet UnderlinedTextView *textview;
+@property (nonatomic, strong) IBOutlet UITableView *buttontable;
+@property (nonatomic, strong) IBOutlet UITableViewCell *transcriptcell;
+@property (nonatomic, strong) NSString *notespath;
- (IBAction) toggleKeyboard;
- (IBAction) handleTranscripts;
- (void) saveIfNeeded;
-- (void) adjustToKeyboardBox;
-
@end
diff --git a/TerpSrc/NotesViewController.m b/TerpSrc/NotesViewController.m
index 1e3fb49..ecf6ffc 100644
--- a/TerpSrc/NotesViewController.m
+++ b/TerpSrc/NotesViewController.m
@@ -11,110 +11,73 @@
#import "GradientView.h"
#import "MButton.h"
#import "IosGlkAppDelegate.h"
+#import "UnderlinedTextView.h"
#define NOTES_SAVE_DELAY (60)
-@implementation NotesViewController
-
-@synthesize textview;
-@synthesize gradview;
-@synthesize buttontable;
-@synthesize transcriptcell;
-@synthesize notespath;
-
-- (void) dealloc {
- self.textview = nil;
- self.gradview = nil;
- self.buttontable = nil;
- self.transcriptcell = nil;
- [super dealloc];
+@interface NotesViewController ()
+{
+ BOOL textchanged;
+ CGRect keyboardbox;
}
+@end
+
+@implementation NotesViewController
+
- (void) viewDidLoad
{
[super viewDidLoad];
-
- textview.delegate = self;
-
- UIEdgeInsets insets = UIEdgeInsetsMake(buttontable.bounds.size.height, 0, 0, 0);
- textview.contentInset = insets;
- textview.scrollIndicatorInsets = insets;
-
- if ([buttontable respondsToSelector:@selector(backgroundView)]) {
- /* This is only available in iOS 3.2 and up */
- buttontable.backgroundView = [[[UIView alloc] initWithFrame:buttontable.backgroundView.frame] autorelease];
- if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {
- buttontable.backgroundView.backgroundColor = [UIColor colorWithRed:1.0 green:0.98 blue:0.92 alpha:1];
- }
- else {
- buttontable.backgroundView.backgroundColor = [UIColor colorWithRed:0.85 green:0.8 blue:0.6 alpha:1];
- }
- }
-
+
+ _textview.delegate = self;
+
+ BOOL isPhone = (UIDevice.currentDevice.userInterfaceIdiom == UIUserInterfaceIdiomPhone);
+
/* Create the cells... */
- self.transcriptcell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Notes"] autorelease];
- transcriptcell.backgroundColor = [UIColor colorWithRed:1.0 green:0.98 blue:0.92 alpha:1];
- transcriptcell.textLabel.text = NSLocalizedStringFromTable(@"title.transcripts", @"TerpLocalize", nil);
- transcriptcell.textLabel.textColor = [UIColor colorWithRed:0.35 green:0.215 blue:0 alpha:1];
- if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
- transcriptcell.textLabel.font = [transcriptcell.textLabel.font fontWithSize:17];
- transcriptcell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
-
+ self.transcriptcell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Notes"];
+ _transcriptcell.backgroundColor = [UIColor colorNamed:@"CustomCellBackground"];
+ _transcriptcell.textLabel.text = NSLocalizedStringFromTable(@"title.transcripts", @"TerpLocalize", nil);
+ if (isPhone)
+ _transcriptcell.textLabel.font = [_transcriptcell.textLabel.font fontWithSize:17];
+ _transcriptcell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
+
+ if (!isPhone)
+ _textview.font = [_textview.font fontWithSize:16];
+
/* Bang on font if Noteworthy is not available. I don't know why Marker Felt needs to be so enormous to fit the same grid as Noteworthy, though. */
- if ([textview.font.familyName isEqualToString:@"Helvetica"]) {
+ if ([_textview.font.familyName isEqualToString:@"Helvetica"]) {
CGFloat fontsize;
- if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
+ if (isPhone)
fontsize = 21;
else
fontsize = 25;
UIFont *font = [UIFont fontWithName:@"MarkerFelt-Thin" size:fontsize];
if (font)
- textview.font = font;
- else
- textview.font = [UIFont systemFontOfSize:fontsize];
- }
-
- NSString *reqSysVer = @"5.0";
- NSString *currSysVer = [[UIDevice currentDevice] systemVersion];
- BOOL hasios5 = ([currSysVer compare:reqSysVer options:NSNumericSearch] != NSOrderedAscending);
-
- UIImage *stripeimg = nil;
- if (hasios5) {
- if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
- stripeimg = [UIImage imageNamed:@"background-notes-s"];
+ _textview.font = font;
else
- stripeimg = [UIImage imageNamed:@"background-notes"];
- if (stripeimg)
- textview.backgroundColor = [UIColor colorWithPatternImage:stripeimg];
-
- [gradview setUpColorsPreset:1];
+ _textview.font = [UIFont systemFontOfSize:fontsize];
}
- else {
- /* Transparent background colors won't load properly. We substitute opaque ones, which handily cover up the missing gradient view. */
- if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
- stripeimg = [UIImage imageNamed:@"background-notesopaque-s"];
- else
- stripeimg = [UIImage imageNamed:@"background-notesopaque"];
- if (stripeimg)
- textview.backgroundColor = [UIColor colorWithPatternImage:stripeimg];
- }
-
+
+ _textview.textColor = [UIColor colorNamed:@"CustomText"];
+
+ [_gradview setUpColorsPreset:1];
+
/* We use an old-fashioned way of locating the Documents directory. (The NSManager method for this is iOS 4.0 and later.) */
-
- if (!notespath) {
+
+ if (!_notespath) {
NSArray *dirlist = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
if (dirlist.count) {
- NSString *dir = [dirlist objectAtIndex:0];
+ NSString *dir = dirlist[0];
self.notespath = [dir stringByAppendingPathComponent:@"PlayerNotes.txt"];
}
}
-
+
textchanged = NO;
-
- if (notespath) {
- NSString *str = [NSString stringWithContentsOfFile:notespath encoding:NSUTF8StringEncoding error:nil];
+
+ if (_notespath) {
+ NSString *str = [NSString stringWithContentsOfFile:_notespath encoding:NSUTF8StringEncoding error:nil];
if (str)
- textview.text = str;
+ _textview.text = str;
}
/* Interface Builder currently doesn't allow us to set the voiceover labels for bar button items. We do it in code. */
@@ -123,31 +86,18 @@ - (void) viewDidLoad
[keyboardbutton setAccessibilityLabel:NSLocalizedStringFromTable(@"label.keyboard", @"TerpLocalize", nil)];
}
- if ([IosGlkAppDelegate oldstyleui]) {
- /* Use the old-style drop-shadowed buttons in the navbar. */
- if (keyboardbutton)
- [keyboardbutton setImage:[UIImage imageNamed:@"baricon-edit-old"]];
- }
-
if (true) {
FizmoGlkViewController *mainviewc = [FizmoGlkViewController singleton];
UISwipeGestureRecognizer *recognizer;
- recognizer = [[[UISwipeGestureRecognizer alloc] initWithTarget:mainviewc action:@selector(handleSwipeLeft:)] autorelease];
+ recognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:mainviewc action:@selector(handleSwipeLeft:)];
recognizer.direction = UISwipeGestureRecognizerDirectionLeft;
- [textview addGestureRecognizer:recognizer];
- recognizer = [[[UISwipeGestureRecognizer alloc] initWithTarget:mainviewc action:@selector(handleSwipeRight:)] autorelease];
+ [_textview addGestureRecognizer:recognizer];
+ recognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:mainviewc action:@selector(handleSwipeRight:)];
recognizer.direction = UISwipeGestureRecognizerDirectionRight;
- [textview addGestureRecognizer:recognizer];
+ [_textview addGestureRecognizer:recognizer];
}
}
-- (void) viewWillUnload
-{
- [super viewWillUnload];
- [self saveIfNeeded];
- textview.delegate = nil;
-}
-
/* Called both when you leave the Notes tab, and when the notes view is covered by a pushed transcript view.
*/
- (void) viewDidDisappear:(BOOL)animated
@@ -156,54 +106,78 @@ - (void) viewDidDisappear:(BOOL)animated
[self saveIfNeeded];
}
-- (void) viewDidAppear:(BOOL)animated
-{
- [super viewDidAppear:animated];
- [self adjustToKeyboardBox];
+- (void) viewWillAppear:(BOOL)paramAnimated{
+ [super viewWillAppear:paramAnimated];
+
+ [[NSNotificationCenter defaultCenter]
+ addObserver:self
+ selector:@selector(keyboardWillBeShown:)
+ name:UIKeyboardWillShowNotification object:nil];
+
+ [[NSNotificationCenter defaultCenter]
+ addObserver:self
+ selector:@selector(keyboardWillBeHidden:)
+ name:UIKeyboardWillHideNotification object:nil];
}
-- (BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)orientation
-{
- IosGlkViewController *glkviewc = [IosGlkViewController singleton];
- return [glkviewc shouldAutorotateToInterfaceOrientation:orientation];
+- (void)keyboardWillBeShown:(NSNotification *)paramNotification {
+
+ NSValue *keyboardRectAsObject =
+ [[paramNotification userInfo]
+ objectForKey:UIKeyboardFrameEndUserInfoKey];
+
+ keyboardbox = CGRectZero;
+ [keyboardRectAsObject getValue:&keyboardbox];
+
+ if (_textview) {
+ _textview.contentInset = UIEdgeInsetsMake(0, 0,
+ keyboardbox.size.height, 0);
+ [_textview layoutIfNeeded];
+ [_textview setNeedsDisplay];
+ }
+}
+
+- (void) keyboardWillBeHidden:(NSNotification *)paramNotification {
+ if (_textview) {
+ if (_textview.animating)
+ return;
+
+ // Hack to hide the fact that the UnderlinedTextView lines get
+ // out of sync with the text during the contentInset change
+ // animation. We stop drawing the lines in drawRect during the
+ // animation and instead add a temporary CAShapeLayer with identical
+ // lines, which for some reason makes it look right.
+
+ _textview.animating = YES;
+ CAShapeLayer *linesLayer = [_textview createAnimationLayer];
+ [_textview.layer addSublayer:linesLayer];
+
+ UnderlinedTextView __weak *weakview = _textview;
+ [UIView animateWithDuration:0.2 animations:^{
+ weakview.contentInset = UIEdgeInsetsZero;
+ } completion:^(BOOL finished) {
+ [linesLayer removeFromSuperlayer];
+ weakview.animating = NO;
+ [weakview setNeedsDisplay];
+ }];
+ }
}
- (IBAction) toggleKeyboard
{
- if ([textview isFirstResponder]) {
- [textview resignFirstResponder];
+ if (_textview.isFirstResponder) {
+ [_textview resignFirstResponder];
}
else {
- [textview becomeFirstResponder];
- }
-}
-
-- (void) adjustToKeyboardBox {
- CGRect keyboardbox = [IosGlkViewController singleton].keyboardbox;
- /* This rect is in window coordinates. */
-
- if (textview) {
- CGFloat offset = 0;
-
- if (keyboardbox.size.width > 0 && keyboardbox.size.height > 0) {
- CGRect box = textview.bounds;
- CGFloat bottom = box.origin.y + box.size.height;
- CGRect rect = [textview convertRect:keyboardbox fromView:nil];
- if (rect.origin.y < bottom) {
- offset = bottom - rect.origin.y;
- }
- }
-
- UIEdgeInsets insets = UIEdgeInsetsMake(buttontable.bounds.size.height, 0, offset, 0);
- textview.contentInset = insets;
- textview.scrollIndicatorInsets = insets;
+ [_textview becomeFirstResponder];
}
}
- (IBAction) handleTranscripts
{
- TranscriptViewController *transviewc = [[[TranscriptViewController alloc] initWithNibName:@"TranscriptVC" bundle:nil] autorelease];
- [self.navigationController pushViewController:transviewc animated:YES];
+ UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Transcript" bundle:nil];
+ UINavigationController *navc = [sb instantiateViewControllerWithIdentifier:@"transcriptnav"];
+ [self.navigationController pushViewController:navc.viewControllers[0] animated:YES];
}
- (void) saveIfNeeded
@@ -212,20 +186,11 @@ - (void) saveIfNeeded
return;
textchanged = NO;
[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(saveIfNeeded) object:nil];
- if (notespath && textview.text) {
- [textview.text writeToFile:notespath atomically:YES encoding:NSUTF8StringEncoding error:nil];
+ if (_notespath && _textview.text) {
+ [_textview.text writeToFile:_notespath atomically:YES encoding:NSUTF8StringEncoding error:nil];
}
}
-- (void) scrollViewDidScroll:(UIScrollView *)scrollView
-{
- CGRect rect = buttontable.frame;
- rect.origin.y = -textview.contentOffset.y - rect.size.height;
- if (rect.origin.y > 0)
- rect.origin.y = 0;
- buttontable.frame = rect;
-}
-
/* UITextView delegate method */
- (void) textViewDidChange:(UITextView *)textView
@@ -234,6 +199,18 @@ - (void) textViewDidChange:(UITextView *)textView
textchanged = YES;
[self performSelector:@selector(saveIfNeeded) withObject:nil afterDelay:NOTES_SAVE_DELAY];
}
+ [_textview setNeedsDisplay];
+}
+
+- (void)traitCollectionDidChange:(UITraitCollection *)previousTraitCollection {
+ [super traitCollectionDidChange:previousTraitCollection];
+ if ([self.traitCollection hasDifferentColorAppearanceComparedToTraitCollection:previousTraitCollection]) {
+ [_gradview setUpColorsPreset:1];
+ }
+}
+
+- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
+ [_textview setNeedsDisplay];
}
/* UITableViewDataSource methods */
@@ -247,9 +224,9 @@ - (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(
{
switch (indexpath.row) {
case 0:
- return transcriptcell;
+ return _transcriptcell;
default:
- return nil;
+ abort();
}
}
@@ -257,7 +234,7 @@ - (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(
- (void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexpath
{
- [buttontable deselectRowAtIndexPath:indexpath animated:NO];
+ [_buttontable deselectRowAtIndexPath:indexpath animated:NO];
if (indexpath.row == 0)
[self handleTranscripts];
}
diff --git a/TerpSrc/PrefsMenuView.h b/TerpSrc/PrefsMenuView.h
index 1ddbf9a..52b41ca 100644
--- a/TerpSrc/PrefsMenuView.h
+++ b/TerpSrc/PrefsMenuView.h
@@ -12,30 +12,30 @@
@interface PrefsMenuView : PopMenuView
-@property (nonatomic, retain) IBOutlet PrefsContainerView *container;
-@property (nonatomic, retain) IBOutlet PrefsContainerView *fontscontainer;
-@property (nonatomic, retain) IBOutlet PrefsContainerView *colorscontainer;
-@property (nonatomic, retain) IBOutlet UIButton *colorsbutton;
-@property (nonatomic, retain) IBOutlet UIButton *fontsbutton;
-@property (nonatomic, retain) IBOutlet UISlider *brightslider;
-@property (nonatomic, retain) IBOutlet MButton *colbut_full;
-@property (nonatomic, retain) IBOutlet MButton *colbut_34;
-@property (nonatomic, retain) IBOutlet MButton *colbut_12;
-@property (nonatomic, retain) IBOutlet MButton *sizebut_small;
-@property (nonatomic, retain) IBOutlet MButton *sizebut_big;
-@property (nonatomic, retain) IBOutlet MButton *leadbut_small;
-@property (nonatomic, retain) IBOutlet MButton *leadbut_big;
-@property (nonatomic, retain) IBOutlet UIButton *fontbutton;
-@property (nonatomic, retain) IBOutlet UIButton *colorbutton;
-@property (nonatomic, retain) IBOutlet MButton *fontbut_sample1;
-@property (nonatomic, retain) IBOutlet MButton *fontbut_sample2;
-@property (nonatomic, retain) IBOutlet MButton *colorbut_bright;
-@property (nonatomic, retain) IBOutlet MButton *colorbut_quiet;
-@property (nonatomic, retain) IBOutlet MButton *colorbut_dark;
+@property (nonatomic, strong) IBOutlet PrefsContainerView *container;
+@property (nonatomic, strong) IBOutlet PrefsContainerView *fontscontainer;
+@property (nonatomic, strong) IBOutlet PrefsContainerView *colorscontainer;
+@property (nonatomic, strong) IBOutlet UIButton *colorsbutton;
+@property (nonatomic, strong) IBOutlet UIButton *fontsbutton;
+@property (nonatomic, strong) IBOutlet UISlider *brightslider;
+@property (nonatomic, strong) IBOutlet MButton *colbut_full;
+@property (nonatomic, strong) IBOutlet MButton *colbut_34;
+@property (nonatomic, strong) IBOutlet MButton *colbut_12;
+@property (nonatomic, strong) IBOutlet MButton *sizebut_small;
+@property (nonatomic, strong) IBOutlet MButton *sizebut_big;
+@property (nonatomic, strong) IBOutlet MButton *leadbut_small;
+@property (nonatomic, strong) IBOutlet MButton *leadbut_big;
+@property (nonatomic, strong) IBOutlet UIButton *fontbutton;
+@property (nonatomic, strong) IBOutlet UIButton *colorbutton;
+@property (nonatomic, strong) IBOutlet MButton *fontbut_sample1;
+@property (nonatomic, strong) IBOutlet MButton *fontbut_sample2;
+@property (nonatomic, strong) IBOutlet MButton *colorbut_bright;
+@property (nonatomic, strong) IBOutlet MButton *colorbut_quiet;
+@property (nonatomic, strong) IBOutlet MButton *colorbut_dark;
@property (nonatomic) BOOL supportsbrightness;
-@property (nonatomic, retain) NSArray *fontnames;
-@property (nonatomic, retain) NSArray *fontbuttons;
+@property (nonatomic, strong) NSArray *fontnames;
+@property (nonatomic, strong) NSArray *fontbuttons;
- (void) updateButtons;
- (IBAction) handleColumnWidth:(id)sender;
diff --git a/TerpSrc/PrefsMenuView.m b/TerpSrc/PrefsMenuView.m
index e17c0cd..776be23 100644
--- a/TerpSrc/PrefsMenuView.m
+++ b/TerpSrc/PrefsMenuView.m
@@ -10,7 +10,6 @@
#import "FizmoGlkDelegate.h"
#import "GlkFrameView.h"
#import "GlkWinBufferView.h"
-#import "StyledTextView.h"
#import "MButton.h"
@implementation PrefsMenuView
@@ -34,62 +33,33 @@ @implementation PrefsMenuView
@synthesize fontbut_sample2;
@synthesize colorbut_bright;
@synthesize colorbut_quiet;
-@synthesize colorbut_dark;
@synthesize supportsbrightness;
@synthesize fontnames;
@synthesize fontbuttons;
-- (void) dealloc {
- self.container = nil;
- self.fontscontainer = nil;
- self.colorscontainer = nil;
- self.colorsbutton = nil;
- self.fontsbutton = nil;
- self.brightslider = nil;
- self.colbut_full = nil;
- self.colbut_34 = nil;
- self.colbut_12 = nil;
- self.sizebut_small = nil;
- self.sizebut_big = nil;
- self.leadbut_small = nil;
- self.leadbut_big = nil;
- self.fontbutton = nil;
- self.colorbutton = nil;
- self.fontbut_sample1 = nil;
- self.fontbut_sample2 = nil;
- self.colorbut_bright = nil;
- self.colorbut_quiet = nil;
- self.colorbut_dark = nil;
-
- self.fontnames = nil;
- self.fontbuttons = nil;
-
- [super dealloc];
-}
- (void) loadContent {
NSString *reqSysVer = @"5.0";
- NSString *currSysVer = [[UIDevice currentDevice] systemVersion];
+ NSString *currSysVer = [UIDevice currentDevice].systemVersion;
supportsbrightness = ([currSysVer compare:reqSysVer options:NSNumericSearch] != NSOrderedAscending);
-
+
[[NSBundle mainBundle] loadNibNamed:@"PrefsMenuView" owner:self options:nil];
FizmoGlkViewController *glkviewc = [FizmoGlkViewController singleton];
UIImage *checkimage = [UIImage imageNamed:@"checkmark"];
[colorbut_bright setSelectImage:checkimage];
[colorbut_quiet setSelectImage:checkimage];
- [colorbut_dark setSelectImage:checkimage];
-
+
checkimage = [UIImage imageNamed:@"checkmark-s"];
[colbut_full setSelectImage:checkimage];
[colbut_34 setSelectImage:checkimage];
[colbut_12 setSelectImage:checkimage];
-
+
if (faderview) {
- faderview.alpha = ((glkviewc.glkdelegate.hasDarkTheme) ? 1.0 : 0.0);
+ faderview.alpha = ((glkviewc.hasDarkTheme) ? 1.0 : 0.0);
faderview.hidden = NO;
}
-
+
if (!supportsbrightness) {
/* Shrink the container box to exclude the brightness slider. */
CGFloat val = CGRectGetMaxY(colorsbutton.frame);
@@ -97,7 +67,7 @@ - (void) loadContent {
rect.size.height = val - rect.origin.y;
container.frame = rect;
}
-
+
[self updateButtons];
[self resizeContentTo:container.frame.size animated:YES];
[content addSubview:container];
@@ -105,26 +75,30 @@ - (void) loadContent {
- (void) updateButtons {
FizmoGlkViewController *glkviewc = [FizmoGlkViewController singleton];
-
+
CGFloat maxwidth = glkviewc.fizmoDelegate.maxwidth;
colbut_full.selected = (maxwidth == 0);
colbut_34.selected = (maxwidth == 1);
colbut_12.selected = (maxwidth == 2);
-
+
int colorscheme = glkviewc.fizmoDelegate.colorscheme;
colorbut_bright.selected = (colorbut_bright.tag == colorscheme);
colorbut_quiet.selected = (colorbut_quiet.tag == colorscheme);
- colorbut_dark.selected = (colorbut_dark.tag == colorscheme);
+ if (glkviewc.hasDarkTheme) {
+ [colorbut_bright setTitle: NSLocalizedStringFromTable(@"prefs.button.dark", @"TerpLocalize", nil) forState:UIControlStateNormal];
+ } else {
+ [colorbut_bright setTitle:NSLocalizedStringFromTable(@"prefs.button.bright", @"TerpLocalize", nil) forState:UIControlStateNormal];
+ }
if (fontnames) {
NSString *family = glkviewc.fizmoDelegate.fontfamily;
for (int count = 0; count < fontnames.count; count++) {
- NSString *str = [fontnames objectAtIndex:count];
- UIButton *button = [fontbuttons objectAtIndex:count];
+ NSString *str = fontnames[count];
+ UIButton *button = fontbuttons[count];
button.selected = [family isEqualToString:str];
}
}
-
+
if (supportsbrightness) {
brightslider.value = [UIScreen mainScreen].brightness;
}
@@ -133,37 +107,47 @@ - (void) updateButtons {
}
}
+- (void)traitCollectionDidChange:(UITraitCollection *)previousTraitCollection {
+ [super traitCollectionDidChange:previousTraitCollection];
+ if ([self.traitCollection hasDifferentColorAppearanceComparedToTraitCollection:previousTraitCollection]) {
+ FizmoGlkViewController *glkviewc = [FizmoGlkViewController singleton];
+ // We hide and show the view again to get a new view with updated colors
+ [glkviewc showPreferences];
+ [glkviewc showPreferences];
+ }
+}
+
- (IBAction) handleColumnWidth:(id)sender {
FizmoGlkViewController *glkviewc = [FizmoGlkViewController singleton];
-
+
int maxwidth;
-
+
if (sender == colbut_34) {
maxwidth = 1;
- }
+ }
else if (sender == colbut_12) {
maxwidth = 2;
}
else {
maxwidth = 0;
}
-
+
glkviewc.fizmoDelegate.maxwidth = maxwidth;
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setInteger:maxwidth forKey:@"FrameMaxWidth"];
-
+
[self updateButtons];
[glkviewc.frameview setNeedsLayout];
}
- (IBAction) handleFontSize:(id)sender {
FizmoGlkViewController *glkviewc = [FizmoGlkViewController singleton];
-
+
int fontscale = glkviewc.fizmoDelegate.fontscale;
-
+
if (sender == sizebut_small) {
fontscale -= 1;
- }
+ }
else if (sender == sizebut_big) {
fontscale += 1;
}
@@ -172,58 +156,59 @@ - (IBAction) handleFontSize:(id)sender {
if (fontscale == glkviewc.fizmoDelegate.fontscale)
return;
-
+
glkviewc.fizmoDelegate.fontscale = fontscale;
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setInteger:fontscale forKey:@"FontScale"];
-
+
[glkviewc.frameview updateWindowStyles];
}
- (IBAction) handleFontLeading:(id)sender {
FizmoGlkViewController *glkviewc = [FizmoGlkViewController singleton];
-
+
int leading = glkviewc.fizmoDelegate.leading;
-
+
if (sender == leadbut_small) {
leading -= 1;
- }
+ }
else if (sender == leadbut_big) {
leading += 1;
}
leading = MAX(leading, 0);
leading = MIN(leading, LEADING_MAX);
-
+
if (leading == glkviewc.fizmoDelegate.leading)
return;
-
+
glkviewc.fizmoDelegate.leading = leading;
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setInteger:leading forKey:@"FontLeading"];
-
+
[glkviewc.frameview updateWindowStyles];
}
- (IBAction) handleColor:(id)sender {
FizmoGlkViewController *glkviewc = [FizmoGlkViewController singleton];
-
+
int val = ((UIView *)sender).tag;
-
+
glkviewc.fizmoDelegate.colorscheme = val;
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setInteger:val forKey:@"ColorScheme"];
-
- BOOL isdark = glkviewc.fizmoDelegate.hasDarkTheme;
-
+
+ BOOL isdark = glkviewc.hasDarkTheme;
+
[self updateButtons];
glkviewc.navigationController.navigationBar.barStyle = (isdark ? UIBarStyleBlack : UIBarStyleDefault);
glkviewc.frameview.backgroundColor = glkviewc.fizmoDelegate.genBackgroundColor;
[glkviewc.frameview updateWindowStyles];
-
+
if (faderview) {
if (/* DISABLES CODE */ (true)) {
- [UIView animateWithDuration:0.15
- animations:^{ faderview.alpha = (isdark ? 1.0 : 0.0); } ];
+ PrefsMenuView __weak *weakSelf = self;
+ [UIView animateWithDuration:0.15
+ animations:^{ weakSelf.faderview.alpha = (isdark ? 1.0 : 0.0); } ];
}
else {
faderview.alpha = (isdark ? 1.0 : 0.0);
@@ -233,23 +218,23 @@ - (IBAction) handleColor:(id)sender {
- (IBAction) handleFont:(id)sender {
FizmoGlkViewController *glkviewc = [FizmoGlkViewController singleton];
-
+
int val = ((UIView *)sender).tag;
if (!fontnames || val < 0 || val >= fontnames.count)
return;
- NSString *name = [fontnames objectAtIndex:val];
-
+ NSString *name = fontnames[val];
+
glkviewc.fizmoDelegate.fontfamily = name;
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:name forKey:@"FontFamily"];
-
+
[self updateButtons];
[glkviewc.frameview updateWindowStyles];
}
- (void) setUpFontMenu {
FizmoGlkViewController *glkviewc = [FizmoGlkViewController singleton];
-
+
NSMutableArray *arr = [NSMutableArray arrayWithObjects:@"Times", @"Helvetica", @"Georgia", nil];
/*if ([UIFont fontWithName:@"Palatino" size:14])
[arr addObject:@"Palatino"];*/
@@ -262,26 +247,26 @@ - (void) setUpFontMenu {
else
[arr addObject:@"Verdana"];
self.fontnames = arr;
-
+
CGRect baserect = fontbut_sample1.frame;
CGFloat buttonspacing = fontbut_sample2.frame.origin.y - fontbut_sample1.frame.origin.y;
CGFloat postbuttonspacing = fontscontainer.frame.size.height - fontbut_sample2.frame.origin.y;
[fontbut_sample1 removeFromSuperview];
[fontbut_sample2 removeFromSuperview];
-
+
arr = [NSMutableArray arrayWithCapacity:fontnames.count];
self.fontbuttons = arr;
-
+
UIColor *normalcolor = [fontbut_sample1 titleColorForState:UIControlStateNormal];
UIColor *selectedcolor = [fontbut_sample1 titleColorForState:UIControlStateSelected];
UIColor *highlightedcolor = [fontbut_sample1 titleColorForState:UIControlStateHighlighted];
-
+
UIImage *normalbackimg = [fontbut_sample1 backgroundImageForState:UIControlStateNormal];
UIImage *highlightedbackimg = [fontbut_sample1 backgroundImageForState:UIControlStateHighlighted];
-
+
CGFloat fontsize = fontbut_sample1.titleLabel.font.pointSize;
UIImage *checkimage = [UIImage imageNamed:@"checkmark"];
-
+
int count = 0;
for (NSString *name in fontnames) {
MButton *button = [MButton buttonWithType:fontbut_sample1.buttonType];
@@ -304,7 +289,7 @@ - (void) setUpFontMenu {
[arr addObject:button];
count++;
}
-
+
CGRect rect = fontscontainer.frame;
rect.size.height = (count-1)*buttonspacing+postbuttonspacing;
fontscontainer.frame = rect;
@@ -315,21 +300,22 @@ - (IBAction) handleFonts:(id)sender {
[self setUpFontMenu];
[self updateButtons];
}
-
+
CGFloat curheight = content.frame.size.height;
[self resizeContentTo:fontscontainer.frame.size animated:YES];
-
+
if (/* DISABLES CODE */ (true)) {
CGRect oldrect = container.frame;
CGRect rect = fontscontainer.frame;
fontscontainer.frame = CGRectMake(rect.origin.x, rect.origin.y+curheight, rect.size.width, rect.size.height);
[content addSubview:fontscontainer];
- [UIView animateWithDuration:0.35
- animations:^{
- fontscontainer.frame = rect;
- container.alpha = 0;
- container.frame = CGRectMake(oldrect.origin.x, oldrect.origin.y-oldrect.size.height, oldrect.size.width, oldrect.size.height); }
- completion: ^(BOOL finished){ [container removeFromSuperview]; } ];
+ PrefsMenuView __weak *weakSelf = self;
+ [UIView animateWithDuration:0.35
+ animations:^{
+ weakSelf.fontscontainer.frame = rect;
+ weakSelf.container.alpha = 0;
+ weakSelf.container.frame = CGRectMake(oldrect.origin.x, oldrect.origin.y-oldrect.size.height, oldrect.size.width, oldrect.size.height); }
+ completion: ^(BOOL finished){ [weakSelf.container removeFromSuperview]; } ];
}
else {
[content addSubview:fontscontainer];
@@ -340,18 +326,19 @@ - (IBAction) handleFonts:(id)sender {
- (IBAction) handleColors:(id)sender {
CGFloat curheight = content.frame.size.height;
[self resizeContentTo:colorscontainer.frame.size animated:YES];
-
+
if (/* DISABLES CODE */ (true)) {
CGRect oldrect = container.frame;
CGRect rect = colorscontainer.frame;
colorscontainer.frame = CGRectMake(rect.origin.x, rect.origin.y+curheight, rect.size.width, rect.size.height);
[content addSubview:colorscontainer];
- [UIView animateWithDuration:0.35
- animations:^{
- colorscontainer.frame = rect;
- container.alpha = 0;
- container.frame = CGRectMake(oldrect.origin.x, oldrect.origin.y-oldrect.size.height, oldrect.size.width, oldrect.size.height); }
- completion: ^(BOOL finished){ [container removeFromSuperview]; } ];
+ PrefsMenuView __weak *weakSelf = self;
+ [UIView animateWithDuration:0.35
+ animations:^{
+ weakSelf.colorscontainer.frame = rect;
+ weakSelf.container.alpha = 0;
+ weakSelf.container.frame = CGRectMake(oldrect.origin.x, oldrect.origin.y-oldrect.size.height, oldrect.size.width, oldrect.size.height); }
+ completion: ^(BOOL finished){ [weakSelf.container removeFromSuperview]; } ];
}
else {
[content addSubview:colorscontainer];
diff --git a/TerpSrc/SettingsViewController.h b/TerpSrc/SettingsViewController.h
index 4bf46f4..b65dc94 100644
--- a/TerpSrc/SettingsViewController.h
+++ b/TerpSrc/SettingsViewController.h
@@ -8,15 +8,15 @@
@interface SettingsViewController : UIViewController
-@property (nonatomic, retain) IBOutlet UITableView *tableview;
+@property (nonatomic, strong) IBOutlet UITableView *tableview;
-@property (nonatomic, retain) IBOutlet UITableViewCell *autocorrectcell;
-@property (nonatomic, retain) IBOutlet UITableViewCell *keepopencell;
-@property (nonatomic, retain) IBOutlet UITableViewCell *sharefilescell;
-@property (nonatomic, retain) IBOutlet UITableViewCell *licensecell;
+@property (nonatomic, strong) IBOutlet UITableViewCell *autocorrectcell;
+@property (nonatomic, strong) IBOutlet UITableViewCell *keepopencell;
+@property (nonatomic, strong) IBOutlet UITableViewCell *sharefilescell;
+@property (nonatomic, strong) IBOutlet UITableViewCell *licensecell;
-@property (nonatomic, retain) IBOutlet UISwitch *autocorrectswitch;
-@property (nonatomic, retain) IBOutlet UISwitch *keepopenswitch;
+@property (nonatomic, strong) IBOutlet UISwitch *autocorrectswitch;
+@property (nonatomic, strong) IBOutlet UISwitch *keepopenswitch;
- (IBAction) handleAutoCorrect:(id)sender;
- (IBAction) handleKeepOpen:(id)sender;
diff --git a/TerpSrc/SettingsViewController.m b/TerpSrc/SettingsViewController.m
index 73efcef..e228cba 100644
--- a/TerpSrc/SettingsViewController.m
+++ b/TerpSrc/SettingsViewController.m
@@ -21,61 +21,51 @@ @implementation SettingsViewController
@synthesize autocorrectswitch;
@synthesize keepopenswitch;
-- (void) dealloc {
- self.tableview = nil;
- self.autocorrectcell = nil;
- self.keepopencell = nil;
- self.sharefilescell = nil;
- self.licensecell = nil;
- self.autocorrectswitch = nil;
- self.keepopenswitch = nil;
- [super dealloc];
-}
- (void) viewDidLoad
{
[super viewDidLoad];
-
+
if ([tableview respondsToSelector:@selector(backgroundView)]) {
/* This is only available in iOS 3.2 and up */
- tableview.backgroundView = [[[UIView alloc] initWithFrame:tableview.backgroundView.frame] autorelease];
- tableview.backgroundView.backgroundColor = [UIColor colorWithRed:0.85 green:0.8 blue:0.6 alpha:1];
+ tableview.backgroundView = [[UIView alloc] initWithFrame:tableview.backgroundView.frame];
+ tableview.backgroundView.backgroundColor = [UIColor colorNamed:@"CustomTableBackground"];
}
-
+
/* Create the cells... */
- self.licensecell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Settings"] autorelease];
- licensecell.backgroundColor = [UIColor colorWithRed:1.0 green:0.98 blue:0.92 alpha:1];
+ self.licensecell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Settings"];
+ licensecell.backgroundColor = [UIColor colorNamed:@"CustomCellBackground"];
licensecell.textLabel.text = NSLocalizedStringFromTable(@"settings.cell.license", @"TerpLocalize", nil);
- licensecell.textLabel.textColor = [UIColor colorWithRed:0.35 green:0.215 blue:0 alpha:1];
+ licensecell.textLabel.textColor = [UIColor colorNamed:@"CustomCellText"];
licensecell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
-
- self.sharefilescell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Settings"] autorelease];
+
+ self.sharefilescell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Settings"];
sharefilescell.backgroundColor = licensecell.backgroundColor;
sharefilescell.textLabel.text = NSLocalizedStringFromTable(@"settings.cell.sharefiles", @"TerpLocalize", nil);
sharefilescell.textLabel.textColor = licensecell.textLabel.textColor;
sharefilescell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
-
- self.autocorrectcell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Settings"] autorelease];
+
+ self.autocorrectcell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Settings"];
autocorrectcell.backgroundColor = licensecell.backgroundColor;
autocorrectcell.textLabel.text = NSLocalizedStringFromTable(@"settings.cell.autocorrect", @"TerpLocalize", nil);
autocorrectcell.textLabel.textColor = licensecell.textLabel.textColor;
autocorrectcell.selectionStyle = UITableViewCellSelectionStyleNone;
autocorrectcell.accessoryView = autocorrectswitch;
-
- self.keepopencell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Settings"] autorelease];
+
+ self.keepopencell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Settings"];
keepopencell.backgroundColor = licensecell.backgroundColor;
keepopencell.textLabel.text = NSLocalizedStringFromTable(@"settings.cell.keepopen", @"TerpLocalize", nil);
keepopencell.textLabel.textColor = licensecell.textLabel.textColor;
keepopencell.selectionStyle = UITableViewCellSelectionStyleNone;
keepopencell.accessoryView = keepopenswitch;
-
+
if (true) {
FizmoGlkViewController *mainviewc = [FizmoGlkViewController singleton];
UISwipeGestureRecognizer *recognizer;
- recognizer = [[[UISwipeGestureRecognizer alloc] initWithTarget:mainviewc action:@selector(handleSwipeLeft:)] autorelease];
+ recognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:mainviewc action:@selector(handleSwipeLeft:)];
recognizer.direction = UISwipeGestureRecognizerDirectionLeft;
[tableview addGestureRecognizer:recognizer];
- recognizer = [[[UISwipeGestureRecognizer alloc] initWithTarget:mainviewc action:@selector(handleSwipeRight:)] autorelease];
+ recognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:mainviewc action:@selector(handleSwipeRight:)];
recognizer.direction = UISwipeGestureRecognizerDirectionRight;
[tableview addGestureRecognizer:recognizer];
}
@@ -84,23 +74,17 @@ - (void) viewDidLoad
- (void) viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
-
+
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
autocorrectswitch.on = ![defaults boolForKey:@"NoAutocorrect"];
keepopenswitch.on = ![defaults boolForKey:@"NoKeepOpen"];
}
-- (BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)orientation
-{
- IosGlkViewController *glkviewc = [IosGlkViewController singleton];
- return [glkviewc shouldAutorotateToInterfaceOrientation:orientation];
-}
-
- (IBAction) handleAutoCorrect:(id)sender
{
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setBool:!autocorrectswitch.on forKey:@"NoAutocorrect"];
-
+
IosGlkViewController *glkviewc = [IosGlkViewController singleton];
if (glkviewc.frameview)
[glkviewc.frameview updateInputTraits];
@@ -115,7 +99,15 @@ - (IBAction) handleKeepOpen:(id)sender
- (void) handleLicenses
{
NSString *title = NSLocalizedStringFromTable(@"settings.title.license", @"TerpLocalize", nil);
- DisplayWebViewController *viewc = [[[DisplayWebViewController alloc] initWithNibName:@"WebDocVC" filename:@"license" title:title bundle:nil] autorelease];
+
+ UIStoryboard* sb = [UIStoryboard storyboardWithName:@"MainStoryboard"
+ bundle:nil];
+
+ DisplayWebViewController* viewc = (DisplayWebViewController *)[sb instantiateViewControllerWithIdentifier:@"WebDoc"];
+
+ viewc.filename = @"license";
+ viewc.doctitle = title;
+
[self.navigationController pushViewController:viewc animated:YES];
}
@@ -126,7 +118,11 @@ - (void) handleShareFiles
- (void) handleShareFilesHighlightUsage:(int)usage name:(NSString *)filename
{
- ShareFilesViewController *viewc = [[[ShareFilesViewController alloc] initWithNibName:@"ShareFilesVC" bundle:nil] autorelease];
+ UIStoryboard *sb = [UIStoryboard storyboardWithName:@"ShareFiles" bundle:nil];
+
+ UINavigationController *navc = [sb instantiateViewControllerWithIdentifier:@"ShareFilesNav"];
+ ShareFilesViewController *viewc = (ShareFilesViewController *)navc.viewControllers[0];
+
BOOL animated = YES;
if (filename) {
// It so happens that if filename exists, this is an arriving file (and the caller is displayGlkFileUsage). Don't animate in that case.
@@ -187,27 +183,27 @@ - (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(
case 1:
return autocorrectcell;
default:
- return nil;
+ abort();
}
-
+
case SECTION_FILES:
switch (indexpath.row) {
case 0:
return sharefilescell;
default:
- return nil;
+ abort();
}
-
+
case SECTION_LICENSE:
switch (indexpath.row) {
case 0:
return licensecell;
default:
- return nil;
+ abort();
}
-
+
default:
- return nil;
+ abort();
}
}
diff --git a/TerpSrc/ShareFilesViewController.h b/TerpSrc/ShareFilesViewController.h
index 8715c40..31c6973 100644
--- a/TerpSrc/ShareFilesViewController.h
+++ b/TerpSrc/ShareFilesViewController.h
@@ -21,16 +21,15 @@
NSDateFormatter *dateformatter;
}
-@property (nonatomic, retain) IBOutlet UITableView *tableView;
-@property (nonatomic, retain) UIBarButtonItem *sendbutton;
+@property (nonatomic, strong) IBOutlet UITableView *tableView;
+@property (nonatomic, strong) UIBarButtonItem *sendbutton;
@property (nonatomic) int highlightusage;
-@property (nonatomic, retain) NSString *highlightname;
-@property (nonatomic, retain) UIDocumentInteractionController *sharedocic;
-@property (nonatomic, retain) NSString *sharetemppath;
-@property (nonatomic, retain) NSMutableArray *filelists;
-@property (nonatomic, retain) NSDateFormatter *dateformatter;
+@property (nonatomic, strong) NSString *highlightname;
+@property (nonatomic, strong) UIDocumentInteractionController *sharedocic;
+@property (nonatomic, strong) NSString *sharetemppath;
+@property (nonatomic, strong) NSMutableArray *filelists;
+@property (nonatomic, strong) NSDateFormatter *dateformatter;
-- (id) initWithNibName:(NSString *)nibName bundle:(NSBundle *)nibBundle;
- (void) addBlankThumb;
@end
diff --git a/TerpSrc/ShareFilesViewController.m b/TerpSrc/ShareFilesViewController.m
index 87eccf9..a5fac9a 100644
--- a/TerpSrc/ShareFilesViewController.m
+++ b/TerpSrc/ShareFilesViewController.m
@@ -26,50 +26,34 @@ @implementation ShareFilesViewController
@synthesize filelists;
@synthesize dateformatter;
-- (id) initWithNibName:(NSString *)nibName bundle:(NSBundle *)nibBundle {
- self = [super initWithNibName:nibName bundle:nibBundle];
- if (self) {
- self.filelists = [NSMutableArray arrayWithCapacity:8];
- self.dateformatter = [[[RelDateFormatter alloc] init] autorelease];
- [dateformatter setDateStyle:NSDateFormatterMediumStyle];
- [dateformatter setTimeStyle:NSDateFormatterShortStyle];
- }
- return self;
-}
-
-- (void) dealloc {
- self.highlightname = nil;
- self.filelists = nil;
- self.dateformatter = nil;
- self.tableView = nil;
- self.sendbutton = nil;
- self.sharedocic = nil;
- self.sharetemppath = nil;
- [super dealloc];
-}
- (void) viewDidLoad {
- [super viewDidLoad];
-
+ [super viewDidLoad];
+
+ self.filelists = [NSMutableArray arrayWithCapacity:8];
+ self.dateformatter = [[RelDateFormatter alloc] init];
+ dateformatter.dateStyle = NSDateFormatterMediumStyle;
+ dateformatter.timeStyle = NSDateFormatterShortStyle;
+
self.navigationItem.title = NSLocalizedStringFromTable(@"title.sharefiles", @"TerpLocalize", nil);
-
+
// Setting two right-bar-buttons like this is an iOS5+ API.
-
- self.sendbutton = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAction target:self action:@selector(buttonSend:)] autorelease];
+
+ self.sendbutton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAction target:self action:@selector(buttonSend:)];
self.sendbutton.enabled = NO;
-
- UIBarButtonItem *editbutton = [self editButtonItem];
-
- self.navigationItem.rightBarButtonItems = [NSArray arrayWithObjects:editbutton, sendbutton, nil];
-
+
+ UIBarButtonItem *editbutton = self.editButtonItem;
+
+ self.navigationItem.rightBarButtonItems = @[editbutton, sendbutton];
+
/* We use an old-fashioned way of locating the Documents directory. (The NSManager method for this is iOS 4.0 and later.) */
-
+
NSArray *dirlist = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
if (!dirlist) {
- dirlist = [NSArray array];
+ dirlist = @[];
}
- NSString *basedir = [dirlist objectAtIndex:0];
-
+ NSString *basedir = dirlist[0];
+
[filelists removeAllObjects];
for (int ux = 0; usages[ux] >= 0; ux++) {
glui32 usage = usages[ux];
@@ -84,19 +68,19 @@ - (void) viewDidLoad {
continue;
if (![NSFileTypeRegular isEqualToString:[attrs fileType]])
continue;
-
+
/* We accept both dumbass-encoded strings (which were typed by the user) and "normal" strings (which were created by fileref_by_name). */
NSString *label = StringFromDumbEncoding(filename);
if (!label)
label = filename;
-
- GlkFileThumb *thumb = [[[GlkFileThumb alloc] init] autorelease];
+
+ GlkFileThumb *thumb = [[GlkFileThumb alloc] init];
thumb.filename = filename;
thumb.pathname = pathname;
thumb.usage = usage;
thumb.modtime = [attrs fileModificationDate];
thumb.label = label;
-
+
if (!files) {
files = [NSMutableArray arrayWithCapacity:16];
[filelists addObject:files];
@@ -105,23 +89,23 @@ - (void) viewDidLoad {
}
}
}
-
+
for (NSMutableArray *files in filelists) {
[files sortUsingSelector:@selector(compareModTime:)];
}
-
+
if (filelists.count == 0)
[self addBlankThumb];
-
+
if (highlightname) {
// Try to highlight the file that was passed in to us.
BOOL found = NO;
int selectsection = 0;
int selectrow = 0;
for (selectsection=0; selectsection= 0 && sect < filelists.count) {
- NSMutableArray *files = [filelists objectAtIndex:sect];
+ NSMutableArray *files = filelists[sect];
int row = indexpath.row;
if (row >= 0 && row < files.count)
- thumb = [files objectAtIndex:row];
+ thumb = files[row];
}
if (!thumb)
return;
-
- DisplayTextViewController *viewc = [[[DisplayTextViewController alloc] initWithNibName:@"DisplayTextVC" thumb:thumb bundle:nil] autorelease];
- [self.navigationController pushViewController:viewc animated:YES];
+
+ UIStoryboard *sb = [UIStoryboard storyboardWithName:@"DisplayText" bundle:nil];
+
+ UINavigationController *navc = [sb instantiateViewControllerWithIdentifier:@"ViewTextNav"];
+ DisplayTextViewController *viewc = (DisplayTextViewController *)navc.viewControllers[0];
+ viewc.thumb = thumb;
+
+ [self presentViewController:navc animated:YES completion:nil];
}
- (void) buttonSend:(id)sender
{
- NSIndexPath *indexpath = [tableView indexPathForSelectedRow];
+ NSIndexPath *indexpath = tableView.indexPathForSelectedRow;
if (!indexpath)
return;
-
+
GlkFileThumb *thumb = nil;
-
+
int sect = indexpath.section;
if (sect >= 0 && sect < filelists.count) {
- NSMutableArray *files = [filelists objectAtIndex:sect];
+ NSMutableArray *files = filelists[sect];
int row = indexpath.row;
if (row >= 0 && row < files.count)
- thumb = [files objectAtIndex:row];
+ thumb = files[row];
}
if (!thumb)
return;
-
+
NSString *temppath = [thumb exportTempFile];
if (!temppath)
return;
-
+
self.sharetemppath = temppath;
NSURL *url = [NSURL fileURLWithPath:temppath];
self.sharedocic = [UIDocumentInteractionController interactionControllerWithURL:url];
//NSLog(@"### docic URL %@, UTI %@", url, sharedocic.UTI);
sharedocic.delegate = self;
-
+
// Removing the temporary file is a nuisance. We *either* remove it at DidDismissOpenInMenu time (if the file was not sent to another app) or didEndSendingToApplication time (if it was). To track this, we'll clear self.sharetemppath at willBeginSendingToApplication time.
-
+
BOOL res = [sharedocic presentOpenInMenuFromBarButtonItem:sender animated:YES];
if (!res) {
// The menu never opened at all, so we delete the file now.
@@ -220,8 +209,20 @@ - (void) buttonSend:(id)sender
self.sharetemppath = nil;
}
self.sharedocic = nil;
- UIAlertView *alert = [[[UIAlertView alloc] initWithTitle:NSLocalizedStringFromTable(@"title.noshareapps", @"TerpLocalize", nil) message:NSLocalizedStringFromTable(@"label.noshareapps", @"TerpLocalize", nil) delegate:nil cancelButtonTitle:NSLocalizedStringFromTable(@"button.drat", @"TerpLocalize", nil) otherButtonTitles:nil] autorelease];
- [alert show];
+
+ UIAlertController *alert = [UIAlertController alertControllerWithTitle:NSLocalizedStringFromTable(@"title.noshareapps", @"TerpLocalize", nil) message:NSLocalizedStringFromTable(@"label.noshareapps", @"TerpLocalize", nil) preferredStyle:UIAlertControllerStyleAlert];
+
+ [alert addAction:[UIAlertAction actionWithTitle:NSLocalizedStringFromTable(@"button.drat", @"TerpLocalize", nil) style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {}]];
+
+ UIPopoverPresentationController *popoverController = alert.popoverPresentationController;
+ if (popoverController) {
+ popoverController.sourceView = self.view;
+ popoverController.sourceRect = CGRectMake(CGRectGetMidX(self.view.bounds), CGRectGetMidY(self.view.bounds), 0, 0);
+ popoverController.permittedArrowDirections = 0;
+ }
+
+ // Present alert sheet.
+ [self presentViewController:alert animated:YES completion:nil];
}
}
@@ -260,8 +261,8 @@ - (NSInteger) numberOfSectionsInTableView:(UITableView *)tableView
- (NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
if (section < 0 || section >= filelists.count)
return 0;
-
- NSMutableArray *files = [filelists objectAtIndex:section];
+
+ NSMutableArray *files = filelists[section];
return files.count;
}
@@ -270,42 +271,42 @@ - (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInte
if (section < 0 || section >= filelists.count)
return @"???";
- NSMutableArray *files = [filelists objectAtIndex:section];
+ NSMutableArray *files = filelists[section];
// The array should be nonempty.
if (!files.count)
return @"???";
-
- GlkFileThumb *thumb = [files objectAtIndex:0];
+
+ GlkFileThumb *thumb = files[0];
return [GlkFileThumb labelForFileUsage:thumb.usage localize:@"placeholders"];
}
- (UITableViewCell *) tableView:(UITableView *)tableview cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"File";
-
+
// This is boilerplate and I haven't touched it.
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
- cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
+ cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
}
-
+
GlkFileThumb *thumb = nil;
-
+
int sect = indexPath.section;
if (sect >= 0 && sect < filelists.count) {
- NSMutableArray *files = [filelists objectAtIndex:sect];
+ NSMutableArray *files = filelists[sect];
int row = indexPath.row;
if (row >= 0 && row < files.count)
- thumb = [files objectAtIndex:row];
+ thumb = files[row];
}
-
+
/* Make the cell look right... */
-
+
if (!thumb) {
// shouldn't happen
cell.accessoryType = UITableViewCellAccessoryNone;
cell.selectionStyle = UITableViewCellSelectionStyleBlue;
- cell.textLabel.text = @"(null)";
- cell.textLabel.textColor = [UIColor blackColor];
+ cell.textLabel.text = NSLocalizedString(@"(null)", nil);
+ cell.textLabel.textColor = [UIColor colorNamed:@"CustomText"];
cell.detailTextLabel.text = @"?";
}
else if (thumb.isfake) {
@@ -319,24 +320,24 @@ - (UITableViewCell *) tableView:(UITableView *)tableview cellForRowAtIndexPath:(
cell.accessoryType = ((thumb.usage == fileusage_Transcript) ? UITableViewCellAccessoryDetailDisclosureButton : UITableViewCellAccessoryNone);
cell.selectionStyle = UITableViewCellSelectionStyleBlue;
cell.textLabel.text = thumb.label;
- cell.textLabel.textColor = [UIColor blackColor];
+ cell.textLabel.textColor = [UIColor colorNamed:@"CustomText"];
cell.detailTextLabel.text = [dateformatter stringFromDate:thumb.modtime];
}
-
+
return cell;
}
- (BOOL) tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
GlkFileThumb *thumb = nil;
-
+
int sect = indexPath.section;
if (sect >= 0 && sect < filelists.count) {
- NSMutableArray *files = [filelists objectAtIndex:sect];
+ NSMutableArray *files = filelists[sect];
int row = indexPath.row;
if (row >= 0 && row < files.count)
- thumb = [files objectAtIndex:row];
+ thumb = files[row];
}
-
+
return (thumb && !thumb.isfake);
}
@@ -347,18 +348,18 @@ - (void) tableView:(UITableView *)tableview commitEditingStyle:(UITableViewCellE
int sect = indexPath.section;
if (sect >= 0 && sect < filelists.count) {
- files = [filelists objectAtIndex:sect];
+ files = filelists[sect];
int row = indexPath.row;
if (row >= 0 && row < files.count)
- thumb = [files objectAtIndex:row];
+ thumb = files[row];
}
-
+
if (files && thumb && !thumb.isfake) {
//NSLog(@"selector: deleting file \"%@\" (%@)", thumb.label, thumb.pathname);
BOOL res = [[NSFileManager defaultManager] removeItemAtPath:thumb.pathname error:nil];
if (res) {
[files removeObjectAtIndex:indexPath.row];
- [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
+ [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
/*if (filelist.count == 0) {
[self addBlankThumb];
[tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
@@ -376,17 +377,17 @@ - (void) tableView:(UITableView *)tableview didSelectRowAtIndexPath:(NSIndexPath
int sect = indexPath.section;
if (sect >= 0 && sect < filelists.count) {
- NSMutableArray *files = [filelists objectAtIndex:sect];
+ NSMutableArray *files = filelists[sect];
int row = indexPath.row;
if (row >= 0 && row < files.count)
- thumb = [files objectAtIndex:row];
+ thumb = files[row];
}
-
+
if (!thumb || thumb.isfake) {
self.sendbutton.enabled = NO;
return;
}
-
+
/* The user has selected a file. */
self.sendbutton.enabled = YES;
}
@@ -394,26 +395,27 @@ - (void) tableView:(UITableView *)tableview didSelectRowAtIndexPath:(NSIndexPath
- (void) tableView:(UITableView *)tableview accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath
{
GlkFileThumb *thumb = nil;
-
+
int sect = indexPath.section;
if (sect >= 0 && sect < filelists.count) {
- NSMutableArray *files = [filelists objectAtIndex:sect];
+ NSMutableArray *files = filelists[sect];
int row = indexPath.row;
if (row >= 0 && row < files.count)
- thumb = [files objectAtIndex:row];
+ thumb = files[row];
}
-
+
if (!thumb)
return;
if (thumb.usage != fileusage_Transcript)
return;
-
- DisplayTextViewController *viewc = [[[DisplayTextViewController alloc] initWithNibName:@"DisplayTextVC" thumb:thumb bundle:nil] autorelease];
- [self.navigationController pushViewController:viewc animated:YES];
-}
-- (BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)orientation {
- return [[IosGlkViewController singleton] shouldAutorotateToInterfaceOrientation:orientation];
+ UIStoryboard *sb = [UIStoryboard storyboardWithName:@"DisplayText" bundle:nil];
+
+ UINavigationController *navc = [sb instantiateViewControllerWithIdentifier:@"ViewTextNav"];
+ DisplayTextViewController *viewc = (DisplayTextViewController *)navc.viewControllers[0];
+ viewc.thumb = thumb;
+
+ [self.navigationController pushViewController:viewc animated:YES];
}
@end
diff --git a/TerpSrc/TranscriptViewController.h b/TerpSrc/TranscriptViewController.h
index 6392e96..11a8327 100644
--- a/TerpSrc/TranscriptViewController.h
+++ b/TerpSrc/TranscriptViewController.h
@@ -16,11 +16,10 @@
NSDateFormatter *dateformatter;
}
-@property (nonatomic, retain) IBOutlet UITableView *tableView;
-@property (nonatomic, retain) NSMutableArray *filelist;
-@property (nonatomic, retain) NSDateFormatter *dateformatter;
+@property (nonatomic, strong) IBOutlet UITableView *tableView;
+@property (nonatomic, strong) NSMutableArray *filelist;
+@property (nonatomic, strong) NSDateFormatter *dateformatter;
-- (id) initWithNibName:(NSString *)nibName bundle:(NSBundle *)nibBundle;
- (void) addBlankThumb;
@end
diff --git a/TerpSrc/TranscriptViewController.m b/TerpSrc/TranscriptViewController.m
index d318f24..7ef78e8 100644
--- a/TerpSrc/TranscriptViewController.m
+++ b/TerpSrc/TranscriptViewController.m
@@ -19,40 +19,28 @@ @implementation TranscriptViewController
@synthesize filelist;
@synthesize dateformatter;
-- (id) initWithNibName:(NSString *)nibName bundle:(NSBundle *)nibBundle {
- self = [super initWithNibName:nibName bundle:nibBundle];
- if (self) {
- self.filelist = [NSMutableArray arrayWithCapacity:16];
- self.dateformatter = [[[RelDateFormatter alloc] init] autorelease];
- [dateformatter setDateStyle:NSDateFormatterMediumStyle];
- [dateformatter setTimeStyle:NSDateFormatterShortStyle];
- }
- return self;
-}
-
-- (void) dealloc {
- self.filelist = nil;
- self.dateformatter = nil;
- self.tableView = nil;
- [super dealloc];
-}
- (void) viewDidLoad {
[super viewDidLoad];
-
+
+ self.filelist = [NSMutableArray arrayWithCapacity:16];
+ self.dateformatter = [[RelDateFormatter alloc] init];
+ dateformatter.dateStyle = NSDateFormatterMediumStyle;
+ dateformatter.timeStyle = NSDateFormatterShortStyle;
+
self.navigationItem.title = NSLocalizedStringFromTable(@"title.transcripts", @"TerpLocalize", nil);
-
- self.navigationItem.rightBarButtonItem = [self editButtonItem];
-
+
+ self.navigationItem.rightBarButtonItem = self.editButtonItem;
+
/* We use an old-fashioned way of locating the Documents directory. (The NSManager method for this is iOS 4.0 and later.) */
-
+
NSArray *dirlist = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
if (!dirlist) {
- dirlist = [NSArray array];
+ dirlist = @[];
}
- NSString *basedir = [dirlist objectAtIndex:0];
+ NSString *basedir = dirlist[0];
NSString *dirname = [GlkFileRef subDirOfBase:basedir forUsage:fileusage_Transcript gameid:[GlkLibrary singleton].gameId];
-
+
[filelist removeAllObjects];
NSArray *ls = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:dirname error:nil];
if (ls) {
@@ -63,31 +51,31 @@ - (void) viewDidLoad {
continue;
if (![NSFileTypeRegular isEqualToString:[attrs fileType]])
continue;
-
+
/* We accept both dumbass-encoded strings (which were typed by the user) and "normal" strings (which were created by fileref_by_name). */
NSString *label = StringFromDumbEncoding(filename);
if (!label)
label = filename;
-
- GlkFileThumb *thumb = [[[GlkFileThumb alloc] init] autorelease];
+
+ GlkFileThumb *thumb = [[GlkFileThumb alloc] init];
thumb.filename = filename;
thumb.pathname = pathname;
thumb.usage = fileusage_Transcript;
thumb.modtime = [attrs fileModificationDate];
thumb.label = label;
-
+
[filelist addObject:thumb];
}
}
-
+
[filelist sortUsingSelector:@selector(compareModTime:)];
-
+
if (filelist.count == 0)
[self addBlankThumb];
}
- (void) addBlankThumb {
- GlkFileThumb *thumb = [[[GlkFileThumb alloc] init] autorelease];
+ GlkFileThumb *thumb = [[GlkFileThumb alloc] init];
thumb.isfake = YES;
thumb.modtime = [NSDate date];
thumb.label = NSLocalizedStringFromTable(@"label.no-transcripts", @"TerpLocalize", nil);
@@ -107,37 +95,37 @@ - (NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSIntege
- (BOOL) tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
GlkFileThumb *thumb = nil;
-
+
int row = indexPath.row;
if (row >= 0 && row < filelist.count)
- thumb = [filelist objectAtIndex:row];
-
+ thumb = filelist[row];
+
return (thumb && !thumb.isfake);
}
- (UITableViewCell *) tableView:(UITableView *)tableview cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"File";
-
+
// This is boilerplate and I haven't touched it.
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
- cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
+ cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
}
-
+
GlkFileThumb *thumb = nil;
-
+
int row = indexPath.row;
if (row >= 0 && row < filelist.count)
- thumb = [filelist objectAtIndex:row];
-
+ thumb = filelist[row];
+
/* Make the cell look right... */
-
+
if (!thumb) {
// shouldn't happen
cell.accessoryType = UITableViewCellAccessoryNone;
cell.selectionStyle = UITableViewCellSelectionStyleBlue;
- cell.textLabel.text = @"(null)";
- cell.textLabel.textColor = [UIColor blackColor];
+ cell.textLabel.text = NSLocalizedString(@"(null)", nil);
+ cell.textLabel.textColor = [UIColor colorNamed:@"CustomText"];
cell.detailTextLabel.text = @"?";
}
else if (thumb.isfake) {
@@ -151,10 +139,10 @@ - (UITableViewCell *) tableView:(UITableView *)tableview cellForRowAtIndexPath:(
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
cell.selectionStyle = UITableViewCellSelectionStyleBlue;
cell.textLabel.text = thumb.label;
- cell.textLabel.textColor = [UIColor blackColor];
+ cell.textLabel.textColor = [UIColor colorNamed:@"CustomText"];
cell.detailTextLabel.text = [dateformatter stringFromDate:thumb.modtime];
}
-
+
return cell;
}
@@ -163,17 +151,17 @@ - (void) tableView:(UITableView *)tableview commitEditingStyle:(UITableViewCellE
GlkFileThumb *thumb = nil;
int row = indexPath.row;
if (row >= 0 && row < filelist.count)
- thumb = [filelist objectAtIndex:row];
+ thumb = filelist[row];
if (thumb && !thumb.isfake) {
- GlkFileThumb *thumb = [filelist objectAtIndex:row];
+ GlkFileThumb *thumb = filelist[row];
//NSLog(@"selector: deleting file \"%@\" (%@)", thumb.label, thumb.pathname);
BOOL res = [[NSFileManager defaultManager] removeItemAtPath:thumb.pathname error:nil];
if (res) {
[filelist removeObjectAtIndex:row];
- [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
+ [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
if (filelist.count == 0) {
[self addBlankThumb];
- [tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
+ [tableView insertRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
}
}
}
@@ -186,19 +174,21 @@ - (void) tableView:(UITableView *)tableview didSelectRowAtIndexPath:(NSIndexPath
GlkFileThumb *thumb = nil;
int row = indexPath.row;
if (row >= 0 && row < filelist.count)
- thumb = [filelist objectAtIndex:row];
+ thumb = filelist[row];
if (!thumb)
return;
if (thumb.isfake)
return;
-
+
/* The user has selected a file. */
- DisplayTextViewController *viewc = [[[DisplayTextViewController alloc] initWithNibName:@"DisplayTextVC" thumb:thumb bundle:nil] autorelease];
- [self.navigationController pushViewController:viewc animated:YES];
-}
-- (BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)orientation {
- return [[IosGlkViewController singleton] shouldAutorotateToInterfaceOrientation:orientation];
+ UIStoryboard *sb = [UIStoryboard storyboardWithName:@"DisplayText" bundle:nil];
+
+ UINavigationController *navc = [sb instantiateViewControllerWithIdentifier:@"ViewTextNav"];
+ DisplayTextViewController *viewc = (DisplayTextViewController *)navc.viewControllers[0];
+ viewc.thumb = thumb;
+
+ [self.navigationController pushViewController:viewc animated:YES];
}
@end
diff --git a/TerpSrc/UnderlinedTextView.h b/TerpSrc/UnderlinedTextView.h
new file mode 100644
index 0000000..efbec74
--- /dev/null
+++ b/TerpSrc/UnderlinedTextView.h
@@ -0,0 +1,19 @@
+/* UnderlinedTextView.h: A UITextView subclass with underlined text
+ for IosFizmo, an IosGlk port of the Fizmo Z-machine interpreter.
+ Designed by Andrew Plotkin
+ http://eblong.com/zarf/glk/
+ */
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface UnderlinedTextView : UITextView
+
+@property (nonatomic) BOOL animating;
+
+- (CAShapeLayer *)createAnimationLayer;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/TerpSrc/UnderlinedTextView.m b/TerpSrc/UnderlinedTextView.m
new file mode 100644
index 0000000..9b4aef8
--- /dev/null
+++ b/TerpSrc/UnderlinedTextView.m
@@ -0,0 +1,114 @@
+/* UnderlinedTextView.m: A UITextView subclass with underlined text
+ for IosFizmo, an IosGlk port of the Fizmo Z-machine interpreter.
+ Designed by Andrew Plotkin
+ http://eblong.com/zarf/glk/
+ */
+
+#import
+#import "UnderlinedTextView.h"
+
+@interface UnderlinedTextView ()
+{
+ CGFloat lineHeight;
+ CGFloat lastY;
+}
+
+@end
+
+
+@implementation UnderlinedTextView
+
+- (void)awakeFromNib {
+ [super awakeFromNib];
+ lineHeight = 0;
+ lastY = 0;
+}
+
+- (void)drawRect:(CGRect)rect {
+
+ if (lineHeight == 0)
+ [self getLineHeight];
+
+ CGContextRef ctx = UIGraphicsGetCurrentContext();
+ CGContextSetStrokeColorWithColor(ctx, [UIColor colorNamed:@"CustomNoteLines"].CGColor);
+ CGFloat topInset = self.textContainerInset.top;
+
+ UITextPosition *start = [self closestPositionToPoint:rect.origin];
+ CGFloat y = topInset - 3;
+
+ if (!_animating) {
+ // Get the bottom of the topmost visible line, if any
+ if (start && self.layoutManager.numberOfGlyphs)
+ {
+ NSUInteger index = [self offsetFromPosition:start toPosition:start];
+
+ NSRange lineRange = NSMakeRange(0, 1);
+
+ CGRect fragmentRect = [self.layoutManager lineFragmentRectForGlyphAtIndex:index effectiveRange:&lineRange withoutAdditionalLayout:YES];
+
+ y += CGRectGetMaxY(fragmentRect);
+ lastY = y;
+ }
+
+ while (y <= CGRectGetMaxY(rect)) {
+ CGMutablePathRef line = CGPathCreateMutable();
+ CGContextMoveToPoint(ctx, 0.0, y);
+ CGContextAddLineToPoint(ctx, rect.size.width, y);
+ CGContextAddPath(ctx, line);
+ CGPathRelease(line);
+ y += lineHeight;
+ }
+ CGContextStrokePath(ctx);
+ }
+
+ [super drawRect:rect];
+}
+
+- (void)getLineHeight {
+ NSUInteger numberOfGlyphs = self.layoutManager.numberOfGlyphs;
+ NSLayoutManager *layoutManager = self.layoutManager;
+
+ if (!numberOfGlyphs) { // If the text view has no text, we create a dummy text view
+ NSTextStorage *textStorage = [[NSTextStorage alloc] initWithString:@"Å\n"];
+ NSTextContainer *textContainer = [[NSTextContainer alloc] initWithSize:self.textContainer.size];
+ layoutManager = [[NSLayoutManager alloc] init];
+ [layoutManager addTextContainer:textContainer];
+ [textStorage addLayoutManager:layoutManager];
+ [textStorage addAttribute:NSFontAttributeName
+ value:self.font
+ range:NSMakeRange(0, textStorage.length)];
+ [layoutManager glyphRangeForTextContainer:textContainer];
+ }
+
+ CGRect fragmentRect = [layoutManager lineFragmentRectForGlyphAtIndex:0 effectiveRange:nil withoutAdditionalLayout:YES];
+ lineHeight = fragmentRect.size.height;
+
+ if (lineHeight == 0)
+ lineHeight = 25.84;
+}
+
+// Hack to hide the fact that the lines get out of sync with
+// the text during the contentInset change animation when
+// the keyboard is closed. We stop drawing lines in drawRect
+// during the animation and instead add a temporary CAShapeLayer
+// with identical lines, which for some reason makes it look right.
+
+- (CAShapeLayer *)createAnimationLayer {
+ CAShapeLayer *pathLayer = [CAShapeLayer layer];
+ CGRect frame = self.bounds;
+
+ frame.origin.y = lastY - 5; // No idea why we have to subtract 5 here
+ pathLayer.frame = frame;
+ pathLayer.strokeColor = [UIColor colorNamed:@"CustomNoteLines"].CGColor;
+ pathLayer.lineWidth = 1.0;
+ UIBezierPath *path = [UIBezierPath bezierPath];
+
+ for (CGFloat y = lastY; y <= CGRectGetMaxY(self.bounds); y += lineHeight) {
+ [path moveToPoint:CGPointMake(0.0,y)];
+ [path addLineToPoint:CGPointMake(self.bounds.size.width, y)];
+ }
+ pathLayer.path = path.CGPath;
+ return pathLayer;
+}
+
+@end
diff --git a/WebSite/page.css b/WebSite/page.css
index 821ca04..37fab99 100644
--- a/WebSite/page.css
+++ b/WebSite/page.css
@@ -1,15 +1,12 @@
body {
font-family: "Helvetica Neue", Helvetica, sans-serif;
font-size: 16px;
- background: #D8CC99;
max-width: 688px;
margin-left: auto;
margin-right: auto;
}
h1 {
- color: #543;
- background: #F8E8B8;
font-size: 20px;
padding: 4px 40px;
-moz-border-radius: 16px;
@@ -17,6 +14,60 @@ h1 {
margin-top: 32px;
}
+@media (prefers-color-scheme: light) {
+ body {
+ background: #D8CC99;
+ }
+ h1 {
+ background: #F8E8B8;
+ color: #543;
+ }
+ .CommandList li, .Command {
+ color: #007;
+ }
+ .Term {
+ color: #067;
+ }
+ .Gloss {
+ color: black;
+ }
+ .LinkLine {
+ background: #F8E8B8;
+ }
+ .LinkLine a {
+ color: #22D;
+ }
+}
+
+@media (prefers-color-scheme: dark) {
+ body {
+ background: #071747;
+ color: white;
+ }
+ h1 {
+ background: #273366;
+ color: white;
+ }
+ .CommandList li, .Command {
+ color: #FFFFF8;
+ }
+ .Term {
+ color: #FFFF98;
+ }
+ .Gloss {
+ color: white;
+ }
+ .LinkLine {
+ background: #71747;
+ }
+ a {
+ color: #FFFFA0;
+ }
+ .LinkLine a {
+ color: #FFFF30;
+ }
+}
+
h2 {
font-size: 20px;
}
@@ -42,23 +93,16 @@ h2 {
}
.CommandList li {
- color: #007;
font-weight: bold;
font-size: 14px;
}
.Command {
- color: #007;
font-weight: bold;
font-size: 14px;
}
-.Term {
- color: #067;
-}
-
.Gloss {
- color: black;
font-weight: normal;
font-style: italic;
padding-left: 4px;
@@ -68,16 +112,11 @@ h2 {
.LinkLine {
font-style: italic;
font-size: 14px;
- background: #F8E8B8;
padding: 8px 40px;
-moz-border-radius: 16px;
border-radius: 16px;
}
-.LinkLine a {
- color: #22D;
-}
-
.License {
font-size: 13px;
margin-left: 40px;
diff --git a/fizmo b/fizmo
index a9ef8bd..9bb8f26 160000
--- a/fizmo
+++ b/fizmo
@@ -1 +1 @@
-Subproject commit a9ef8bdb37c07f9184ed3181f506117cf3ad83f8
+Subproject commit 9bb8f265c709ee50792b6d676e87d7254642ab87
diff --git a/iosglk b/iosglk
index fee6728..89f4bb8 160000
--- a/iosglk
+++ b/iosglk
@@ -1 +1 @@
-Subproject commit fee6728190afb39e25bcd432f945d38f44d58d74
+Subproject commit 89f4bb880b2048ef62c7b5381913d7e1c70496c7
diff --git a/main.m b/main.m
index 5d3c0e8..4b801d5 100755
--- a/main.m
+++ b/main.m
@@ -48,10 +48,11 @@
#import
+#import "IosGlkAppDelegate.h"
+
int main(int argc, char *argv[]) {
- NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
- int retVal = UIApplicationMain(argc, argv, nil, nil);
- [pool release];
- return retVal;
+ @autoreleasepool {
+ return UIApplicationMain(argc, argv, nil, NSStringFromClass([IosGlkAppDelegate class]));
+ }
}