First Release
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
xcuserdata/
|
BIN
ActiveGS_iOS/Default-568h@2x.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
ActiveGS_iOS/Default.png
Normal file
After Width: | Height: | Size: 12 KiB |
10
ActiveGS_iOS/Entitlements.plist
Normal file
@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>application-identifier</key>
|
||||
<string>SQ9T3Q7RV4.com.freetoolsassociation.activegs</string>
|
||||
<key>get-task-allow</key>
|
||||
<false/>
|
||||
</dict>
|
||||
</plist>
|
455
ActiveGS_iOS/Resources-iPad/MainWindow-iPad.xib
Normal file
@ -0,0 +1,455 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="7.10">
|
||||
<data>
|
||||
<int key="IBDocument.SystemTarget">1056</int>
|
||||
<string key="IBDocument.SystemVersion">10F569</string>
|
||||
<string key="IBDocument.InterfaceBuilderVersion">804</string>
|
||||
<string key="IBDocument.AppKitVersion">1038.29</string>
|
||||
<string key="IBDocument.HIToolboxVersion">461.00</string>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="NS.object.0">131</string>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
</object>
|
||||
<object class="NSArray" key="IBDocument.PluginDependencies">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="IBDocument.Metadata">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="NSArray" key="dict.sortedKeys" id="0">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBProxyObject" id="841351856">
|
||||
<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
|
||||
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
||||
</object>
|
||||
<object class="IBProxyObject" id="427554174">
|
||||
<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
|
||||
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
||||
</object>
|
||||
<object class="IBUICustomObject" id="664661524">
|
||||
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
||||
</object>
|
||||
<object class="IBUIViewController" id="943309135">
|
||||
<string key="IBUINibName">activegsViewController</string>
|
||||
<object class="IBUISimulatedOrientationMetrics" key="IBUISimulatedOrientationMetrics">
|
||||
<int key="interfaceOrientation">1</int>
|
||||
</object>
|
||||
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
||||
<bool key="IBUIHorizontal">NO</bool>
|
||||
</object>
|
||||
<object class="IBUIWindow" id="117978783">
|
||||
<nil key="NSNextResponder"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrameSize">{768, 1004}</string>
|
||||
<object class="NSColor" key="IBUIBackgroundColor">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MSAxIDEAA</bytes>
|
||||
</object>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
|
||||
<object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics">
|
||||
<int key="IBUIStatusBarStyle">2</int>
|
||||
</object>
|
||||
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
||||
<bool key="IBUIResizesToFullScreen">YES</bool>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBObjectContainer" key="IBDocument.Objects">
|
||||
<object class="NSMutableArray" key="connectionRecords">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">delegate</string>
|
||||
<reference key="source" ref="841351856"/>
|
||||
<reference key="destination" ref="664661524"/>
|
||||
</object>
|
||||
<int key="connectionID">4</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">viewController</string>
|
||||
<reference key="source" ref="664661524"/>
|
||||
<reference key="destination" ref="943309135"/>
|
||||
</object>
|
||||
<int key="connectionID">11</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">window</string>
|
||||
<reference key="source" ref="664661524"/>
|
||||
<reference key="destination" ref="117978783"/>
|
||||
</object>
|
||||
<int key="connectionID">14</int>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBMutableOrderedSet" key="objectRecords">
|
||||
<object class="NSArray" key="orderedObjects">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">0</int>
|
||||
<reference key="object" ref="0"/>
|
||||
<reference key="children" ref="1000"/>
|
||||
<nil key="parent"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">-1</int>
|
||||
<reference key="object" ref="841351856"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
<string key="objectName">File's Owner</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">3</int>
|
||||
<reference key="object" ref="664661524"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
<string key="objectName">activegs App Delegate</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">-2</int>
|
||||
<reference key="object" ref="427554174"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">10</int>
|
||||
<reference key="object" ref="943309135"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">12</int>
|
||||
<reference key="object" ref="117978783"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="flattenedProperties">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="NSArray" key="dict.sortedKeys">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>-1.CustomClassName</string>
|
||||
<string>-2.CustomClassName</string>
|
||||
<string>10.CustomClassName</string>
|
||||
<string>10.IBEditorWindowLastContentRect</string>
|
||||
<string>10.IBPluginDependency</string>
|
||||
<string>12.IBEditorWindowLastContentRect</string>
|
||||
<string>12.IBLastUsedUIStatusBarStylesToTargetRuntimesMap</string>
|
||||
<string>12.IBPluginDependency</string>
|
||||
<string>3.CustomClassName</string>
|
||||
<string>3.IBPluginDependency</string>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>UIApplication</string>
|
||||
<string>UIResponder</string>
|
||||
<string>activegsViewController</string>
|
||||
<string>{{512, 351}, {320, 480}}</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>{{525, 346}, {320, 480}}</string>
|
||||
<object class="NSMutableDictionary">
|
||||
<string key="NS.key.0">IBCocoaTouchFramework</string>
|
||||
<integer value="0" key="NS.object.0"/>
|
||||
</object>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>activegsAppDelegate</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="unlocalizedProperties">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<reference key="dict.sortedKeys" ref="0"/>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
</object>
|
||||
</object>
|
||||
<nil key="activeLocalization"/>
|
||||
<object class="NSMutableDictionary" key="localizations">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<reference key="dict.sortedKeys" ref="0"/>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
</object>
|
||||
</object>
|
||||
<nil key="sourceID"/>
|
||||
<int key="maxID">14</int>
|
||||
</object>
|
||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">activegsAppDelegate</string>
|
||||
<string key="superclassName">NSObject</string>
|
||||
<object class="NSMutableDictionary" key="outlets">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="NSArray" key="dict.sortedKeys">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>viewController</string>
|
||||
<string>window</string>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>activegsViewController</string>
|
||||
<string>UIWindow</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="toOneOutletInfosByName">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="NSArray" key="dict.sortedKeys">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>viewController</string>
|
||||
<string>window</string>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBToOneOutletInfo">
|
||||
<string key="name">viewController</string>
|
||||
<string key="candidateClassName">activegsViewController</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo">
|
||||
<string key="name">window</string>
|
||||
<string key="candidateClassName">UIWindow</string>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBProjectSource</string>
|
||||
<string key="minorKey">Classes/activegsAppDelegate.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">activegsAppDelegate</string>
|
||||
<string key="superclassName">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBUserSource</string>
|
||||
<string key="minorKey"/>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">activegsViewController</string>
|
||||
<string key="superclassName">UIViewController</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBProjectSource</string>
|
||||
<string key="minorKey">Classes/activegsViewController.h</string>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">Foundation.framework/Headers/NSError.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">Foundation.framework/Headers/NSNetServices.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">Foundation.framework/Headers/NSPort.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">Foundation.framework/Headers/NSStream.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">Foundation.framework/Headers/NSXMLParser.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UIAccessibility.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UINibLoading.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier" id="661858013">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UIResponder.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIApplication</string>
|
||||
<string key="superclassName">UIResponder</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UIApplication.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIResponder</string>
|
||||
<string key="superclassName">NSObject</string>
|
||||
<reference key="sourceIdentifier" ref="661858013"/>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UISearchBar</string>
|
||||
<string key="superclassName">UIView</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UISearchBar.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UISearchDisplayController</string>
|
||||
<string key="superclassName">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UISearchDisplayController.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIView</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UITextField.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIView</string>
|
||||
<string key="superclassName">UIResponder</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UIView.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIViewController</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UINavigationController.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIViewController</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UITabBarController.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIViewController</string>
|
||||
<string key="superclassName">UIResponder</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UIViewController.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIWindow</string>
|
||||
<string key="superclassName">UIView</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UIWindow.h</string>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<int key="IBDocument.localizationMode">0</int>
|
||||
<string key="IBDocument.TargetRuntimeIdentifier">IBIPadFramework</string>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
|
||||
<integer value="1056" key="NS.object.0"/>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
|
||||
<integer value="3100" key="NS.object.0"/>
|
||||
</object>
|
||||
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
|
||||
<string key="IBDocument.LastKnownRelativeProjectPath">activegs.xcodeproj</string>
|
||||
<int key="IBDocument.defaultPropertyAccessControl">3</int>
|
||||
<string key="IBCocoaTouchPluginVersion">131</string>
|
||||
</data>
|
||||
</archive>
|
46
ActiveGS_iOS/activegs.plist
Normal file
@ -0,0 +1,46 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>English</string>
|
||||
<key>CFBundleDisplayName</key>
|
||||
<string>ActiveGS</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>${EXECUTABLE_NAME}</string>
|
||||
<key>CFBundleIconFiles</key>
|
||||
<array>
|
||||
<string>icon.png</string>
|
||||
<string>icon72.png</string>
|
||||
<string>icon@2x.png</string>
|
||||
</array>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>ActiveGS</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string></string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.40</string>
|
||||
<key>LSRequiresIPhoneOS</key>
|
||||
<true/>
|
||||
<key>UIAppFonts</key>
|
||||
<array>
|
||||
<string>ShastonHi640.ttf</string>
|
||||
</array>
|
||||
<key>UIFileSharingEnabled</key>
|
||||
<true/>
|
||||
<key>UIStatusBarHidden</key>
|
||||
<true/>
|
||||
<key>UIStatusBarHidden~ipad</key>
|
||||
<true/>
|
||||
<key>UIViewControllerBasedStatusBarAppearance</key>
|
||||
<false/>
|
||||
</dict>
|
||||
</plist>
|
1582
ActiveGS_iOS/activegs.xcodeproj/project.pbxproj
Normal file
7
ActiveGS_iOS/activegs.xcodeproj/project.xcworkspace/contents.xcworkspacedata
generated
Normal file
@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Workspace
|
||||
version = "1.0">
|
||||
<FileRef
|
||||
location = "self:activegs.xcodeproj">
|
||||
</FileRef>
|
||||
</Workspace>
|
8
ActiveGS_iOS/activegs_Prefix.pch
Normal file
@ -0,0 +1,8 @@
|
||||
//
|
||||
// Prefix header for all source files of the 'activegs' target in the 'activegs' project
|
||||
//
|
||||
|
||||
#ifdef __OBJC__
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <UIKit/UIKit.h>
|
||||
#endif
|
BIN
ActiveGS_iOS/iTunesArtwork
Normal file
After Width: | Height: | Size: 228 KiB |
BIN
ActiveGS_iOS/icon.png
Normal file
After Width: | Height: | Size: 7.2 KiB |
BIN
ActiveGS_iOS/icon72.png
Normal file
After Width: | Height: | Size: 9.3 KiB |
BIN
ActiveGS_iOS/icon@2x.png
Normal file
After Width: | Height: | Size: 17 KiB |
BIN
ActiveGS_iOS/icon_APPLE 2.png
Normal file
After Width: | Height: | Size: 2.8 KiB |
BIN
ActiveGS_iOS/icon_APPLE 2GS.png
Normal file
After Width: | Height: | Size: 2.6 KiB |
BIN
ActiveGS_iOS/icone72.png
Normal file
After Width: | Height: | Size: 9.3 KiB |
923
ActiveGS_iOS/infoViewController-ipad.xib
Normal file
@ -0,0 +1,923 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="8.00">
|
||||
<data>
|
||||
<int key="IBDocument.SystemTarget">1552</int>
|
||||
<string key="IBDocument.SystemVersion">13F34</string>
|
||||
<string key="IBDocument.InterfaceBuilderVersion">6254</string>
|
||||
<string key="IBDocument.AppKitVersion">1265.21</string>
|
||||
<string key="IBDocument.HIToolboxVersion">698.00</string>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="NS.object.0">6247</string>
|
||||
</object>
|
||||
<array key="IBDocument.IntegratedClassDependencies">
|
||||
<string>IBProxyObject</string>
|
||||
<string>IBUIButton</string>
|
||||
<string>IBUIImageView</string>
|
||||
<string>IBUILabel</string>
|
||||
<string>IBUIView</string>
|
||||
</array>
|
||||
<array key="IBDocument.PluginDependencies">
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
</array>
|
||||
<object class="NSMutableDictionary" key="IBDocument.Metadata">
|
||||
<string key="NS.key.0">PluginDependencyRecalculationVersion</string>
|
||||
<integer value="1" key="NS.object.0"/>
|
||||
</object>
|
||||
<array class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
|
||||
<object class="IBProxyObject" id="372490531">
|
||||
<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBProxyObject" id="975951072">
|
||||
<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBUIView" id="191373211">
|
||||
<reference key="NSNextResponder"/>
|
||||
<int key="NSvFlags">274</int>
|
||||
<array class="NSMutableArray" key="NSSubviews">
|
||||
<object class="IBUIImageView" id="208073000">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">293</int>
|
||||
<string key="NSFrame">{{344, 336}, {80, 77}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="272079427"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">4</int>
|
||||
<bool key="IBUIMultipleTouchEnabled">YES</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<object class="NSCustomResource" key="IBUIImage" id="629254366">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">ActiveGS.png</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBUIButton" id="994056094">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">269</int>
|
||||
<string key="NSFrame">{{333, 727}, {101, 37}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="850712689"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<int key="IBUIContentHorizontalAlignment">0</int>
|
||||
<int key="IBUIContentVerticalAlignment">0</int>
|
||||
<int key="IBUIButtonType">1</int>
|
||||
<object class="NSColor" key="IBUINormalTitleColor" id="261874939">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MC4xOTYwNzg0MzE0IDAuMzA5ODAzOTIxNiAwLjUyMTU2ODYyNzUAA</bytes>
|
||||
</object>
|
||||
<object class="NSColor" key="IBUIHighlightedTitleColor" id="681515851">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MQA</bytes>
|
||||
</object>
|
||||
<string key="IBUINormalTitle">I'm Happy!</string>
|
||||
<object class="NSColor" key="IBUINormalTitleShadowColor" id="757478349">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MC41AA</bytes>
|
||||
</object>
|
||||
<object class="IBUIFontDescription" key="IBUIFontDescription" id="839905589">
|
||||
<string key="name">Helvetica-Bold</string>
|
||||
<string key="family">Helvetica</string>
|
||||
<int key="traits">2</int>
|
||||
<double key="pointSize">15</double>
|
||||
</object>
|
||||
<object class="NSFont" key="IBUIFont" id="400967680">
|
||||
<string key="NSName">Helvetica-Bold</string>
|
||||
<double key="NSSize">15</double>
|
||||
<int key="NSfFlags">16</int>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBUILabel" id="411852784">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">293</int>
|
||||
<string key="NSFrame">{{224, 297}, {320, 44}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="208073000"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">7</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">ActiveGS</string>
|
||||
<object class="NSColor" key="IBUITextColor" id="424898793">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MCAwIDAAA</bytes>
|
||||
<string key="IBUIColorCocoaTouchKeyPath">darkTextColor</string>
|
||||
</object>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<reference key="IBUIShadowColor" ref="681515851"/>
|
||||
<string key="IBUIShadowOffset">{2, 2}</string>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
<int key="IBUITextAlignment">1</int>
|
||||
<object class="IBUIFontDescription" key="IBUIFontDescription" id="746842340">
|
||||
<string key="name">Helvetica-Bold</string>
|
||||
<string key="family">Helvetica</string>
|
||||
<int key="traits">2</int>
|
||||
<double key="pointSize">36</double>
|
||||
</object>
|
||||
<object class="NSFont" key="IBUIFont" id="583743090">
|
||||
<string key="NSName">Helvetica-Bold</string>
|
||||
<double key="NSSize">36</double>
|
||||
<int key="NSfFlags">16</int>
|
||||
</object>
|
||||
<bool key="useAutomaticPreferredMaxLayoutWidth">YES</bool>
|
||||
</object>
|
||||
<object class="IBUILabel" id="272079427">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">293</int>
|
||||
<string key="NSFrame">{{270, 416}, {228, 25}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="79579024"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">7</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">(version)</string>
|
||||
<reference key="IBUITextColor" ref="424898793"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
<int key="IBUITextAlignment">1</int>
|
||||
<object class="IBUIFontDescription" key="IBUIFontDescription" id="51328994">
|
||||
<int key="type">1</int>
|
||||
<double key="pointSize">17</double>
|
||||
</object>
|
||||
<object class="NSFont" key="IBUIFont" id="60422809">
|
||||
<string key="NSName">HelveticaNeue</string>
|
||||
<double key="NSSize">17</double>
|
||||
<int key="NSfFlags">16</int>
|
||||
</object>
|
||||
<bool key="useAutomaticPreferredMaxLayoutWidth">YES</bool>
|
||||
</object>
|
||||
<object class="IBUILabel" id="850712689">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">269</int>
|
||||
<string key="NSFrame">{{274, 789}, {219, 30}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="103537343"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">7</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">For support and/or feedback, please visit</string>
|
||||
<reference key="IBUITextColor" ref="424898793"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
<int key="IBUINumberOfLines">3</int>
|
||||
<int key="IBUITextAlignment">1</int>
|
||||
<object class="IBUIFontDescription" key="IBUIFontDescription" id="176548636">
|
||||
<string key="name">Helvetica</string>
|
||||
<string key="family">Helvetica</string>
|
||||
<int key="traits">0</int>
|
||||
<double key="pointSize">12</double>
|
||||
</object>
|
||||
<object class="NSFont" key="IBUIFont" id="624365055">
|
||||
<string key="NSName">Helvetica</string>
|
||||
<double key="NSSize">12</double>
|
||||
<int key="NSfFlags">16</int>
|
||||
</object>
|
||||
<double key="preferredMaxLayoutWidth">219</double>
|
||||
</object>
|
||||
<object class="IBUILabel" id="79579024">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">317</int>
|
||||
<string key="NSFrame">{{244, 533}, {280, 132}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="123117463"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">7</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string type="base64-UTF8" key="IBUIText">c3dpcGUgZG93biBmb3IgcnVuLXRpbWUgbWVudQpzd2lwZSB1cCBmb3Iga2V5Ym9hcmQKc3dpcGUgdXAg
|
||||
Zm9yIGpveXBhZCAod2hpbGUga2V5Ym9hcmQgaXMgc2hvd24pCmRvdWJsZSB0YXAgZm9yIG1vdXNlIGNs
|
||||
aWNrCnRyaXBsZSB0YXAgZm9yIG1vdXNlIGRvdWJsZS1jbGljawpzd2lwZSBsZWZ0L3JpZ2h0IG9uIHRv
|
||||
cCBzY3JlZW4gZm9yIHNob3J0Y3V0IHRvIGJyb3dzZQo</string>
|
||||
<reference key="IBUITextColor" ref="424898793"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<string key="IBUIShadowOffset">{0, 0}</string>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">4</float>
|
||||
<int key="IBUINumberOfLines">0</int>
|
||||
<int key="IBUITextAlignment">1</int>
|
||||
<int key="IBUILineBreakMode">2</int>
|
||||
<reference key="IBUIFontDescription" ref="176548636"/>
|
||||
<reference key="IBUIFont" ref="624365055"/>
|
||||
<double key="preferredMaxLayoutWidth">280</double>
|
||||
</object>
|
||||
<object class="IBUILabel" id="123117463">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">317</int>
|
||||
<string key="NSFrame">{{303, 506}, {162, 57}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="994056094"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">7</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">Commands:</string>
|
||||
<reference key="IBUITextColor" ref="424898793"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
<int key="IBUINumberOfLines">3</int>
|
||||
<int key="IBUITextAlignment">1</int>
|
||||
<object class="IBUIFontDescription" key="IBUIFontDescription" id="218152929">
|
||||
<string key="name">Helvetica-Bold</string>
|
||||
<string key="family">Helvetica</string>
|
||||
<int key="traits">2</int>
|
||||
<double key="pointSize">17</double>
|
||||
</object>
|
||||
<object class="NSFont" key="IBUIFont" id="1005788977">
|
||||
<string key="NSName">Helvetica-Bold</string>
|
||||
<double key="NSSize">17</double>
|
||||
<int key="NSfFlags">16</int>
|
||||
</object>
|
||||
<double key="preferredMaxLayoutWidth">162</double>
|
||||
</object>
|
||||
<object class="IBUIButton" id="103537343">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">269</int>
|
||||
<string key="NSFrame">{{368, 819}, {32, 32}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="621673545"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<int key="IBUIContentHorizontalAlignment">0</int>
|
||||
<int key="IBUIContentVerticalAlignment">0</int>
|
||||
<object class="NSColor" key="IBUINormalTitleColor">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
|
||||
</object>
|
||||
<reference key="IBUIHighlightedTitleColor" ref="681515851"/>
|
||||
<string key="IBUINormalTitle">Facebook</string>
|
||||
<reference key="IBUINormalTitleShadowColor" ref="757478349"/>
|
||||
<object class="NSCustomResource" key="IBUINormalImage" id="700529322">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">facebook-logo.png</string>
|
||||
</object>
|
||||
<reference key="IBUIFontDescription" ref="839905589"/>
|
||||
<reference key="IBUIFont" ref="400967680"/>
|
||||
</object>
|
||||
<object class="IBUILabel" id="621673545">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">269</int>
|
||||
<string key="NSFrame">{{233, 876}, {311, 30}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">7</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">(Dedicated to Benzebut, ActiveGS chief bug hunter!)</string>
|
||||
<reference key="IBUITextColor" ref="424898793"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<int key="IBUINumberOfLines">3</int>
|
||||
<int key="IBUITextAlignment">1</int>
|
||||
<reference key="IBUIFontDescription" ref="176548636"/>
|
||||
<reference key="IBUIFont" ref="624365055"/>
|
||||
<double key="preferredMaxLayoutWidth">311</double>
|
||||
</object>
|
||||
</array>
|
||||
<string key="NSFrameSize">{768, 1024}</string>
|
||||
<reference key="NSSuperview"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="411852784"/>
|
||||
<object class="NSColor" key="IBUIBackgroundColor">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MQA</bytes>
|
||||
<object class="NSColorSpace" key="NSCustomColorSpace" id="797851977">
|
||||
<int key="NSID">2</int>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBUISimulatedSizeMetrics" key="IBUISimulatedDestinationMetrics" id="734084207">
|
||||
<string key="IBUISimulatedSizeMetricsClass">IBUISimulatedFreeformSizeMetricsSentinel</string>
|
||||
<string key="IBUIDisplayName">Freeform</string>
|
||||
</object>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBUIView" id="199126390">
|
||||
<nil key="NSNextResponder"/>
|
||||
<int key="NSvFlags">274</int>
|
||||
<array class="NSMutableArray" key="NSSubviews">
|
||||
<object class="IBUIImageView" id="910411407">
|
||||
<reference key="NSNextResponder" ref="199126390"/>
|
||||
<int key="NSvFlags">293</int>
|
||||
<string key="NSFrame">{{472, 237}, {80, 77}}</string>
|
||||
<reference key="NSSuperview" ref="199126390"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">4</int>
|
||||
<bool key="IBUIMultipleTouchEnabled">YES</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<reference key="IBUIImage" ref="629254366"/>
|
||||
</object>
|
||||
<object class="IBUIButton" id="19372993">
|
||||
<reference key="NSNextResponder" ref="199126390"/>
|
||||
<int key="NSvFlags">265</int>
|
||||
<string key="NSFrame">{{461, 544}, {101, 37}}</string>
|
||||
<reference key="NSSuperview" ref="199126390"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<int key="IBUIContentHorizontalAlignment">0</int>
|
||||
<int key="IBUIContentVerticalAlignment">0</int>
|
||||
<int key="IBUIButtonType">1</int>
|
||||
<reference key="IBUINormalTitleColor" ref="261874939"/>
|
||||
<reference key="IBUIHighlightedTitleColor" ref="681515851"/>
|
||||
<string key="IBUINormalTitle">I'm Happy!</string>
|
||||
<reference key="IBUINormalTitleShadowColor" ref="757478349"/>
|
||||
<reference key="IBUIFontDescription" ref="839905589"/>
|
||||
<reference key="IBUIFont" ref="400967680"/>
|
||||
</object>
|
||||
<object class="IBUILabel" id="991466487">
|
||||
<reference key="NSNextResponder" ref="199126390"/>
|
||||
<int key="NSvFlags">293</int>
|
||||
<string key="NSFrame">{{379, 191}, {265, 38}}</string>
|
||||
<reference key="NSSuperview" ref="199126390"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">7</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">ActiveGS</string>
|
||||
<reference key="IBUITextColor" ref="424898793"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<reference key="IBUIShadowColor" ref="681515851"/>
|
||||
<string key="IBUIShadowOffset">{2, 2}</string>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
<int key="IBUITextAlignment">1</int>
|
||||
<reference key="IBUIFontDescription" ref="746842340"/>
|
||||
<reference key="IBUIFont" ref="583743090"/>
|
||||
<bool key="useAutomaticPreferredMaxLayoutWidth">YES</bool>
|
||||
</object>
|
||||
<object class="IBUILabel" id="281938637">
|
||||
<reference key="NSNextResponder" ref="199126390"/>
|
||||
<int key="NSvFlags">293</int>
|
||||
<string key="NSFrame">{{397, 322}, {228, 25}}</string>
|
||||
<reference key="NSSuperview" ref="199126390"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">7</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">(version)</string>
|
||||
<reference key="IBUITextColor" ref="424898793"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
<int key="IBUITextAlignment">1</int>
|
||||
<reference key="IBUIFontDescription" ref="51328994"/>
|
||||
<reference key="IBUIFont" ref="60422809"/>
|
||||
<bool key="useAutomaticPreferredMaxLayoutWidth">YES</bool>
|
||||
</object>
|
||||
<object class="IBUILabel" id="649273201">
|
||||
<reference key="NSNextResponder" ref="199126390"/>
|
||||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{406, 598}, {219, 30}}</string>
|
||||
<reference key="NSSuperview" ref="199126390"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">7</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">For support and/or feedback, please visit</string>
|
||||
<reference key="IBUITextColor" ref="424898793"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
<int key="IBUINumberOfLines">3</int>
|
||||
<int key="IBUITextAlignment">1</int>
|
||||
<reference key="IBUIFontDescription" ref="176548636"/>
|
||||
<reference key="IBUIFont" ref="624365055"/>
|
||||
<double key="preferredMaxLayoutWidth">219</double>
|
||||
</object>
|
||||
<object class="IBUILabel" id="859023805">
|
||||
<reference key="NSNextResponder" ref="199126390"/>
|
||||
<int key="NSvFlags">317</int>
|
||||
<string key="NSFrame">{{371, 389}, {280, 134}}</string>
|
||||
<reference key="NSSuperview" ref="199126390"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">7</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string type="base64-UTF8" key="IBUIText">c3dpcGUgZG93biBmb3IgcnVuLXRpbWUgbWVudQpzd2lwZSB1cCBmb3Iga2V5Ym9hcmQKc3dpcGUgdXAg
|
||||
Zm9yIGpveXBhZCAod2hpbGUga2V5Ym9hcmQgaXMgc2hvd24pCmRvdWJsZSB0YXAgZm9yIG1vdXNlIGNs
|
||||
aWNrCnRyaXBsZSB0YXAgZm9yIG1vdXNlIGRvdWJsZS1jbGljawpzd2lwZSBsZWZ0L3JpZ2h0IG9uIHRv
|
||||
cCBzY3JlZW4gZm9yIHNob3J0Y3V0IHRvIGJyb3dzZQo</string>
|
||||
<reference key="IBUITextColor" ref="424898793"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<string key="IBUIShadowOffset">{0, 0}</string>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">4</float>
|
||||
<int key="IBUINumberOfLines">0</int>
|
||||
<int key="IBUITextAlignment">1</int>
|
||||
<int key="IBUILineBreakMode">2</int>
|
||||
<reference key="IBUIFontDescription" ref="176548636"/>
|
||||
<reference key="IBUIFont" ref="624365055"/>
|
||||
<double key="preferredMaxLayoutWidth">280</double>
|
||||
</object>
|
||||
<object class="IBUILabel" id="1030381761">
|
||||
<reference key="NSNextResponder" ref="199126390"/>
|
||||
<int key="NSvFlags">317</int>
|
||||
<string key="NSFrame">{{431, 389}, {162, 17}}</string>
|
||||
<reference key="NSSuperview" ref="199126390"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">7</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">Commands:</string>
|
||||
<reference key="IBUITextColor" ref="424898793"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
<int key="IBUINumberOfLines">3</int>
|
||||
<int key="IBUITextAlignment">1</int>
|
||||
<reference key="IBUIFontDescription" ref="218152929"/>
|
||||
<reference key="IBUIFont" ref="1005788977"/>
|
||||
<double key="preferredMaxLayoutWidth">162</double>
|
||||
</object>
|
||||
<object class="IBUIButton" id="845674304">
|
||||
<reference key="NSNextResponder" ref="199126390"/>
|
||||
<int key="NSvFlags">269</int>
|
||||
<string key="NSFrame">{{495, 628}, {32, 32}}</string>
|
||||
<reference key="NSSuperview" ref="199126390"/>
|
||||
<reference key="NSNextKeyView" ref="686037229"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<int key="IBUIContentHorizontalAlignment">0</int>
|
||||
<int key="IBUIContentVerticalAlignment">0</int>
|
||||
<object class="NSColor" key="IBUINormalTitleColor">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
|
||||
</object>
|
||||
<reference key="IBUIHighlightedTitleColor" ref="681515851"/>
|
||||
<string key="IBUINormalTitle">Facebook</string>
|
||||
<reference key="IBUINormalTitleShadowColor" ref="757478349"/>
|
||||
<reference key="IBUINormalImage" ref="700529322"/>
|
||||
<reference key="IBUIFontDescription" ref="839905589"/>
|
||||
<reference key="IBUIFont" ref="400967680"/>
|
||||
</object>
|
||||
<object class="IBUILabel" id="686037229">
|
||||
<reference key="NSNextResponder" ref="199126390"/>
|
||||
<int key="NSvFlags">269</int>
|
||||
<string key="NSFrame">{{353, 676}, {317, 30}}</string>
|
||||
<reference key="NSSuperview" ref="199126390"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">7</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">(Dedicated to Benzebut, ActiveGS chief bug hunter!)</string>
|
||||
<reference key="IBUITextColor" ref="424898793"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<int key="IBUINumberOfLines">3</int>
|
||||
<int key="IBUITextAlignment">1</int>
|
||||
<reference key="IBUIFontDescription" ref="176548636"/>
|
||||
<reference key="IBUIFont" ref="624365055"/>
|
||||
<double key="preferredMaxLayoutWidth">317</double>
|
||||
</object>
|
||||
</array>
|
||||
<string key="NSFrameSize">{1024, 768}</string>
|
||||
<object class="NSColor" key="IBUIBackgroundColor">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MQA</bytes>
|
||||
<reference key="NSCustomColorSpace" ref="797851977"/>
|
||||
</object>
|
||||
<object class="IBUISimulatedOrientationMetrics" key="IBUISimulatedOrientationMetrics">
|
||||
<int key="IBUIInterfaceOrientation">3</int>
|
||||
<int key="interfaceOrientation">3</int>
|
||||
</object>
|
||||
<reference key="IBUISimulatedDestinationMetrics" ref="734084207"/>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
</array>
|
||||
<object class="IBObjectContainer" key="IBDocument.Objects">
|
||||
<array key="connectionRecords">
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">view</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="191373211"/>
|
||||
</object>
|
||||
<int key="connectionID">3</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">versionUI</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="272079427"/>
|
||||
</object>
|
||||
<int key="connectionID">12</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">landscapeView</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="199126390"/>
|
||||
</object>
|
||||
<int key="connectionID">33</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">portraitView</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="191373211"/>
|
||||
</object>
|
||||
<int key="connectionID">34</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">versionUILandscape</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="281938637"/>
|
||||
</object>
|
||||
<int key="connectionID">35</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchEventConnection" key="connection">
|
||||
<string key="label">doneButton:</string>
|
||||
<reference key="source" ref="994056094"/>
|
||||
<reference key="destination" ref="975951072"/>
|
||||
<int key="IBEventType">7</int>
|
||||
</object>
|
||||
<int key="connectionID">9</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchEventConnection" key="connection">
|
||||
<string key="label">doneButton:</string>
|
||||
<reference key="source" ref="19372993"/>
|
||||
<reference key="destination" ref="975951072"/>
|
||||
<int key="IBEventType">7</int>
|
||||
</object>
|
||||
<int key="connectionID">31</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchEventConnection" key="connection">
|
||||
<string key="label">emailButton:</string>
|
||||
<reference key="source" ref="103537343"/>
|
||||
<reference key="destination" ref="975951072"/>
|
||||
<int key="IBEventType">1</int>
|
||||
</object>
|
||||
<int key="connectionID">42</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchEventConnection" key="connection">
|
||||
<string key="label">emailButton:</string>
|
||||
<reference key="source" ref="845674304"/>
|
||||
<reference key="destination" ref="975951072"/>
|
||||
<int key="IBEventType">1</int>
|
||||
</object>
|
||||
<int key="connectionID">45</int>
|
||||
</object>
|
||||
</array>
|
||||
<object class="IBMutableOrderedSet" key="objectRecords">
|
||||
<array key="orderedObjects">
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">0</int>
|
||||
<array key="object" id="0"/>
|
||||
<reference key="children" ref="1000"/>
|
||||
<nil key="parent"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">1</int>
|
||||
<reference key="object" ref="191373211"/>
|
||||
<array class="NSMutableArray" key="children">
|
||||
<reference ref="411852784"/>
|
||||
<reference ref="272079427"/>
|
||||
<reference ref="208073000"/>
|
||||
<reference ref="79579024"/>
|
||||
<reference ref="123117463"/>
|
||||
<reference ref="850712689"/>
|
||||
<reference ref="994056094"/>
|
||||
<reference ref="103537343"/>
|
||||
<reference ref="621673545"/>
|
||||
</array>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">-1</int>
|
||||
<reference key="object" ref="372490531"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
<string key="objectName">File's Owner</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">-2</int>
|
||||
<reference key="object" ref="975951072"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">4</int>
|
||||
<reference key="object" ref="208073000"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">5</int>
|
||||
<reference key="object" ref="994056094"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">10</int>
|
||||
<reference key="object" ref="411852784"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">11</int>
|
||||
<reference key="object" ref="272079427"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">13</int>
|
||||
<reference key="object" ref="850712689"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">23</int>
|
||||
<reference key="object" ref="199126390"/>
|
||||
<array class="NSMutableArray" key="children">
|
||||
<reference ref="910411407"/>
|
||||
<reference ref="991466487"/>
|
||||
<reference ref="281938637"/>
|
||||
<reference ref="1030381761"/>
|
||||
<reference ref="859023805"/>
|
||||
<reference ref="649273201"/>
|
||||
<reference ref="19372993"/>
|
||||
<reference ref="845674304"/>
|
||||
<reference ref="686037229"/>
|
||||
</array>
|
||||
<reference key="parent" ref="0"/>
|
||||
<string key="objectName">ViewLandscape</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">24</int>
|
||||
<reference key="object" ref="281938637"/>
|
||||
<reference key="parent" ref="199126390"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">25</int>
|
||||
<reference key="object" ref="19372993"/>
|
||||
<reference key="parent" ref="199126390"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">27</int>
|
||||
<reference key="object" ref="991466487"/>
|
||||
<reference key="parent" ref="199126390"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">28</int>
|
||||
<reference key="object" ref="649273201"/>
|
||||
<reference key="parent" ref="199126390"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">29</int>
|
||||
<reference key="object" ref="910411407"/>
|
||||
<reference key="parent" ref="199126390"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">36</int>
|
||||
<reference key="object" ref="79579024"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">37</int>
|
||||
<reference key="object" ref="859023805"/>
|
||||
<reference key="parent" ref="199126390"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">38</int>
|
||||
<reference key="object" ref="1030381761"/>
|
||||
<reference key="parent" ref="199126390"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">39</int>
|
||||
<reference key="object" ref="123117463"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">40</int>
|
||||
<reference key="object" ref="103537343"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">41</int>
|
||||
<reference key="object" ref="621673545"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">43</int>
|
||||
<reference key="object" ref="845674304"/>
|
||||
<reference key="parent" ref="199126390"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">44</int>
|
||||
<reference key="object" ref="686037229"/>
|
||||
<reference key="parent" ref="199126390"/>
|
||||
</object>
|
||||
</array>
|
||||
</object>
|
||||
<dictionary class="NSMutableDictionary" key="flattenedProperties">
|
||||
<string key="-1.CustomClassName">infoViewController</string>
|
||||
<string key="-1.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="-2.CustomClassName">UIResponder</string>
|
||||
<string key="-2.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="1.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="10.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="11.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="13.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="23.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="24.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="25.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="27.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="28.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="29.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="36.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="37.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="38.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="39.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="4.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="40.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="41.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="43.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="44.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="5.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
|
||||
<nil key="activeLocalization"/>
|
||||
<dictionary class="NSMutableDictionary" key="localizations"/>
|
||||
<nil key="sourceID"/>
|
||||
<int key="maxID">45</int>
|
||||
</object>
|
||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">infoViewController</string>
|
||||
<string key="superclassName">UIVIEWCONTROLLERROOT</string>
|
||||
<dictionary class="NSMutableDictionary" key="actions">
|
||||
<string key="doneButton:">id</string>
|
||||
<string key="emailButton:">id</string>
|
||||
<string key="parametersButton:">id</string>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" key="actionInfosByName">
|
||||
<object class="IBActionInfo" key="doneButton:">
|
||||
<string key="name">doneButton:</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
<object class="IBActionInfo" key="emailButton:">
|
||||
<string key="name">emailButton:</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
<object class="IBActionInfo" key="parametersButton:">
|
||||
<string key="name">parametersButton:</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" key="outlets">
|
||||
<string key="landscapeView">UIView</string>
|
||||
<string key="portraitView">UIView</string>
|
||||
<string key="versionUI">UILabel</string>
|
||||
<string key="versionUILandscape">UILabel</string>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" key="toOneOutletInfosByName">
|
||||
<object class="IBToOneOutletInfo" key="landscapeView">
|
||||
<string key="name">landscapeView</string>
|
||||
<string key="candidateClassName">UIView</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="portraitView">
|
||||
<string key="name">portraitView</string>
|
||||
<string key="candidateClassName">UIView</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="versionUI">
|
||||
<string key="name">versionUI</string>
|
||||
<string key="candidateClassName">UILabel</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="versionUILandscape">
|
||||
<string key="name">versionUILandscape</string>
|
||||
<string key="candidateClassName">UILabel</string>
|
||||
</object>
|
||||
</dictionary>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBProjectSource</string>
|
||||
<string key="minorKey">../../Common.iphone/infoViewController.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">infoViewController</string>
|
||||
<dictionary class="NSMutableDictionary" key="actions">
|
||||
<string key="doneButton:">id</string>
|
||||
<string key="emailButton:">id</string>
|
||||
<string key="parametersButton:">id</string>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" key="actionInfosByName">
|
||||
<object class="IBActionInfo" key="doneButton:">
|
||||
<string key="name">doneButton:</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
<object class="IBActionInfo" key="emailButton:">
|
||||
<string key="name">emailButton:</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
<object class="IBActionInfo" key="parametersButton:">
|
||||
<string key="name">parametersButton:</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
</dictionary>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBProjectSource</string>
|
||||
<string key="minorKey">../../Common.iphone/infoViewController.mm</string>
|
||||
</object>
|
||||
</object>
|
||||
</array>
|
||||
<array class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIButton</string>
|
||||
<string key="superclassName">UIControl</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UIButton.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIControl</string>
|
||||
<string key="superclassName">UIView</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UIControl.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIGestureRecognizer</string>
|
||||
<string key="superclassName">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UIGestureRecognizer.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIImageView</string>
|
||||
<string key="superclassName">UIView</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UIImageView.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UILabel</string>
|
||||
<string key="superclassName">UIView</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UILabel.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIResponder</string>
|
||||
<string key="superclassName">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UIResponder.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIView</string>
|
||||
<string key="superclassName">UIResponder</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UIView.h</string>
|
||||
</object>
|
||||
</object>
|
||||
</array>
|
||||
</object>
|
||||
<int key="IBDocument.localizationMode">0</int>
|
||||
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<bool key="IBDocument.previouslyAttemptedUpgradeToXcode5">NO</bool>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
|
||||
<integer value="4600" key="NS.object.0"/>
|
||||
</object>
|
||||
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
|
||||
<int key="IBDocument.defaultPropertyAccessControl">3</int>
|
||||
<dictionary class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
|
||||
<string key="ActiveGS.png">{80, 80}</string>
|
||||
<string key="facebook-logo.png">{128, 128}</string>
|
||||
</dictionary>
|
||||
</data>
|
||||
</archive>
|
931
ActiveGS_iOS/infoViewController.xib
Normal file
@ -0,0 +1,931 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="8.00">
|
||||
<data>
|
||||
<int key="IBDocument.SystemTarget">1552</int>
|
||||
<string key="IBDocument.SystemVersion">13F34</string>
|
||||
<string key="IBDocument.InterfaceBuilderVersion">6254</string>
|
||||
<string key="IBDocument.AppKitVersion">1265.21</string>
|
||||
<string key="IBDocument.HIToolboxVersion">698.00</string>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="NS.object.0">6247</string>
|
||||
</object>
|
||||
<array key="IBDocument.IntegratedClassDependencies">
|
||||
<string>IBProxyObject</string>
|
||||
<string>IBUIButton</string>
|
||||
<string>IBUIImageView</string>
|
||||
<string>IBUILabel</string>
|
||||
<string>IBUIView</string>
|
||||
</array>
|
||||
<array key="IBDocument.PluginDependencies">
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
</array>
|
||||
<object class="NSMutableDictionary" key="IBDocument.Metadata">
|
||||
<string key="NS.key.0">PluginDependencyRecalculationVersion</string>
|
||||
<integer value="1" key="NS.object.0"/>
|
||||
</object>
|
||||
<array class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
|
||||
<object class="IBProxyObject" id="372490531">
|
||||
<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBProxyObject" id="975951072">
|
||||
<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBUIView" id="191373211">
|
||||
<reference key="NSNextResponder"/>
|
||||
<int key="NSvFlags">274</int>
|
||||
<array class="NSMutableArray" key="NSSubviews">
|
||||
<object class="IBUIImageView" id="208073000">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">293</int>
|
||||
<string key="NSFrame">{{120, 59}, {80, 77}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="272079427"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">4</int>
|
||||
<bool key="IBUIMultipleTouchEnabled">YES</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<object class="NSCustomResource" key="IBUIImage" id="629254366">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">ActiveGS.png</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBUIButton" id="994056094">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">269</int>
|
||||
<string key="NSFrame">{{109, 339}, {101, 37}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="850712689"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<int key="IBUIContentHorizontalAlignment">0</int>
|
||||
<int key="IBUIContentVerticalAlignment">0</int>
|
||||
<int key="IBUIButtonType">1</int>
|
||||
<object class="NSColor" key="IBUINormalTitleColor" id="891060432">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MC4xOTYwNzg0MzE0IDAuMzA5ODAzOTIxNiAwLjUyMTU2ODYyNzUAA</bytes>
|
||||
</object>
|
||||
<object class="NSColor" key="IBUIHighlightedTitleColor" id="681515851">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MQA</bytes>
|
||||
</object>
|
||||
<string key="IBUINormalTitle">I'm Happy!</string>
|
||||
<object class="NSColor" key="IBUINormalTitleShadowColor" id="757478349">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MC41AA</bytes>
|
||||
</object>
|
||||
<object class="IBUIFontDescription" key="IBUIFontDescription" id="936153339">
|
||||
<string key="name">Helvetica-Bold</string>
|
||||
<string key="family">Helvetica</string>
|
||||
<int key="traits">2</int>
|
||||
<double key="pointSize">15</double>
|
||||
</object>
|
||||
<object class="NSFont" key="IBUIFont" id="400967680">
|
||||
<string key="NSName">Helvetica-Bold</string>
|
||||
<double key="NSSize">15</double>
|
||||
<int key="NSfFlags">16</int>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBUILabel" id="411852784">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">293</int>
|
||||
<string key="NSFrame">{{0, 20}, {320, 43}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="208073000"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">7</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">ActiveGS</string>
|
||||
<object class="NSColor" key="IBUITextColor" id="424898793">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MCAwIDAAA</bytes>
|
||||
<string key="IBUIColorCocoaTouchKeyPath">darkTextColor</string>
|
||||
</object>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<reference key="IBUIShadowColor" ref="681515851"/>
|
||||
<string key="IBUIShadowOffset">{2, 2}</string>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
<int key="IBUITextAlignment">1</int>
|
||||
<object class="IBUIFontDescription" key="IBUIFontDescription" id="161176566">
|
||||
<string key="name">Helvetica-Bold</string>
|
||||
<string key="family">Helvetica</string>
|
||||
<int key="traits">2</int>
|
||||
<double key="pointSize">36</double>
|
||||
</object>
|
||||
<object class="NSFont" key="IBUIFont" id="583743090">
|
||||
<string key="NSName">Helvetica-Bold</string>
|
||||
<double key="NSSize">36</double>
|
||||
<int key="NSfFlags">16</int>
|
||||
</object>
|
||||
<bool key="useAutomaticPreferredMaxLayoutWidth">YES</bool>
|
||||
</object>
|
||||
<object class="IBUILabel" id="272079427">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">293</int>
|
||||
<string key="NSFrame">{{46, 139}, {228, 25}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="465416657"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">7</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">(version)</string>
|
||||
<reference key="IBUITextColor" ref="424898793"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
<int key="IBUITextAlignment">1</int>
|
||||
<object class="IBUIFontDescription" key="IBUIFontDescription" id="500353937">
|
||||
<int key="type">1</int>
|
||||
<double key="pointSize">17</double>
|
||||
</object>
|
||||
<object class="NSFont" key="IBUIFont" id="313657317">
|
||||
<string key="NSName">HelveticaNeue</string>
|
||||
<double key="NSSize">17</double>
|
||||
<int key="NSfFlags">16</int>
|
||||
</object>
|
||||
<bool key="useAutomaticPreferredMaxLayoutWidth">YES</bool>
|
||||
</object>
|
||||
<object class="IBUILabel" id="850712689">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">269</int>
|
||||
<string key="NSFrame">{{76, 392}, {180, 30}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="828079104"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">7</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">For support and/or feedback, visit</string>
|
||||
<reference key="IBUITextColor" ref="424898793"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
<int key="IBUINumberOfLines">3</int>
|
||||
<int key="IBUITextAlignment">1</int>
|
||||
<object class="IBUIFontDescription" key="IBUIFontDescription" id="490482017">
|
||||
<string key="name">Helvetica</string>
|
||||
<string key="family">Helvetica</string>
|
||||
<int key="traits">0</int>
|
||||
<double key="pointSize">12</double>
|
||||
</object>
|
||||
<object class="NSFont" key="IBUIFont" id="624365055">
|
||||
<string key="NSName">Helvetica</string>
|
||||
<double key="NSSize">12</double>
|
||||
<int key="NSfFlags">16</int>
|
||||
</object>
|
||||
<double key="preferredMaxLayoutWidth">180</double>
|
||||
</object>
|
||||
<object class="IBUILabel" id="465416657">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">317</int>
|
||||
<string key="NSFrame">{{23, 191}, {280, 134}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="467084606"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">7</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string type="base64-UTF8" key="IBUIText">c3dpcGUgZG93biBmb3IgcnVuLXRpbWUgbWVudQpzd2lwZSB1cCBmb3Iga2V5Ym9hcmQKc3dpcGUgdXAg
|
||||
Zm9yIGpveXBhZCAod2hpbGUga2V5Ym9hcmQgaXMgc2hvd24pCmRvdWJsZSB0YXAgZm9yIG1vdXNlIGNs
|
||||
aWNrCnRyaXBsZSB0YXAgZm9yIG1vdXNlIGRvdWJsZS1jbGljawpzd2lwZSBsZWZ0L3JpZ2h0IG9uIHRv
|
||||
cCBzY3JlZW4gZm9yIHNob3J0Y3V0IHRvIGJyb3dzZQo</string>
|
||||
<reference key="IBUITextColor" ref="424898793"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<string key="IBUIShadowOffset">{0, 0}</string>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">4</float>
|
||||
<int key="IBUINumberOfLines">0</int>
|
||||
<int key="IBUITextAlignment">1</int>
|
||||
<int key="IBUILineBreakMode">2</int>
|
||||
<reference key="IBUIFontDescription" ref="490482017"/>
|
||||
<reference key="IBUIFont" ref="624365055"/>
|
||||
<double key="preferredMaxLayoutWidth">280</double>
|
||||
</object>
|
||||
<object class="IBUILabel" id="467084606">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">317</int>
|
||||
<string key="NSFrame">{{79, 186}, {162, 17}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="994056094"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">7</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">Commands:</string>
|
||||
<reference key="IBUITextColor" ref="424898793"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
<int key="IBUINumberOfLines">3</int>
|
||||
<int key="IBUITextAlignment">1</int>
|
||||
<object class="IBUIFontDescription" key="IBUIFontDescription" id="462874504">
|
||||
<string key="name">Helvetica-Bold</string>
|
||||
<string key="family">Helvetica</string>
|
||||
<int key="traits">2</int>
|
||||
<double key="pointSize">17</double>
|
||||
</object>
|
||||
<object class="NSFont" key="IBUIFont" id="110190536">
|
||||
<string key="NSName">Helvetica-Bold</string>
|
||||
<double key="NSSize">17</double>
|
||||
<int key="NSfFlags">16</int>
|
||||
</object>
|
||||
<double key="preferredMaxLayoutWidth">162</double>
|
||||
</object>
|
||||
<object class="IBUIButton" id="1022903398">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">269</int>
|
||||
<string key="NSFrame">{{143, 417}, {32, 32}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<int key="IBUIContentHorizontalAlignment">0</int>
|
||||
<int key="IBUIContentVerticalAlignment">0</int>
|
||||
<object class="NSColor" key="IBUINormalTitleColor">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
|
||||
</object>
|
||||
<reference key="IBUIHighlightedTitleColor" ref="681515851"/>
|
||||
<string key="IBUINormalTitle">Facebook</string>
|
||||
<reference key="IBUINormalTitleShadowColor" ref="757478349"/>
|
||||
<object class="NSCustomResource" key="IBUINormalImage" id="1053865150">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">facebook-logo.png</string>
|
||||
</object>
|
||||
<reference key="IBUIFontDescription" ref="936153339"/>
|
||||
<reference key="IBUIFont" ref="400967680"/>
|
||||
</object>
|
||||
<object class="IBUILabel" id="828079104">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">269</int>
|
||||
<string key="NSFrame">{{15, 444}, {290, 30}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="1022903398"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">7</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">(Dedicated to Benzebut, ActiveGS chief bug hunter!)</string>
|
||||
<reference key="IBUITextColor" ref="424898793"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<int key="IBUINumberOfLines">3</int>
|
||||
<int key="IBUITextAlignment">1</int>
|
||||
<reference key="IBUIFontDescription" ref="490482017"/>
|
||||
<reference key="IBUIFont" ref="624365055"/>
|
||||
<double key="preferredMaxLayoutWidth">290</double>
|
||||
</object>
|
||||
</array>
|
||||
<string key="NSFrameSize">{320, 480}</string>
|
||||
<reference key="NSSuperview"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="411852784"/>
|
||||
<object class="NSColor" key="IBUIBackgroundColor">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MQA</bytes>
|
||||
<object class="NSColorSpace" key="NSCustomColorSpace" id="797851977">
|
||||
<int key="NSID">2</int>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBUISimulatedSizeMetrics" key="IBUISimulatedDestinationMetrics" id="592748493">
|
||||
<string key="IBUISimulatedSizeMetricsClass">IBUISimulatedFreeformSizeMetricsSentinel</string>
|
||||
<string key="IBUIDisplayName">Freeform</string>
|
||||
</object>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBUIView" id="199126390">
|
||||
<nil key="NSNextResponder"/>
|
||||
<int key="NSvFlags">274</int>
|
||||
<array class="NSMutableArray" key="NSSubviews">
|
||||
<object class="IBUIImageView" id="910411407">
|
||||
<reference key="NSNextResponder" ref="199126390"/>
|
||||
<int key="NSvFlags">293</int>
|
||||
<string key="NSFrame">{{120, 20}, {80, 77}}</string>
|
||||
<reference key="NSSuperview" ref="199126390"/>
|
||||
<reference key="NSNextKeyView" ref="991466487"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">4</int>
|
||||
<bool key="IBUIMultipleTouchEnabled">YES</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<reference key="IBUIImage" ref="629254366"/>
|
||||
</object>
|
||||
<object class="IBUIButton" id="19372993">
|
||||
<reference key="NSNextResponder" ref="199126390"/>
|
||||
<int key="NSvFlags">265</int>
|
||||
<string key="NSFrame">{{359, 256}, {101, 37}}</string>
|
||||
<reference key="NSSuperview" ref="199126390"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<int key="IBUIContentHorizontalAlignment">0</int>
|
||||
<int key="IBUIContentVerticalAlignment">0</int>
|
||||
<int key="IBUIButtonType">1</int>
|
||||
<reference key="IBUINormalTitleColor" ref="891060432"/>
|
||||
<reference key="IBUIHighlightedTitleColor" ref="681515851"/>
|
||||
<string key="IBUINormalTitle">I'm Happy!</string>
|
||||
<reference key="IBUINormalTitleShadowColor" ref="757478349"/>
|
||||
<reference key="IBUIFontDescription" ref="936153339"/>
|
||||
<reference key="IBUIFont" ref="400967680"/>
|
||||
</object>
|
||||
<object class="IBUILabel" id="991466487">
|
||||
<reference key="NSNextResponder" ref="199126390"/>
|
||||
<int key="NSvFlags">293</int>
|
||||
<string key="NSFrame">{{208, 52}, {265, 38}}</string>
|
||||
<reference key="NSSuperview" ref="199126390"/>
|
||||
<reference key="NSNextKeyView" ref="281938637"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">7</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">ActiveGS</string>
|
||||
<reference key="IBUITextColor" ref="424898793"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<reference key="IBUIShadowColor" ref="681515851"/>
|
||||
<string key="IBUIShadowOffset">{2, 2}</string>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
<reference key="IBUIFontDescription" ref="161176566"/>
|
||||
<reference key="IBUIFont" ref="583743090"/>
|
||||
<bool key="useAutomaticPreferredMaxLayoutWidth">YES</bool>
|
||||
</object>
|
||||
<object class="IBUILabel" id="281938637">
|
||||
<reference key="NSNextResponder" ref="199126390"/>
|
||||
<int key="NSvFlags">293</int>
|
||||
<string key="NSFrame">{{126, 93}, {228, 25}}</string>
|
||||
<reference key="NSSuperview" ref="199126390"/>
|
||||
<reference key="NSNextKeyView" ref="809359447"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">7</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">(version)</string>
|
||||
<reference key="IBUITextColor" ref="424898793"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
<int key="IBUITextAlignment">1</int>
|
||||
<reference key="IBUIFontDescription" ref="500353937"/>
|
||||
<reference key="IBUIFont" ref="313657317"/>
|
||||
<bool key="useAutomaticPreferredMaxLayoutWidth">YES</bool>
|
||||
</object>
|
||||
<object class="IBUILabel" id="649273201">
|
||||
<reference key="NSNextResponder" ref="199126390"/>
|
||||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{20, 261}, {180, 30}}</string>
|
||||
<reference key="NSSuperview" ref="199126390"/>
|
||||
<reference key="NSNextKeyView" ref="609857989"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">7</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">For support and/or feedback, visit</string>
|
||||
<reference key="IBUITextColor" ref="424898793"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
<int key="IBUINumberOfLines">3</int>
|
||||
<int key="IBUITextAlignment">1</int>
|
||||
<reference key="IBUIFontDescription" ref="490482017"/>
|
||||
<reference key="IBUIFont" ref="624365055"/>
|
||||
<double key="preferredMaxLayoutWidth">180</double>
|
||||
</object>
|
||||
<object class="IBUILabel" id="609857989">
|
||||
<reference key="NSNextResponder" ref="199126390"/>
|
||||
<int key="NSvFlags">317</int>
|
||||
<string key="NSFrame">{{100, 131}, {280, 134}}</string>
|
||||
<reference key="NSSuperview" ref="199126390"/>
|
||||
<reference key="NSNextKeyView" ref="792767964"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">7</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string type="base64-UTF8" key="IBUIText">c3dpcGUgZG93biBmb3IgcnVuLXRpbWUgbWVudQpzd2lwZSB1cCBmb3Iga2V5Ym9hcmQKc3dpcGUgdXAg
|
||||
Zm9yIGpveXBhZCAod2hpbGUga2V5Ym9hcmQgaXMgc2hvd24pCmRvdWJsZSB0YXAgZm9yIG1vdXNlIGNs
|
||||
aWNrCnRyaXBsZSB0YXAgZm9yIG1vdXNlIGRvdWJsZS1jbGljawpzd2lwZSBsZWZ0L3JpZ2h0IG9uIHRv
|
||||
cCBzY3JlZW4gZm9yIHNob3J0Y3V0IHRvIGJyb3dzZQo</string>
|
||||
<reference key="IBUITextColor" ref="424898793"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<string key="IBUIShadowOffset">{0, 0}</string>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">4</float>
|
||||
<int key="IBUINumberOfLines">0</int>
|
||||
<int key="IBUITextAlignment">1</int>
|
||||
<int key="IBUILineBreakMode">2</int>
|
||||
<reference key="IBUIFontDescription" ref="490482017"/>
|
||||
<reference key="IBUIFont" ref="624365055"/>
|
||||
<double key="preferredMaxLayoutWidth">280</double>
|
||||
</object>
|
||||
<object class="IBUILabel" id="809359447">
|
||||
<reference key="NSNextResponder" ref="199126390"/>
|
||||
<int key="NSvFlags">317</int>
|
||||
<string key="NSFrame">{{159, 131}, {162, 17}}</string>
|
||||
<reference key="NSSuperview" ref="199126390"/>
|
||||
<reference key="NSNextKeyView" ref="649273201"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">7</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">Commands:</string>
|
||||
<reference key="IBUITextColor" ref="424898793"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
<int key="IBUINumberOfLines">3</int>
|
||||
<int key="IBUITextAlignment">1</int>
|
||||
<reference key="IBUIFontDescription" ref="462874504"/>
|
||||
<reference key="IBUIFont" ref="110190536"/>
|
||||
<double key="preferredMaxLayoutWidth">162</double>
|
||||
</object>
|
||||
<object class="IBUIButton" id="503480324">
|
||||
<reference key="NSNextResponder" ref="199126390"/>
|
||||
<int key="NSvFlags">269</int>
|
||||
<string key="NSFrame">{{213, 259}, {32, 32}}</string>
|
||||
<reference key="NSSuperview" ref="199126390"/>
|
||||
<reference key="NSNextKeyView" ref="19372993"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<int key="IBUIContentHorizontalAlignment">0</int>
|
||||
<int key="IBUIContentVerticalAlignment">0</int>
|
||||
<object class="NSColor" key="IBUINormalTitleColor">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
|
||||
</object>
|
||||
<reference key="IBUIHighlightedTitleColor" ref="681515851"/>
|
||||
<string key="IBUINormalTitle">Facebook</string>
|
||||
<reference key="IBUINormalTitleShadowColor" ref="757478349"/>
|
||||
<reference key="IBUINormalImage" ref="1053865150"/>
|
||||
<reference key="IBUIFontDescription" ref="936153339"/>
|
||||
<reference key="IBUIFont" ref="400967680"/>
|
||||
</object>
|
||||
<object class="IBUILabel" id="792767964">
|
||||
<reference key="NSNextResponder" ref="199126390"/>
|
||||
<int key="NSvFlags">269</int>
|
||||
<string key="NSFrame">{{93, 290}, {294, 30}}</string>
|
||||
<reference key="NSSuperview" ref="199126390"/>
|
||||
<reference key="NSNextKeyView" ref="503480324"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">7</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">(Dedicated to Benzebut, ActiveGS chief bug hunter!)</string>
|
||||
<reference key="IBUITextColor" ref="424898793"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<int key="IBUINumberOfLines">3</int>
|
||||
<int key="IBUITextAlignment">1</int>
|
||||
<reference key="IBUIFontDescription" ref="490482017"/>
|
||||
<reference key="IBUIFont" ref="624365055"/>
|
||||
<double key="preferredMaxLayoutWidth">294</double>
|
||||
</object>
|
||||
</array>
|
||||
<string key="NSFrameSize">{480, 320}</string>
|
||||
<reference key="NSNextKeyView" ref="910411407"/>
|
||||
<object class="NSColor" key="IBUIBackgroundColor">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MQA</bytes>
|
||||
<reference key="NSCustomColorSpace" ref="797851977"/>
|
||||
</object>
|
||||
<object class="IBUISimulatedOrientationMetrics" key="IBUISimulatedOrientationMetrics">
|
||||
<int key="IBUIInterfaceOrientation">3</int>
|
||||
<int key="interfaceOrientation">3</int>
|
||||
</object>
|
||||
<reference key="IBUISimulatedDestinationMetrics" ref="592748493"/>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
</array>
|
||||
<object class="IBObjectContainer" key="IBDocument.Objects">
|
||||
<array key="connectionRecords">
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">view</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="191373211"/>
|
||||
</object>
|
||||
<int key="connectionID">3</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">versionUI</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="272079427"/>
|
||||
</object>
|
||||
<int key="connectionID">12</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">landscapeView</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="199126390"/>
|
||||
</object>
|
||||
<int key="connectionID">33</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">portraitView</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="191373211"/>
|
||||
</object>
|
||||
<int key="connectionID">34</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">versionUILandscape</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="281938637"/>
|
||||
</object>
|
||||
<int key="connectionID">35</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchEventConnection" key="connection">
|
||||
<string key="label">doneButton:</string>
|
||||
<reference key="source" ref="994056094"/>
|
||||
<reference key="destination" ref="975951072"/>
|
||||
<int key="IBEventType">7</int>
|
||||
</object>
|
||||
<int key="connectionID">9</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchEventConnection" key="connection">
|
||||
<string key="label">doneButton:</string>
|
||||
<reference key="source" ref="19372993"/>
|
||||
<reference key="destination" ref="975951072"/>
|
||||
<int key="IBEventType">7</int>
|
||||
</object>
|
||||
<int key="connectionID">31</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchEventConnection" key="connection">
|
||||
<string key="label">emailButton:</string>
|
||||
<reference key="source" ref="1022903398"/>
|
||||
<reference key="destination" ref="975951072"/>
|
||||
<int key="IBEventType">1</int>
|
||||
</object>
|
||||
<int key="connectionID">50</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchEventConnection" key="connection">
|
||||
<string key="label">emailButton:</string>
|
||||
<reference key="source" ref="503480324"/>
|
||||
<reference key="destination" ref="975951072"/>
|
||||
<int key="IBEventType">1</int>
|
||||
</object>
|
||||
<int key="connectionID">51</int>
|
||||
</object>
|
||||
</array>
|
||||
<object class="IBMutableOrderedSet" key="objectRecords">
|
||||
<array key="orderedObjects">
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">0</int>
|
||||
<array key="object" id="0"/>
|
||||
<reference key="children" ref="1000"/>
|
||||
<nil key="parent"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">1</int>
|
||||
<reference key="object" ref="191373211"/>
|
||||
<array class="NSMutableArray" key="children">
|
||||
<reference ref="411852784"/>
|
||||
<reference ref="272079427"/>
|
||||
<reference ref="208073000"/>
|
||||
<reference ref="465416657"/>
|
||||
<reference ref="467084606"/>
|
||||
<reference ref="850712689"/>
|
||||
<reference ref="994056094"/>
|
||||
<reference ref="1022903398"/>
|
||||
<reference ref="828079104"/>
|
||||
</array>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">-1</int>
|
||||
<reference key="object" ref="372490531"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
<string key="objectName">File's Owner</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">-2</int>
|
||||
<reference key="object" ref="975951072"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">4</int>
|
||||
<reference key="object" ref="208073000"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">5</int>
|
||||
<reference key="object" ref="994056094"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">10</int>
|
||||
<reference key="object" ref="411852784"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">11</int>
|
||||
<reference key="object" ref="272079427"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">13</int>
|
||||
<reference key="object" ref="850712689"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">23</int>
|
||||
<reference key="object" ref="199126390"/>
|
||||
<array class="NSMutableArray" key="children">
|
||||
<reference ref="910411407"/>
|
||||
<reference ref="281938637"/>
|
||||
<reference ref="991466487"/>
|
||||
<reference ref="609857989"/>
|
||||
<reference ref="809359447"/>
|
||||
<reference ref="19372993"/>
|
||||
<reference ref="503480324"/>
|
||||
<reference ref="649273201"/>
|
||||
<reference ref="792767964"/>
|
||||
</array>
|
||||
<reference key="parent" ref="0"/>
|
||||
<string key="objectName">ViewLandscape</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">24</int>
|
||||
<reference key="object" ref="281938637"/>
|
||||
<reference key="parent" ref="199126390"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">25</int>
|
||||
<reference key="object" ref="19372993"/>
|
||||
<reference key="parent" ref="199126390"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">27</int>
|
||||
<reference key="object" ref="991466487"/>
|
||||
<reference key="parent" ref="199126390"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">28</int>
|
||||
<reference key="object" ref="649273201"/>
|
||||
<reference key="parent" ref="199126390"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">29</int>
|
||||
<reference key="object" ref="910411407"/>
|
||||
<reference key="parent" ref="199126390"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">36</int>
|
||||
<reference key="object" ref="609857989"/>
|
||||
<reference key="parent" ref="199126390"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">37</int>
|
||||
<reference key="object" ref="465416657"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">38</int>
|
||||
<reference key="object" ref="467084606"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">39</int>
|
||||
<reference key="object" ref="809359447"/>
|
||||
<reference key="parent" ref="199126390"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">44</int>
|
||||
<reference key="object" ref="1022903398"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">45</int>
|
||||
<reference key="object" ref="828079104"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">47</int>
|
||||
<reference key="object" ref="503480324"/>
|
||||
<reference key="parent" ref="199126390"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">48</int>
|
||||
<reference key="object" ref="792767964"/>
|
||||
<reference key="parent" ref="199126390"/>
|
||||
</object>
|
||||
</array>
|
||||
</object>
|
||||
<dictionary class="NSMutableDictionary" key="flattenedProperties">
|
||||
<string key="-1.CustomClassName">infoViewController</string>
|
||||
<string key="-1.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="-2.CustomClassName">UIResponder</string>
|
||||
<string key="-2.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="1.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="10.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="11.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="13.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="23.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="24.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="25.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="27.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="28.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="29.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="36.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="37.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="38.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="39.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="4.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="44.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="45.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="47.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="48.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="5.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
|
||||
<nil key="activeLocalization"/>
|
||||
<dictionary class="NSMutableDictionary" key="localizations"/>
|
||||
<nil key="sourceID"/>
|
||||
<int key="maxID">51</int>
|
||||
</object>
|
||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">infoViewController</string>
|
||||
<string key="superclassName">UIVIEWCONTROLLERROOT</string>
|
||||
<dictionary class="NSMutableDictionary" key="actions">
|
||||
<string key="doneButton:">id</string>
|
||||
<string key="emailButton:">id</string>
|
||||
<string key="parametersButton:">id</string>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" key="actionInfosByName">
|
||||
<object class="IBActionInfo" key="doneButton:">
|
||||
<string key="name">doneButton:</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
<object class="IBActionInfo" key="emailButton:">
|
||||
<string key="name">emailButton:</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
<object class="IBActionInfo" key="parametersButton:">
|
||||
<string key="name">parametersButton:</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" key="outlets">
|
||||
<string key="landscapeView">UIView</string>
|
||||
<string key="portraitView">UIView</string>
|
||||
<string key="versionUI">UILabel</string>
|
||||
<string key="versionUILandscape">UILabel</string>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" key="toOneOutletInfosByName">
|
||||
<object class="IBToOneOutletInfo" key="landscapeView">
|
||||
<string key="name">landscapeView</string>
|
||||
<string key="candidateClassName">UIView</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="portraitView">
|
||||
<string key="name">portraitView</string>
|
||||
<string key="candidateClassName">UIView</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="versionUI">
|
||||
<string key="name">versionUI</string>
|
||||
<string key="candidateClassName">UILabel</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="versionUILandscape">
|
||||
<string key="name">versionUILandscape</string>
|
||||
<string key="candidateClassName">UILabel</string>
|
||||
</object>
|
||||
</dictionary>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBProjectSource</string>
|
||||
<string key="minorKey">../../Common.iphone/infoViewController.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">infoViewController</string>
|
||||
<dictionary class="NSMutableDictionary" key="actions">
|
||||
<string key="doneButton:">id</string>
|
||||
<string key="emailButton:">id</string>
|
||||
<string key="parametersButton:">id</string>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" key="actionInfosByName">
|
||||
<object class="IBActionInfo" key="doneButton:">
|
||||
<string key="name">doneButton:</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
<object class="IBActionInfo" key="emailButton:">
|
||||
<string key="name">emailButton:</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
<object class="IBActionInfo" key="parametersButton:">
|
||||
<string key="name">parametersButton:</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
</dictionary>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBProjectSource</string>
|
||||
<string key="minorKey">../../Common.iphone/infoViewController.mm</string>
|
||||
</object>
|
||||
</object>
|
||||
</array>
|
||||
<array class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIButton</string>
|
||||
<string key="superclassName">UIControl</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UIButton.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIControl</string>
|
||||
<string key="superclassName">UIView</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UIControl.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIGestureRecognizer</string>
|
||||
<string key="superclassName">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UIGestureRecognizer.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIImageView</string>
|
||||
<string key="superclassName">UIView</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UIImageView.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UILabel</string>
|
||||
<string key="superclassName">UIView</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UILabel.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIResponder</string>
|
||||
<string key="superclassName">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UIResponder.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIView</string>
|
||||
<string key="superclassName">UIResponder</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UIView.h</string>
|
||||
</object>
|
||||
</object>
|
||||
</array>
|
||||
</object>
|
||||
<int key="IBDocument.localizationMode">0</int>
|
||||
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<bool key="IBDocument.previouslyAttemptedUpgradeToXcode5">NO</bool>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
|
||||
<integer value="4600" key="NS.object.0"/>
|
||||
</object>
|
||||
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
|
||||
<int key="IBDocument.defaultPropertyAccessControl">3</int>
|
||||
<dictionary class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
|
||||
<string key="ActiveGS.png">{80, 80}</string>
|
||||
<string key="facebook-logo.png">{128, 128}</string>
|
||||
</dictionary>
|
||||
</data>
|
||||
</archive>
|
17
ActiveGS_iOS/main.mm
Normal file
@ -0,0 +1,17 @@
|
||||
/*
|
||||
ActiveGS, Copyright 2004-2016 Olivier Goguel, https://github.com/ogoguel/ActiveGS
|
||||
Based on Kegs, Copyright 2004 Kent Dickey, https://kegs.sourceforge.net
|
||||
This code is covered by the GNU GPL licence
|
||||
*/
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import "activegsAppDelegate.h"
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
|
||||
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
|
||||
// int retVal = UIApplicationMain(argc, argv, nil, nil);
|
||||
int retVal = UIApplicationMain(argc, argv, nil, NSStringFromClass([activegsAppDelegate class]));
|
||||
[pool release];
|
||||
return retVal;
|
||||
}
|
893
ActiveGS_iOS/mainViewController.xib
Normal file
@ -0,0 +1,893 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
|
||||
<data>
|
||||
<int key="IBDocument.SystemTarget">1056</int>
|
||||
<string key="IBDocument.SystemVersion">10F569</string>
|
||||
<string key="IBDocument.InterfaceBuilderVersion">823</string>
|
||||
<string key="IBDocument.AppKitVersion">1038.29</string>
|
||||
<string key="IBDocument.HIToolboxVersion">461.00</string>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="NS.object.0">132</string>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
</object>
|
||||
<object class="NSArray" key="IBDocument.PluginDependencies">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="IBDocument.Metadata">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="NSArray" key="dict.sortedKeys" id="0">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBProxyObject" id="372490531">
|
||||
<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBProxyObject" id="975951072">
|
||||
<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBUIView" id="191373211">
|
||||
<nil key="NSNextResponder"/>
|
||||
<int key="NSvFlags">274</int>
|
||||
<object class="NSMutableArray" key="NSSubviews">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBUIImageView" id="208073000">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">293</int>
|
||||
<string key="NSFrame">{{120, 59}, {80, 77}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">4</int>
|
||||
<bool key="IBUIMultipleTouchEnabled">YES</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<object class="NSCustomResource" key="IBUIImage" id="629254366">
|
||||
<string key="NSClassName">NSImage</string>
|
||||
<string key="NSResourceName">ActiveGS.png</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBUIButton" id="994056094">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">269</int>
|
||||
<string key="NSFrame">{{112, 392}, {96, 37}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<int key="IBUIContentHorizontalAlignment">0</int>
|
||||
<int key="IBUIContentVerticalAlignment">0</int>
|
||||
<object class="NSFont" key="IBUIFont" id="400967680">
|
||||
<string key="NSName">Helvetica-Bold</string>
|
||||
<double key="NSSize">15</double>
|
||||
<int key="NSfFlags">16</int>
|
||||
</object>
|
||||
<int key="IBUIButtonType">1</int>
|
||||
<string key="IBUINormalTitle">I'm Happy</string>
|
||||
<object class="NSColor" key="IBUIHighlightedTitleColor" id="681515851">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MQA</bytes>
|
||||
</object>
|
||||
<object class="NSColor" key="IBUINormalTitleColor">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
|
||||
</object>
|
||||
<object class="NSColor" key="IBUINormalTitleShadowColor" id="757478349">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MC41AA</bytes>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBUILabel" id="411852784">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">293</int>
|
||||
<string key="NSFrame">{{0, 20}, {320, 43}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">7</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">ActiveGS</string>
|
||||
<object class="NSFont" key="IBUIFont" id="583743090">
|
||||
<string key="NSName">Helvetica-Bold</string>
|
||||
<double key="NSSize">36</double>
|
||||
<int key="NSfFlags">16</int>
|
||||
</object>
|
||||
<object class="NSColor" key="IBUITextColor" id="424898793">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MCAwIDAAA</bytes>
|
||||
</object>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<reference key="IBUIShadowColor" ref="681515851"/>
|
||||
<string key="IBUIShadowOffset">{2, 2}</string>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
<int key="IBUITextAlignment">1</int>
|
||||
</object>
|
||||
<object class="IBUILabel" id="272079427">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">293</int>
|
||||
<string key="NSFrame">{{46, 139}, {228, 25}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">7</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">(version)</string>
|
||||
<reference key="IBUITextColor" ref="424898793"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
<int key="IBUITextAlignment">1</int>
|
||||
</object>
|
||||
<object class="IBUILabel" id="850712689">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">269</int>
|
||||
<string key="NSFrame">{{88, 425}, {150, 30}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">7</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">Please, send feedback to</string>
|
||||
<object class="NSFont" key="IBUIFont" id="624365055">
|
||||
<string key="NSName">Helvetica</string>
|
||||
<double key="NSSize">12</double>
|
||||
<int key="NSfFlags">16</int>
|
||||
</object>
|
||||
<reference key="IBUITextColor" ref="424898793"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
<int key="IBUINumberOfLines">3</int>
|
||||
<int key="IBUITextAlignment">1</int>
|
||||
</object>
|
||||
<object class="IBUIButton" id="551522634">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">269</int>
|
||||
<string key="NSFrame">{{73, 452}, {180, 18}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<reference key="IBUIBackgroundColor" ref="681515851"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<int key="IBUIContentHorizontalAlignment">0</int>
|
||||
<int key="IBUIContentVerticalAlignment">0</int>
|
||||
<object class="NSFont" key="IBUIFont" id="1003266931">
|
||||
<string key="NSName">Helvetica-Oblique</string>
|
||||
<double key="NSSize">10</double>
|
||||
<int key="NSfFlags">16</int>
|
||||
</object>
|
||||
<int key="IBUIButtonType">1</int>
|
||||
<string key="IBUINormalTitle">activegs@freetoolsassociation.com</string>
|
||||
<reference key="IBUIHighlightedTitleColor" ref="681515851"/>
|
||||
<object class="NSColor" key="IBUINormalTitleColor">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MC4xOTYwNzg0MzE0IDAuMzA5ODAzOTIxNiAwLjUyMTU2ODYyNzUAA</bytes>
|
||||
</object>
|
||||
<reference key="IBUINormalTitleShadowColor" ref="757478349"/>
|
||||
</object>
|
||||
<object class="IBUILabel" id="465416657">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">317</int>
|
||||
<string key="NSFrame">{{23, 208}, {280, 134}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">7</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string type="base64-UTF8" key="IBUIText">c3dpcGUgZG93biBmb3IgcnVuLXRpbWUgbWVudQpzd2lwZSB1cCBmb3Iga2V5Ym9hcmQKc3dpcGUgdXAg
|
||||
Zm9yIGpveXBhZCAod2hpbGUga2V5Ym9hcmQgaXMgc2hvd24pCmRvdWJsZSB0YXAgZm9yIG1vdXNlIGNs
|
||||
aWNrCnRyaXBsZSB0YXAgZm9yIG1vdXNlIGRvdWJsZS1jbGljawpzd2lwZSBsZWZ0L3JpZ2h0IG9uIHRv
|
||||
cCBzY3JlZW4gZm9yIHNob3J0Y3V0IHRvIGJyb3dzZQo</string>
|
||||
<reference key="IBUIFont" ref="624365055"/>
|
||||
<reference key="IBUITextColor" ref="424898793"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<string key="IBUIShadowOffset">{0, 0}</string>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">4</float>
|
||||
<int key="IBUINumberOfLines">0</int>
|
||||
<int key="IBUITextAlignment">1</int>
|
||||
<int key="IBUILineBreakMode">2</int>
|
||||
</object>
|
||||
<object class="IBUILabel" id="467084606">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">317</int>
|
||||
<string key="NSFrame">{{79, 203}, {162, 17}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">7</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">Commands:</string>
|
||||
<object class="NSFont" key="IBUIFont" id="110190536">
|
||||
<string key="NSName">Helvetica-Bold</string>
|
||||
<double key="NSSize">17</double>
|
||||
<int key="NSfFlags">16</int>
|
||||
</object>
|
||||
<reference key="IBUITextColor" ref="424898793"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
<int key="IBUINumberOfLines">3</int>
|
||||
<int key="IBUITextAlignment">1</int>
|
||||
</object>
|
||||
</object>
|
||||
<string key="NSFrameSize">{320, 480}</string>
|
||||
<object class="NSColor" key="IBUIBackgroundColor">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MQA</bytes>
|
||||
<object class="NSColorSpace" key="NSCustomColorSpace" id="797851977">
|
||||
<int key="NSID">2</int>
|
||||
</object>
|
||||
</object>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBUIView" id="199126390">
|
||||
<reference key="NSNextResponder"/>
|
||||
<int key="NSvFlags">274</int>
|
||||
<object class="NSMutableArray" key="NSSubviews">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBUIImageView" id="910411407">
|
||||
<reference key="NSNextResponder" ref="199126390"/>
|
||||
<int key="NSvFlags">293</int>
|
||||
<string key="NSFrame">{{120, 20}, {80, 77}}</string>
|
||||
<reference key="NSSuperview" ref="199126390"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">4</int>
|
||||
<bool key="IBUIMultipleTouchEnabled">YES</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<reference key="IBUIImage" ref="629254366"/>
|
||||
</object>
|
||||
<object class="IBUIButton" id="19372993">
|
||||
<reference key="NSNextResponder" ref="199126390"/>
|
||||
<int key="NSvFlags">265</int>
|
||||
<string key="NSFrame">{{364, 263}, {96, 37}}</string>
|
||||
<reference key="NSSuperview" ref="199126390"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<int key="IBUIContentHorizontalAlignment">0</int>
|
||||
<int key="IBUIContentVerticalAlignment">0</int>
|
||||
<reference key="IBUIFont" ref="400967680"/>
|
||||
<int key="IBUIButtonType">1</int>
|
||||
<string key="IBUINormalTitle">I'm Happy</string>
|
||||
<reference key="IBUIHighlightedTitleColor" ref="681515851"/>
|
||||
<object class="NSColor" key="IBUINormalTitleColor">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
|
||||
</object>
|
||||
<reference key="IBUINormalTitleShadowColor" ref="757478349"/>
|
||||
</object>
|
||||
<object class="IBUILabel" id="991466487">
|
||||
<reference key="NSNextResponder" ref="199126390"/>
|
||||
<int key="NSvFlags">293</int>
|
||||
<string key="NSFrame">{{208, 52}, {265, 38}}</string>
|
||||
<reference key="NSSuperview" ref="199126390"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">7</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">ActiveGS</string>
|
||||
<reference key="IBUIFont" ref="583743090"/>
|
||||
<reference key="IBUITextColor" ref="424898793"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<reference key="IBUIShadowColor" ref="681515851"/>
|
||||
<string key="IBUIShadowOffset">{2, 2}</string>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
</object>
|
||||
<object class="IBUILabel" id="281938637">
|
||||
<reference key="NSNextResponder" ref="199126390"/>
|
||||
<int key="NSvFlags">293</int>
|
||||
<string key="NSFrame">{{126, 93}, {228, 25}}</string>
|
||||
<reference key="NSSuperview" ref="199126390"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">7</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">(version)</string>
|
||||
<reference key="IBUITextColor" ref="424898793"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
<int key="IBUITextAlignment">1</int>
|
||||
</object>
|
||||
<object class="IBUILabel" id="649273201">
|
||||
<reference key="NSNextResponder" ref="199126390"/>
|
||||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{35, 255}, {150, 30}}</string>
|
||||
<reference key="NSSuperview" ref="199126390"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">7</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">Please, send feedback to</string>
|
||||
<reference key="IBUIFont" ref="624365055"/>
|
||||
<reference key="IBUITextColor" ref="424898793"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
<int key="IBUINumberOfLines">3</int>
|
||||
<int key="IBUITextAlignment">1</int>
|
||||
</object>
|
||||
<object class="IBUIButton" id="199310403">
|
||||
<reference key="NSNextResponder" ref="199126390"/>
|
||||
<int key="NSvFlags">268</int>
|
||||
<string key="NSFrame">{{20, 282}, {180, 18}}</string>
|
||||
<reference key="NSSuperview" ref="199126390"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="IBUIBackgroundColor" ref="681515851"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<int key="IBUIContentHorizontalAlignment">0</int>
|
||||
<int key="IBUIContentVerticalAlignment">0</int>
|
||||
<reference key="IBUIFont" ref="1003266931"/>
|
||||
<int key="IBUIButtonType">1</int>
|
||||
<string key="IBUINormalTitle">activegs@freetoolsassociation.com</string>
|
||||
<reference key="IBUIHighlightedTitleColor" ref="681515851"/>
|
||||
<object class="NSColor" key="IBUINormalTitleColor">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MC4xOTYwNzg0MzE0IDAuMzA5ODAzOTIxNiAwLjUyMTU2ODYyNzUAA</bytes>
|
||||
</object>
|
||||
<reference key="IBUINormalTitleShadowColor" ref="757478349"/>
|
||||
</object>
|
||||
<object class="IBUILabel" id="609857989">
|
||||
<reference key="NSNextResponder" ref="199126390"/>
|
||||
<int key="NSvFlags">317</int>
|
||||
<string key="NSFrame">{{100, 131}, {280, 134}}</string>
|
||||
<reference key="NSSuperview" ref="199126390"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">7</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string type="base64-UTF8" key="IBUIText">c3dpcGUgZG93biBmb3IgcnVuLXRpbWUgbWVudQpzd2lwZSB1cCBmb3Iga2V5Ym9hcmQKc3dpcGUgdXAg
|
||||
Zm9yIGpveXBhZCAod2hpbGUga2V5Ym9hcmQgaXMgc2hvd24pCmRvdWJsZSB0YXAgZm9yIG1vdXNlIGNs
|
||||
aWNrCnRyaXBsZSB0YXAgZm9yIG1vdXNlIGRvdWJsZS1jbGljawpzd2lwZSBsZWZ0L3JpZ2h0IG9uIHRv
|
||||
cCBzY3JlZW4gZm9yIHNob3J0Y3V0IHRvIGJyb3dzZQo</string>
|
||||
<reference key="IBUIFont" ref="624365055"/>
|
||||
<reference key="IBUITextColor" ref="424898793"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<string key="IBUIShadowOffset">{0, 0}</string>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">4</float>
|
||||
<int key="IBUINumberOfLines">0</int>
|
||||
<int key="IBUITextAlignment">1</int>
|
||||
<int key="IBUILineBreakMode">2</int>
|
||||
</object>
|
||||
<object class="IBUILabel" id="809359447">
|
||||
<reference key="NSNextResponder" ref="199126390"/>
|
||||
<int key="NSvFlags">317</int>
|
||||
<string key="NSFrame">{{159, 131}, {162, 17}}</string>
|
||||
<reference key="NSSuperview" ref="199126390"/>
|
||||
<reference key="NSWindow"/>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<int key="IBUIContentMode">7</int>
|
||||
<bool key="IBUIUserInteractionEnabled">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIText">Commands:</string>
|
||||
<reference key="IBUIFont" ref="110190536"/>
|
||||
<reference key="IBUITextColor" ref="424898793"/>
|
||||
<nil key="IBUIHighlightedColor"/>
|
||||
<int key="IBUIBaselineAdjustment">1</int>
|
||||
<float key="IBUIMinimumFontSize">10</float>
|
||||
<int key="IBUINumberOfLines">3</int>
|
||||
<int key="IBUITextAlignment">1</int>
|
||||
</object>
|
||||
</object>
|
||||
<string key="NSFrameSize">{480, 320}</string>
|
||||
<reference key="NSSuperview"/>
|
||||
<reference key="NSWindow"/>
|
||||
<object class="NSColor" key="IBUIBackgroundColor">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MQA</bytes>
|
||||
<reference key="NSCustomColorSpace" ref="797851977"/>
|
||||
</object>
|
||||
<object class="IBUISimulatedOrientationMetrics" key="IBUISimulatedOrientationMetrics">
|
||||
<int key="interfaceOrientation">3</int>
|
||||
</object>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBObjectContainer" key="IBDocument.Objects">
|
||||
<object class="NSMutableArray" key="connectionRecords">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">view</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="191373211"/>
|
||||
</object>
|
||||
<int key="connectionID">3</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchEventConnection" key="connection">
|
||||
<string key="label">doneButton:</string>
|
||||
<reference key="source" ref="994056094"/>
|
||||
<reference key="destination" ref="975951072"/>
|
||||
<int key="IBEventType">7</int>
|
||||
</object>
|
||||
<int key="connectionID">9</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">versionUI</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="272079427"/>
|
||||
</object>
|
||||
<int key="connectionID">12</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchEventConnection" key="connection">
|
||||
<string key="label">emailButton:</string>
|
||||
<reference key="source" ref="551522634"/>
|
||||
<reference key="destination" ref="975951072"/>
|
||||
<int key="IBEventType">7</int>
|
||||
</object>
|
||||
<int key="connectionID">22</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchEventConnection" key="connection">
|
||||
<string key="label">doneButton:</string>
|
||||
<reference key="source" ref="19372993"/>
|
||||
<reference key="destination" ref="975951072"/>
|
||||
<int key="IBEventType">7</int>
|
||||
</object>
|
||||
<int key="connectionID">31</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchEventConnection" key="connection">
|
||||
<string key="label">emailButton:</string>
|
||||
<reference key="source" ref="199310403"/>
|
||||
<reference key="destination" ref="975951072"/>
|
||||
<int key="IBEventType">7</int>
|
||||
</object>
|
||||
<int key="connectionID">32</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">landscapeView</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="199126390"/>
|
||||
</object>
|
||||
<int key="connectionID">33</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">portraitView</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="191373211"/>
|
||||
</object>
|
||||
<int key="connectionID">34</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">versionUILandscape</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="281938637"/>
|
||||
</object>
|
||||
<int key="connectionID">35</int>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBMutableOrderedSet" key="objectRecords">
|
||||
<object class="NSArray" key="orderedObjects">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">0</int>
|
||||
<reference key="object" ref="0"/>
|
||||
<reference key="children" ref="1000"/>
|
||||
<nil key="parent"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">1</int>
|
||||
<reference key="object" ref="191373211"/>
|
||||
<object class="NSMutableArray" key="children">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<reference ref="551522634"/>
|
||||
<reference ref="850712689"/>
|
||||
<reference ref="411852784"/>
|
||||
<reference ref="994056094"/>
|
||||
<reference ref="272079427"/>
|
||||
<reference ref="208073000"/>
|
||||
<reference ref="465416657"/>
|
||||
<reference ref="467084606"/>
|
||||
</object>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">-1</int>
|
||||
<reference key="object" ref="372490531"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
<string key="objectName">File's Owner</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">-2</int>
|
||||
<reference key="object" ref="975951072"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">4</int>
|
||||
<reference key="object" ref="208073000"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">5</int>
|
||||
<reference key="object" ref="994056094"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">10</int>
|
||||
<reference key="object" ref="411852784"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">11</int>
|
||||
<reference key="object" ref="272079427"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">13</int>
|
||||
<reference key="object" ref="850712689"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">21</int>
|
||||
<reference key="object" ref="551522634"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">23</int>
|
||||
<reference key="object" ref="199126390"/>
|
||||
<object class="NSMutableArray" key="children">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<reference ref="19372993"/>
|
||||
<reference ref="199310403"/>
|
||||
<reference ref="649273201"/>
|
||||
<reference ref="910411407"/>
|
||||
<reference ref="281938637"/>
|
||||
<reference ref="991466487"/>
|
||||
<reference ref="609857989"/>
|
||||
<reference ref="809359447"/>
|
||||
</object>
|
||||
<reference key="parent" ref="0"/>
|
||||
<string key="objectName">ViewLandscape</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">24</int>
|
||||
<reference key="object" ref="281938637"/>
|
||||
<reference key="parent" ref="199126390"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">25</int>
|
||||
<reference key="object" ref="19372993"/>
|
||||
<reference key="parent" ref="199126390"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">27</int>
|
||||
<reference key="object" ref="991466487"/>
|
||||
<reference key="parent" ref="199126390"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">28</int>
|
||||
<reference key="object" ref="649273201"/>
|
||||
<reference key="parent" ref="199126390"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">29</int>
|
||||
<reference key="object" ref="910411407"/>
|
||||
<reference key="parent" ref="199126390"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">30</int>
|
||||
<reference key="object" ref="199310403"/>
|
||||
<reference key="parent" ref="199126390"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">36</int>
|
||||
<reference key="object" ref="609857989"/>
|
||||
<reference key="parent" ref="199126390"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">37</int>
|
||||
<reference key="object" ref="465416657"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">38</int>
|
||||
<reference key="object" ref="467084606"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">39</int>
|
||||
<reference key="object" ref="809359447"/>
|
||||
<reference key="parent" ref="199126390"/>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="flattenedProperties">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="NSArray" key="dict.sortedKeys">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>-1.CustomClassName</string>
|
||||
<string>-2.CustomClassName</string>
|
||||
<string>1.IBEditorWindowLastContentRect</string>
|
||||
<string>1.IBPluginDependency</string>
|
||||
<string>1.IBViewBoundsToFrameTransform</string>
|
||||
<string>10.IBPluginDependency</string>
|
||||
<string>11.IBPluginDependency</string>
|
||||
<string>11.IBViewBoundsToFrameTransform</string>
|
||||
<string>13.IBPluginDependency</string>
|
||||
<string>21.IBPluginDependency</string>
|
||||
<string>23.IBEditorWindowLastContentRect</string>
|
||||
<string>23.IBPluginDependency</string>
|
||||
<string>23.IBViewBoundsToFrameTransform</string>
|
||||
<string>24.IBPluginDependency</string>
|
||||
<string>24.IBViewBoundsToFrameTransform</string>
|
||||
<string>25.IBPluginDependency</string>
|
||||
<string>25.IBViewBoundsToFrameTransform</string>
|
||||
<string>27.IBPluginDependency</string>
|
||||
<string>27.IBViewBoundsToFrameTransform</string>
|
||||
<string>28.IBPluginDependency</string>
|
||||
<string>28.IBViewBoundsToFrameTransform</string>
|
||||
<string>29.IBViewBoundsToFrameTransform</string>
|
||||
<string>30.IBPluginDependency</string>
|
||||
<string>30.IBViewBoundsToFrameTransform</string>
|
||||
<string>36.IBPluginDependency</string>
|
||||
<string>36.IBViewBoundsToFrameTransform</string>
|
||||
<string>37.IBPluginDependency</string>
|
||||
<string>37.IBViewBoundsToFrameTransform</string>
|
||||
<string>38.IBPluginDependency</string>
|
||||
<string>38.IBViewBoundsToFrameTransform</string>
|
||||
<string>39.IBPluginDependency</string>
|
||||
<string>39.IBViewBoundsToFrameTransform</string>
|
||||
<string>4.IBViewBoundsToFrameTransform</string>
|
||||
<string>5.IBPluginDependency</string>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>infoViewController</string>
|
||||
<string>UIResponder</string>
|
||||
<string>{{403, 267}, {320, 480}}</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<object class="NSAffineTransform">
|
||||
<bytes key="NSTransformStruct">P4AAAL+AAAAAAAAAw+8AAA</bytes>
|
||||
</object>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<object class="NSAffineTransform">
|
||||
<bytes key="NSTransformStruct">P4AAAL+AAABCOAAAww4AAA</bytes>
|
||||
</object>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>{{549, 358}, {480, 320}}</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<object class="NSAffineTransform">
|
||||
<bytes key="NSTransformStruct">P4AAAL+AAAAAAAAAw+8AAA</bytes>
|
||||
</object>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<object class="NSAffineTransform">
|
||||
<bytes key="NSTransformStruct">P4AAAL+AAABC/AAAwtQAAA</bytes>
|
||||
</object>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<object class="NSAffineTransform">
|
||||
<bytes key="NSTransformStruct">P4AAAL+AAABDuYAAw5UAAA</bytes>
|
||||
</object>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<object class="NSAffineTransform">
|
||||
<bytes key="NSTransformStruct">P4AAAL+AAABDHgAAwrAAAA</bytes>
|
||||
</object>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<object class="NSAffineTransform">
|
||||
<bytes key="NSTransformStruct">P4AAAL+AAABCDAAAw42AAA</bytes>
|
||||
</object>
|
||||
<object class="NSAffineTransform">
|
||||
<bytes key="NSTransformStruct">P4AAAL+AAABDSAAAwpYAAA</bytes>
|
||||
</object>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<object class="NSAffineTransform">
|
||||
<bytes key="NSTransformStruct">P4AAAL+AAABDHAAAw5oAAA</bytes>
|
||||
</object>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<object class="NSAffineTransform">
|
||||
<bytes key="NSTransformStruct">P4AAAL+AAADCaAAAwykAAA</bytes>
|
||||
</object>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<object class="NSAffineTransform">
|
||||
<bytes key="NSTransformStruct">P4AAAL+AAADClgAAw3AAAA</bytes>
|
||||
</object>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<object class="NSAffineTransform">
|
||||
<bytes key="NSTransformStruct">P4AAAL+AAADBwAAAwwQAAA</bytes>
|
||||
</object>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<object class="NSAffineTransform">
|
||||
<bytes key="NSTransformStruct">P4AAAL+AAADCGAAAwrgAAA</bytes>
|
||||
</object>
|
||||
<object class="NSAffineTransform">
|
||||
<bytes key="NSTransformStruct">P4AAAL+AAABC8AAAwvAAAA</bytes>
|
||||
</object>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="unlocalizedProperties">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<reference key="dict.sortedKeys" ref="0"/>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
</object>
|
||||
</object>
|
||||
<nil key="activeLocalization"/>
|
||||
<object class="NSMutableDictionary" key="localizations">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<reference key="dict.sortedKeys" ref="0"/>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
</object>
|
||||
</object>
|
||||
<nil key="sourceID"/>
|
||||
<int key="maxID">39</int>
|
||||
</object>
|
||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIView</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBProjectSource</string>
|
||||
<string key="minorKey">../Common.iphone/GTMUIView+SubtreeDescription.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">infoViewController</string>
|
||||
<string key="superclassName">UIViewController</string>
|
||||
<object class="NSMutableDictionary" key="actions">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="NSArray" key="dict.sortedKeys">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>doneButton:</string>
|
||||
<string>emailButton:</string>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>id</string>
|
||||
<string>id</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="actionInfosByName">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="NSArray" key="dict.sortedKeys">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>doneButton:</string>
|
||||
<string>emailButton:</string>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBActionInfo">
|
||||
<string key="name">doneButton:</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
<object class="IBActionInfo">
|
||||
<string key="name">emailButton:</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="outlets">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="NSArray" key="dict.sortedKeys">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>landscapeView</string>
|
||||
<string>portraitView</string>
|
||||
<string>versionUI</string>
|
||||
<string>versionUILandscape</string>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>UIView</string>
|
||||
<string>UIView</string>
|
||||
<string>UILabel</string>
|
||||
<string>UILabel</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="toOneOutletInfosByName">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="NSArray" key="dict.sortedKeys">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>landscapeView</string>
|
||||
<string>portraitView</string>
|
||||
<string>versionUI</string>
|
||||
<string>versionUILandscape</string>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBToOneOutletInfo">
|
||||
<string key="name">landscapeView</string>
|
||||
<string key="candidateClassName">UIView</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo">
|
||||
<string key="name">portraitView</string>
|
||||
<string key="candidateClassName">UIView</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo">
|
||||
<string key="name">versionUI</string>
|
||||
<string key="candidateClassName">UILabel</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo">
|
||||
<string key="name">versionUILandscape</string>
|
||||
<string key="candidateClassName">UILabel</string>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBProjectSource</string>
|
||||
<string key="minorKey">../Common.iphone/infoViewController.h</string>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">QuartzCore.framework/Headers/CAAnimation.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">QuartzCore.framework/Headers/CALayer.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">QuartzCore.framework/Headers/CIImageProvider.h</string>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<int key="IBDocument.localizationMode">0</int>
|
||||
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
|
||||
<integer value="1056" key="NS.object.0"/>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
|
||||
<integer value="3100" key="NS.object.0"/>
|
||||
</object>
|
||||
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
|
||||
<string key="IBDocument.LastKnownRelativeProjectPath">activegs.xcodeproj</string>
|
||||
<int key="IBDocument.defaultPropertyAccessControl">3</int>
|
||||
<object class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
|
||||
<string key="NS.key.0">ActiveGS.png</string>
|
||||
<string key="NS.object.0">{80, 80}</string>
|
||||
</object>
|
||||
<string key="IBCocoaTouchPluginVersion">132</string>
|
||||
</data>
|
||||
</archive>
|
61
Common.iphone/ActiveGSZoomEmulatorView.h
Normal file
@ -0,0 +1,61 @@
|
||||
/*
|
||||
ActiveGS, Copyright 2004-2016 Olivier Goguel, https://github.com/ogoguel/ActiveGS
|
||||
Based on Kegs, Copyright 2004 Kent Dickey, https://kegs.sourceforge.net
|
||||
This code is covered by the GNU GPL licence
|
||||
*/
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import "emulatorView.h"
|
||||
|
||||
struct orientationVar
|
||||
{
|
||||
float scale;
|
||||
CGPoint p;
|
||||
} ;
|
||||
|
||||
typedef struct orientationVar orientationVar;
|
||||
|
||||
@interface zoomEmulatorView : UIScrollView<UIScrollViewDelegate>
|
||||
{
|
||||
|
||||
float dpiRatio;
|
||||
CGSize viewSize;
|
||||
|
||||
CGPoint initialPoint;
|
||||
double initialTimer;
|
||||
int mouseDown;
|
||||
int zoomDisabled;
|
||||
orientationVar orientationVars[4];
|
||||
|
||||
float kbdScale;
|
||||
|
||||
UIPanGestureRecognizer* panGR;
|
||||
UIPinchGestureRecognizer* pinchGR;
|
||||
CGPoint lastMousePos;
|
||||
BOOL allowInput;
|
||||
BOOL startNewPhase;
|
||||
@public
|
||||
UIImageView* _crt ;
|
||||
emulatorView * _ew ;
|
||||
UITouch* _useTouch;
|
||||
UITouch* _secondTouch;
|
||||
int curOrientation;
|
||||
}
|
||||
@property (retain,nonatomic) emulatorView* ew ;
|
||||
@property (retain,nonatomic) UIImageView* crt ;
|
||||
@property (retain,nonatomic) UITouch* useTouch ;
|
||||
@property (retain,nonatomic) UITouch* secondTouch ;
|
||||
|
||||
-(void)updateFrame:(CGRect)frame kbdRect:(CGRect)kbdRect;
|
||||
-(void)updateScreen:(CGRect)frame ratio:(float)ratio;
|
||||
- (void)switchOrientation:(int)orientation;
|
||||
-(void)disableZoom;
|
||||
-(void)enableZoom;
|
||||
-(void)enableInput;
|
||||
-(void)disableInput;
|
||||
-(void)mouseUp;
|
||||
-(void)mouseDown;
|
||||
-(void)setRatioToOne;
|
||||
-(CGPoint)rotateTouch:(UITouch*) _touch;
|
||||
- (id)initWithFrame:(CGRect)frame ratio:(float)ratio;
|
||||
@end
|
870
Common.iphone/ActiveGSZoomEmulatorView.mm
Normal file
@ -0,0 +1,870 @@
|
||||
/*
|
||||
ActiveGS, Copyright 2004-2016 Olivier Goguel, https://github.com/ogoguel/ActiveGS
|
||||
Based on Kegs, Copyright 2004 Kent Dickey, https://kegs.sourceforge.net
|
||||
This code is covered by the GNU GPL licence
|
||||
*/
|
||||
|
||||
#include "../Src/defc.h"
|
||||
#include "../Src/sim65816.h"
|
||||
#include "../Src/adb.h"
|
||||
#import "zoomEmulatorView.h"
|
||||
/*
|
||||
#import "../../common.iphone/activegsAppDelegate.h"
|
||||
#endif
|
||||
*/
|
||||
|
||||
|
||||
|
||||
#if defined(VIDEO_DOUBLEVLINE)
|
||||
# define HEIGHT_MULTIPLY 1
|
||||
#else
|
||||
# define HEIGHT_MULTIPLY 2
|
||||
#endif
|
||||
|
||||
#undef debug_printf
|
||||
#define debug_printf(...)
|
||||
//#define debug_printf printf
|
||||
//#define SHOW_COLOR
|
||||
|
||||
@implementation zoomEmulatorView
|
||||
@synthesize ew = _ew;
|
||||
@synthesize crt = _crt;
|
||||
@synthesize useTouch = _useTouch;
|
||||
@synthesize secondTouch = _secondTouch;
|
||||
|
||||
- (id)initWithFrame:(CGRect)frame ratio:(float)ratio
|
||||
{
|
||||
|
||||
if (self = [super initWithFrame:frame])
|
||||
{
|
||||
|
||||
self->dpiRatio = ratio;
|
||||
self->viewSize = frame.size;
|
||||
|
||||
debug_printf("ratio:%f width:%f height:%f",self->dpiRatio,self->viewSize.width,self->viewSize.height);
|
||||
|
||||
CGRect r = CGRectMake(0.0,0.0,X_A2_WINDOW_WIDTH/self->dpiRatio ,X_A2_WINDOW_HEIGHT/self->dpiRatio );
|
||||
|
||||
self.contentSize = CGSizeMake(r.size.width,r.size.height);
|
||||
|
||||
self.ew = [[[emulatorView alloc] initWithFrame:r] autorelease];
|
||||
[self.ew setUserInteractionEnabled:TRUE];
|
||||
|
||||
CGColorSpaceRef innerColorSpace = CGColorSpaceCreateDeviceRGB();
|
||||
CGContextRef icontext = CGBitmapContextCreate(nil, X_A2_WINDOW_WIDTH,X_A2_WINDOW_HEIGHT*2, 8, X_A2_WINDOW_WIDTH*4,innerColorSpace,kCGImageAlphaPremultipliedLast);
|
||||
|
||||
CGContextSetRGBFillColor(icontext,0,0,0,0.0); // transparent
|
||||
CGContextFillRect(icontext,CGRectMake(0,0,X_A2_WINDOW_WIDTH,X_A2_WINDOW_HEIGHT*2));
|
||||
for(int h=0;h<X_A2_WINDOW_HEIGHT;h++)
|
||||
{
|
||||
CGRect rr = CGRectMake(0,h*2,X_A2_WINDOW_WIDTH,1);
|
||||
CGContextSetRGBFillColor(icontext,0,0,0,0.5); // transparent
|
||||
CGContextFillRect(icontext,rr);
|
||||
}
|
||||
CGImageRef innerImageRef = CGBitmapContextCreateImage(icontext);
|
||||
UIImage* img = [UIImage imageWithCGImage:innerImageRef];
|
||||
self.crt = [[[UIImageView alloc]initWithImage:img] autorelease];
|
||||
self.crt.transform = CGAffineTransformMakeScale(1,0.5);
|
||||
[self.crt setFrame:CGRectMake(0,0,r.size.width,r.size.height)];
|
||||
[self.crt setBounds:CGRectMake(0,0,r.size.width,r.size.height*2)];
|
||||
|
||||
self.crt.hidden = (r_sim65816.get_video_fx()==VIDEOFX_CRT?0:1);
|
||||
|
||||
[self.ew addSubview:self.crt];
|
||||
CFRelease(icontext);
|
||||
CFRelease(innerImageRef);
|
||||
|
||||
self.maximumZoomScale = 3.0;
|
||||
self.minimumZoomScale = 0.25;
|
||||
|
||||
self.delegate = self;
|
||||
|
||||
self.scrollEnabled = FALSE;
|
||||
|
||||
self.canCancelContentTouches = NO; // interdiction d'annuler une fois que la vue a commencé a récupéré les infs
|
||||
|
||||
// Recherche les Gestures
|
||||
for (UIGestureRecognizer *gestureRecognizer in self.gestureRecognizers) {
|
||||
if ([gestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]])
|
||||
panGR = (UIPanGestureRecognizer *) gestureRecognizer;
|
||||
else
|
||||
if ([gestureRecognizer isKindOfClass:[UIPinchGestureRecognizer class]])
|
||||
pinchGR = (UIPinchGestureRecognizer *) gestureRecognizer;
|
||||
|
||||
}
|
||||
|
||||
panGR.minimumNumberOfTouches = 2;
|
||||
|
||||
self.scrollEnabled = TRUE;
|
||||
|
||||
|
||||
self.pagingEnabled = NO;
|
||||
self.bounces = YES;
|
||||
self.clipsToBounds = YES;
|
||||
self.showsHorizontalScrollIndicator = NO;
|
||||
self.showsVerticalScrollIndicator = NO;
|
||||
// self.canCancelContentTouches = NO; // interdiction d'annuler une fois que la vue a commencé a récupéré les infs
|
||||
|
||||
[self setBackgroundColor:[UIColor blackColor]];
|
||||
[self.ew setBackgroundColor:[UIColor blackColor]];
|
||||
|
||||
|
||||
CGAffineTransform mat = CGAffineTransformIdentity;
|
||||
#ifdef VIDEO_SINGLEVLINE
|
||||
mat = CGAffineTransformScale(mat,1,-2);
|
||||
#else
|
||||
#error
|
||||
mat = CGAffineTransformScale(mat,1,-1);
|
||||
#endif
|
||||
NSLog(@"mat: %f %f %f %f - %f %f",self.transform.a,self.transform.b,self.transform.c,self.transform.d,self.transform.tx,self.transform.ty);
|
||||
// self.transform = mat;
|
||||
NSLog(@"mat: %f %f %f %f - %f %f",self.transform.a,self.transform.b,self.transform.c,self.transform.d,self.transform.tx,self.transform.ty);
|
||||
[self addSubview:self.ew];
|
||||
|
||||
}
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
|
||||
|
||||
int inCran=0;
|
||||
float refScale=0.5f;
|
||||
float refScalePortrait;
|
||||
float refScaleLandscape;
|
||||
|
||||
-(void)updateScreen:(CGRect)frame ratio:(float)ratio
|
||||
{
|
||||
// [self updateFrame:frame];
|
||||
// [self setBounds:frame];
|
||||
|
||||
self->viewSize = frame.size;
|
||||
self->dpiRatio = ratio;
|
||||
|
||||
CGRect r = CGRectMake(0.0,0.0,X_A2_WINDOW_WIDTH/self->dpiRatio ,X_A2_WINDOW_HEIGHT/self->dpiRatio );
|
||||
|
||||
self.contentSize = CGSizeMake(r.size.width,r.size.height);
|
||||
[self.ew setFrame:r];
|
||||
|
||||
[self.crt setFrame:CGRectMake(0,0,r.size.width,r.size.height)];
|
||||
[self.crt setBounds:CGRectMake(0,0,r.size.width,r.size.height*2)];
|
||||
|
||||
[self setRatioToOne];
|
||||
}
|
||||
|
||||
-(void)updateFrame:(CGRect)frame kbdRect:(CGRect)kbdRect
|
||||
{
|
||||
|
||||
// adapte la vue pour que le clavier ne cache pas l'écran
|
||||
CGRect scrollSize = self.bounds ;
|
||||
|
||||
|
||||
float ref = kbdRect.size.height;
|
||||
|
||||
if ( (-scrollSize.origin.y) < ref)
|
||||
{
|
||||
// centre par rapport à la hauteur restante
|
||||
float hremaining = frame.size.height - ref;
|
||||
frame.origin.y = - kbdRect.size.height- ( hremaining - scrollSize.size.height*HEIGHT_MULTIPLY ) /2 ;
|
||||
// TODO : ajuster le zoom!
|
||||
}
|
||||
|
||||
// NSLog(@"Frame %f,%f %f,%f",frame.origin.x,frame.origin.y,frame.size.width,frame.size.height);
|
||||
|
||||
[self setFrame:frame];
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
-(void)setRatioToOne
|
||||
{
|
||||
|
||||
int w = (int)viewSize.width;
|
||||
int h = (int)viewSize.height;
|
||||
|
||||
debug_printf("apprect %d x %d\n",w,h);
|
||||
|
||||
#define ZOOM_CLAMP 0.25 // calcul un zoom par multiple *.25
|
||||
|
||||
|
||||
for(int i=0;i<4;i++)
|
||||
{
|
||||
if (!(i&1))
|
||||
{
|
||||
|
||||
|
||||
|
||||
// prend le plus petit des zooms possible
|
||||
|
||||
float r = w*dpiRatio / A2_WINDOW_WIDTH;
|
||||
r = r/ZOOM_CLAMP;
|
||||
if (r<1.0)
|
||||
r = 1.0;
|
||||
int ir = (int)r;
|
||||
float zoomw = (float)ir*ZOOM_CLAMP;
|
||||
|
||||
r = h*dpiRatio / (A2_WINDOW_HEIGHT*HEIGHT_MULTIPLY);
|
||||
r = r/ZOOM_CLAMP;
|
||||
if (r<1.0)
|
||||
r = 1.0;
|
||||
ir = (int)r;
|
||||
float zoomh = (float)ir*ZOOM_CLAMP;
|
||||
|
||||
float zoom = zoomh < zoomw ? zoomh : zoomw ;
|
||||
|
||||
orientationVars[i].scale = zoom;
|
||||
|
||||
|
||||
float realew =(X_A2_WINDOW_WIDTH - A2_WINDOW_WIDTH)*zoom;
|
||||
float realw = w*dpiRatio;
|
||||
float posw = realw - A2_WINDOW_WIDTH*zoom;
|
||||
float x = (posw - realew)/2; // pour centrer
|
||||
|
||||
|
||||
float realeh =(X_A2_WINDOW_HEIGHT - A2_WINDOW_HEIGHT)*HEIGHT_MULTIPLY*zoom;
|
||||
float realh = h*dpiRatio;
|
||||
float posh = realh - A2_WINDOW_HEIGHT*HEIGHT_MULTIPLY*zoom;
|
||||
float y = (posh - realeh)/2; // pour centrer
|
||||
|
||||
orientationVars[i].p = CGPointMake(-x/dpiRatio,-y/dpiRatio/HEIGHT_MULTIPLY);
|
||||
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
|
||||
float r = h*dpiRatio / A2_WINDOW_WIDTH;
|
||||
r = r/ZOOM_CLAMP;
|
||||
if (r<1.0)
|
||||
r = 1.0;
|
||||
int ir = (int)r;
|
||||
float zoomw = (float)ir*ZOOM_CLAMP;
|
||||
|
||||
r = w*dpiRatio / ( A2_WINDOW_HEIGHT * HEIGHT_MULTIPLY );
|
||||
r = r/ZOOM_CLAMP;
|
||||
if (r<1.0)
|
||||
r = 1.0;
|
||||
ir = (int)r;
|
||||
float zoomh = (float)ir*ZOOM_CLAMP;
|
||||
|
||||
float zoom = zoomh < zoomw ? zoomh : zoomw ;
|
||||
|
||||
float realew =(X_A2_WINDOW_WIDTH - A2_WINDOW_WIDTH)*zoom;
|
||||
float realw = h*dpiRatio;
|
||||
float posw = realw - A2_WINDOW_WIDTH*zoom;
|
||||
float x = (posw - realew)/2;
|
||||
|
||||
|
||||
float realeh =(X_A2_WINDOW_HEIGHT - A2_WINDOW_HEIGHT)*HEIGHT_MULTIPLY*zoom;
|
||||
float realh = w*dpiRatio;
|
||||
float posh = realh - A2_WINDOW_HEIGHT*HEIGHT_MULTIPLY*zoom;
|
||||
float y = (posh - realeh)/2; // pour centrer
|
||||
|
||||
orientationVars[i].scale = zoom;
|
||||
orientationVars[i].p = CGPointMake(-x/dpiRatio,-y/dpiRatio/2);
|
||||
|
||||
|
||||
}
|
||||
|
||||
debug_printf("orientation:%d = %f , p = %f,%f\n",i, orientationVars[i].scale,orientationVars[i].p.x,orientationVars[i].p.y);
|
||||
|
||||
}
|
||||
|
||||
mouseDown = 0;
|
||||
allowInput = TRUE;
|
||||
zoomDisabled = FALSE;
|
||||
refScalePortrait = orientationVars[0].scale;
|
||||
refScaleLandscape = orientationVars[1].scale;
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
- (void)switchOrientation:(int)orientation
|
||||
{
|
||||
|
||||
curOrientation = -1;
|
||||
float s = orientationVars[orientation].scale;
|
||||
CGPoint p = orientationVars[orientation].p;
|
||||
debug_printf("**** about to switchOrientation: (%d) scale:%f offset %f,%f\n",orientation,s,p.x,p.y);
|
||||
|
||||
self.zoomScale = s ;
|
||||
[self setContentOffset:p];
|
||||
curOrientation = orientation;
|
||||
|
||||
s = orientationVars[orientation].scale;
|
||||
p = orientationVars[orientation].p;
|
||||
debug_printf("**** done switching (%d) scale:%f offset %f,%f\n",orientation,s,p.x,p.y);
|
||||
|
||||
inCran = false;
|
||||
|
||||
if (orientation & 1)
|
||||
refScale = refScaleLandscape;
|
||||
else
|
||||
refScale = refScalePortrait;
|
||||
|
||||
}
|
||||
|
||||
-(void)setContentOffset:(CGPoint)p /*animated:(BOOL)animated*/
|
||||
{
|
||||
if (p.x == 0.0f || p.y == 0.0)
|
||||
{
|
||||
debug_printf("ignoring %f,%f\n",p.x,p.y);
|
||||
return ;
|
||||
}
|
||||
// appelé par [super initWithFrame:frame] alors que ew n'est pas encore initialisé
|
||||
if(self.ew != nil )
|
||||
{
|
||||
|
||||
CGSize vs = self.ew.frame.size;
|
||||
CGSize scrollSize = self.bounds.size;
|
||||
|
||||
static float realScale=0.0f;
|
||||
|
||||
|
||||
if (!inCran)
|
||||
{
|
||||
if ( fabs(self.zoomScale - refScale) < 0.05 )
|
||||
{
|
||||
inCran = true;
|
||||
realScale = self.zoomScale;
|
||||
self.zoomScale = refScale;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
realScale += self.zoomScale - refScale;
|
||||
if (fabs(realScale - refScale) > 0.10 )
|
||||
{
|
||||
// à faire avant le sef.zoomScale= sinon on tombe dans une boucle infinie!
|
||||
inCran = false;
|
||||
self.zoomScale = realScale;
|
||||
}
|
||||
else
|
||||
self.zoomScale = refScale;
|
||||
}
|
||||
|
||||
|
||||
// recentre la fenetre si elle tient totalement en hauteur ou en largeur
|
||||
|
||||
|
||||
if (scrollSize.width >= vs.width || inCran )
|
||||
p.x = - (scrollSize.width - abs(vs.width)) / 2.0;
|
||||
if (scrollSize.height >= vs.height || inCran )
|
||||
p.y = - (scrollSize.height - abs(vs.height)) / 2.0;
|
||||
|
||||
|
||||
if (curOrientation!=-1)
|
||||
{
|
||||
debug_printf("saving scale (%d) %f %f,%f\n",curOrientation,self.zoomScale,p.x,p.y);
|
||||
orientationVars[curOrientation].scale = self.zoomScale ; // / kbdScale;
|
||||
orientationVars[curOrientation].p = p;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
debug_printf("********** offset : %f %f\n",p.x,p.y);
|
||||
[super setContentOffset:p];
|
||||
}
|
||||
|
||||
|
||||
|
||||
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
|
||||
{
|
||||
return self.ew;
|
||||
}
|
||||
|
||||
- (void)drawRect:(CGRect)rect {
|
||||
|
||||
// Drawing code
|
||||
CGContextRef g = UIGraphicsGetCurrentContext();
|
||||
|
||||
//fill background with blue
|
||||
#ifdef SHOW_COLOR
|
||||
CGContextSetFillColorWithColor(g, [UIColor blueColor].CGColor);
|
||||
#else
|
||||
CGContextSetFillColorWithColor(g, [UIColor blackColor].CGColor);
|
||||
#endif
|
||||
|
||||
CGContextFillRect(g, rect);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
-(CGPoint)rotateTouch:(UITouch*) _touch
|
||||
{
|
||||
CGPoint pt;
|
||||
// float scale = [pManager dpiRatio]/self.zoomScale;
|
||||
float scale = self->dpiRatio/self.zoomScale;
|
||||
|
||||
if (g_adb.g_warp_pointer==WARP_TOUCHSCREEN)
|
||||
{
|
||||
pt = [_touch locationInView:self.ew];
|
||||
pt.x *= self->dpiRatio; //[pManager dpiRatio];
|
||||
pt.y *= self->dpiRatio; //[pManager dpiRatio];
|
||||
|
||||
pt.y = (X_A2_WINDOW_HEIGHT - pt.y);
|
||||
pt.y *=2;
|
||||
pt.x -= BASE_MARGIN_LEFT;
|
||||
pt.y -= BASE_MARGIN_TOP*2;
|
||||
|
||||
return pt;
|
||||
}
|
||||
|
||||
|
||||
pt = [_touch locationInView:self];
|
||||
int height = self.contentSize.height;
|
||||
|
||||
if (r_sim65816.is_emulator_in_640mode())
|
||||
{
|
||||
// current scale for 640 mode
|
||||
}
|
||||
else
|
||||
{
|
||||
// otherwise reduce the speed of the mouse
|
||||
scale /= 2;
|
||||
}
|
||||
|
||||
pt.y = (height - pt.y)*scale;
|
||||
pt.x *= scale;
|
||||
|
||||
return pt;
|
||||
|
||||
}
|
||||
|
||||
|
||||
-(BOOL)touchesShouldCancelInContentView:(UIView *)view
|
||||
{
|
||||
debug_printf("touchesShouldCancelInContentView\n");
|
||||
return !zoomDisabled;
|
||||
}
|
||||
|
||||
-(void)enableInput
|
||||
{
|
||||
allowInput = TRUE;
|
||||
}
|
||||
|
||||
-(void)disableInput
|
||||
{
|
||||
allowInput = FALSE;
|
||||
if (self.useTouch)
|
||||
self.useTouch = nil;
|
||||
|
||||
if (self.secondTouch)
|
||||
{
|
||||
self.secondTouch = nil;
|
||||
printf("*** secondtouch set in disableinput --- should never appear");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
-(void)disableZoom
|
||||
{
|
||||
|
||||
debug_printf("disableZoom\n");
|
||||
|
||||
// BUG!!!!
|
||||
// Sometimes, offset is being reset when gestures are disabled!
|
||||
// Workaround = save the former offset and restore it afterwards
|
||||
CGPoint offset = self.contentOffset;
|
||||
|
||||
pinchGR.enabled = FALSE;
|
||||
panGR.enabled = FALSE;
|
||||
self.scrollEnabled = FALSE;
|
||||
zoomDisabled= TRUE;
|
||||
|
||||
// REstoring the offset
|
||||
self.contentOffset = offset;
|
||||
|
||||
}
|
||||
|
||||
-(void)enableZoom
|
||||
{
|
||||
|
||||
debug_printf("enableZoom\n");
|
||||
|
||||
pinchGR.enabled = TRUE;
|
||||
panGR.enabled = TRUE;
|
||||
|
||||
self.scrollEnabled = TRUE;
|
||||
|
||||
zoomDisabled = FALSE;
|
||||
}
|
||||
|
||||
|
||||
- (void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(UIView *)view
|
||||
{
|
||||
debug_printf("scrollViewWillBeginZooming\n");
|
||||
#ifdef ACTIVEGS
|
||||
// le zoom a démarré : anule les timers pour que le zoom ne soit pas interrompu
|
||||
[[pManager getEmulatorView].contentView disableGestures:(MODE_ALL + MODE_EMULATOR & ~MODE_ZOOM)];
|
||||
[[pManager getEmulatorView].kbdc setGestureIndicatorVisibility:MODE_ZOOM color:[UIColor grayColor]];
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(float)scale
|
||||
{
|
||||
debug_printf("scrollViewDidEndZooming\n");
|
||||
#ifdef ACTIVEGS
|
||||
// zoom terminé => on peut réactiver les gestures immédiatement
|
||||
[[pManager getEmulatorView].contentView reenableAllGestures];
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
|
||||
{
|
||||
// NSLog(@" Offset = %@ ",NSStringFromCGPoint(scrollView.contentOffset));
|
||||
}
|
||||
|
||||
|
||||
- (void)scrollViewDidZoom:(UIScrollView *)scrollView
|
||||
{
|
||||
// printf("scrollViewDidZoom");
|
||||
// [ew directDraw:nil];
|
||||
}
|
||||
|
||||
- (void) mouseDown
|
||||
{
|
||||
if (!mouseDown)
|
||||
{
|
||||
|
||||
debug_printf("mouseDown %f %f\n",lastMousePos.x,lastMousePos.y);
|
||||
mouseDown = 1;
|
||||
add_event_mouse(lastMousePos.x,lastMousePos.y,1,1);
|
||||
#ifdef ACTIVEGS
|
||||
[[pManager getEmulatorView].kbdc setGestureIndicatorVisibility:MODE_MOUSEBUTTON color:[UIColor redColor]];
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
- (void) mouseUp
|
||||
{
|
||||
if (mouseDown)
|
||||
{
|
||||
add_event_mouse(lastMousePos.x,lastMousePos.y,0,1);
|
||||
mouseDown = 0;
|
||||
#ifdef ACTIVEGS
|
||||
[[pManager getEmulatorView].kbdc setGestureIndicatorVisibility:MODE_MOUSEBUTTON color:[UIColor greenColor]];
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
|
||||
{
|
||||
#ifdef ACTIVEGS
|
||||
if ([[pManager getEmulatorView].kbdc myTouchesBegan:touches])
|
||||
{
|
||||
debug_printf("pad activated");
|
||||
|
||||
[[pManager getEmulatorView].kbdc setGestureIndicatorVisibility:MODE_PAD color:[UIColor grayColor]];
|
||||
[[pManager getEmulatorView].contentView disableGestures:(MODE_ALL+MODE_EMULATOR & ~MODE_PAD)];
|
||||
return ;
|
||||
}
|
||||
#endif
|
||||
|
||||
// prend la première touche
|
||||
UITouch *touch = [[touches allObjects] objectAtIndex:0];
|
||||
|
||||
|
||||
// if (!runningOnIOS_3_2)
|
||||
{
|
||||
// simule les swipes
|
||||
initialPoint = [touch locationInView:nil];
|
||||
initialTimer = [[NSDate date] timeIntervalSince1970];
|
||||
}
|
||||
|
||||
|
||||
|
||||
if (!allowInput)
|
||||
{
|
||||
debug_printf("input disabled");
|
||||
return ;
|
||||
}
|
||||
|
||||
if ([touches count] > 1)
|
||||
{
|
||||
debug_printf("multiple - disabling input");
|
||||
#ifdef ACTIVEGS
|
||||
[[pManager getEmulatorView].contentView disableGestures:MODE_EMULATOR];
|
||||
#endif
|
||||
return ;
|
||||
}
|
||||
|
||||
|
||||
if (self.useTouch)
|
||||
{
|
||||
if (!self.secondTouch && zoomDisabled)
|
||||
{
|
||||
if (!mouseDown)
|
||||
{
|
||||
debug_printf("second touch mouse Down\n");
|
||||
[self mouseDown];
|
||||
}
|
||||
else
|
||||
{
|
||||
debug_printf("second touch\n");
|
||||
|
||||
}
|
||||
|
||||
self.secondTouch = touch;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (zoomDisabled)
|
||||
{
|
||||
debug_printf("third or more touch ignore");
|
||||
}
|
||||
else
|
||||
{
|
||||
debug_printf("ignoring second touch - too soon, must be a gestures");
|
||||
#ifdef ACTIVEGS
|
||||
[[pManager getEmulatorView].contentView disableGestures:MODE_EMULATOR];
|
||||
#endif
|
||||
}
|
||||
}
|
||||
return ;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
self.useTouch = touch;
|
||||
|
||||
lastMousePos = [self rotateTouch:touch];
|
||||
|
||||
add_event_mouse(lastMousePos.x,lastMousePos.y,0,-1);
|
||||
|
||||
if (self.secondTouch)
|
||||
{
|
||||
// mouseDown déjà enclenchée -> on a fini
|
||||
return ;
|
||||
}
|
||||
|
||||
int nbtap = [touch tapCount];
|
||||
if (nbtap==1)
|
||||
{
|
||||
// prépare la désactivation des gestures
|
||||
//[[pManager getEmulatorView].contentView scheduleDisableAllGestures];
|
||||
startNewPhase=TRUE;
|
||||
|
||||
}
|
||||
|
||||
#if !defined(DRIVER_DONTSIMULATESPACE)
|
||||
if (nbtap==2)
|
||||
{
|
||||
extern void simulate_space_event();
|
||||
simulate_space_event();
|
||||
}
|
||||
#endif
|
||||
|
||||
if (nbtap>=2 || g_adb.g_warp_pointer==WARP_TOUCHSCREEN)
|
||||
{
|
||||
|
||||
debug_printf("*** multi-tap\n");
|
||||
|
||||
[self mouseUp];
|
||||
|
||||
[self mouseDown];
|
||||
|
||||
// Désactive immédiatement les gestures
|
||||
#ifdef ACTIVEGS
|
||||
if (g_adb.g_warp_pointer!=WARP_TOUCHSCREEN)
|
||||
[[pManager getEmulatorView].contentView disableGestures:MODE_ALL];
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
|
||||
{
|
||||
|
||||
debug_printf("touchesEnded : %d",[touches count]);
|
||||
|
||||
#ifdef ACTIVEGS
|
||||
if (! [[pManager getEmulatorView].kbdc myTouchesEnded:touches])
|
||||
{
|
||||
// le pad n'est plus actif - reactive les input si elles étaient disabled
|
||||
if (!allowInput)
|
||||
[[pManager getEmulatorView].contentView reenableAllGestures];
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
if (!runningOnIOS_3_2)
|
||||
{
|
||||
// simule les swipes
|
||||
|
||||
// prend la première touche
|
||||
UITouch *touch = [[touches allObjects] objectAtIndex:0];
|
||||
|
||||
|
||||
CGPoint point = [touch locationInView:nil];
|
||||
double t = [[NSDate date] timeIntervalSince1970] - initialTimer ;
|
||||
debug_printf("swipe time:%f",t);
|
||||
if (t < 1.0)
|
||||
{
|
||||
float diffX = point.x - initialPoint.x;
|
||||
float diffY = point.y - initialPoint.y;
|
||||
printf("diffX: %f diffY: %f",diffX,diffY);
|
||||
|
||||
int angle = [pManager getAngle];
|
||||
BOOL isPortrait = ( abs(angle) == 90 ) ;
|
||||
if (!isPortrait)
|
||||
{
|
||||
double swap = diffX;
|
||||
diffX = diffY;
|
||||
diffY = swap;
|
||||
}
|
||||
if (angle>0) diffY = -diffY;
|
||||
|
||||
if (abs(diffX) < 40.0 && abs(diffY)> 150.0)
|
||||
{
|
||||
// swipeY
|
||||
if (diffY<0)
|
||||
// swipe up
|
||||
[[pManager getEmulatorView].kbdc swipeUp];
|
||||
else
|
||||
[[pManager getEmulatorView].kbdc swipeDown];
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
*/
|
||||
|
||||
if (!allowInput)
|
||||
return ;
|
||||
|
||||
if ( [touches containsObject:self.useTouch]
|
||||
&& [touches containsObject:self.secondTouch])
|
||||
{
|
||||
debug_printf("both keys ended at the sametime");
|
||||
|
||||
[self mouseUp];
|
||||
|
||||
self.useTouch = nil;
|
||||
self.secondTouch = nil;
|
||||
|
||||
#ifdef ACTIVEGS
|
||||
// vérifie les gestures
|
||||
customView* cv = [pManager getEmulatorView].contentView;
|
||||
[cv processGesturesOnTouchesEnded];
|
||||
#endif
|
||||
return ;
|
||||
}
|
||||
|
||||
if ([touches containsObject:self.useTouch])
|
||||
{
|
||||
debug_printf("contains useTouch");
|
||||
|
||||
if (self.secondTouch)
|
||||
{
|
||||
// libère useTouch mais ne fait rien d'autre - maintien la touche enclenchée
|
||||
|
||||
debug_printf("maintaining mouseDown - secondTouch ");
|
||||
self.useTouch = nil;
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
debug_printf("touchesEnded\n");
|
||||
|
||||
[self mouseUp];
|
||||
self.useTouch = nil;
|
||||
#ifdef ACTIVEGS
|
||||
// vérifie les gestures
|
||||
customView* cv = [pManager getEmulatorView].contentView;
|
||||
[cv processGesturesOnTouchesEnded];
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
if ([touches containsObject:self.secondTouch])
|
||||
{
|
||||
// correspond à un mouseUp
|
||||
[self mouseUp];
|
||||
self.secondTouch = nil;
|
||||
debug_printf("secondTouch ended");
|
||||
|
||||
if (!self.useTouch)
|
||||
{
|
||||
#ifdef ACTIVEGS
|
||||
// aucune touche n'est plus appuyée : réactive les gestures
|
||||
[[pManager getEmulatorView].contentView scheduleEnableAllGestures];
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event
|
||||
{
|
||||
|
||||
// on est ici car lez zoom a démarré => théoriquement, il ne doit y avoir aucun useTouch, secondTouch, ou mouseDown
|
||||
|
||||
if ([touches containsObject:self.useTouch])
|
||||
{
|
||||
debug_printf("touchesCancelled useTouch\n");
|
||||
self.useTouch = nil;
|
||||
}
|
||||
if ([touches containsObject:self.secondTouch])
|
||||
{
|
||||
debug_printf("touchesCancelled secondTouch\n");
|
||||
self.secondTouch = nil;
|
||||
}
|
||||
|
||||
// DEBUG INFO
|
||||
if (mouseDown)
|
||||
{
|
||||
printf("mouseDown in touchesCancelled***");
|
||||
[self mouseUp];
|
||||
}
|
||||
|
||||
//[[pManager getEmulatorView].contentView reenableAllGestures];
|
||||
}
|
||||
|
||||
|
||||
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
|
||||
{
|
||||
|
||||
#ifdef ACTIVEGS
|
||||
if ([[pManager getEmulatorView].kbdc myTouchesMoved:touches])
|
||||
return ;
|
||||
#endif
|
||||
if (!allowInput)
|
||||
return ;
|
||||
|
||||
if (startNewPhase)
|
||||
{
|
||||
debug_printf("first finger moved");
|
||||
startNewPhase = FALSE;
|
||||
#ifdef ACTIVEGS
|
||||
[[pManager getEmulatorView].contentView disableGestures:MODE_ZOOM]; // à faire avant le schedule
|
||||
[[pManager getEmulatorView].contentView scheduleDisableAllGestures];
|
||||
#endif
|
||||
}
|
||||
|
||||
if (!self.useTouch) return ;
|
||||
if ([touches containsObject:self.useTouch])
|
||||
{
|
||||
/*
|
||||
CGPoint pt = [useTouch locationInView:self];
|
||||
lastMousePos = rotateTouch(self,pt,[pManager getAngle]);
|
||||
*/
|
||||
lastMousePos = [self rotateTouch:self.useTouch];
|
||||
add_event_mouse(lastMousePos.x,lastMousePos.y,mouseDown,1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
- (void)dealloc {
|
||||
|
||||
self.delegate = nil;
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
|
||||
@end
|
53
Common.iphone/GTMUIView+SubtreeDescription.h
Normal file
@ -0,0 +1,53 @@
|
||||
//
|
||||
// GTMUIView+SubtreeDescription.h
|
||||
//
|
||||
// Copyright 2009 Google Inc.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||
// use this file except in compliance with the License. You may obtain a copy
|
||||
// of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
// License for the specific language governing permissions and limitations
|
||||
// under the License.
|
||||
//
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
// This entire file, and the corresponding .m is DEBUG only.
|
||||
// But you can define INCLUDE_UIVIEW_SUBTREE_DESCRIPTION to no-zero to override.
|
||||
#if DEBUG || INCLUDE_UIVIEW_SUBTREE_DESCRIPTION
|
||||
|
||||
// Example, in debugger, pause the program, then type:
|
||||
// po [[[UIApplication sharedApplication] keyWindow] subtreeDescription]
|
||||
|
||||
@interface UIView (SubtreeDescription)
|
||||
|
||||
// Returns one line, without leading indent, but with a trailing newline,
|
||||
// describing the view.
|
||||
// If you define a |myViewDescriptionLine| method in your own UIView classes,
|
||||
// this will append that result to its description.
|
||||
- (NSString *)gtm_subtreeDescriptionLine;
|
||||
|
||||
// For debugging. Returns a nicely indented representation of this view's
|
||||
// subview hierarchy, each with frame and isHidden.
|
||||
- (NSString *)subtreeDescription;
|
||||
|
||||
// For debugging. Returns a nicely indented representation of this view's
|
||||
// layer hierarchy, with frames and isHidden.
|
||||
// Requires QuartzCore to be useful, but your app will still link without it.
|
||||
// TODO: should there be an analog of myViewDescriptionLine for layers?
|
||||
- (NSString *)sublayersDescription;
|
||||
|
||||
@end
|
||||
|
||||
@protocol GTMUIViewSubtreeDescription
|
||||
// A UIView can implement this and it can add it's own custom description
|
||||
// in gtm_subtreeDescriptionLine.
|
||||
- (NSString *)myViewDescriptionLine;
|
||||
@end
|
||||
|
||||
#endif // DEBUG
|
184
Common.iphone/GTMUIView+SubtreeDescription.m
Normal file
@ -0,0 +1,184 @@
|
||||
//
|
||||
// GTMUIView+SubtreeDescription.m
|
||||
//
|
||||
// Copyright 2009 Google Inc.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||
// use this file except in compliance with the License. You may obtain a copy
|
||||
// of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
// License for the specific language governing permissions and limitations
|
||||
// under the License.
|
||||
//
|
||||
#import "GTMUIView+SubtreeDescription.h"
|
||||
|
||||
#if 1
|
||||
static void AppendLabelFloat(NSMutableString *s, NSString *label, float f) {
|
||||
[s appendString:label];
|
||||
// Respects gcc warning about using == with floats.
|
||||
if (fabs(f - floor(f)) < 1.0e-8) { // Essentially integer.
|
||||
int d = f;
|
||||
// Respects gcc warning about casting floats to ints.
|
||||
[s appendFormat:@"%d", d];
|
||||
} else {
|
||||
[s appendFormat:@"%3.1f", f];
|
||||
}
|
||||
}
|
||||
|
||||
static NSMutableString *SublayerDescriptionLine(CALayer *layer) {
|
||||
NSMutableString *result = [NSMutableString string];
|
||||
[result appendFormat:@"%@ %p {", [layer class], layer];
|
||||
CGRect frame = [layer frame];
|
||||
if (!CGRectIsEmpty(frame)) {
|
||||
AppendLabelFloat(result, @"x:", frame.origin.x);
|
||||
AppendLabelFloat(result, @" y:", frame.origin.y);
|
||||
AppendLabelFloat(result, @" w:", frame.size.width);
|
||||
AppendLabelFloat(result, @" h:", frame.size.height);
|
||||
}
|
||||
CGRect bounds = [layer bounds];
|
||||
if (!CGRectIsEmpty(bounds))
|
||||
{
|
||||
AppendLabelFloat(result, @"bounds x:", bounds.origin.x);
|
||||
AppendLabelFloat(result, @" y:", bounds.origin.y);
|
||||
AppendLabelFloat(result, @" w:", bounds.size.width);
|
||||
AppendLabelFloat(result, @" h:", bounds.size.height);
|
||||
}
|
||||
[result appendFormat:@"}"];
|
||||
if ([layer isHidden]) {
|
||||
[result appendString:@" hid"];
|
||||
}
|
||||
[result appendString:@"\n"];
|
||||
return result;
|
||||
}
|
||||
|
||||
// |sublayersDescription| has a guard so we'll only call this if it is safe
|
||||
// to call.
|
||||
static NSMutableString *SublayerDescriptionAtLevel(CALayer *layer, int level) {
|
||||
NSMutableString *result = [NSMutableString string];
|
||||
for (int i = 0; i < level; ++i) {
|
||||
[result appendString:@" "];
|
||||
}
|
||||
[result appendString:SublayerDescriptionLine(layer)];
|
||||
// |sublayers| is defined in the QuartzCore framework, which isn't guaranteed
|
||||
// to be linked to this program. (So we don't include the header.)
|
||||
NSArray *layers = [layer performSelector:NSSelectorFromString(@"sublayers")];
|
||||
for (CALayer *l in layers) {
|
||||
[result appendString:SublayerDescriptionAtLevel(l, level+1)];
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@implementation UIView (SubtreeDescription)
|
||||
|
||||
// TODO: Consider flagging things which might help in debugging:
|
||||
// - alpha < 10%
|
||||
// - origin not zero
|
||||
// - non-opaque
|
||||
// - transform if not identity
|
||||
// - view not entirely within ancestor views
|
||||
// - (possibly) tag==0
|
||||
- (NSString *)gtm_subtreeDescriptionLine {
|
||||
NSMutableString *result = [NSMutableString string];
|
||||
[result appendFormat:@"%@ %p {", [self class], self];
|
||||
CGRect frame = [self frame];
|
||||
|
||||
|
||||
if (!CGRectIsEmpty(frame)) {
|
||||
AppendLabelFloat(result, @"x:", frame.origin.x);
|
||||
AppendLabelFloat(result, @" y:", frame.origin.y);
|
||||
AppendLabelFloat(result, @" w:", frame.size.width);
|
||||
AppendLabelFloat(result, @" h:", frame.size.height);
|
||||
}
|
||||
CGRect bounds = [self bounds];
|
||||
if (!CGRectIsEmpty(bounds))
|
||||
{
|
||||
AppendLabelFloat(result, @"-- bounds x:", bounds.origin.x);
|
||||
AppendLabelFloat(result, @" y:", bounds.origin.y);
|
||||
AppendLabelFloat(result, @" w:", bounds.size.width);
|
||||
AppendLabelFloat(result, @" h:", bounds.size.height);
|
||||
}
|
||||
[result appendString:@"}"];
|
||||
|
||||
CGAffineTransform t = [self transform];
|
||||
if (!CGAffineTransformIsIdentity(t))
|
||||
{
|
||||
AppendLabelFloat(result, @"-- matrix 11:", t.a);
|
||||
AppendLabelFloat(result, @" 12:", t.b);
|
||||
AppendLabelFloat(result, @" 21:", t.c);
|
||||
AppendLabelFloat(result, @" 22:", t.d);
|
||||
AppendLabelFloat(result, @" tx:", t.tx);
|
||||
AppendLabelFloat(result, @" ty:", t.ty);
|
||||
|
||||
}
|
||||
|
||||
if ([self isKindOfClass:[UIScrollView class]])
|
||||
{
|
||||
UIScrollView* sv = (UIScrollView*)self;
|
||||
float scale = sv.zoomScale;
|
||||
AppendLabelFloat(result, @" scale:", scale);
|
||||
}
|
||||
|
||||
|
||||
AppendLabelFloat(result, @" alpha:", self.alpha);
|
||||
if ([self isHidden]) {
|
||||
[result appendString:@" hid"];
|
||||
}
|
||||
|
||||
if ([self respondsToSelector:@selector(myViewDescriptionLine)]) {
|
||||
NSString *customDescription =
|
||||
[self performSelector:@selector(myViewDescriptionLine)];
|
||||
if (customDescription != nil) {
|
||||
[result appendFormat:@" %@", customDescription];
|
||||
}
|
||||
}
|
||||
|
||||
[result appendString:@"\n"];
|
||||
return result;
|
||||
}
|
||||
|
||||
- (NSString *)gtm_subtreeDescriptionAtLevel:(int)level {
|
||||
NSMutableString *result = [NSMutableString string];
|
||||
for (int i = 0; i < level; ++i) {
|
||||
[result appendString:@" "];
|
||||
}
|
||||
[result appendString:[self gtm_subtreeDescriptionLine]];
|
||||
for (UIView *v in [self subviews]) {
|
||||
[result appendString:[v gtm_subtreeDescriptionAtLevel:level+1]];
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
- (NSString *)subtreeDescription {
|
||||
NSMutableString *result =
|
||||
[[[self gtm_subtreeDescriptionLine] mutableCopy] autorelease];
|
||||
for (UIView *v in [self subviews]) {
|
||||
[result appendString:[v gtm_subtreeDescriptionAtLevel:1]];
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
// for debugging dump the layer hierarchy, frames and isHidden.
|
||||
- (NSString *)sublayersDescription {
|
||||
CALayer *layer = [self layer];
|
||||
SEL sublayers = NSSelectorFromString(@"sublayers");
|
||||
if (![layer respondsToSelector:sublayers]) {
|
||||
return @"*** Sorry: This app is not linked with the QuartzCore framework.";
|
||||
}
|
||||
NSMutableString *result = SublayerDescriptionLine(layer);
|
||||
NSArray *layers = [layer performSelector:sublayers];
|
||||
for (CALayer *l in layers) {
|
||||
[result appendString:SublayerDescriptionAtLevel(l, 1)];
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
#endif // DEBUG
|
||||
|
||||
|
187
Common.iphone/KBDController.h
Normal file
@ -0,0 +1,187 @@
|
||||
/*
|
||||
ActiveGS, Copyright 2004-2016 Olivier Goguel, https://github.com/ogoguel/ActiveGS
|
||||
Based on Kegs, Copyright 2004 Kent Dickey, https://kegs.sourceforge.net
|
||||
This code is covered by the GNU GPL licence
|
||||
*/
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
enum
|
||||
{
|
||||
LOCKZOOM_AUTO=0,
|
||||
LOCKZOOM_ON=1,
|
||||
LOCKZOOM_ARCADE=2
|
||||
};
|
||||
|
||||
@interface KBDController : UIViewController <UITextFieldDelegate>
|
||||
{
|
||||
|
||||
CGRect keyboardDelta;
|
||||
float keyboardScale;
|
||||
BOOL bMenuBarVisibility;
|
||||
BOOL bLoading;
|
||||
BOOL padEnabled;
|
||||
CGPoint posPad;
|
||||
float diskAngle ;
|
||||
|
||||
|
||||
|
||||
int inputMode;
|
||||
|
||||
UITextField* _textField;
|
||||
UIButton* _menuButton;
|
||||
UIBarButtonItem* _optionButton ;
|
||||
UIImageView* _diskView;
|
||||
UIImageView* _diskLoadingView;
|
||||
NSMutableArray* _diskIcons;
|
||||
UILabel* _loaderLabel;
|
||||
UILabel* _debugIndicator;
|
||||
UILabel* _swipeIndicator;
|
||||
UILabel* _zoomIndicator;
|
||||
UILabel* _padIndicator;
|
||||
UILabel* _mouseButtonIndicator;
|
||||
UILabel* _inputIndicator;
|
||||
|
||||
UIActivityIndicatorView* _loader;
|
||||
NSTimer* _loaderTimer;
|
||||
#ifdef GRAPHICAL_PAD
|
||||
UIImageView* _padBackground;
|
||||
UIImageView* _padButton1Down;
|
||||
UIImageView* _padButton2Down;
|
||||
UIImageView* _padStick;
|
||||
#endif
|
||||
UIImageView* _padCircleOutter;
|
||||
UIImageView* _padCircleInner;
|
||||
UIImageView* _oaButtonView;
|
||||
UIImageView* _caButtonView;
|
||||
UITouch* _padTouch;
|
||||
UITouch* _oaButtonTouch;
|
||||
UITouch* _caButtonTouch;
|
||||
UINavigationItem* _emulatorNavItem;
|
||||
UINavigationBar* _runtimeView;
|
||||
UIView* _interfaceView;
|
||||
NSTimer* _hardwarekbdDetectionTimer;
|
||||
NSTimer* _animateDiskTimer;
|
||||
|
||||
UIImageView* _runtimeControls;
|
||||
UIView* _runtimeControlsOptions;
|
||||
|
||||
UIImageView* _diskSelection;
|
||||
UIView* _diskSelectionOptions;
|
||||
UIScrollView* _uit;
|
||||
UIScrollView* _uitb;
|
||||
UIView* _accessView;
|
||||
UIButton* _leftAccessView;
|
||||
UIButton* _rightAccessView;
|
||||
UINavigationBar* _barView;
|
||||
UINavigationBar* _specialView;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@property (nonatomic,retain) UITextField* textField;
|
||||
|
||||
@property (nonatomic,retain) UIButton *menuButton;
|
||||
@property (nonatomic,retain) UIBarButtonItem* optionButton ;
|
||||
@property (nonatomic,retain) UIImageView* diskView;
|
||||
@property (nonatomic,retain) UIImageView* diskLoadingView;
|
||||
@property (nonatomic,retain) NSMutableArray* diskIcons;
|
||||
@property (nonatomic,retain) UILabel * loaderLabel;
|
||||
@property (nonatomic,retain) UILabel* debugIndicator;
|
||||
@property (nonatomic,retain) UILabel* swipeIndicator;
|
||||
@property (nonatomic,retain) UILabel* zoomIndicator;
|
||||
@property (nonatomic,retain) UILabel* padIndicator;
|
||||
@property (nonatomic,retain) UILabel* mouseButtonIndicator;
|
||||
@property (nonatomic,retain) UILabel* inputIndicator;
|
||||
@property (nonatomic,retain) UIActivityIndicatorView* loader;
|
||||
@property (nonatomic,retain) NSTimer* loaderTimer;
|
||||
#ifdef GRAPHICAL_PAD
|
||||
@property (nonatomic,retain) UIImageView* padBackground;
|
||||
@property (nonatomic,retain) UIImageView* padButton1Down;
|
||||
@property (nonatomic,retain) UIImageView* padButton2Down;
|
||||
@property (nonatomic,retain) UIImageView* padStick;
|
||||
#endif
|
||||
@property (nonatomic,retain) UIImageView* padCircleOutter;
|
||||
@property (nonatomic,retain) UIImageView* padCircleInner;
|
||||
@property (nonatomic,retain) UIImageView* oaButtonView;
|
||||
@property (nonatomic,retain) UIImageView* caButtonView;
|
||||
@property (nonatomic,retain) UITouch* padTouch;
|
||||
@property (nonatomic,retain) UITouch* oaButtonTouch;
|
||||
@property (nonatomic,retain) UITouch* caButtonTouch;
|
||||
@property (nonatomic,retain) UINavigationItem* emulatorNavItem;
|
||||
@property (nonatomic,retain) UINavigationBar* runtimeView;
|
||||
@property (nonatomic,retain) UIView* interfaceView;
|
||||
@property (nonatomic,retain) NSTimer* animateDiskTimer;
|
||||
@property (nonatomic,retain) NSTimer* hardwarekbdDetectionTimer;
|
||||
@property (nonatomic,retain) UIImageView* runtimeControls;
|
||||
@property (nonatomic,retain) UIView* runtimeControlsOptions;
|
||||
@property (nonatomic,retain) UIImageView* diskSelection;
|
||||
@property (nonatomic,retain) UIView* diskSelectionOptions;
|
||||
@property (nonatomic,retain) UIScrollView* uit;
|
||||
@property (nonatomic,retain) UIScrollView* uitb;
|
||||
@property (nonatomic,retain) UIView* accessView;
|
||||
@property (nonatomic,retain) UIButton* leftAccessView;
|
||||
@property (nonatomic,retain) UIButton* rightAccessView;
|
||||
@property (nonatomic,retain) UINavigationBar* barView;
|
||||
@property (nonatomic,retain) UINavigationBar* specialView;
|
||||
//@property (assign,getter=inputMode) int inputMode;
|
||||
|
||||
|
||||
-(void)updateSpecialButtonView:(UIButton*)_b state:(int)_state;
|
||||
-(void)addSpecialKeys;
|
||||
-(void)addRuntimeControls;
|
||||
-(void)resetSpecialKeys;
|
||||
-(void)unloadSpecialKeys;
|
||||
- (void) animateDisk:(id)_id ;
|
||||
-(void)refreshControls:(id)sender;
|
||||
- (void) detectHardwareKeyboard:(id)_id ;
|
||||
- (void)setLoading:(NSNumber*)_nsvisible;
|
||||
-(void)setiCadeMode:(BOOL)_mode;
|
||||
-(void)OnScreenKeyboard:(BOOL)_enabled;
|
||||
-(void)enableKeyboard:(int)_enable;
|
||||
-(void)restoreInput;
|
||||
|
||||
//#define INPUTMODE_NONE 0
|
||||
#define INPUTMODE_PAD 1
|
||||
#define INPUTMODE_KBD 2
|
||||
#define INPUTMODE_ACCESS 4
|
||||
#define INPUTMODE_MINIACCESS 8
|
||||
#define INPUTMODE_ARCADE 16
|
||||
#define INPUTMODE_CUSTOMKEYS 32
|
||||
#define INPUTMODE_KBDFORCED 64
|
||||
|
||||
#define INPUTMODE_ALL (INPUTMODE_KBD + INPUTMODE_PAD + INPUTMODE_ACCESS)
|
||||
#define INPUTMODE_HIDDEN 128
|
||||
|
||||
|
||||
-(int)isInputVisible:(int) _im;
|
||||
-(void)hideInput;
|
||||
-(void)cycleInput;
|
||||
-(void) updateSpecialKey:(CGRect)rv3;
|
||||
- (void)setInputMode:(int)_mode;
|
||||
- (void)setMenuBarVisibility:(int)_visible;
|
||||
//- (void)toggleMenuBarVisibility ;
|
||||
- (void)setEmulatorTitle:(const char*)_name ;
|
||||
- (void)swapButton:(id)sender;
|
||||
- (void)updateView:(CGRect)_rect;
|
||||
- (void)swipeUp;
|
||||
- (void)swipeDown;
|
||||
-(void)setGestureIndicatorVisibility:(int)_mode color:(UIColor*)_color;
|
||||
-(void)setDebugIndicatorText:(const char*)_text;
|
||||
-(void)showDebug:(BOOL)_visible;
|
||||
- (void)hideLoader:(id)_id;
|
||||
-(void)updatePadView;
|
||||
-(void)centerPad:(id)center;
|
||||
|
||||
-(void)enablePad:(BOOL)_enable;
|
||||
-(UIImageView*)createCircle:(float)_radius red:(float)_red green:(float)_green blue:(float)_blue alpha:(float)_alpha;
|
||||
- (BOOL) myTouchesBegan:(NSSet *)touches ;
|
||||
- (BOOL) myTouchesMoved:(NSSet *)touches ;
|
||||
- (BOOL) myTouchesEnded:(NSSet *)touches ;
|
||||
-(CGFloat) getEmulatorScale;
|
||||
-(CGRect) getEmulatorDelta;
|
||||
- (void)updateViewForKeyboard:(int)_height;
|
||||
|
||||
@end
|
||||
|
||||
|
2789
Common.iphone/KBDController.mm
Normal file
226
Common.iphone/MainWindow-iPad.xib
Normal file
@ -0,0 +1,226 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="7.10">
|
||||
<data>
|
||||
<int key="IBDocument.SystemTarget">1056</int>
|
||||
<string key="IBDocument.SystemVersion">10F569</string>
|
||||
<string key="IBDocument.InterfaceBuilderVersion">823</string>
|
||||
<string key="IBDocument.AppKitVersion">1038.29</string>
|
||||
<string key="IBDocument.HIToolboxVersion">461.00</string>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="NS.object.0">132</string>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
</object>
|
||||
<object class="NSArray" key="IBDocument.PluginDependencies">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="IBDocument.Metadata">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="NSArray" key="dict.sortedKeys" id="0">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBProxyObject" id="841351856">
|
||||
<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
|
||||
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
||||
</object>
|
||||
<object class="IBProxyObject" id="427554174">
|
||||
<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
|
||||
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
||||
</object>
|
||||
<object class="IBUICustomObject" id="664661524">
|
||||
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
||||
</object>
|
||||
<object class="IBUIWindow" id="117978783">
|
||||
<nil key="NSNextResponder"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrameSize">{768, 1024}</string>
|
||||
<object class="NSColor" key="IBUIBackgroundColor">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MC4wMDUxMDIwNDA4MTYgMC4wMDUxMDIwNDA4MTYgMC4wMDUxMDIwNDA4MTYAA</bytes>
|
||||
</object>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
||||
<bool key="IBUIResizesToFullScreen">YES</bool>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBObjectContainer" key="IBDocument.Objects">
|
||||
<object class="NSMutableArray" key="connectionRecords">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">delegate</string>
|
||||
<reference key="source" ref="841351856"/>
|
||||
<reference key="destination" ref="664661524"/>
|
||||
</object>
|
||||
<int key="connectionID">4</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">window</string>
|
||||
<reference key="source" ref="664661524"/>
|
||||
<reference key="destination" ref="117978783"/>
|
||||
</object>
|
||||
<int key="connectionID">15</int>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBMutableOrderedSet" key="objectRecords">
|
||||
<object class="NSArray" key="orderedObjects">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">0</int>
|
||||
<reference key="object" ref="0"/>
|
||||
<reference key="children" ref="1000"/>
|
||||
<nil key="parent"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">-1</int>
|
||||
<reference key="object" ref="841351856"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
<string key="objectName">File's Owner</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">3</int>
|
||||
<reference key="object" ref="664661524"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
<string key="objectName">activegs App Delegate</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">-2</int>
|
||||
<reference key="object" ref="427554174"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">12</int>
|
||||
<reference key="object" ref="117978783"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="flattenedProperties">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="NSArray" key="dict.sortedKeys">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>-1.CustomClassName</string>
|
||||
<string>-2.CustomClassName</string>
|
||||
<string>12.IBEditorWindowLastContentRect</string>
|
||||
<string>12.IBPluginDependency</string>
|
||||
<string>3.CustomClassName</string>
|
||||
<string>3.IBPluginDependency</string>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>UIApplication</string>
|
||||
<string>UIResponder</string>
|
||||
<string>{{525, 346}, {320, 480}}</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>activegsAppDelegate</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="unlocalizedProperties">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<reference key="dict.sortedKeys" ref="0"/>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
</object>
|
||||
</object>
|
||||
<nil key="activeLocalization"/>
|
||||
<object class="NSMutableDictionary" key="localizations">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<reference key="dict.sortedKeys" ref="0"/>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
</object>
|
||||
</object>
|
||||
<nil key="sourceID"/>
|
||||
<int key="maxID">16</int>
|
||||
</object>
|
||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIView</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBProjectSource</string>
|
||||
<string key="minorKey">../Common.iphone/GTMUIView+SubtreeDescription.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">activegsAppDelegate</string>
|
||||
<string key="superclassName">NSObject</string>
|
||||
<object class="NSMutableDictionary" key="outlets">
|
||||
<string key="NS.key.0">window</string>
|
||||
<string key="NS.object.0">UIWindow</string>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="toOneOutletInfosByName">
|
||||
<string key="NS.key.0">window</string>
|
||||
<object class="IBToOneOutletInfo" key="NS.object.0">
|
||||
<string key="name">window</string>
|
||||
<string key="candidateClassName">UIWindow</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBProjectSource</string>
|
||||
<string key="minorKey">../Common.iphone/activegsAppDelegate.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">activegsAppDelegate</string>
|
||||
<string key="superclassName">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBUserSource</string>
|
||||
<string key="minorKey"/>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">QuartzCore.framework/Headers/CAAnimation.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">QuartzCore.framework/Headers/CALayer.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">QuartzCore.framework/Headers/CIImageProvider.h</string>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<int key="IBDocument.localizationMode">0</int>
|
||||
<string key="IBDocument.TargetRuntimeIdentifier">IBIPadFramework</string>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
|
||||
<integer value="1056" key="NS.object.0"/>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
|
||||
<integer value="3100" key="NS.object.0"/>
|
||||
</object>
|
||||
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
|
||||
<string key="IBDocument.LastKnownRelativeProjectPath">../activegs_iphone2/activegs.xcodeproj</string>
|
||||
<int key="IBDocument.defaultPropertyAccessControl">3</int>
|
||||
<string key="IBCocoaTouchPluginVersion">132</string>
|
||||
</data>
|
||||
</archive>
|
418
Common.iphone/MainWindow.xib
Normal file
@ -0,0 +1,418 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
|
||||
<data>
|
||||
<int key="IBDocument.SystemTarget">1024</int>
|
||||
<string key="IBDocument.SystemVersion">10F569</string>
|
||||
<string key="IBDocument.InterfaceBuilderVersion">788</string>
|
||||
<string key="IBDocument.AppKitVersion">1038.29</string>
|
||||
<string key="IBDocument.HIToolboxVersion">461.00</string>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="NS.object.0">117</string>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
</object>
|
||||
<object class="NSArray" key="IBDocument.PluginDependencies">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="IBDocument.Metadata">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="NSArray" key="dict.sortedKeys" id="0">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBProxyObject" id="841351856">
|
||||
<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBProxyObject" id="427554174">
|
||||
<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBUICustomObject" id="664661524">
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBUIWindow" id="117978783">
|
||||
<reference key="NSNextResponder"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrameSize">{320, 480}</string>
|
||||
<reference key="NSSuperview"/>
|
||||
<reference key="NSWindow"/>
|
||||
<object class="NSColor" key="IBUIBackgroundColor">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MC4wMDUxMDIwNDA4MTYgMC4wMDUxMDIwNDA4MTYgMC4wMDUxMDIwNDA4MTYAA</bytes>
|
||||
</object>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBUICustomObject" id="6732122">
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBObjectContainer" key="IBDocument.Objects">
|
||||
<object class="NSMutableArray" key="connectionRecords">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">delegate</string>
|
||||
<reference key="source" ref="841351856"/>
|
||||
<reference key="destination" ref="664661524"/>
|
||||
</object>
|
||||
<int key="connectionID">4</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">window</string>
|
||||
<reference key="source" ref="664661524"/>
|
||||
<reference key="destination" ref="117978783"/>
|
||||
</object>
|
||||
<int key="connectionID">15</int>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBMutableOrderedSet" key="objectRecords">
|
||||
<object class="NSArray" key="orderedObjects">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">0</int>
|
||||
<reference key="object" ref="0"/>
|
||||
<reference key="children" ref="1000"/>
|
||||
<nil key="parent"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">-1</int>
|
||||
<reference key="object" ref="841351856"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
<string key="objectName">File's Owner</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">3</int>
|
||||
<reference key="object" ref="664661524"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
<string key="objectName">activegs App Delegate</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">-2</int>
|
||||
<reference key="object" ref="427554174"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">12</int>
|
||||
<reference key="object" ref="117978783"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">16</int>
|
||||
<reference key="object" ref="6732122"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="flattenedProperties">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="NSArray" key="dict.sortedKeys">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>-1.CustomClassName</string>
|
||||
<string>-2.CustomClassName</string>
|
||||
<string>12.IBEditorWindowLastContentRect</string>
|
||||
<string>12.IBPluginDependency</string>
|
||||
<string>16.CustomClassName</string>
|
||||
<string>16.IBPluginDependency</string>
|
||||
<string>3.CustomClassName</string>
|
||||
<string>3.IBPluginDependency</string>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<string>UIApplication</string>
|
||||
<string>UIResponder</string>
|
||||
<string>{{525, 346}, {320, 480}}</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>activegsAppDelegate</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string>activegsAppDelegate</string>
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="unlocalizedProperties">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<reference key="dict.sortedKeys" ref="0"/>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
</object>
|
||||
</object>
|
||||
<nil key="activeLocalization"/>
|
||||
<object class="NSMutableDictionary" key="localizations">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<reference key="dict.sortedKeys" ref="0"/>
|
||||
<object class="NSMutableArray" key="dict.values">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
</object>
|
||||
</object>
|
||||
<nil key="sourceID"/>
|
||||
<int key="maxID">16</int>
|
||||
</object>
|
||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIView</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBProjectSource</string>
|
||||
<string key="minorKey">../Common.iphone/GTMUIView+SubtreeDescription.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">activegsAppDelegate</string>
|
||||
<string key="superclassName">NSObject</string>
|
||||
<object class="NSMutableDictionary" key="outlets">
|
||||
<string key="NS.key.0">window</string>
|
||||
<string key="NS.object.0">UIWindow</string>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="toOneOutletInfosByName">
|
||||
<string key="NS.key.0">window</string>
|
||||
<object class="IBToOneOutletInfo" key="NS.object.0">
|
||||
<string key="name">window</string>
|
||||
<string key="candidateClassName">UIWindow</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBProjectSource</string>
|
||||
<string key="minorKey">../Common.iphone/activegsAppDelegate.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">activegsAppDelegate</string>
|
||||
<string key="superclassName">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBUserSource</string>
|
||||
<string key="minorKey"/>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">Foundation.framework/Headers/NSError.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">QuartzCore.framework/Headers/CAAnimation.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">QuartzCore.framework/Headers/CALayer.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">QuartzCore.framework/Headers/CIImageProvider.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UIAccessibility.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UINibLoading.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier" id="247981964">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UIResponder.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIApplication</string>
|
||||
<string key="superclassName">UIResponder</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UIApplication.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIResponder</string>
|
||||
<string key="superclassName">NSObject</string>
|
||||
<reference key="sourceIdentifier" ref="247981964"/>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UISearchBar</string>
|
||||
<string key="superclassName">UIView</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UISearchBar.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UISearchDisplayController</string>
|
||||
<string key="superclassName">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UISearchDisplayController.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIView</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UITextField.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIView</string>
|
||||
<string key="superclassName">UIResponder</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UIView.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIViewController</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UINavigationController.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIViewController</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UIPopoverController.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIViewController</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UISplitViewController.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIViewController</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UITabBarController.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIViewController</string>
|
||||
<string key="superclassName">UIResponder</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UIViewController.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">UIWindow</string>
|
||||
<string key="superclassName">UIView</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBFrameworkSource</string>
|
||||
<string key="minorKey">UIKit.framework/Headers/UIWindow.h</string>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<int key="IBDocument.localizationMode">0</int>
|
||||
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
|
||||
<integer value="1024" key="NS.object.0"/>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
|
||||
<integer value="3100" key="NS.object.0"/>
|
||||
</object>
|
||||
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
|
||||
<string key="IBDocument.LastKnownRelativeProjectPath">../ActiveBestOfFTA/activebestoffta.xcodeproj</string>
|
||||
<int key="IBDocument.defaultPropertyAccessControl">3</int>
|
||||
<string key="IBCocoaTouchPluginVersion">117</string>
|
||||
</data>
|
||||
</archive>
|
BIN
Common.iphone/Tab2GS.png
Normal file
After Width: | Height: | Size: 4.1 KiB |
BIN
Common.iphone/Tab2GS@2x.png
Normal file
After Width: | Height: | Size: 6.5 KiB |
BIN
Common.iphone/Tab2_32.png
Normal file
After Width: | Height: | Size: 2.8 KiB |
BIN
Common.iphone/TabFTA.png
Normal file
After Width: | Height: | Size: 3.4 KiB |
BIN
Common.iphone/TabFTA@2x.png
Normal file
After Width: | Height: | Size: 3.7 KiB |
BIN
Common.iphone/TabFTA_32.png
Normal file
After Width: | Height: | Size: 3.5 KiB |
BIN
Common.iphone/Tab][.png
Normal file
After Width: | Height: | Size: 3.8 KiB |
BIN
Common.iphone/Tab][@2x.png
Normal file
After Width: | Height: | Size: 5.6 KiB |
79
Common.iphone/UICustomKey.h
Normal file
@ -0,0 +1,79 @@
|
||||
/*
|
||||
ActiveGS, Copyright 2004-2016 Olivier Goguel, https://github.com/ogoguel/ActiveGS
|
||||
Based on Kegs, Copyright 2004 Kent Dickey, https://kegs.sourceforge.net
|
||||
This code is covered by the GNU GPL licence
|
||||
*/
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
|
||||
|
||||
enum enum_key_type
|
||||
{
|
||||
KEYTYPE_KEYBOARD=66,
|
||||
KEYTYPE_BUTTON
|
||||
|
||||
};
|
||||
|
||||
enum custom_align
|
||||
{
|
||||
LEFT_ALIGN = 0x100,
|
||||
RIGHT_ALIGN =0x200,
|
||||
SAME_LINE = 0x400,
|
||||
SAME_COL = 0x800,
|
||||
TOP_ALIGN = 0x1000,
|
||||
BOTTOM_ALIGN = 0x2000,
|
||||
BOTTOM_BORDER=0x4000,
|
||||
LEFT_BORDER=0x8000,
|
||||
RIGHT_BORDER =0x10000,
|
||||
VERTICAL_CENTER = 0x20000,
|
||||
LEFTCENTER_ALIGN = 0x40000,
|
||||
MIDDLE_BOTTOM = 0x80000
|
||||
|
||||
|
||||
};
|
||||
|
||||
struct key_type
|
||||
{
|
||||
enum enum_key_type type;
|
||||
NSString* str;
|
||||
int code;
|
||||
|
||||
int status;
|
||||
int halign;
|
||||
int valign;
|
||||
int mode;
|
||||
int vfactor;
|
||||
int hfactor;
|
||||
UILabel* view;
|
||||
UIColor* bgcolor_off;
|
||||
UIColor* bgcolor_on;
|
||||
UIColor* bgcolor_over;
|
||||
key_type()
|
||||
{
|
||||
mode = 0;
|
||||
bgcolor_on = [UIColor colorWithRed:0.5f green:0.5f blue:0.5f alpha:0.5f];
|
||||
bgcolor_off = [UIColor colorWithRed:0.5f green:0.5f blue:0.5f alpha:0.0f];
|
||||
bgcolor_over = [UIColor colorWithRed:0.8f green:0.8f blue:0.8f alpha:0.5f];
|
||||
vfactor=1;
|
||||
hfactor=1;
|
||||
};
|
||||
} ;
|
||||
|
||||
#define MAX_CUSTOM_KEYS 32
|
||||
extern key_type custom_keys[MAX_CUSTOM_KEYS];
|
||||
extern void show_custom_keys(CGRect _rv, int _mode,int _centery);
|
||||
//extern void hide_custom_keys();
|
||||
extern void fade_custom_keys(float _alpha);
|
||||
extern void init_custom_keys();
|
||||
|
||||
extern void touch_begin_custom_key(CGPoint p,int nbtap);
|
||||
extern void touch_end_custom_key();
|
||||
extern void toggle_custom_keys(int _mode, int _hide);
|
||||
|
||||
extern float CUSTOM_KEY_WIDTH ;
|
||||
extern float CUSTOM_KEY_HEIGHT ;
|
||||
|
||||
@interface UICustomKey : UIView
|
||||
|
||||
@end
|
370
Common.iphone/UICustomKey.mm
Normal file
@ -0,0 +1,370 @@
|
||||
/*
|
||||
ActiveGS, Copyright 2004-2016 Olivier Goguel, https://github.com/ogoguel/ActiveGS
|
||||
Based on Kegs, Copyright 2004 Kent Dickey, https://kegs.sourceforge.net
|
||||
This code is covered by the GNU GPL licence
|
||||
*/
|
||||
|
||||
#include "activegsAppDelegate.h"
|
||||
#include"../ActiveGS_Karateka/KaratekaKBDController.h"
|
||||
#import "UICustomKey.h"
|
||||
|
||||
|
||||
|
||||
@implementation UICustomKey
|
||||
|
||||
- (id)initWithFrame:(CGRect)frame
|
||||
{
|
||||
self = [super initWithFrame:frame];
|
||||
if (self) {
|
||||
// Initialization code
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
|
||||
@end
|
||||
|
||||
#define CUSTOM_KEY_WIDTH_DEFAULT 64.0f
|
||||
#define CUSTOM_KEY_HEIGHT_DEFAULT 64.0f
|
||||
|
||||
float CUSTOM_KEY_WIDTH ;
|
||||
float CUSTOM_KEY_HEIGHT ;
|
||||
|
||||
int nb_custom_keys = 0;
|
||||
key_type custom_keys[MAX_CUSTOM_KEYS];
|
||||
|
||||
|
||||
void init_custom_keys()
|
||||
{
|
||||
custom_keys[0].mode = INPUTMODE_LEFTRIGHTKEY;
|
||||
custom_keys[0].str = @"←";
|
||||
custom_keys[0].code = 0x3B;
|
||||
custom_keys[0].halign = LEFT_BORDER ;
|
||||
// custom_keys[0].valign = MIDDLE_BOTTOM+ 3 ;
|
||||
custom_keys[0].valign = SAME_LINE + 4 ;
|
||||
custom_keys[0].hfactor = 1 ;
|
||||
|
||||
|
||||
|
||||
custom_keys[1].mode = INPUTMODE_LEFTRIGHTKEY;
|
||||
custom_keys[1].str = @"→";
|
||||
custom_keys[1].code = 0x3C;
|
||||
custom_keys[1].halign = LEFT_ALIGN + 0;
|
||||
custom_keys[1].valign = SAME_LINE + 0;
|
||||
custom_keys[1].hfactor = 1 ;
|
||||
|
||||
custom_keys[8].mode = INPUTMODE_LEFTRIGHTKEY;
|
||||
custom_keys[8].str = @"SPC";
|
||||
custom_keys[8].code = 0x31;
|
||||
custom_keys[8].halign = LEFT_BORDER /*LEFTCENTER_ALIGN*/ + 0;
|
||||
custom_keys[8].valign = TOP_ALIGN + 0;
|
||||
// custom_keys[8].valign = BOTTOM_ALIGN + 0;
|
||||
custom_keys[8].hfactor = 2 ;
|
||||
|
||||
|
||||
|
||||
custom_keys[2].mode = INPUTMODE_PUNCHKEY + INPUTMODE_PUNCHLEFTRIGHT;
|
||||
custom_keys[2].str = @"W"; //@"Q";
|
||||
custom_keys[2].halign = RIGHT_ALIGN + RIGHT_BORDER;
|
||||
custom_keys[2].valign = TOP_ALIGN + 3;
|
||||
custom_keys[2].code = 0x0D; //0x0C;
|
||||
|
||||
custom_keys[3].mode = INPUTMODE_PUNCHKEY + INPUTMODE_PUNCHLEFTRIGHT;
|
||||
custom_keys[3].str = @"S"; //@"A";
|
||||
custom_keys[3].halign = RIGHT_ALIGN + RIGHT_BORDER;
|
||||
custom_keys[3].valign = VERTICAL_CENTER;
|
||||
custom_keys[3].code = 0x01; //0x00;
|
||||
|
||||
custom_keys[4].mode = INPUTMODE_PUNCHKEY + INPUTMODE_PUNCHLEFTRIGHT;
|
||||
custom_keys[4].str = @"X"; //@"Z";
|
||||
custom_keys[4].halign = RIGHT_ALIGN + RIGHT_BORDER;
|
||||
custom_keys[4].valign = BOTTOM_ALIGN +3;
|
||||
custom_keys[4].code = 0x07; //0x06;
|
||||
|
||||
custom_keys[5].mode = INPUTMODE_PUNCHKEY ;
|
||||
custom_keys[5].str = @"Q"; //@"W";
|
||||
custom_keys[5].code = 0x0C; //0x0D;
|
||||
custom_keys[5].halign = RIGHT_ALIGN + 2;
|
||||
custom_keys[5].valign = SAME_LINE + 2;
|
||||
|
||||
|
||||
custom_keys[6].mode = INPUTMODE_PUNCHKEY ;
|
||||
custom_keys[6].str = @"A"; //@"S";
|
||||
custom_keys[6].code = 0x00; //0x01;
|
||||
custom_keys[6].halign = SAME_COL + 5;
|
||||
custom_keys[6].valign = BOTTOM_ALIGN + 5;
|
||||
|
||||
|
||||
custom_keys[7].mode = INPUTMODE_PUNCHKEY ;
|
||||
custom_keys[7].str = @"Z"; //@"X";
|
||||
custom_keys[7].code = 0x06; //0x07;
|
||||
custom_keys[7].halign = SAME_COL + 6;
|
||||
custom_keys[7].valign = BOTTOM_ALIGN + 6;
|
||||
|
||||
custom_keys[9].mode = INPUTMODE_SPACEKEY ;
|
||||
custom_keys[9].str = @"SPC";
|
||||
custom_keys[9].code = 0x31;
|
||||
custom_keys[9].halign = RIGHT_ALIGN + RIGHT_BORDER;
|
||||
custom_keys[9].valign = VERTICAL_CENTER;
|
||||
custom_keys[9].vfactor = 2;
|
||||
custom_keys[9].hfactor = 2;
|
||||
|
||||
custom_keys[10].mode = INPUTMODE_PUNCHLEFTRIGHT ;
|
||||
custom_keys[10].str = @"W";
|
||||
custom_keys[10].code = 0x0D;
|
||||
custom_keys[10].halign = LEFT_ALIGN + LEFT_BORDER;
|
||||
custom_keys[10].valign = SAME_LINE + 2;
|
||||
|
||||
|
||||
custom_keys[11].mode = INPUTMODE_PUNCHLEFTRIGHT ;
|
||||
custom_keys[11].str = @"S";
|
||||
custom_keys[11].code = 0x01;
|
||||
custom_keys[11].halign = LEFT_ALIGN + LEFT_BORDER;
|
||||
custom_keys[11].valign = BOTTOM_ALIGN + 5;
|
||||
|
||||
|
||||
custom_keys[12].mode = INPUTMODE_PUNCHLEFTRIGHT ;
|
||||
custom_keys[12].str = @"X";
|
||||
custom_keys[12].code = 0x07;
|
||||
custom_keys[12].halign = LEFT_ALIGN + LEFT_BORDER;
|
||||
custom_keys[12].valign = BOTTOM_ALIGN + 6;
|
||||
|
||||
nb_custom_keys = 13;
|
||||
|
||||
float res = [pManager resolutionRatio];
|
||||
CUSTOM_KEY_HEIGHT = CUSTOM_KEY_HEIGHT_DEFAULT*res;
|
||||
CUSTOM_KEY_WIDTH = CUSTOM_KEY_WIDTH_DEFAULT*res;
|
||||
|
||||
|
||||
for (int i=0;i<nb_custom_keys;i++)
|
||||
{
|
||||
//if (custom_keys[i].enabled)
|
||||
{
|
||||
UILabel* v = [[UILabel alloc]initWithFrame:CGRectMake(-1,-1,
|
||||
CUSTOM_KEY_WIDTH*custom_keys[i].hfactor-2.0,
|
||||
CUSTOM_KEY_HEIGHT*custom_keys[i].vfactor-2.0)];
|
||||
// v.text = custom_keys[i].str;
|
||||
v.backgroundColor = custom_keys[i].bgcolor_off;
|
||||
v.layer.borderColor = custom_keys[i].bgcolor_on.CGColor;
|
||||
v.layer.borderWidth = 1.0;
|
||||
// v.textColor = [UIColor redColor];
|
||||
KBDController *pKbd = [pManager getEmulatorView].kbdc;
|
||||
v.textAlignment = UITextAlignmentCenter;
|
||||
[v.layer setCornerRadius:6];
|
||||
[pKbd.view addSubview:v];
|
||||
custom_keys[i].view=v;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void fade_custom_keys(float _alpha)
|
||||
{
|
||||
for(int i=0;i<nb_custom_keys;i++)
|
||||
{
|
||||
if (custom_keys[i].view)
|
||||
custom_keys[i].view.alpha = _alpha;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void touch_begin_custom_key(CGPoint p, int nbtap)
|
||||
{
|
||||
for(int i=0;i<nb_custom_keys;i++)
|
||||
{
|
||||
UILabel* v = custom_keys[i].view;
|
||||
if (custom_keys[i].view.hidden == true )
|
||||
continue;
|
||||
|
||||
CGRect r =v.frame;
|
||||
if (CGRectContainsPoint(r,p))
|
||||
{
|
||||
// j'interromps le déplacement
|
||||
if (inputMode & INPUTMODE_PAD)
|
||||
{
|
||||
setLeft(UP);
|
||||
setRight(UP);
|
||||
}
|
||||
|
||||
int code = custom_keys[i].code & 0xFF;
|
||||
// printf("code %x down nbtap:%d\n",code,nbtap);
|
||||
|
||||
|
||||
if (nbtap==2 && inputMode & INPUTMODE_BOWONDOUBLETAP)
|
||||
{
|
||||
if ( is_player_standing() || is_player_about_to_stand() )
|
||||
{
|
||||
// printf("about to bow\n");
|
||||
setSpace(UP);
|
||||
setB(DOWN); // Up is automatic
|
||||
continue ;
|
||||
}
|
||||
}
|
||||
|
||||
if (code==0x31)
|
||||
setSpace(DOWN);
|
||||
else
|
||||
add_event_key(code ,0);
|
||||
|
||||
// v.backgroundColor = custom_keys[i].bgcolor_over;
|
||||
v.layer.borderColor = custom_keys[i].bgcolor_over.CGColor;
|
||||
custom_keys[i].status = 1;
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void touch_end_custom_key()
|
||||
{
|
||||
for(int i=0;i<nb_custom_keys;i++)
|
||||
{
|
||||
if (!custom_keys[i].status )
|
||||
continue;
|
||||
|
||||
[UIView beginAnimations:nil context:NULL];
|
||||
[UIView setAnimationDuration:0.2];
|
||||
// custom_keys[i].view.backgroundColor=custom_keys[i].bgcolor_off;
|
||||
custom_keys[i].view.layer.borderColor = custom_keys[i].bgcolor_on.CGColor;
|
||||
[UIView commitAnimations];
|
||||
|
||||
int code = custom_keys[i].code & 0xFF;
|
||||
|
||||
if (code==0x31)
|
||||
setSpace(UP);
|
||||
else
|
||||
add_event_key(code,1);
|
||||
|
||||
custom_keys[i].status = 0;
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void toggle_custom_keys(int _mode, int _hide)
|
||||
{
|
||||
for(int i=0;i<nb_custom_keys;i++)
|
||||
{
|
||||
if (custom_keys[i].mode & _mode)
|
||||
custom_keys[i].view.hidden = _hide;
|
||||
}
|
||||
}
|
||||
|
||||
void show_custom_keys(CGRect _rv, int _mode, int _centery)
|
||||
{
|
||||
|
||||
// KBDController *pKbd = [pManager getEmulatorView].kbdc;
|
||||
CGSize screen = _rv.size;
|
||||
|
||||
// reset la position
|
||||
|
||||
for(int i=0;i<nb_custom_keys;i++)
|
||||
{
|
||||
if (!(custom_keys[i].mode & _mode))
|
||||
custom_keys[i].view.hidden = true;
|
||||
else
|
||||
custom_keys[i].view.hidden = false;
|
||||
|
||||
|
||||
UILabel* v = custom_keys[i].view;
|
||||
CGRect r = v.frame;
|
||||
r.origin.x = -1;
|
||||
r.origin.y = -1;
|
||||
[v setFrame:r];
|
||||
}
|
||||
|
||||
|
||||
int done;
|
||||
do
|
||||
{
|
||||
done = 1;
|
||||
|
||||
for(int i=0;i<nb_custom_keys;i++)
|
||||
{
|
||||
/*
|
||||
if (!(custom_keys[i].mode & _mode))
|
||||
continue;
|
||||
*/
|
||||
|
||||
UILabel* v = custom_keys[i].view;
|
||||
CGRect r = v.frame;
|
||||
if (r.origin.x != -1 && r.origin.y != -1 )
|
||||
continue;
|
||||
|
||||
float refx=-1;
|
||||
float refy=-1;
|
||||
|
||||
int ihref = -1;
|
||||
if (custom_keys[i].halign & LEFT_BORDER)
|
||||
refx = 0;
|
||||
else
|
||||
if (custom_keys[i].halign & RIGHT_BORDER)
|
||||
refx = screen.width;
|
||||
else
|
||||
{
|
||||
ihref= custom_keys[i].halign&0xFF;
|
||||
refx = custom_keys[ihref].view.frame.origin.x;
|
||||
}
|
||||
|
||||
int ivref = -1;
|
||||
if (custom_keys[i].valign & BOTTOM_BORDER)
|
||||
refy = screen.height;
|
||||
else
|
||||
if (custom_keys[i].valign & VERTICAL_CENTER)
|
||||
{
|
||||
refy = _centery - CUSTOM_KEY_HEIGHT*custom_keys[i].vfactor/2;
|
||||
/*
|
||||
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
|
||||
refy = screen.height ;
|
||||
else
|
||||
refy = (screen.height - CUSTOM_KEY_HEIGHT*custom_keys[i].vfactor)/2;
|
||||
*/
|
||||
}
|
||||
else
|
||||
{
|
||||
ivref= custom_keys[i].valign&0xFF;
|
||||
refy = custom_keys[ivref].view.frame.origin.y;
|
||||
}
|
||||
|
||||
if (custom_keys[i].halign & LEFT_ALIGN && refx!=-1)
|
||||
refx += CUSTOM_KEY_WIDTH*custom_keys[ihref].hfactor;
|
||||
|
||||
if (custom_keys[i].halign & LEFTCENTER_ALIGN && refx!=-1)
|
||||
refx += CUSTOM_KEY_WIDTH*custom_keys[ihref].hfactor*0.5;
|
||||
|
||||
if (custom_keys[i].halign & RIGHT_ALIGN && refx!=-1)
|
||||
refx -= CUSTOM_KEY_WIDTH*custom_keys[i].hfactor;
|
||||
|
||||
if (custom_keys[i].valign & TOP_ALIGN && refy!=-1)
|
||||
refy -= CUSTOM_KEY_HEIGHT*custom_keys[i].vfactor;
|
||||
if (custom_keys[i].valign & BOTTOM_ALIGN && refy!=-1)
|
||||
refy += CUSTOM_KEY_HEIGHT*custom_keys[ivref].vfactor;
|
||||
if (custom_keys[i].valign & MIDDLE_BOTTOM && refy!=-1)
|
||||
refy += CUSTOM_KEY_HEIGHT*custom_keys[ivref].vfactor/2;
|
||||
|
||||
int mod=0;
|
||||
if (refx!=-1 && r.origin.x ==-1)
|
||||
{
|
||||
mod = 1;
|
||||
r.origin.x = refx;
|
||||
}
|
||||
|
||||
if (refy!=-1 && r.origin.y ==-1)
|
||||
{
|
||||
mod = 1;
|
||||
r.origin.y = refy;
|
||||
}
|
||||
|
||||
if ( mod )
|
||||
{
|
||||
// NSLog(@"key:%d ->x:%f, y:%f",i,refx,refy);
|
||||
[v setFrame:r];
|
||||
}
|
||||
|
||||
done = 0;
|
||||
}
|
||||
}
|
||||
while (!done);
|
||||
|
||||
}
|
181
Common.iphone/activegsAppDelegate.h
Normal file
@ -0,0 +1,181 @@
|
||||
/*
|
||||
ActiveGS, Copyright 2004-2016 Olivier Goguel, https://github.com/ogoguel/ActiveGS
|
||||
Based on Kegs, Copyright 2004 Kent Dickey, https://kegs.sourceforge.net
|
||||
This code is covered by the GNU GPL licence
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import <QuartzCore/CAAnimation.h>
|
||||
#include "../Common.osx/CEmulatorCtrlMac.h"
|
||||
|
||||
#define IPHONETHUMB "thumb"
|
||||
|
||||
#ifdef USE_CAPPTAIN
|
||||
#import "../Libraries/CapptainSDK/Headers/CapptainAgent.h"
|
||||
#import "../Libraries/CapptainSDK/Headers/CapptainViewController.h"
|
||||
#define UIVIEWCONTROLLERROOT CapptainViewController
|
||||
#else
|
||||
#define UIVIEWCONTROLLERROOT UIViewController
|
||||
#endif
|
||||
|
||||
@interface ActiveGSBaseViewController : UIViewController
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
//- (void) update;
|
||||
@end
|
||||
|
||||
|
||||
//#import "activegsList.h"
|
||||
#import "activegsEmulatorController.h"
|
||||
|
||||
|
||||
//#import "activegsViewController.h"
|
||||
#import "infoViewController.h"
|
||||
#import "detailViewController.h"
|
||||
|
||||
#ifdef USE_GOOGLEANALYTICS
|
||||
#import "../Libraries/GoogleAnalytics/GAI.h"
|
||||
#endif
|
||||
|
||||
|
||||
#import "activeGSViewController.h"
|
||||
#define ACTIVEGS_LAUNCHVIEWCONTROLLER activegsViewController
|
||||
|
||||
#ifdef BESTOFFTA
|
||||
#define ACTIVEGS_TITLE "ActiveGS - Best Of FTA"
|
||||
#define ACTIVEGS_CAPPTAINAPP "act384142"
|
||||
#define ACTIVEGS_CAPPTAINKEY "376e71d41db2422c88e1486a8a31e25b"
|
||||
#define ACTIVEGS_BACKGROUNDIMAGE "Default"
|
||||
#define ACTIVEGS_FIRSTTABLIST "list"
|
||||
#define ACTIVEGS_FIRSTTABTITLE "Best Of FTA"
|
||||
#define ACTIVEGS_FIRSTTABTRACKER "BestOfFta"
|
||||
#define ACTIVEGS_FIRSTTABICON "BestOfFta"
|
||||
#define ACTIVEGS_SINGLETAB // Une seule liste sera affichée
|
||||
#define ACTIVEGS_IMAGEREQUIRED // On ne peut pas lancer l'émulateur sans image
|
||||
#define ACTIVEGS_NOAPPLEBRANDING // Eliminer les logos Apple 2 & Apple 2GS
|
||||
#define ACTIVEGS_NOHARDWAREKEYBOARDETECTION // Pour passer la soumission Appstore
|
||||
#define ACTIVEGS_NOTIFICATION
|
||||
#define HANDLE_URL
|
||||
|
||||
#elif ACTIVEGSKARATEKA
|
||||
#error unsupported
|
||||
|
||||
#elif BESTOF
|
||||
#define ACTIVEGS_TITLE "ActiveGS - BestOf"
|
||||
#define ACTIVEGS_CAPPTAINAPP "act037442"
|
||||
#define ACTIVEGS_CAPPTAINKEY "881708d1abb44dbb97fcb0620b3f4ef0"
|
||||
#define ACTIVEGS_BACKGROUNDIMAGE "karatekalaunch"
|
||||
#define ACTIVEGS_FIRSTTABLIST "bestof"
|
||||
#define ACTIVEGS_FIRSTTABTITLE "Jordan's"
|
||||
#define ACTIVEGS_FIRSTTABICON "Tab2GS"
|
||||
#define ACTIVEGS_FIRSTTABTRACKER "JM"
|
||||
|
||||
#else
|
||||
// Default ACTIVEGS
|
||||
#define ACTIVEGS_TITLE "ActiveGS"
|
||||
#define ACTIVEGS_CAPTAINAPP "act651309"
|
||||
#define ACTIVEGS_CAPTAINKEY "26ae7a388bf74c8c993d78bebb63fc41"
|
||||
#undef ACTIVEGS_BACKGROUNDIMAGE
|
||||
#define ACTIVEGS_ENABLE_DOCUMENT
|
||||
#define ACTIVEGS_NOTIFICATION
|
||||
//#define ACTIVEGS_MANUAL_ROM
|
||||
#define ACTIVEGS_SAVELASTTAB
|
||||
#define ACTIVEGS_FIRSTTABLIST "list"
|
||||
#define ACTIVEGS_FIRSTTABTITLE "Best Of FTA"
|
||||
#define ACTIVEGS_FIRSTTABTRACKER "BestOfFta"
|
||||
#define ACTIVEGS_FIRSTTABICON "TabFTA"
|
||||
#define HANDLE_URL
|
||||
#define ACTIVEGS_NOHARDWAREKEYBOARDETECTION // Pour passer la soumission Appstore
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#define BARVIEW_HEIGHT 44
|
||||
|
||||
//extern UIView* backgroundView;
|
||||
//extern UIImageView* backgroundImageView;
|
||||
|
||||
extern CEmulatorMac* pMac;
|
||||
extern CEmulatorConfig config;
|
||||
|
||||
enum machineSpecsEnum
|
||||
{
|
||||
SPEC_DEFAULT=0,
|
||||
FPS_60HZ = 1,
|
||||
AUDIO_44KHZ = 2
|
||||
};
|
||||
|
||||
extern enum machineSpecsEnum machineSpecs;
|
||||
|
||||
@interface activegsAppDelegate : NSObject <UIApplicationDelegate,UIAlertViewDelegate> {
|
||||
UIWindow *_window;
|
||||
UIWindow *_secondaryWindow;
|
||||
|
||||
UILabel* _notificationView;
|
||||
UIViewController* _primaryViewController ;
|
||||
UIViewController* _secondaryViewController ;
|
||||
UIView* _backgroundView;
|
||||
UIImageView* _backgroundImageView ;
|
||||
|
||||
|
||||
//controllers
|
||||
activegsEmulatorController* _emulatorController;
|
||||
ACTIVEGS_LAUNCHVIEWCONTROLLER* _viewController;
|
||||
infoViewController* _infoController;
|
||||
detailViewController* _detailController ;
|
||||
float _currentRawReading;
|
||||
float _dpiRatio ;
|
||||
float _resolutionRatio;
|
||||
NSTimer* _notificationTimer;
|
||||
UIScreen* _secondaryScreen;
|
||||
UIScreen* _primaryScreen;
|
||||
UIDeviceOrientation curOrientation;
|
||||
@public
|
||||
MyString firstTabXML;
|
||||
#ifdef USE_GOOGLEANALYTICS
|
||||
id<GAITracker> GAITrackerActiveGS;
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
|
||||
- (void) screenDidConnect:(NSNotification *)notification;
|
||||
-(void) initSecondaryScreen:(UIScreen*) _screen;
|
||||
-(bool) hasSecondary;
|
||||
-(void)setSecondaryInputMode;
|
||||
|
||||
|
||||
- (void) doStateChange:(UIViewController*)_viewController type:(NSString*)_type sens:(NSString*)_sens;
|
||||
-(void)launchDiskImage:(ActiveGSElement*)_element pathname:(const char*)_pathname trackername:(const char*)_trackername;
|
||||
- (void) didRotate:(NSNotification *)notification;
|
||||
-(void)firstLaunch:(NSTimer*)timer;
|
||||
-(void)setNotificationText:(NSString*) _text;
|
||||
-(void)updateNotificationView:(CGRect) newRect;
|
||||
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation;
|
||||
@property(nonatomic,retain,getter=getEmulatorView) activegsEmulatorController* emulatorController;
|
||||
@property(nonatomic,retain,getter=getBrowserView) ACTIVEGS_LAUNCHVIEWCONTROLLER* viewController;
|
||||
@property(nonatomic,retain,getter=getInfoView) infoViewController* infoController;
|
||||
@property(nonatomic,retain,getter=getDetailView) detailViewController* detailController;
|
||||
@property(nonatomic,retain) UIViewController* primaryViewController;
|
||||
@property(nonatomic,retain) UIViewController* secondaryViewController;
|
||||
@property(nonatomic,retain) UIView* backgroundView;
|
||||
@property(nonatomic,retain) UIImageView* backgroundImageView ;
|
||||
@property(nonatomic,retain) UIScreen* secondaryScreen ;
|
||||
@property(nonatomic,retain) UIScreen* primaryScreen ;
|
||||
|
||||
@property(nonatomic,retain) NSTimer* notificationTimer;
|
||||
@property(nonatomic,retain) UILabel* notificationView;
|
||||
@property(assign,getter=getAngle) float currentRawReading;
|
||||
@property (nonatomic, retain)/* IBOutlet*/ UIWindow *window;
|
||||
@property (nonatomic, retain) UIWindow *secondaryWindow;
|
||||
@property(assign) float dpiRatio;
|
||||
@property(assign) float resolutionRatio;
|
||||
|
||||
@end
|
||||
|
||||
|
||||
extern activegsAppDelegate* pManager;
|
902
Common.iphone/activegsAppDelegate.mm
Normal file
@ -0,0 +1,902 @@
|
||||
/*
|
||||
ActiveGS, Copyright 2004-2016 Olivier Goguel, https://github.com/ogoguel/ActiveGS
|
||||
Based on Kegs, Copyright 2004 Kent Dickey, https://kegs.sourceforge.net
|
||||
This code is covered by the GNU GPL licence
|
||||
*/
|
||||
|
||||
#import "activegsAppDelegate.h"
|
||||
#include "../Common/svnversion.h"
|
||||
#include "../Kegs/Src/adb.h"
|
||||
#include "../Kegs/Src/sim65816.h"
|
||||
#include "../Kegs/Src/driver.h"
|
||||
#include "../Common/ki.h"
|
||||
#import <AudioToolbox/AudioToolbox.h>
|
||||
#include "asynccommand.h"
|
||||
#import <sys/utsname.h>
|
||||
|
||||
// Application Singleton
|
||||
activegsAppDelegate* pManager = nil;
|
||||
|
||||
//int runningOnIOS_3_2 = 0;
|
||||
enum machineSpecsEnum machineSpecs = SPEC_DEFAULT;
|
||||
|
||||
CEmulatorMac* pMac = NULL;
|
||||
CEmulatorConfig config;
|
||||
|
||||
|
||||
#ifdef _DEBUG
|
||||
// #define TEST_HANDLE_URL
|
||||
#endif
|
||||
|
||||
#define ENABLE_AIRPLAY
|
||||
|
||||
MyString resourcesPath;
|
||||
|
||||
int padAlreadyDisplayedOnce = 0;
|
||||
|
||||
|
||||
// mets à jour le framerate
|
||||
extern char estimatedSpeed[256];
|
||||
extern int getFrameRate(int _id);
|
||||
void x_update_framerate()
|
||||
{
|
||||
char str[256];
|
||||
sprintf(str,"req:%d fps:%d speed:%s",getFrameRate(1),getFrameRate(0),estimatedSpeed);
|
||||
[[pManager getEmulatorView].kbdc setDebugIndicatorText:str];
|
||||
}
|
||||
|
||||
|
||||
|
||||
void activegs_apply_default_options(void* _config)
|
||||
{
|
||||
namevalue* options = ((COption*)_config)->options;
|
||||
|
||||
if (machineSpecs & FPS_60HZ)
|
||||
options[OPTION_FRAMERATE].intvalue = 60;
|
||||
else
|
||||
options[OPTION_FRAMERATE].intvalue = 20;
|
||||
|
||||
|
||||
if (machineSpecs & AUDIO_44KHZ)
|
||||
options[OPTION_AUDIORATE].intvalue = 44100;
|
||||
else
|
||||
options[OPTION_AUDIORATE].intvalue = 22050;
|
||||
|
||||
}
|
||||
|
||||
|
||||
void x_notify_eject()
|
||||
{
|
||||
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
|
||||
[[pManager getEmulatorView].kbdc performSelectorOnMainThread:@selector(animateDiskEjection:) withObject:nil waitUntilDone:NO];
|
||||
[pool release];
|
||||
|
||||
}
|
||||
|
||||
void x_set_video_fx(videofxenum _vfx)
|
||||
{
|
||||
[pManager getEmulatorView].zv.crt.hidden = (_vfx==VIDEOFX_CRT?0:1);
|
||||
}
|
||||
|
||||
|
||||
void x_notify_paddle(int _on)
|
||||
{
|
||||
|
||||
// only once per view
|
||||
if (padAlreadyDisplayedOnce)
|
||||
return;
|
||||
|
||||
printf("x_notify_paddle");
|
||||
padAlreadyDisplayedOnce = 1;
|
||||
|
||||
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
|
||||
[[pManager getEmulatorView].kbdc performSelectorOnMainThread:@selector(notifyPaddle:) withObject:nil waitUntilDone:NO];
|
||||
[pool release];
|
||||
|
||||
}
|
||||
|
||||
|
||||
void x_notify_download_failure(const char*_url)
|
||||
{
|
||||
printf("download failed : %s\n",_url);
|
||||
x_display_alert(0,"Downloading Failed" ,"Check your Internet Connection!");
|
||||
}
|
||||
|
||||
void x_loadinginprogress(int _on,int _s,int _d)
|
||||
{
|
||||
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
|
||||
|
||||
|
||||
_d --;
|
||||
int param = (_s==5 ? _d : _d +2 );
|
||||
if (_on) param |= 0x80;
|
||||
|
||||
NSNumber* b = [NSNumber numberWithInt:param] ;
|
||||
[[pManager getEmulatorView].kbdc performSelectorOnMainThread:@selector(setLoading:) withObject:b waitUntilDone:NO];
|
||||
[pool release];
|
||||
}
|
||||
|
||||
void x_refresh_panel(int _panel)
|
||||
{
|
||||
if (!_panel & PANEL_RUNTIME) return ;
|
||||
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
|
||||
[[pManager getEmulatorView].kbdc performSelectorOnMainThread:@selector(refreshControls:) withObject:nil waitUntilDone:NO];
|
||||
[pool release];
|
||||
}
|
||||
|
||||
void x_downloadinginprogress(int _percent)
|
||||
{
|
||||
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
|
||||
|
||||
NSNumber* b = [NSNumber numberWithInt:_percent];
|
||||
[[pManager getEmulatorView].kbdc performSelectorOnMainThread:@selector(setDownLoading:) withObject:b waitUntilDone:NO];
|
||||
[pool release];
|
||||
}
|
||||
|
||||
int alertAbort;
|
||||
MyString alertTitle;
|
||||
MyString alertMessage;
|
||||
|
||||
|
||||
|
||||
|
||||
void x_init_persistent_path(MyString& hp)
|
||||
{
|
||||
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
|
||||
|
||||
NSArray *paths= NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
|
||||
NSString *dir = [paths objectAtIndex:0];
|
||||
const char *bar = [dir UTF8String];
|
||||
CFStringRef sd = __CFStringMakeConstantString(bar);
|
||||
hp= CFStringGetCStringPtr(sd,CFStringGetSystemEncoding());
|
||||
|
||||
[pool release];
|
||||
}
|
||||
|
||||
|
||||
@implementation ActiveGSBaseViewController
|
||||
@end
|
||||
|
||||
|
||||
@implementation activegsAppDelegate
|
||||
|
||||
@synthesize emulatorController = _emulatorController;
|
||||
@synthesize viewController = _viewController;
|
||||
@synthesize infoController = _infoController;
|
||||
@synthesize detailController = _detailController;
|
||||
@synthesize currentRawReading = _currentRawReading;
|
||||
@synthesize window = _window;
|
||||
@synthesize secondaryWindow = _secondaryWindow;
|
||||
@synthesize dpiRatio = _dpiRatio;
|
||||
@synthesize resolutionRatio = _resolutionRatio;
|
||||
@synthesize notificationTimer = _notificationTimer;
|
||||
@synthesize notificationView = _notificationView;
|
||||
@synthesize primaryViewController = _primaryViewController;
|
||||
@synthesize secondaryViewController = _secondaryViewController;
|
||||
@synthesize primaryScreen = _primaryScreen;
|
||||
@synthesize secondaryScreen = _secondaryScreen;
|
||||
@synthesize backgroundView = _backgroundView;
|
||||
@synthesize backgroundImageView = _backgroundImageView;
|
||||
|
||||
|
||||
- (void)displayAlert:(id)sender {
|
||||
|
||||
NSString* strMsg = [NSString stringWithUTF8String:alertMessage.c_str()];
|
||||
NSString* strTitle = [NSString stringWithUTF8String:alertTitle.c_str()];
|
||||
|
||||
UIAlertView *alert = [[[UIAlertView alloc] initWithTitle:strTitle message:strMsg delegate:self cancelButtonTitle:@"Done" otherButtonTitles:nil] autorelease];
|
||||
[alert show];
|
||||
}
|
||||
|
||||
- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex
|
||||
{
|
||||
if (!alertAbort)
|
||||
return ;
|
||||
|
||||
// quite l'émulateur & revient au menu principal
|
||||
if (pMac)
|
||||
{
|
||||
delete pMac;
|
||||
pMac = NULL;
|
||||
}
|
||||
[self doStateChange:[self getBrowserView] type:kCATransitionPush sens:kCATransitionFromRight];
|
||||
}
|
||||
|
||||
|
||||
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
|
||||
{
|
||||
CDownload::initPersistentPath();
|
||||
|
||||
MyString dir ;
|
||||
dir = CDownload::getPersistentPath();
|
||||
dir += ACTIVEGS_DIRECTORY_SEPARATOR;
|
||||
dir += IPHONETHUMB;
|
||||
CDownload::createDirectory(dir.c_str());
|
||||
|
||||
|
||||
NSString* resource = [[NSBundle mainBundle] pathForResource:@ACTIVEGS_FIRSTTABLIST ofType:@"activegsxml"] ;
|
||||
self->firstTabXML = [resource UTF8String];
|
||||
|
||||
#define THEVER "/"ACTIVEGS_TITLE "_" TOSTRING(ACTIVEGSMAJOR) "." TOSTRING(ACTIVEGSMINOR) "." TOSTRING(ACTIVEGSBUILD)
|
||||
|
||||
NSString* ver = [NSString stringWithUTF8String:THEVER];
|
||||
NSLog(@"%@",ver);
|
||||
NSString* resPath = [[NSBundle mainBundle] resourcePath];
|
||||
resourcesPath =[resPath UTF8String];
|
||||
|
||||
|
||||
#ifdef USE_GOOGLEANALYTICS
|
||||
// static const NSInteger kGANDispatchPeriodSec = 10;
|
||||
GAITrackerActiveGS = [[GAI sharedInstance ]trackerWithTrackingId:@"UA-89449-3"] ;
|
||||
[GAITrackerActiveGS sendView:ver];
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef USE_CAPPTAIN
|
||||
[CapptainAgent registerApp:@ACTIVEGS_CAPTAINAPP identifiedBy:@ACTIVEGS_CAPTAINKEY];
|
||||
#endif
|
||||
|
||||
#ifdef ACTIVEGS_MANUAL_ROM
|
||||
// setup the rom path (in the main thread)
|
||||
{
|
||||
extern void initRomPath();
|
||||
initRomPath();
|
||||
}
|
||||
#endif
|
||||
|
||||
// Modify global variables to tweak the emulator on iphone
|
||||
g_adb.g_warp_pointer = WARP_POINTER;
|
||||
config.bootslot=7;
|
||||
|
||||
CGRect physicalRect = [[UIScreen mainScreen] bounds];
|
||||
self.window = [[UIWindow alloc] initWithFrame:physicalRect];
|
||||
|
||||
[[UIApplication sharedApplication] setStatusBarHidden:TRUE];
|
||||
|
||||
CGFloat screenScale;
|
||||
|
||||
NSString* systemVer = [[UIDevice currentDevice] systemVersion];
|
||||
NSLog(@"iOS version : %@",systemVer);
|
||||
printf("Min SDK Version : " TOSTRING(__IPHONE_OS_VERSION_MIN_REQUIRED));
|
||||
printf("Max SDK Version : " TOSTRING(__IPHONE_OS_VERSION_MAX_ALLOWED));
|
||||
printf("%f x %f",physicalRect.size.width,physicalRect.size.height);
|
||||
|
||||
struct utsname systemInfo;
|
||||
uname(&systemInfo);
|
||||
|
||||
NSString* platformVer = [NSString stringWithCString:systemInfo.machine
|
||||
encoding:NSUTF8StringEncoding];
|
||||
NSLog(@"iOS platform : %@",platformVer);
|
||||
|
||||
screenScale = [[UIScreen mainScreen] scale];
|
||||
self.dpiRatio = screenScale;
|
||||
|
||||
|
||||
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
|
||||
self.resolutionRatio = 1.6; // pour que la liste prenne toute la hauteur de l'ipad
|
||||
else
|
||||
self.resolutionRatio = 1.0;
|
||||
|
||||
machineSpecs = SPEC_DEFAULT;
|
||||
|
||||
if (self.resolutionRatio != 1.0 || screenScale != 1.0f)
|
||||
{
|
||||
printf("fps set to 60hz");
|
||||
machineSpecs = (machineSpecsEnum)(machineSpecs | FPS_60HZ);
|
||||
}
|
||||
if ( [platformVer compare:@"iPhone5"]==NSOrderedDescending
|
||||
|| [platformVer compare:@"iPad3"]==NSOrderedDescending )
|
||||
{
|
||||
printf("audio set to 44 khz");
|
||||
machineSpecs = (machineSpecsEnum)(machineSpecs | AUDIO_44KHZ);
|
||||
}
|
||||
|
||||
self.currentRawReading = -90; // default mode = portrait
|
||||
pManager = self;
|
||||
|
||||
|
||||
extern void activegs_driver();
|
||||
g_driver.init(activegs_driver);
|
||||
g_driver.x_apply_default_options = activegs_apply_default_options;
|
||||
option.initOptions();
|
||||
|
||||
self.emulatorController = [[activegsEmulatorController alloc] init ] ; // =retain
|
||||
self.detailController = [[detailViewController alloc] init] ; // =retain
|
||||
|
||||
|
||||
|
||||
NSString* infoXB = @"infoViewController";
|
||||
|
||||
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
|
||||
infoXB = [infoXB stringByAppendingString:@"-ipad"];
|
||||
|
||||
NSLog(@"Trying to load %@",infoXB);
|
||||
self.infoController = [[infoViewController alloc] initWithNibName:infoXB bundle:nil ]; // =retain
|
||||
|
||||
self.viewController = [[ACTIVEGS_LAUNCHVIEWCONTROLLER alloc] init ]; // =retain
|
||||
|
||||
|
||||
|
||||
[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
|
||||
|
||||
[[NSNotificationCenter defaultCenter] addObserver:self
|
||||
selector:@selector(didRotate:)
|
||||
name:@"UIDeviceOrientationDidChangeNotification" object:nil];
|
||||
|
||||
// ajoute la détection de l"
|
||||
|
||||
[[NSNotificationCenter defaultCenter] addObserver:self
|
||||
selector:@selector(screenDidConnect:)
|
||||
name:@"UIScreenDidConnectNotification" object:nil];
|
||||
|
||||
[[NSNotificationCenter defaultCenter] addObserver:self
|
||||
selector:@selector(screenDidDisconnect:)
|
||||
name:@"UIScreenDidDisconnectNotification" object:nil];
|
||||
|
||||
|
||||
|
||||
#ifdef ACTIVEGS_BACKGROUNDIMAGE
|
||||
NSString* imgPath = @ACTIVEGS_BACKGROUNDIMAGE;
|
||||
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
|
||||
imgPath = [imgPath stringByAppendingString:@"-ipad"];
|
||||
|
||||
NSString *backgroundPath = [[NSBundle mainBundle] pathForResource:imgPath ofType:@"png"];
|
||||
UIImage* background = [UIImage imageWithContentsOfFile: backgroundPath] ;
|
||||
self.backgroundImageView = [[UIImageView alloc ]initWithImage:background];
|
||||
CGRect r = [UIScreen mainScreen].applicationFrame;
|
||||
|
||||
self.backgroundView = [[UIView alloc ] initWithFrame:r];
|
||||
self.backgroundView.backgroundColor = [UIColor whiteColor];
|
||||
[self.backgroundView addSubview:self.backgroundImageView];
|
||||
[self.window addSubview:self.backgroundView];
|
||||
;
|
||||
#endif
|
||||
|
||||
|
||||
self.notificationView = [[[UILabel alloc] initWithFrame:CGRectMake(8,48,200,32)] autorelease];
|
||||
|
||||
|
||||
self.notificationView.alpha=0.0;
|
||||
self.notificationView.textColor =[UIColor blackColor];
|
||||
self.notificationView.backgroundColor = [UIColor grayColor];
|
||||
self.notificationView.layer.borderColor = [[UIColor whiteColor] CGColor];
|
||||
self.notificationView.layer.borderWidth = 1;
|
||||
self.notificationView.layer.cornerRadius = 5;
|
||||
self.notificationView.font = [UIFont systemFontOfSize:16];
|
||||
self.notificationView.textAlignment = UITextAlignmentCenter;
|
||||
|
||||
[[pManager getBrowserView] updateView ];
|
||||
|
||||
[self.window makeKeyAndVisible];
|
||||
|
||||
#ifdef HANDLE_URL
|
||||
|
||||
# ifdef TEST_HANDLE_URL
|
||||
[self application:nil openURL:nil sourceApplication:nil annotation:nil];
|
||||
return YES;
|
||||
# else
|
||||
NSURL* url = (NSURL *)[launchOptions valueForKey:UIApplicationLaunchOptionsURLKey];
|
||||
if (url)
|
||||
{
|
||||
printf("will launch url %@",url);
|
||||
return YES;
|
||||
}
|
||||
# endif
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef ACTIVEGS_BACKGROUNDIMAGE
|
||||
|
||||
//pour laisser le temps à ma view "splashscreen" de s'afficher
|
||||
[self performSelectorOnMainThread:@selector(firstLaunch:) withObject:nil waitUntilDone:NO];
|
||||
#else
|
||||
|
||||
[self firstLaunch:nil];
|
||||
#endif
|
||||
|
||||
// ready to accept option
|
||||
return NO;
|
||||
|
||||
|
||||
}
|
||||
|
||||
-(void)firstLaunch:(NSTimer*)timer
|
||||
{
|
||||
[self doStateChange:[self getBrowserView] type:kCATransitionFade sens:kCATransitionFromRight];
|
||||
|
||||
self.primaryScreen = [UIScreen mainScreen];
|
||||
self.secondaryScreen =[UIScreen mainScreen];
|
||||
|
||||
NSUInteger nbscreen =[[UIScreen screens] count];
|
||||
printf("nbscreen:%d\n",nbscreen);
|
||||
if (nbscreen>1)
|
||||
{
|
||||
[self initSecondaryScreen:[[UIScreen screens]objectAtIndex:1]];
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
-(void)launchDiskImage:(ActiveGSElement*)_element pathname:(const char*)_pathname trackername:(const char*)_trackername;
|
||||
{
|
||||
|
||||
// détruit l'émulateur pour qu'il redémarre
|
||||
if (pMac)
|
||||
{
|
||||
pMac->terminateEmulator();
|
||||
delete pMac ;
|
||||
pMac = NULL;
|
||||
}
|
||||
|
||||
|
||||
config.resetConfig(); // remets les valeur par défault
|
||||
|
||||
|
||||
// config.xmlconfig = pt.c_str();
|
||||
getdir(_pathname,config.baseURL);
|
||||
config.pXML = _element->pXML;
|
||||
config.visibleName = _element->name.c_str();
|
||||
|
||||
//is2GS = _element->is2GS;
|
||||
|
||||
NSString* ntr = [NSString stringWithUTF8String:_trackername];
|
||||
NSString* nid = [NSString stringWithUTF8String:_element->theid.c_str()];
|
||||
|
||||
// statistique sur les images
|
||||
NSString* track = [NSString stringWithFormat:@"/%@/%@",ntr,nid];
|
||||
NSLog(@"Launching : %@",track);
|
||||
#ifdef USE_CAPPTAIN
|
||||
[[pManager getEmulatorView] setTrackerName:track];
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef USE_GOOGLEANALYTICS
|
||||
[pManager->GAITrackerActiveGS sendView:track];
|
||||
#endif
|
||||
// affichera le pad si une application le demande
|
||||
padAlreadyDisplayedOnce=0;
|
||||
|
||||
|
||||
// redémarre l'émulateur
|
||||
[pManager doStateChange:[pManager getEmulatorView] type:kCATransitionPush sens:kCATransitionFromRight];
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
- (void) doStateChange:(ACTIVEGS_LAUNCHVIEWCONTROLLER*)_newViewController type:(NSString*)_type sens:(NSString*)_sens
|
||||
{
|
||||
debug_printf("changing view\n");
|
||||
|
||||
if ([self.window rootViewController ] == _newViewController)
|
||||
{
|
||||
printf("same root");
|
||||
[_newViewController viewWillAppear:FALSE];
|
||||
return ;
|
||||
}
|
||||
|
||||
|
||||
// set up an animation for the transition between the views on 1 screen configuration
|
||||
if (1)// [self hasSecondary]==false || _newViewController != (UIViewController*)[pManager getEmulatorView])
|
||||
{
|
||||
|
||||
CATransition *animation = [CATransition animation];
|
||||
[animation setDuration:0.3];
|
||||
[animation setType:_type /*kCATransitionPush*/];
|
||||
|
||||
|
||||
if (self.primaryViewController)
|
||||
[self.primaryViewController.view removeFromSuperview];
|
||||
else
|
||||
{
|
||||
if (self.backgroundView)
|
||||
[self.backgroundView removeFromSuperview];
|
||||
}
|
||||
|
||||
[self.notificationView removeFromSuperview];
|
||||
[_newViewController.view addSubview:self.notificationView];
|
||||
|
||||
[self.window setRootViewController:_newViewController];
|
||||
|
||||
// required for IOS4.3
|
||||
[self.window makeKeyAndVisible];
|
||||
|
||||
|
||||
self.primaryViewController = _newViewController;
|
||||
|
||||
|
||||
debug_printf("finalizing view\n");
|
||||
if (self.primaryViewController == (UIViewController*)[pManager getEmulatorView])
|
||||
{
|
||||
}
|
||||
else
|
||||
{
|
||||
// enleve toute l'interface
|
||||
[[pManager getEmulatorView].kbdc hideInput];
|
||||
}
|
||||
|
||||
// Réajuste le sens de l'animation en fonction de l'orientation du mobile
|
||||
//UIDeviceOrientation orientation = [[UIDevice currentDevice] orientation];
|
||||
switch(curOrientation)
|
||||
{
|
||||
case UIDeviceOrientationPortrait:
|
||||
break;
|
||||
case UIDeviceOrientationPortraitUpsideDown:
|
||||
if (_sens == kCATransitionFromRight)
|
||||
_sens = kCATransitionFromLeft;
|
||||
else
|
||||
_sens = kCATransitionFromRight;
|
||||
break;
|
||||
case UIDeviceOrientationLandscapeLeft:
|
||||
if (_sens == kCATransitionFromRight)
|
||||
_sens = kCATransitionFromTop;
|
||||
else
|
||||
_sens = kCATransitionFromBottom;
|
||||
break;
|
||||
break;
|
||||
case UIDeviceOrientationLandscapeRight:
|
||||
if (_sens != kCATransitionFromRight)
|
||||
_sens = kCATransitionFromTop;
|
||||
else
|
||||
_sens = kCATransitionFromBottom;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
[animation setSubtype:_sens];
|
||||
[[self.window layer] addAnimation:animation forKey:@"SwitchToView1"];
|
||||
|
||||
}
|
||||
/*
|
||||
else
|
||||
{
|
||||
// setting up the secondary screen
|
||||
if (self.secondaryViewController)
|
||||
[self.secondaryViewController.view removeFromSuperview];
|
||||
self.secondaryViewController = _newViewController;
|
||||
[self.secondaryWindow addSubview:_newViewController.view];
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
printf("manual rotate");
|
||||
[self didRotate:nil];
|
||||
|
||||
}
|
||||
|
||||
-(void)updateNotificationView:(CGRect) newRect
|
||||
{
|
||||
#define NOTIFICATION_WIDTH 240.0f
|
||||
#define NOTIFICATION_HEIGHT 32.0f
|
||||
|
||||
CGRect r ;
|
||||
|
||||
|
||||
r = CGRectMake(
|
||||
(newRect.size.width-NOTIFICATION_WIDTH)/2,
|
||||
(newRect.size.height-NOTIFICATION_HEIGHT)/2,
|
||||
NOTIFICATION_WIDTH,
|
||||
NOTIFICATION_HEIGHT
|
||||
);
|
||||
|
||||
[self.notificationView setFrame:r];
|
||||
|
||||
}
|
||||
|
||||
-(void)setNotificationText:(NSString*) _text
|
||||
{
|
||||
|
||||
NSLog(@"### %@",_text);
|
||||
#ifdef ACTIVEGS_NOTIFICATION
|
||||
|
||||
[self.notificationView.layer removeAllAnimations];
|
||||
[self.notificationTimer invalidate];
|
||||
|
||||
self.notificationView.text = _text;
|
||||
|
||||
[UIView beginAnimations:nil context:NULL];
|
||||
[UIView setAnimationDuration:0.3];
|
||||
self.notificationView.alpha=1.0;
|
||||
[UIView commitAnimations];
|
||||
|
||||
self.notificationTimer = [NSTimer scheduledTimerWithTimeInterval:3.0 target:self selector:@selector(dismissNotification:) userInfo:nil repeats:NO];
|
||||
#endif
|
||||
|
||||
}
|
||||
-(void)dismissNotification:(id)_obj
|
||||
{
|
||||
[UIView beginAnimations:nil context:NULL];
|
||||
[UIView setAnimationDuration:0.3];
|
||||
self.notificationView.alpha=0.0;
|
||||
[UIView commitAnimations];
|
||||
self.notificationTimer= nil;
|
||||
|
||||
}
|
||||
|
||||
|
||||
- (void) screenDidConnect:(NSNotification *)notification
|
||||
{
|
||||
NSLog(@"Screen did connect");
|
||||
UIScreen* screen = [notification object];
|
||||
[self initSecondaryScreen:screen];
|
||||
|
||||
// revient au menu principal si on ne l'était pas
|
||||
/*
|
||||
if (self.primaryViewController == [pManager getEmulatorView])
|
||||
{
|
||||
|
||||
[self doStateChange:[self getBrowserView] type:kCATransitionPush sens:kCATransitionFromRight];
|
||||
}
|
||||
*/
|
||||
|
||||
}
|
||||
|
||||
- (void) screenDidDisconnect:(NSNotification *)notification
|
||||
{
|
||||
NSLog(@"screenDidDisconnect");
|
||||
/*
|
||||
UIScreen* screen = [notification object];
|
||||
if (screen == self.secondaryScreen)
|
||||
*/
|
||||
activegsEmulatorController* a = [pManager getEmulatorView];
|
||||
if (a && a->attachedTo == ATTACH_SECONDARY)
|
||||
{
|
||||
NSLog(@"about to detach secondary");
|
||||
|
||||
self.secondaryScreen = self.primaryScreen;
|
||||
self.secondaryWindow.hidden = YES;
|
||||
[self.secondaryWindow release];
|
||||
self.secondaryWindow = nil;
|
||||
|
||||
[a updateView];
|
||||
}
|
||||
|
||||
[self setNotificationText:@"Airplay Disconnected"];
|
||||
}
|
||||
|
||||
-(void) initSecondaryScreen:(UIScreen*) _screen
|
||||
{
|
||||
[self setNotificationText:@"Airplay Detected"];
|
||||
|
||||
#ifdef ENABLE_AIRPLAY
|
||||
self.secondaryScreen = _screen;
|
||||
CGRect frame = _screen.bounds;
|
||||
printf("SecondaryScreen size %d x %d",(int)frame.size.width,(int)frame.size.height);
|
||||
|
||||
self.secondaryWindow = [[UIWindow alloc] initWithFrame:frame];
|
||||
[self.secondaryWindow setScreen:_screen];
|
||||
self.secondaryWindow.hidden = NO;
|
||||
#endif
|
||||
activegsEmulatorController* a = [pManager getEmulatorView];
|
||||
[a updateView];
|
||||
// [pManager setSecondaryInputMode];
|
||||
|
||||
}
|
||||
|
||||
-(void)setSecondaryInputMode
|
||||
{
|
||||
NSLog(@"setSecondaryInputMode");
|
||||
[[pManager getEmulatorView].kbdc setInputMode:INPUTMODE_ACCESS+INPUTMODE_KBD];
|
||||
}
|
||||
|
||||
|
||||
-(bool) hasSecondary
|
||||
{
|
||||
return self.secondaryWindow != nil;
|
||||
}
|
||||
|
||||
|
||||
- (void) didRotate:(NSNotification *)notification
|
||||
{
|
||||
|
||||
|
||||
UIViewController *v = self.primaryViewController;
|
||||
if (v==nil)
|
||||
return ;
|
||||
|
||||
|
||||
UIDeviceOrientation orientation = [[UIDevice currentDevice] orientation];
|
||||
/*
|
||||
BOOL valid = [v shouldAutorotateToInterfaceOrientation:orientation];
|
||||
if (valid==NO)
|
||||
{
|
||||
return ;
|
||||
}
|
||||
*/
|
||||
|
||||
float oldRotate = self.currentRawReading;
|
||||
|
||||
switch(orientation)
|
||||
{
|
||||
case UIDeviceOrientationPortrait:
|
||||
NSLog(@"UIDeviceOrientationPortrait");
|
||||
self.currentRawReading = -90;
|
||||
break;
|
||||
case UIDeviceOrientationPortraitUpsideDown:
|
||||
NSLog(@"UIDeviceOrientationPortraitUpsideDown");
|
||||
self.currentRawReading = 90;
|
||||
break;
|
||||
case UIDeviceOrientationLandscapeLeft:
|
||||
NSLog(@"UIDeviceOrientationLandscapeLeft");
|
||||
self.currentRawReading = 180;
|
||||
break;
|
||||
case UIDeviceOrientationLandscapeRight:
|
||||
NSLog(@"UIDeviceOrientationLandscapeRight");
|
||||
self.currentRawReading = 0;
|
||||
break;
|
||||
case UIDeviceOrientationUnknown:
|
||||
NSLog(@"ignoring UIDeviceOrientationUnknown");
|
||||
return;
|
||||
break;
|
||||
default:
|
||||
NSLog(@"ignoring faceUp or faceDown");
|
||||
// ignore face up or down
|
||||
return;
|
||||
break;
|
||||
}
|
||||
curOrientation = orientation;
|
||||
NSLog(@"didRotate");
|
||||
|
||||
|
||||
if (self.primaryViewController != [pManager getEmulatorView])
|
||||
{
|
||||
if (self.primaryViewController == [pManager getBrowserView])
|
||||
[[pManager getBrowserView] updateView ];
|
||||
if (self.primaryViewController == [pManager getInfoView])
|
||||
[[pManager getInfoView] updateView:orientation];
|
||||
return ;
|
||||
}
|
||||
|
||||
|
||||
// Gère manuellement la rotation
|
||||
|
||||
// Mets les interfaces systèmes (UIAlert) dans le bon mode
|
||||
|
||||
if (self.currentRawReading==0)
|
||||
[[UIApplication sharedApplication] setStatusBarOrientation: UIInterfaceOrientationLandscapeLeft];
|
||||
else
|
||||
if (self.currentRawReading==90)
|
||||
[[UIApplication sharedApplication] setStatusBarOrientation: UIInterfaceOrientationPortraitUpsideDown];
|
||||
else
|
||||
if (self.currentRawReading==180)
|
||||
[[UIApplication sharedApplication] setStatusBarOrientation: UIInterfaceOrientationLandscapeRight];
|
||||
else
|
||||
// if (currentRawReading==270)
|
||||
[[UIApplication sharedApplication] setStatusBarOrientation: UIInterfaceOrientationPortrait];
|
||||
|
||||
|
||||
|
||||
// Recalcule la zone d'affichage de l'émulateur
|
||||
|
||||
// enleve le clavier si une rotation a eu lieu
|
||||
if (oldRotate != self.currentRawReading )//&& [self hasSecondary]==false)
|
||||
{
|
||||
|
||||
[[pManager getEmulatorView].kbdc restoreInput];
|
||||
|
||||
//[[pManager getEmulatorView].kbdc hideInput];
|
||||
// [[pManager getEmulatorView].kbdc enableKeyboard:FALSE];
|
||||
}
|
||||
|
||||
[[pManager getEmulatorView] updateView ];
|
||||
|
||||
|
||||
}
|
||||
|
||||
- (void)applicationDidEnterBackground:(UIApplication *)application
|
||||
{
|
||||
printf("applicationDidEnterBackground");
|
||||
|
||||
}
|
||||
- (void)applicationWillEnterForeground:(UIApplication *)application
|
||||
{
|
||||
printf("applicationWillEnterForeground");
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
- (void)dealloc {
|
||||
|
||||
if (pMac)
|
||||
{
|
||||
pMac->terminateEmulator();
|
||||
delete pMac;
|
||||
pMac = NULL;
|
||||
}
|
||||
|
||||
self.viewController = nil;
|
||||
self.emulatorController = nil;
|
||||
self.detailController = nil;
|
||||
self.infoController = nil;
|
||||
self.window = nil;
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
|
||||
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
|
||||
//- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
|
||||
{
|
||||
|
||||
#ifdef HANDLE_URL
|
||||
NSLog(@"Custom Url %@",url);
|
||||
|
||||
|
||||
// NSString* resource = [[NSBundle mainBundle] pathForResource:@ACTIVEGS_FIRSTTABLIST ofType:@"activegsxml"] ;
|
||||
// MyString source = [resource UTF8String];
|
||||
MyString appid;
|
||||
MyString source;
|
||||
|
||||
#ifdef TEST_HANDLE_URL
|
||||
source = "http://www.freetoolsassociation.com/fta/undergroundlist.xml";
|
||||
#else
|
||||
for (NSString *param in [[url query] componentsSeparatedByString:@"&"])
|
||||
{
|
||||
NSArray *elts = [param componentsSeparatedByString:@"="];
|
||||
if([elts count] < 2) continue;
|
||||
if ([[elts objectAtIndex:0] isEqualToString:@"id"])
|
||||
appid=[ [elts objectAtIndex:1] UTF8String];
|
||||
if ([[elts objectAtIndex:0] isEqualToString:@"source"])
|
||||
source =[[elts objectAtIndex:1] UTF8String];
|
||||
|
||||
}
|
||||
#endif
|
||||
|
||||
if (source.IsEmpty()==FALSE)
|
||||
{
|
||||
self->firstTabXML= source;
|
||||
activegsViewController* ags = [self getBrowserView];
|
||||
if (ags)
|
||||
{
|
||||
activegsList* l = [ags l0];
|
||||
if (l)
|
||||
{
|
||||
l->listPath = self->firstTabXML;
|
||||
[l reloadData:TRUE];
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
ActiveGSElement* element = NULL;
|
||||
ActiveGSList temp;
|
||||
if (appid.IsEmpty()==FALSE)
|
||||
{
|
||||
|
||||
temp.loadFromFile(self->firstTabXML.c_str());
|
||||
for(int i =0;i<temp.elements.size();i++)
|
||||
{
|
||||
if (temp.elements.at(i).theid == appid)
|
||||
{
|
||||
element = &temp.elements.at(i);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (element)
|
||||
{
|
||||
|
||||
[self launchDiskImage:element pathname:temp.pathName.c_str() trackername:temp.trackerName.c_str()];
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
else
|
||||
[self doStateChange:[self getBrowserView] type:kCATransitionFade sens:kCATransitionFromRight];
|
||||
|
||||
#endif
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
@end
|
||||
|
||||
|
||||
void x_display_alert(int _abort, const char* _title, const char* _message)
|
||||
{
|
||||
alertAbort = _abort;
|
||||
alertTitle = _title;
|
||||
alertMessage = _message;
|
||||
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
|
||||
[pManager performSelectorOnMainThread:@selector(displayAlert:) withObject:nil waitUntilDone:NO];
|
||||
[pool release];
|
||||
|
||||
}
|
84
Common.iphone/activegsEmulatorController.h
Normal file
@ -0,0 +1,84 @@
|
||||
/*
|
||||
ActiveGS, Copyright 2004-2016 Olivier Goguel, https://github.com/ogoguel/ActiveGS
|
||||
Based on Kegs, Copyright 2004 Kent Dickey, https://kegs.sourceforge.net
|
||||
This code is covered by the GNU GPL licence
|
||||
*/
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import "../kegs/iOS/zoomEmulatorView.h"
|
||||
#import "../kegs/iOS/emulatorView.h"
|
||||
#import "KBDController.h"
|
||||
|
||||
enum gestureModes
|
||||
{
|
||||
|
||||
MODE_PAD = 1,
|
||||
MODE_ZOOM = 2,
|
||||
MODE_SWIPE= 4,
|
||||
MODE_ALL = MODE_PAD+MODE_ZOOM+MODE_SWIPE,
|
||||
MODE_MOUSEBUTTON=8,
|
||||
MODE_EMULATOR=16,
|
||||
};
|
||||
|
||||
@interface customView : UIView
|
||||
{
|
||||
double possibleSwipeLeftTime ;
|
||||
double possibleSwipeRightTime ;
|
||||
double possibleSwipeUpTime ;
|
||||
double possibleSwipeDownTime ;
|
||||
|
||||
UISwipeGestureRecognizer* _grswipeup;
|
||||
UISwipeGestureRecognizer* _grswipedown;
|
||||
UISwipeGestureRecognizer* _grswipeleft;
|
||||
UISwipeGestureRecognizer* _grswiperight;
|
||||
NSTimer* enableTimer;
|
||||
NSTimer* disableTimer;
|
||||
}
|
||||
|
||||
@property (retain,nonatomic) UISwipeGestureRecognizer* grswipeup;
|
||||
@property (retain,nonatomic) UISwipeGestureRecognizer* grswipedown;
|
||||
@property (retain,nonatomic) UISwipeGestureRecognizer* grswipeleft;
|
||||
@property (retain,nonatomic) UISwipeGestureRecognizer* grswiperight;
|
||||
|
||||
-(void)disableGestures:(int)_mode ;
|
||||
-(void)enableGestures:(int)_mode ;
|
||||
-(void)disableAllGestures;
|
||||
-(void)reenableAllGestures ;
|
||||
-(void)processGesturesOnTouchesEnded ;
|
||||
-(void)scheduleDisableAllGestures;
|
||||
-(void)scheduleEnableAllGestures;
|
||||
-(void)invalidateTimers;
|
||||
|
||||
@end
|
||||
|
||||
enum attachMode
|
||||
{
|
||||
ATTACH_NONE,
|
||||
ATTACH_PRIMARY,
|
||||
ATTACH_SECONDARY
|
||||
};
|
||||
|
||||
@interface activegsEmulatorController : UIVIEWCONTROLLERROOT
|
||||
{
|
||||
NSString* _trackerName;
|
||||
customView* _contentView;
|
||||
zoomEmulatorView* _zv;
|
||||
KBDController* _kbdc ;
|
||||
@public
|
||||
int attachedTo;
|
||||
}
|
||||
|
||||
#ifdef USE_CAPPTAIN
|
||||
-(NSString*)getCapptainActivityName;
|
||||
#endif
|
||||
|
||||
-(void) updateView;
|
||||
|
||||
@property (assign) customView* contentView;
|
||||
@property (assign) zoomEmulatorView* zv;
|
||||
@property (assign) KBDController* kbdc ;
|
||||
@property (nonatomic, retain) NSString* trackerName ;
|
||||
|
||||
|
||||
@end
|
||||
|
682
Common.iphone/activegsEmulatorController.mm
Normal file
@ -0,0 +1,682 @@
|
||||
/*
|
||||
ActiveGS, Copyright 2004-2016 Olivier Goguel, https://github.com/ogoguel/ActiveGS
|
||||
Based on Kegs, Copyright 2004 Kent Dickey, https://kegs.sourceforge.net
|
||||
This code is covered by the GNU GPL licence
|
||||
*/
|
||||
|
||||
#import "activegsAppDelegate.h"
|
||||
#include "../kegs/src/protos_macdriver.h"
|
||||
#include "../kegs/src/sim65816.h"
|
||||
|
||||
#define TIME_BEFORE_REENABLING_GESTURES 1.0
|
||||
#define TIME_BEFORE_DISABLING_GESTURES 0.5
|
||||
#define DELAY_TO_EXECUTE_SWIPE 0.4
|
||||
#define SWIPENBTOUCHES 1
|
||||
|
||||
|
||||
#undef debug_printf
|
||||
#define debug_printf(X,...)
|
||||
|
||||
int x_lock_zoom = 0;
|
||||
|
||||
@implementation customView
|
||||
|
||||
@synthesize grswipedown = _grswipedown;
|
||||
@synthesize grswipeleft = _grswipeleft;
|
||||
@synthesize grswiperight = _grswiperight;
|
||||
@synthesize grswipeup = _grswipeup;
|
||||
|
||||
|
||||
|
||||
- (UIView *)hitTest:(CGPoint)_point withEvent:(UIEvent *)event
|
||||
{
|
||||
|
||||
KBDController *pKbd = [pManager getEmulatorView].kbdc;
|
||||
UIView* curHit;
|
||||
CGPoint p;
|
||||
|
||||
if (!pKbd.runtimeControls.hidden && pKbd.runtimeControls.alpha!=0.0)
|
||||
{
|
||||
|
||||
p = [self convertPoint:_point toView:pKbd.runtimeControls];
|
||||
|
||||
curHit= [pKbd.runtimeControls hitTest:p withEvent:event];
|
||||
if ( [curHit isDescendantOfView:pKbd.runtimeControls])
|
||||
{
|
||||
return curHit;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (!pKbd.diskSelection.hidden && pKbd.diskSelection.alpha!=0.0)
|
||||
{
|
||||
|
||||
p = [self convertPoint:_point toView:pKbd.diskSelection];
|
||||
|
||||
curHit= [pKbd.diskSelection hitTest:p withEvent:event];
|
||||
if ( [curHit isDescendantOfView:pKbd.diskSelection])
|
||||
{
|
||||
return curHit;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (!pKbd.barView.hidden)
|
||||
{
|
||||
|
||||
p = [self convertPoint:_point toView:pKbd.barView];
|
||||
curHit= [pKbd.barView hitTest:p withEvent:event];
|
||||
|
||||
if ( [curHit isDescendantOfView:pKbd.barView])
|
||||
{
|
||||
// debug_printf("intercepting event : barview\n");
|
||||
return curHit;
|
||||
}
|
||||
}
|
||||
|
||||
if ([pKbd isInputVisible:(INPUTMODE_ACCESS+INPUTMODE_MINIACCESS)])
|
||||
{
|
||||
|
||||
p = [self convertPoint:_point toView:pKbd.accessView];
|
||||
curHit= [pKbd.accessView hitTest:p withEvent:event];
|
||||
|
||||
// regarde si on tape dans la barview
|
||||
if ( !curHit.hidden && [curHit isDescendantOfView:pKbd.accessView])
|
||||
{
|
||||
|
||||
return curHit;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// renvoie les évenements à l'emulator
|
||||
return [pManager getEmulatorView].zv;
|
||||
}
|
||||
|
||||
- (id)initWithFrame:(CGRect)frame
|
||||
{
|
||||
if (self = [super initWithFrame:frame])
|
||||
{
|
||||
|
||||
// Swipe down to hide keyboard
|
||||
self.grswipeup = [[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeUp:)] autorelease];
|
||||
self.grswipeup.direction = UISwipeGestureRecognizerDirectionUp ;
|
||||
self.grswipeup.cancelsTouchesInView = NO;
|
||||
self.grswipeup.numberOfTouchesRequired = SWIPENBTOUCHES;
|
||||
[self addGestureRecognizer:self.grswipeup];
|
||||
|
||||
|
||||
// Swipe up to display keyboard
|
||||
self.grswipedown = [[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeDown:)] autorelease];
|
||||
self.grswipedown.direction = UISwipeGestureRecognizerDirectionDown;
|
||||
self.grswipedown.cancelsTouchesInView = NO;
|
||||
self.grswipedown.numberOfTouchesRequired = SWIPENBTOUCHES;
|
||||
[self addGestureRecognizer:self.grswipedown];
|
||||
|
||||
// Swipe left to go back to browsing
|
||||
self.grswipeleft = [[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeLeft:)] autorelease];
|
||||
self.grswipeleft.direction = UISwipeGestureRecognizerDirectionLeft;
|
||||
self.grswipeleft.cancelsTouchesInView = NO;
|
||||
self.grswipeleft.numberOfTouchesRequired = SWIPENBTOUCHES;
|
||||
[self addGestureRecognizer:self.grswipeleft];
|
||||
|
||||
|
||||
// Swipe Right to go back to browsing
|
||||
self.grswiperight = [[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeRight:)] autorelease];
|
||||
self.grswiperight.direction = UISwipeGestureRecognizerDirectionRight;
|
||||
self.grswiperight.cancelsTouchesInView = NO;
|
||||
self.grswiperight.numberOfTouchesRequired = SWIPENBTOUCHES;
|
||||
[self addGestureRecognizer:self.grswiperight];
|
||||
|
||||
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
|
||||
|
||||
-(void)invalidateTimers
|
||||
{
|
||||
|
||||
|
||||
if ([enableTimer isValid])
|
||||
{
|
||||
debug_printf("deactivating enable gesture timer");
|
||||
[enableTimer invalidate];
|
||||
enableTimer=nil;
|
||||
}
|
||||
|
||||
if ([disableTimer isValid])
|
||||
{
|
||||
debug_printf("deactivating disable gesture timer");
|
||||
[disableTimer invalidate];
|
||||
disableTimer=nil;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
-(void)scheduleDisableAllGestures
|
||||
{
|
||||
|
||||
debug_printf("scheduleDisableAllGestures");
|
||||
|
||||
[self invalidateTimers];
|
||||
|
||||
disableTimer = [NSTimer scheduledTimerWithTimeInterval:TIME_BEFORE_DISABLING_GESTURES target:self selector:@selector(disableAllGestures) userInfo:nil repeats:NO];
|
||||
[[pManager getEmulatorView].kbdc setGestureIndicatorVisibility:MODE_ALL color:[UIColor blueColor]];
|
||||
|
||||
}
|
||||
|
||||
|
||||
-(void)scheduleEnableAllGestures
|
||||
{
|
||||
|
||||
debug_printf("scheduleEnableAllGestures");
|
||||
|
||||
|
||||
[self enableGestures:MODE_PAD];
|
||||
[self disableGestures:MODE_SWIPE+MODE_ZOOM];
|
||||
|
||||
enableTimer = [NSTimer scheduledTimerWithTimeInterval:TIME_BEFORE_REENABLING_GESTURES target:self selector:@selector(reenableAllGestures) userInfo:nil repeats:NO];
|
||||
[[pManager getEmulatorView].kbdc setGestureIndicatorVisibility:(MODE_SWIPE+MODE_ZOOM) color:[UIColor orangeColor]];
|
||||
|
||||
}
|
||||
|
||||
-(void)disableAllGestures
|
||||
{
|
||||
|
||||
debug_printf("disableAllGestures\n");
|
||||
[self disableGestures:MODE_ALL];
|
||||
|
||||
}
|
||||
|
||||
-(void)disableGestures:(int)_mode
|
||||
{
|
||||
|
||||
debug_printf("disableGestures: %d",_mode);
|
||||
|
||||
[self invalidateTimers];
|
||||
|
||||
if (_mode & MODE_SWIPE)
|
||||
{
|
||||
|
||||
self.grswipeup.enabled = FALSE;
|
||||
self.grswipedown.enabled = FALSE;
|
||||
self.grswipeleft.enabled = FALSE;
|
||||
self.grswiperight.enabled = FALSE;
|
||||
}
|
||||
if (_mode & MODE_PAD)
|
||||
[[pManager getEmulatorView].kbdc enablePad:FALSE];
|
||||
|
||||
if (_mode & MODE_ZOOM)
|
||||
[[pManager getEmulatorView].zv disableZoom];
|
||||
|
||||
if (_mode & MODE_EMULATOR)
|
||||
[[pManager getEmulatorView].zv disableInput];
|
||||
|
||||
[[pManager getEmulatorView].kbdc setGestureIndicatorVisibility:_mode color:[UIColor redColor]];
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
-(void)enableGestures:(int)_mode
|
||||
{
|
||||
|
||||
debug_printf("enableGestures %d\n",_mode);
|
||||
|
||||
if (_mode & MODE_SWIPE)
|
||||
{
|
||||
[self invalidateTimers];
|
||||
|
||||
self.grswipeup.enabled = TRUE;
|
||||
self.grswipedown.enabled = TRUE;
|
||||
self.grswipeleft.enabled = TRUE;
|
||||
self.grswiperight.enabled = TRUE;
|
||||
}
|
||||
|
||||
if (_mode & MODE_ZOOM)
|
||||
{
|
||||
if (x_lock_zoom)
|
||||
{
|
||||
// [self disableGestures:MODE_ZOOM];
|
||||
[[pManager getEmulatorView].zv disableZoom];
|
||||
}
|
||||
else
|
||||
[[pManager getEmulatorView].zv enableZoom];
|
||||
}
|
||||
|
||||
if (_mode & MODE_PAD)
|
||||
[[pManager getEmulatorView].kbdc enablePad:TRUE];
|
||||
if (_mode & MODE_EMULATOR)
|
||||
[[pManager getEmulatorView].zv enableInput];
|
||||
|
||||
[[pManager getEmulatorView].kbdc setGestureIndicatorVisibility:_mode color:[UIColor greenColor]];
|
||||
|
||||
}
|
||||
|
||||
-(void)reenableAllGestures
|
||||
{
|
||||
|
||||
debug_printf("reenableAllGestures");
|
||||
[self enableGestures:(MODE_ALL+MODE_EMULATOR)];
|
||||
|
||||
}
|
||||
|
||||
|
||||
-(void)processGesturesOnTouchesEnded
|
||||
{
|
||||
#if SWIPENBTOUCHES == 1
|
||||
debug_printf("processGesturesOnTouchesEnded");
|
||||
|
||||
// Execute les gestures en attente
|
||||
double curtime = [[NSDate date] timeIntervalSince1970];
|
||||
|
||||
if (possibleSwipeLeftTime > curtime)
|
||||
{
|
||||
|
||||
[pManager doStateChange:[pManager getBrowserView] type:kCATransitionPush sens:kCATransitionFromRight];
|
||||
|
||||
return ;
|
||||
}
|
||||
|
||||
if (possibleSwipeRightTime > curtime)
|
||||
{
|
||||
if ([pManager getDetailView]->diskSelected)
|
||||
[pManager doStateChange:[pManager getDetailView] type:kCATransitionPush sens:kCATransitionFromLeft];
|
||||
else
|
||||
{
|
||||
[pManager doStateChange:[pManager getBrowserView] type:kCATransitionPush sens:kCATransitionFromLeft];
|
||||
}
|
||||
return ;
|
||||
}
|
||||
|
||||
if (possibleSwipeDownTime > curtime)
|
||||
{
|
||||
[[pManager getEmulatorView].kbdc swipeDown];
|
||||
// We remain on the currentView: immediatly turn on gestures
|
||||
[self reenableAllGestures];
|
||||
return ;
|
||||
}
|
||||
|
||||
if (possibleSwipeUpTime > curtime)
|
||||
{
|
||||
|
||||
[[pManager getEmulatorView].kbdc swipeUp];
|
||||
// We remain on the currentView: immediatly turn on gestures
|
||||
[self reenableAllGestures];
|
||||
return ;
|
||||
}
|
||||
#endif
|
||||
// no gestures
|
||||
[self scheduleEnableAllGestures];
|
||||
[self enableGestures:MODE_ZOOM]; // pour éviter l'interprétation en click!
|
||||
}
|
||||
|
||||
-(void)swipeLeft :(UISwipeGestureRecognizer*)_rec
|
||||
{
|
||||
if (_rec.state == UIGestureRecognizerStateEnded)
|
||||
{
|
||||
|
||||
#if SWIPENBTOUCHES == 2
|
||||
[pManager doStateChange:[pManager getBrowserView] type:kCATransitionPush sens:kCATransitionFromRight];
|
||||
|
||||
#else
|
||||
if ([_rec locationInView:self].y < 44 * [pManager resolutionRatio])
|
||||
{
|
||||
possibleSwipeLeftTime = [[NSDate date] timeIntervalSince1970] + DELAY_TO_EXECUTE_SWIPE;
|
||||
debug_printf("possibleSwipeLeftTime %f\n",possibleSwipeLeftTime);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
-(void)swipeRight :(UISwipeGestureRecognizer*)_rec
|
||||
{
|
||||
if (_rec.state == UIGestureRecognizerStateEnded)
|
||||
{
|
||||
#if SWIPENBTOUCHES == 2
|
||||
if ([pManager getDetailView].diskSelected)
|
||||
[pManager doStateChange:[pManager getDetailView] type:kCATransitionPush sens:kCATransitionFromLeft];
|
||||
else
|
||||
[pManager doStateChange:[pManager getBrowserView] type:kCATransitionPush sens:kCATransitionFromLeft];
|
||||
#else
|
||||
|
||||
if ([_rec locationInView:self].y < 44 * [pManager resolutionRatio])
|
||||
{
|
||||
possibleSwipeRightTime = [[NSDate date] timeIntervalSince1970] + DELAY_TO_EXECUTE_SWIPE;
|
||||
debug_printf("possibleSwipeRightTime %f\n",possibleSwipeRightTime);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
-(void)swipeDown : (UISwipeGestureRecognizer*)_rec
|
||||
{
|
||||
debug_printf("swipeDown : %d",_rec.state);
|
||||
|
||||
if (_rec.state == UIGestureRecognizerStateEnded)
|
||||
{
|
||||
|
||||
#if SWIPENBTOUCHES == 2
|
||||
[[pManager getEmulatorView].kbdc swipeDown];
|
||||
#else
|
||||
possibleSwipeDownTime = [[NSDate date] timeIntervalSince1970] + DELAY_TO_EXECUTE_SWIPE;
|
||||
debug_printf("possibleSwipeDownTime %f\n",possibleSwipeDownTime);
|
||||
#endif
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
-(void)swipeUp : (UISwipeGestureRecognizer*)_rec
|
||||
{
|
||||
debug_printf("swipeUp : %d",_rec.state);
|
||||
|
||||
if (_rec.state == UIGestureRecognizerStateEnded)
|
||||
{
|
||||
#if SWIPENBTOUCHES == 2
|
||||
[[pManager getEmulatorView].kbdc swipeUp];
|
||||
#else
|
||||
possibleSwipeUpTime = [[NSDate date] timeIntervalSince1970] + DELAY_TO_EXECUTE_SWIPE;
|
||||
debug_printf("possibleSwipeUpTime %f\n",possibleSwipeUpTime);
|
||||
#endif
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
- (void)dealloc
|
||||
{
|
||||
|
||||
self.grswipedown = nil;
|
||||
self.grswipeup = nil;
|
||||
self.grswipeleft = nil;
|
||||
self.grswiperight = nil;
|
||||
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@implementation activegsEmulatorController
|
||||
|
||||
@synthesize kbdc = _kbdc;
|
||||
@synthesize zv = _zv;
|
||||
@synthesize contentView = _contentView;
|
||||
@synthesize trackerName = _trackerName;
|
||||
|
||||
|
||||
#ifdef USE_CAPPTAIN
|
||||
-(NSString*)getCapptainActivityName
|
||||
{
|
||||
NSLog(@"loggin capptain:%@",_trackerName);
|
||||
return _trackerName;
|
||||
}
|
||||
#endif
|
||||
|
||||
- (void)createZoomEmulatorView
|
||||
{
|
||||
|
||||
CGRect rv = CGRectMake(0,0,100.0,100.0);
|
||||
self.zv = [[[zoomEmulatorView alloc] initWithFrame:rv ratio:1.0] retain];
|
||||
|
||||
}
|
||||
|
||||
- (void)loadView
|
||||
{
|
||||
|
||||
attachedTo = ATTACH_NONE;
|
||||
|
||||
CGRect apprect = [[UIScreen mainScreen] applicationFrame];
|
||||
printf("mainScreen apprect %d x %d\n",(int)apprect.size.width,(int)apprect.size.height);
|
||||
|
||||
self.contentView = [[[customView alloc] initWithFrame:apprect] autorelease];
|
||||
#ifdef SHOW_COLOR
|
||||
self.contentView.backgroundColor = [UIColor yellowColor];
|
||||
#else
|
||||
self.contentView.backgroundColor = [UIColor blackColor];
|
||||
#endif
|
||||
|
||||
|
||||
[self createZoomEmulatorView];
|
||||
|
||||
[self.zv setUserInteractionEnabled:TRUE];
|
||||
|
||||
self.kbdc = [[KBDController alloc] retain];
|
||||
[self.contentView addSubview:self.kbdc.view];
|
||||
|
||||
self.view = self.contentView;
|
||||
|
||||
|
||||
[self.zv disableZoom];
|
||||
}
|
||||
|
||||
-(void) updateView
|
||||
{
|
||||
static int inUpdateView=0;
|
||||
if (inUpdateView)
|
||||
return ;
|
||||
inUpdateView++;
|
||||
debug_printf("viewController updateView\n");
|
||||
|
||||
|
||||
// Transforme la fenetre root view
|
||||
|
||||
[UIView beginAnimations:nil context:NULL];
|
||||
[UIView setAnimationDuration:0.3];
|
||||
|
||||
CGAffineTransform matv = CGAffineTransformIdentity;
|
||||
matv = CGAffineTransformRotate (matv,(270-[pManager getAngle])*M_PI/180); //Avec
|
||||
self.contentView.transform = matv;
|
||||
|
||||
|
||||
|
||||
CGRect emulatorRect; // emulator rect
|
||||
CGRect boundRect; // emulator rect rotate
|
||||
int requiredOrientation = -1 ;
|
||||
CGRect kbddelta = CGRectZero;
|
||||
|
||||
CGAffineTransform mat = CGAffineTransformIdentity;
|
||||
#ifdef VIDEO_SINGLEVLINE
|
||||
mat = CGAffineTransformScale(mat,1,-2);
|
||||
#else
|
||||
mat = CGAffineTransformScale(mat,1,-1);
|
||||
|
||||
#endif
|
||||
self.zv.transform = mat;
|
||||
|
||||
// Mets à jour la taille de la fenetre en fonction de l'affichage du clavier
|
||||
if ([pManager hasSecondary ])
|
||||
{
|
||||
CGRect secondaryapprect = [pManager secondaryScreen].bounds;
|
||||
emulatorRect = CGRectMake(0.0,0.0,secondaryapprect.size.width,secondaryapprect.size.height);
|
||||
|
||||
if (attachedTo != ATTACH_SECONDARY )
|
||||
{
|
||||
printf("attaching to secondary...");
|
||||
|
||||
attachedTo = ATTACH_SECONDARY;
|
||||
|
||||
[self.zv removeFromSuperview];
|
||||
[pManager.secondaryWindow addSubview:self.zv];
|
||||
|
||||
float ratio = [[pManager secondaryScreen] scale];
|
||||
|
||||
// recalcule la vue car la résolution/ratio a changé
|
||||
[self.zv updateScreen:emulatorRect ratio:ratio];
|
||||
|
||||
[self.kbdc setMenuBarVisibility:true];
|
||||
|
||||
[pManager setSecondaryInputMode];
|
||||
}
|
||||
|
||||
// Force L'affichage par défault
|
||||
requiredOrientation = 0;
|
||||
boundRect = emulatorRect;
|
||||
}
|
||||
else
|
||||
{
|
||||
CGRect primaryapprect = [UIScreen mainScreen].bounds;
|
||||
emulatorRect = CGRectMake(0.0,0.0,primaryapprect.size.width,primaryapprect.size.height);
|
||||
NSLog(@"emulatorRect : %f*%f\n",emulatorRect.size.width,emulatorRect.size.height);
|
||||
if (attachedTo != ATTACH_PRIMARY )
|
||||
{
|
||||
printf("attaching to primay...");
|
||||
attachedTo = ATTACH_PRIMARY;
|
||||
|
||||
[self.zv removeFromSuperview];
|
||||
|
||||
|
||||
float ratio = [[UIScreen mainScreen] scale];
|
||||
|
||||
// recalcule la vue car la résolution/ratio a changé
|
||||
[self.zv updateScreen:emulatorRect ratio:ratio];
|
||||
|
||||
[self.contentView addSubview:self.zv];
|
||||
|
||||
// fait apparaite l'inputr
|
||||
[self.kbdc restoreInput];
|
||||
|
||||
// le remts en premier
|
||||
[self.contentView bringSubviewToFront:self.kbdc.view];
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
// primary parameters
|
||||
|
||||
requiredOrientation = ([pManager getAngle]/90)+1;
|
||||
kbddelta = [self.kbdc getEmulatorDelta];
|
||||
|
||||
NSString* systemVer = [[UIDevice currentDevice] systemVersion];
|
||||
if ([systemVer compare:@"8.0"] == NSOrderedDescending)
|
||||
boundRect = emulatorRect;
|
||||
else
|
||||
{
|
||||
boundRect = CGRectApplyAffineTransform(emulatorRect,matv);
|
||||
boundRect.origin.x = 0;
|
||||
boundRect.origin.y = 0;
|
||||
}
|
||||
|
||||
|
||||
[self.contentView setBounds:boundRect];
|
||||
}
|
||||
|
||||
|
||||
|
||||
[self.zv updateFrame: boundRect kbdRect:kbddelta];
|
||||
[self.zv switchOrientation:requiredOrientation]; // a faire après le boundRect
|
||||
|
||||
printf("*** setbound rect %f,%f\n",boundRect.size.width,boundRect.size.height);
|
||||
|
||||
[UIView commitAnimations];
|
||||
|
||||
|
||||
// l'interface est repositionnées mais non animée
|
||||
|
||||
CGRect uirect = [[UIScreen mainScreen] applicationFrame];
|
||||
CGRect uirectrotate = CGRectApplyAffineTransform(uirect,matv);
|
||||
|
||||
uirectrotate.origin.x = 0;
|
||||
uirectrotate.origin.y = 0;
|
||||
|
||||
[self.kbdc updateView:uirectrotate];
|
||||
[pManager updateNotificationView:uirectrotate];
|
||||
|
||||
inUpdateView--;
|
||||
}
|
||||
|
||||
|
||||
// IOS 5 Compatibility
|
||||
|
||||
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
|
||||
{
|
||||
return NO;
|
||||
}
|
||||
|
||||
- (BOOL)shouldAutorotate
|
||||
{
|
||||
return NO;
|
||||
}
|
||||
|
||||
|
||||
- (void)didReceiveMemoryWarning {
|
||||
// Releases the view if it doesn't have a superview.
|
||||
[super didReceiveMemoryWarning];
|
||||
|
||||
// Release any cached data, images, etc that aren't in use.
|
||||
}
|
||||
|
||||
|
||||
-(void)viewWillAppear:(BOOL)animated
|
||||
{
|
||||
printf("view will appear");
|
||||
[[pManager getEmulatorView].contentView reenableAllGestures];
|
||||
|
||||
[[pManager getEmulatorView].kbdc setEmulatorTitle:config.visibleName.c_str()];
|
||||
|
||||
if ([pManager hasSecondary])
|
||||
{
|
||||
[pManager setSecondaryInputMode];
|
||||
}
|
||||
|
||||
if (pMac)
|
||||
{
|
||||
// réactive l'interface
|
||||
if ([pManager hasSecondary])
|
||||
{
|
||||
// [[pManager getEmulatorView].kbdc restoreInput];
|
||||
}
|
||||
else
|
||||
{
|
||||
debug_printf("### unpausing emulator");
|
||||
r_sim65816.resume();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
debug_printf("### starting new emulator instance");
|
||||
|
||||
|
||||
[[pManager getEmulatorView].kbdc resetSpecialKeys];
|
||||
pMac = new CEmulatorMac(NULL,1);
|
||||
config.xmlAlreadyLoaded=0;
|
||||
pMac->setConfig(&config);
|
||||
pMac->launchEmulator();
|
||||
|
||||
// remets un ratio de 1.0
|
||||
[self.zv setRatioToOne];
|
||||
[self.zv switchOrientation:self.zv->curOrientation];
|
||||
}
|
||||
|
||||
[self.zv.ew activateEmulatorRefresh:option.getIntValue(OPTION_FRAMERATE)];
|
||||
|
||||
}
|
||||
|
||||
-(void)viewWillDisappear:(BOOL)animated
|
||||
{
|
||||
|
||||
// elimine les gestures (et les timers)
|
||||
[[pManager getEmulatorView].contentView disableGestures:MODE_ALL];
|
||||
if (pMac)
|
||||
{
|
||||
if ([pManager hasSecondary]==false)
|
||||
{
|
||||
debug_printf("### pausing emulator");
|
||||
r_sim65816.pause();
|
||||
}
|
||||
}
|
||||
[self.zv.ew deactivateEmulatorRefresh];
|
||||
}
|
||||
|
||||
- (void)dealloc {
|
||||
|
||||
[self.zv release];
|
||||
self.zv = nil;
|
||||
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
@end
|
79
Common.iphone/activegsList.h
Normal file
@ -0,0 +1,79 @@
|
||||
/*
|
||||
ActiveGS, Copyright 2004-2016 Olivier Goguel, https://github.com/ogoguel/ActiveGS
|
||||
Based on Kegs, Copyright 2004 Kent Dickey, https://kegs.sourceforge.net
|
||||
This code is covered by the GNU GPL licence
|
||||
*/
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import <QuartzCore/CALayer.h>
|
||||
#include "../Common/CEMulatorCtrl.h"
|
||||
#include "../Common/3rdpartylib/simplexml.h"
|
||||
#include "../Common/ActiveGSList.h"
|
||||
|
||||
#define LABELWIDTH 260
|
||||
#define LABELHEIGHT 200
|
||||
|
||||
@interface itemClass : NSObject
|
||||
{
|
||||
@public
|
||||
/*
|
||||
MyString name;
|
||||
MyString desc;
|
||||
MyString company;
|
||||
MyString year;
|
||||
MyString theid;
|
||||
MyString thumb;
|
||||
//#define MAX_SCREENSHOTS 10
|
||||
// MyString screenShots[MAX_SCREENSHOTS];
|
||||
MyString screenShots0;
|
||||
MyString screenShots1;
|
||||
MyString screenShots2;
|
||||
simplexml* pXML;
|
||||
int is2GS;
|
||||
*/
|
||||
ActiveGSElement* element;
|
||||
}
|
||||
@end
|
||||
|
||||
|
||||
@interface UILabelMargin : UILabel
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
enum { ONLY_APPLE2=1, ONLY_2GS=2, ALL=4, ALL_NO_INDEX=8, DOC_LIST=128 };
|
||||
|
||||
@interface activegsList : UITableViewController <UITableViewDelegate,UITableViewDataSource>
|
||||
{
|
||||
|
||||
|
||||
NSArray *_searchArray ;
|
||||
NSString* _sourceName;
|
||||
NSString* _sourceRevision;
|
||||
UILabelMargin* _warningLabel;
|
||||
NSMutableArray *_listOfItems;
|
||||
int bLoaded;
|
||||
int updateCheckHasBeenDone;
|
||||
// simplexml* pXML;
|
||||
@public
|
||||
ActiveGSList list;
|
||||
|
||||
MyString listPath;
|
||||
MyString versionPath;
|
||||
MyString trackerName;
|
||||
int filter;
|
||||
}
|
||||
|
||||
@property(nonatomic,retain) NSMutableArray* listOfItems;
|
||||
@property(nonatomic,retain) UILabelMargin* warningLabel;
|
||||
@property(nonatomic,retain) NSString* sourceRevision;
|
||||
@property(nonatomic,retain) NSString* sourceName;
|
||||
@property(nonatomic,retain) NSArray *searchArray ;
|
||||
|
||||
- (simplexml*)addList:(const char*)_listPath;
|
||||
- (void)retrieveDocumentList:(MyString&) tempXML withBaseURL:(MyString&)baseURL;
|
||||
-(void)reloadData:(BOOL)_forceDownload;
|
||||
-(void)checkUpdateCallback:(NSData*)_data;
|
||||
@end
|
766
Common.iphone/activegsList.mm
Normal file
@ -0,0 +1,766 @@
|
||||
/*
|
||||
ActiveGS, Copyright 2004-2016 Olivier Goguel, https://github.com/ogoguel/ActiveGS
|
||||
Based on Kegs, Copyright 2004 Kent Dickey, https://kegs.sourceforge.net
|
||||
This code is covered by the GNU GPL licence
|
||||
*/
|
||||
|
||||
#import "activegsAppDelegate.h"
|
||||
#import "activegsList.h"
|
||||
#include "../Common/svnversion.h"
|
||||
#import "asyncimageview.h"
|
||||
#import "activegsViewController.h"
|
||||
//#include "../Common/3rdpartylib/tinyxml/tinyxml.h"
|
||||
#include "../kegs/src/sim65816.h"
|
||||
#include "asynccommand.h"
|
||||
|
||||
extern void x_notify_download_failure(const char*_url);
|
||||
|
||||
|
||||
@implementation itemClass
|
||||
@end
|
||||
|
||||
@implementation UILabelMargin
|
||||
|
||||
- (CGRect)textRectForBounds:(CGRect)bounds limitedToNumberOfLines:(NSInteger)numberOfLines
|
||||
{
|
||||
return [super textRectForBounds:UIEdgeInsetsInsetRect(bounds,UIEdgeInsetsMake(15,15,15,15)) limitedToNumberOfLines:numberOfLines];
|
||||
}
|
||||
|
||||
-(void)drawTextInRect:(CGRect)rect
|
||||
{
|
||||
CGRect r = [self textRectForBounds:rect limitedToNumberOfLines:self.numberOfLines];
|
||||
[super drawTextInRect:r];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
|
||||
void xmltostring(simplexml* _this,MyString& _output)
|
||||
{
|
||||
|
||||
|
||||
MyString s;
|
||||
s.Format("<%s",_this->key());
|
||||
_output += s;
|
||||
|
||||
for (keyvalue_rec *ptr = _this->properties(); ptr!=NULL; ptr=ptr->next)
|
||||
{
|
||||
s.Format(" %s=\"%s\"",ptr->key,ptr->value);
|
||||
_output += s;
|
||||
}
|
||||
|
||||
_output +=">\n";
|
||||
const char *v = _this->value();
|
||||
if (v)
|
||||
_output +=v;
|
||||
int nc = _this->number_of_children();
|
||||
for(int i=0;i<nc;i++)
|
||||
xmltostring(_this->child(i),_output);
|
||||
s.Format("</%s>\n",_this->key());
|
||||
_output += s;
|
||||
|
||||
}
|
||||
|
||||
|
||||
static UIImage* defaultImage2GS = nil;
|
||||
static UIImage* defaultImageII = nil;
|
||||
|
||||
|
||||
@implementation activegsList
|
||||
|
||||
@synthesize listOfItems = _listOfItems;
|
||||
@synthesize warningLabel = _warningLabel;
|
||||
@synthesize sourceRevision = _sourceRevision;
|
||||
@synthesize sourceName = _sourceName;
|
||||
@synthesize searchArray = _searchArray ;
|
||||
|
||||
|
||||
+(void)initialize
|
||||
{
|
||||
[super initialize];
|
||||
|
||||
float rr = [pManager resolutionRatio];
|
||||
|
||||
NSString *imgSource = [[NSBundle mainBundle] pathForResource:@"logo_apple2gs" ofType:@"png"];
|
||||
if (imgSource)
|
||||
{
|
||||
defaultImage2GS = [UIImage imageWithContentsOfFile: imgSource] ;
|
||||
defaultImage2GS = [AsyncImageView processImage:defaultImage2GS width:64*rr height:40*rr];
|
||||
[defaultImage2GS retain];
|
||||
}
|
||||
else
|
||||
defaultImage2GS = nil;
|
||||
|
||||
NSString *imgSource2 = [[NSBundle mainBundle] pathForResource:@"logo_apple2" ofType:@"png"];
|
||||
if (imgSource2)
|
||||
{
|
||||
defaultImageII = [UIImage imageWithContentsOfFile: imgSource2];
|
||||
defaultImageII = [AsyncImageView processImage:defaultImageII width:64*rr height:40*rr];
|
||||
[defaultImageII retain];
|
||||
}
|
||||
else
|
||||
defaultImageII = nil;
|
||||
|
||||
}
|
||||
|
||||
-(void)retrieveDocumentList:(MyString&) tempXML withBaseURL:(MyString&) _baseUrl;
|
||||
{
|
||||
|
||||
tempXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<list version=\"1\">";
|
||||
tempXML += "<source>My 2GS</source>";
|
||||
|
||||
NSArray *dopaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
|
||||
NSString *documentsDirectory = [dopaths objectAtIndex:0];
|
||||
NSFileManager *manager = [NSFileManager defaultManager];
|
||||
// NSArray *fileList = [manager directoryContentsAtPath:documentsDirectory];
|
||||
NSError* err;
|
||||
NSArray *fileList = [manager contentsOfDirectoryAtPath:documentsDirectory error:&err];
|
||||
|
||||
MyString ignoreList;
|
||||
|
||||
const char* utf8docdir = [documentsDirectory UTF8String];
|
||||
listPath.Format("%s/LOCAL.ACTIVEGSXML",utf8docdir);
|
||||
_baseUrl =listPath;
|
||||
|
||||
CDownload dl(utf8docdir);
|
||||
dl.bNotifyDownloadFailure = true;
|
||||
|
||||
|
||||
// parse déjà les fichier .activegsxml
|
||||
|
||||
for (NSString *s in fileList)
|
||||
{
|
||||
const char* fn = [s UTF8String];
|
||||
const char* ext = getext(fn);
|
||||
|
||||
if (strcasecmp(ext,"activegsxml"))
|
||||
continue;
|
||||
|
||||
/*
|
||||
MyString fullpathname = utf8docdir;
|
||||
fullpathname += "/";
|
||||
fullpathname += fn;
|
||||
*/
|
||||
MyString path;
|
||||
MyString shortname;
|
||||
|
||||
dl.retrieveFile(fn,path,shortname);
|
||||
FILE* f= fopen(path.c_str(),"rb");
|
||||
if (!f) continue;
|
||||
fseek(f,0,SEEK_END);
|
||||
int si = ftell(f);
|
||||
|
||||
|
||||
fseek(f,0,SEEK_SET);
|
||||
char *buf = new char[si+1];
|
||||
memset(buf,0,si+1);
|
||||
fread(buf,1,si,f);
|
||||
simplexml* p = new simplexml(buf);
|
||||
if (!p)
|
||||
{
|
||||
delete buf;
|
||||
continue;
|
||||
}
|
||||
if (!strcasecmp(p->key(),"config"))
|
||||
{
|
||||
MyString temp;
|
||||
xmltostring(p,temp);
|
||||
printf("%s",temp.c_str());
|
||||
tempXML += temp.c_str();
|
||||
|
||||
// rajoute les images dans une liste blackliste
|
||||
for(int i=0;i<p->number_of_children();i++)
|
||||
{
|
||||
simplexml* child = p->child(i);
|
||||
if (!strcmp(child->key(),"image"))
|
||||
{
|
||||
int order;
|
||||
MyString path;
|
||||
int isLocal = dl.parseFilenameAndMakeAbsolute(child->value(), order, path);
|
||||
if (isLocal)
|
||||
{
|
||||
ignoreList+="?";
|
||||
ignoreList+=getfile(path);
|
||||
ignoreList+="?";
|
||||
// printf("ignoring:%s",getfile(path.c_str()));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
delete buf;
|
||||
fclose(f);
|
||||
}
|
||||
|
||||
// parse les autres fichiers
|
||||
for (NSString *s in fileList)
|
||||
{
|
||||
const char* fn = [s UTF8String];
|
||||
const char* ext = getext(fn);
|
||||
|
||||
if ( strcasecmp(ext,"zip")
|
||||
&& strcasecmp(ext,"2mg")
|
||||
&& strcasecmp(ext,"raw")
|
||||
&& strcasecmp(ext,"dsk")
|
||||
&& strcasecmp(ext,"po")
|
||||
&& strcasecmp(ext,"do")
|
||||
&& strcasecmp(ext,"nib")
|
||||
&& strcasecmp(ext,"bin"))
|
||||
continue;
|
||||
|
||||
// si le fichier est dans la liste des blacklistée : ignore
|
||||
MyString pat;
|
||||
pat.Format("?%s?",fn);
|
||||
if (ignoreList.Find(pat)!=-1)
|
||||
continue;
|
||||
|
||||
/*
|
||||
MyString fullpathname = utf8docdir;
|
||||
fullpathname += "/";
|
||||
fullpathname += fn;
|
||||
*/
|
||||
|
||||
MyString path;
|
||||
MyString shortname;
|
||||
// CDownload dl;
|
||||
// dl.bNotifyDownloadFailure = true;
|
||||
dl.retrieveFile(fn,path,shortname);
|
||||
FILE* f= fopen(path.c_str(),"rb");
|
||||
if (!f) continue;
|
||||
fseek(f,0,SEEK_END);
|
||||
int si = ftell(f);
|
||||
|
||||
int slot;
|
||||
if (si < 800*1024)
|
||||
slot = 6;
|
||||
else
|
||||
if (si < 900*1024)
|
||||
slot = 5;
|
||||
else
|
||||
slot = 7;
|
||||
|
||||
tempXML += "<config version=\"2\">";
|
||||
tempXML += "<name>";
|
||||
tempXML += getfilenoext(fn);
|
||||
tempXML += "</name>";
|
||||
|
||||
if (slot==6)
|
||||
tempXML += "<format>APPLE 2</format>";
|
||||
else
|
||||
tempXML += "<format>2GS</format>";
|
||||
|
||||
tempXML += "<pic type=\"thumbnail\">";
|
||||
// tempXML += utf8docdir;
|
||||
// tempXML += "/";
|
||||
tempXML += getfilenoext(fn);
|
||||
tempXML += ".png</pic>";
|
||||
|
||||
tempXML += "<image slot=\"";
|
||||
MyString slotstr;
|
||||
slotstr.Format("%d",slot);
|
||||
tempXML += slotstr;
|
||||
tempXML += "\" disk=\"1\">";
|
||||
tempXML += fn;
|
||||
tempXML += "</image>";
|
||||
tempXML += "<bootslot>";
|
||||
tempXML += slotstr;
|
||||
tempXML += "</bootslot>";
|
||||
tempXML += "</config>";
|
||||
|
||||
|
||||
fclose(f);
|
||||
}
|
||||
|
||||
tempXML+="</list>";
|
||||
printf(tempXML.c_str());
|
||||
}
|
||||
|
||||
- (simplexml*)addList:(const char*)_listPath
|
||||
{
|
||||
|
||||
double currTime = [[NSDate date] timeIntervalSince1970];
|
||||
|
||||
MyString path;
|
||||
MyString shortname;
|
||||
// const char* pxmlstring ;
|
||||
// char* s = NULL;
|
||||
MyString xmlString;
|
||||
|
||||
|
||||
list.reset();
|
||||
|
||||
if (!(filter & DOC_LIST))
|
||||
{
|
||||
list.loadFromFile(listPath.c_str());
|
||||
}
|
||||
else
|
||||
{
|
||||
MyString baseURL;
|
||||
[self retrieveDocumentList:xmlString withBaseURL:baseURL];
|
||||
list.pathName = baseURL;
|
||||
list.processString(xmlString.c_str());
|
||||
|
||||
}
|
||||
|
||||
|
||||
NSString* name = [NSString stringWithUTF8String:list.sourceName];
|
||||
NSString* rev = [NSString stringWithUTF8String:list.sourceRevision];
|
||||
self.sourceName=name;
|
||||
self.sourceRevision=rev;
|
||||
|
||||
printf("nb element before filter %d\n",list.elements.size());
|
||||
for(int i=0;i<list.elements.size();i++)
|
||||
{
|
||||
ActiveGSElement* el = &list.elements.at(i);
|
||||
itemClass* ic = [[itemClass alloc] autorelease];
|
||||
// itemClass* ic = [itemClass alloc];
|
||||
|
||||
ic->element = el;
|
||||
if ( (filter & ALL)
|
||||
|| (filter & ALL_NO_INDEX)
|
||||
||(filter & ONLY_APPLE2 && !el->is2GS)
|
||||
|| (filter & ONLY_2GS && el->is2GS) )
|
||||
[self.listOfItems addObject:ic];
|
||||
ic = nil;
|
||||
}
|
||||
double d = [[NSDate date] timeIntervalSince1970] - currTime;
|
||||
printf("loaded %s in %f\n",listPath.c_str(),d);
|
||||
//return pXMLList;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
|
||||
static NSInteger compareImagesUsingSelector(id p1, id p2, void *context)
|
||||
{
|
||||
itemClass* obj1 = p1;
|
||||
itemClass* obj2 = p2;
|
||||
const char* c1 = obj1->element->name.c_str();
|
||||
const char* c2 = obj2->element->name.c_str();
|
||||
int ret = strcasecmp(c1,c2);
|
||||
if (ret>0)
|
||||
return NSOrderedDescending;
|
||||
else
|
||||
if (!ret)
|
||||
return NSOrderedSame;
|
||||
else
|
||||
return NSOrderedAscending;
|
||||
}
|
||||
|
||||
- (void)addListAsync:(NSTimer*)timer
|
||||
{
|
||||
|
||||
|
||||
[self addList:listPath.c_str()];
|
||||
|
||||
if (!(filter & ALL_NO_INDEX))
|
||||
[self.listOfItems sortUsingFunction:compareImagesUsingSelector context:nil];
|
||||
|
||||
[(activegsViewController*)[pManager getBrowserView] activateLoader:FALSE];
|
||||
|
||||
#ifdef ACTIVEGS_ENABLE_DOCUMENT
|
||||
if (( filter & DOC_LIST) && [self.listOfItems count]==0)
|
||||
{
|
||||
CGSize s = self.view.frame.size;
|
||||
|
||||
CGRect r = CGRectMake((s.width-LABELWIDTH)/2,(s.height-LABELHEIGHT)/2,LABELWIDTH,LABELHEIGHT);
|
||||
self.warningLabel = [[[UILabelMargin alloc]initWithFrame:r ] autorelease];
|
||||
self.warningLabel.backgroundColor = [UIColor colorWithWhite:0.8 alpha:0.5];
|
||||
self.warningLabel.lineBreakMode = UILineBreakModeWordWrap;
|
||||
self.warningLabel.numberOfLines = 0;
|
||||
// label.textAlignment = UITextAlignmentCenter;
|
||||
self.warningLabel.font = [UIFont systemFontOfSize:(CGFloat)12.0];
|
||||
self.warningLabel.text = @"To add Apple II/2GS disk images :\n\n1- Connect your device to iTunes\n2- Go the 'Apps' tab\n3- Copy files (.2MG, .DSK, .ZIP, ...) to the ActiveGS Documents directory\n4- Click on the \"Refresh\" button to update the list!\n\nMore info on the ActiveGS website.";
|
||||
/*
|
||||
[[warningLabel layer] setCornerRadius:8];
|
||||
[[warningLabel layer] setMasksToBounds:NO];
|
||||
[[warningLabel layer] setShadowColor:[UIColor blackColor].CGColor];
|
||||
[[warningLabel layer] setShadowOpacity:1.0f];
|
||||
[[warningLabel layer] setShadowRadius:6.0f];
|
||||
[[warningLabel layer] setShadowOffset:CGSizeMake(0, 3)];
|
||||
*/
|
||||
[self.view addSubview:self.warningLabel];
|
||||
|
||||
}
|
||||
|
||||
activegsViewController* v = (activegsViewController*)[pManager getBrowserView];
|
||||
|
||||
if ([self.listOfItems count]==0)
|
||||
[(UIButton*)v.navItem.titleView setTitle:@"Refresh" forState:UIControlStateNormal];
|
||||
else
|
||||
[(UIButton*)v.navItem.titleView setTitle:self.sourceName forState:UIControlStateNormal];
|
||||
|
||||
[(UIButton*)v.navItem.titleView setHidden:NO];
|
||||
#endif
|
||||
|
||||
// regarde si on doit raffraichir la liste
|
||||
|
||||
if (!versionPath.IsEmpty())
|
||||
{
|
||||
[[[AsyncCommand alloc] initCommand:versionPath.c_str() withObject:self withSelector:@selector(checkUpdateCallback:)] autorelease];
|
||||
}
|
||||
|
||||
bLoaded = 1;
|
||||
[(UITableView*)self.view reloadData];
|
||||
[self viewWillAppear:FALSE];
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
-(void)checkUpdateCallback:(NSData*)_data
|
||||
{
|
||||
|
||||
if (_data)
|
||||
{
|
||||
|
||||
char buffer[1024];
|
||||
memset(buffer,0,1024);
|
||||
[_data getBytes:buffer length:1023];
|
||||
|
||||
NSString* remoteVersion = [[NSString stringWithUTF8String:buffer] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
|
||||
// NSString* remoteVersion = @"1.08";
|
||||
|
||||
// vérifie que ca correspond bien à une version
|
||||
if ([remoteVersion characterAtIndex:1] == '.')
|
||||
{
|
||||
NSLog(@"source: %@ current:%@ vs.remote:%@ ",self.sourceName,self.sourceRevision,remoteVersion);
|
||||
|
||||
if (![self.sourceRevision isEqualToString:remoteVersion])
|
||||
{
|
||||
printf("need to upgrade\n");
|
||||
[(activegsViewController*)[pManager getBrowserView] updateDialog:remoteVersion];
|
||||
}
|
||||
else
|
||||
printf("nothing to update\n");
|
||||
}
|
||||
else
|
||||
printf("bad format");
|
||||
|
||||
}
|
||||
else
|
||||
printf("callback failed.");
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
|
||||
// DOES NOT WORK ON UITABLEVIEW
|
||||
|
||||
-(void)viewWillAppear:(BOOL)animated
|
||||
{
|
||||
NSLog(@"viewWillAppear -- activegsList");
|
||||
// change le titre
|
||||
[pManager getBrowserView]->navItem.title = sourceName;
|
||||
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
-(void)reloadData:(BOOL)_forceDownload
|
||||
{
|
||||
//Initialize the array.
|
||||
self.listOfItems = [[[NSMutableArray alloc] init] autorelease];
|
||||
|
||||
list.reset();
|
||||
// pXML = NULL;
|
||||
|
||||
[(activegsViewController*)[pManager getBrowserView] activateLoader:TRUE];
|
||||
|
||||
//Set the title
|
||||
//self.navigationItem.title = @"IIGS";
|
||||
|
||||
bLoaded = 0;
|
||||
|
||||
// élimine le warning
|
||||
if (self.warningLabel)
|
||||
{
|
||||
[self.warningLabel removeFromSuperview];
|
||||
self.warningLabel= nil;
|
||||
}
|
||||
|
||||
// force le rafraichissement de la liste
|
||||
[(UITableView*)self.view reloadData];
|
||||
|
||||
|
||||
if (_forceDownload)
|
||||
{
|
||||
CDownload dl("***ERR***");
|
||||
if (!(filter & DOC_LIST))
|
||||
{
|
||||
dl.deleteCachedFile(listPath.c_str());
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef ACTIVEGS_BACKGROUNDIMAGE
|
||||
self.tableView.backgroundColor = [UIColor clearColor];
|
||||
self.tableView.opaque = NO;
|
||||
#endif
|
||||
|
||||
[NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(addListAsync:) userInfo:nil repeats:NO];
|
||||
|
||||
// [self performSelectorOnMainThread:@selector(addListAsync:)withObject:self waitUntilDone:NO];
|
||||
|
||||
|
||||
}
|
||||
|
||||
- (void)viewWillAppear:(BOOL)animated
|
||||
{
|
||||
NSLog(@"activeGSList viewWillAppear %@",self);
|
||||
|
||||
|
||||
if (self.sourceName)
|
||||
{
|
||||
#ifndef ACTIVEGS_BACKGROUNDIMAGE
|
||||
[(UIButton*)[pManager getBrowserView].navItem.titleView setTitle:self.sourceName forState:UIControlStateNormal];
|
||||
#else
|
||||
((UILabel*)[pManager getBrowserView].navItem.titleView).text = self.sourceName;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
- (void)viewDidLoad {
|
||||
|
||||
|
||||
NSLog(@"activeGSList viewDidLoad");
|
||||
|
||||
|
||||
[super viewDidLoad];
|
||||
|
||||
|
||||
// IOS8 ISSUE !!!!! DefaultRawHeight = UITableViewAutomaticDimension
|
||||
|
||||
CGFloat h = 44 * [pManager resolutionRatio];
|
||||
self.tableView.rowHeight = h;
|
||||
self.tableView.delegate = self;
|
||||
self.tableView.dataSource = self;
|
||||
|
||||
|
||||
self.searchArray = [NSArray arrayWithObjects:
|
||||
@"#", @"A", @"B", @"C", @"D", @"E", @"F", @"G", @"H", @"I", @"J", @"K", @"L",
|
||||
@"M", @"N", @"O", @"P", @"Q", @"R", @"S", @"T", @"U", @"V", @"W", @"X", @"Z",nil];
|
||||
|
||||
|
||||
|
||||
[self reloadData:NO];
|
||||
|
||||
|
||||
}
|
||||
|
||||
- (int)findIndexFromRowSection:(int)row section:(char)section
|
||||
{
|
||||
|
||||
if (filter & ALL_NO_INDEX)
|
||||
return row;
|
||||
|
||||
// cherche le premier
|
||||
int count = 0;
|
||||
int index = 0;
|
||||
int nb = [self.listOfItems count];
|
||||
for(int i=0;i<nb;i++)
|
||||
{
|
||||
itemClass* ic = [self.listOfItems objectAtIndex:i];
|
||||
char c = ic->element->name.at(0);
|
||||
|
||||
if (c>='0' && c<='9') c='#';
|
||||
if (c>='a' && c<='z') c+='A'-'a';
|
||||
if (c==section)
|
||||
{
|
||||
|
||||
if (count == row)
|
||||
{
|
||||
index = i;
|
||||
break;
|
||||
}
|
||||
else count++;
|
||||
}
|
||||
}
|
||||
return index;
|
||||
}
|
||||
|
||||
|
||||
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
|
||||
{
|
||||
// remets le thumbnail en top priorité
|
||||
[[asyncImageQueue sharedQueue] prioritizeItem:cell.imageView];
|
||||
|
||||
int row = [indexPath row];
|
||||
if (row & 1)
|
||||
cell.backgroundColor = [UIColor colorWithWhite:0.8 alpha:0.6];
|
||||
else
|
||||
cell.backgroundColor = [UIColor colorWithWhite:0.9 alpha:0.6];
|
||||
|
||||
}
|
||||
|
||||
|
||||
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
|
||||
{
|
||||
|
||||
NSInteger row = [indexPath row];
|
||||
NSInteger section = [indexPath section];
|
||||
int index = [self findIndexFromRowSection:row section:*[[self.searchArray objectAtIndex:section] UTF8String]];
|
||||
|
||||
NSLog(@"cellForRowAtIndexPath cell %d %d %d",(int)row,(int)section,index);
|
||||
itemClass* ic = [self.listOfItems objectAtIndex:index];
|
||||
NSString* cellValue = [NSString stringWithUTF8String: ic->element->name.c_str()];
|
||||
NSString *CellIdentifier = [NSString stringWithFormat:@"Cell_%@",cellValue];
|
||||
|
||||
UITableViewCell *cell = nil;
|
||||
|
||||
cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
|
||||
if (cell != nil)
|
||||
return cell;
|
||||
|
||||
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
|
||||
|
||||
cell.textLabel.text = cellValue;
|
||||
|
||||
cell.textLabel.font = [UIFont fontWithName:@"ShastonHi640" size:16*[pManager resolutionRatio]];
|
||||
|
||||
cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;
|
||||
|
||||
if ( ic->element->is2GS)
|
||||
cell.imageView.image = defaultImage2GS;
|
||||
else
|
||||
cell.imageView.image = defaultImageII;
|
||||
|
||||
|
||||
|
||||
AsyncImageView* asyncImage = [[AsyncImageView alloc] autorelease];
|
||||
float s = [pManager resolutionRatio]*[pManager dpiRatio];
|
||||
[asyncImage initImage:ic->element->thumb.c_str() target:cell.imageView width:64*s height:40*s];
|
||||
// [asyncImage performSelectorOnMainThread:@selector(loadImage:) withObject:nil waitUntilDone:NO];
|
||||
[asyncImage loadImage:self];
|
||||
|
||||
return cell;
|
||||
}
|
||||
|
||||
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
|
||||
{
|
||||
int row = [indexPath row];
|
||||
int section = [indexPath section];
|
||||
int index = [self findIndexFromRowSection:row section:*[[self.searchArray objectAtIndex:section] UTF8String]];
|
||||
itemClass* ic = [self.listOfItems objectAtIndex:index];
|
||||
[pManager launchDiskImage:ic->element pathname:list.pathName.c_str() trackername:list.trackerName.c_str()];
|
||||
|
||||
}
|
||||
|
||||
- (void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath
|
||||
{
|
||||
int row = [indexPath row];
|
||||
int section = [indexPath section];
|
||||
int index = [self findIndexFromRowSection:row section:*[[self.searchArray objectAtIndex:section] UTF8String]];
|
||||
itemClass* ic = [self.listOfItems objectAtIndex:index];
|
||||
detailViewController* dv = [pManager getDetailView];
|
||||
dv->diskSelected = ic->element ;
|
||||
dv->list = &(self->list) ;
|
||||
|
||||
[pManager doStateChange:[pManager getDetailView] type:kCATransitionPush sens:kCATransitionFromRight];
|
||||
|
||||
}
|
||||
|
||||
|
||||
- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView {
|
||||
|
||||
NSLog(@"sectionIndexTitlesForTableView");
|
||||
|
||||
if (!bLoaded)
|
||||
return nil;
|
||||
else
|
||||
if (filter & ALL_NO_INDEX)
|
||||
return nil;
|
||||
else
|
||||
return self.searchArray;
|
||||
}
|
||||
|
||||
- (NSInteger)tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index {
|
||||
|
||||
NSLog(@"sectionForSectionIndexTitle %d",(int)index);
|
||||
if (!bLoaded)
|
||||
return -1;
|
||||
else
|
||||
return index;
|
||||
|
||||
}
|
||||
|
||||
|
||||
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
|
||||
{
|
||||
NSLog(@"numberOfSectionsInTableView");
|
||||
if (!bLoaded)
|
||||
return 1;
|
||||
else
|
||||
if (filter & ALL_NO_INDEX)
|
||||
return 1;
|
||||
else
|
||||
return [self.searchArray count];
|
||||
}
|
||||
|
||||
|
||||
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
|
||||
{
|
||||
if (!bLoaded)
|
||||
return nil;
|
||||
else
|
||||
if (filter & ALL_NO_INDEX)
|
||||
return nil;
|
||||
else
|
||||
return [self.searchArray objectAtIndex:section];
|
||||
}
|
||||
|
||||
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
|
||||
{
|
||||
NSLog(@"numberOfRowsInSection");
|
||||
|
||||
if (!bLoaded)
|
||||
return 0;
|
||||
if (filter & ALL_NO_INDEX)
|
||||
return [self.listOfItems count];
|
||||
|
||||
const char* search = [[self.searchArray objectAtIndex:section] UTF8String];
|
||||
// cherche le premier
|
||||
int count = 0;
|
||||
NSInteger nb = [self.listOfItems count];
|
||||
|
||||
for(int i=0;i<nb;i++)
|
||||
{
|
||||
itemClass* ic = [self.listOfItems objectAtIndex:i];
|
||||
char c = ic->element->name.at(0);
|
||||
if (c>='0' && c<='9') c='#';
|
||||
if (c>='a' && c<='z') c+='A'-'a';
|
||||
if (c==*search)
|
||||
count++;
|
||||
else
|
||||
if (count)
|
||||
{
|
||||
// printf("count: %s = %d\n",search,count);
|
||||
return count;
|
||||
}
|
||||
}
|
||||
return count;
|
||||
}
|
||||
|
||||
- (void)dealloc
|
||||
{
|
||||
/*
|
||||
if (pXML)
|
||||
{
|
||||
delete pXML;
|
||||
pXML = NULL;
|
||||
}
|
||||
*/
|
||||
list.reset();
|
||||
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
|
||||
{
|
||||
return YES;
|
||||
}
|
||||
|
||||
- (BOOL)shouldAutorotate
|
||||
{
|
||||
return YES;
|
||||
}
|
||||
|
||||
@end
|
52
Common.iphone/activegsViewController.h
Normal file
@ -0,0 +1,52 @@
|
||||
/*
|
||||
ActiveGS, Copyright 2004-2016 Olivier Goguel, https://github.com/ogoguel/ActiveGS
|
||||
Based on Kegs, Copyright 2004 Kent Dickey, https://kegs.sourceforge.net
|
||||
This code is covered by the GNU GPL licence
|
||||
*/
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#include "activegsAppDelegate.h"
|
||||
#include "../kegs/iOS/emulatorView.h"
|
||||
#import "activegsList.h"
|
||||
|
||||
/*
|
||||
@interface activeUITabBarController : UITabBarController
|
||||
|
||||
@end
|
||||
|
||||
@interface activeUINavigationBar : UINavigationBar
|
||||
|
||||
@end
|
||||
*/
|
||||
|
||||
@interface activegsViewController : UIVIEWCONTROLLERROOT <UITabBarControllerDelegate,UIAlertViewDelegate>
|
||||
{
|
||||
|
||||
// NSMutableArray* listViews;
|
||||
UITabBarController* _tabView;
|
||||
UINavigationBar* _navView;
|
||||
UIActivityIndicatorView* _loader;
|
||||
activegsList* _docList; // pour retrouver le label!
|
||||
activegsList* _l0;
|
||||
UINavigationItem* _navItem;
|
||||
|
||||
}
|
||||
|
||||
@property (retain,nonatomic) UINavigationItem* navItem;
|
||||
@property (retain,nonatomic) UINavigationBar* navView;
|
||||
@property (retain,nonatomic) UITabBarController* tabView;
|
||||
@property (retain,nonatomic) UIActivityIndicatorView* loader;
|
||||
@property (retain,nonatomic) activegsList* docList;
|
||||
@property (retain,nonatomic) activegsList* l0;
|
||||
|
||||
- (void)loadView;
|
||||
-(void)updateView;
|
||||
-(void)swipeLeft :(UISwipeGestureRecognizer*)_rec ;
|
||||
-(void)swipeRight :(UISwipeGestureRecognizer*)_rec ;
|
||||
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation ;
|
||||
-(void)activateLoader:(BOOL)_on;
|
||||
//+(void)initialize;
|
||||
-(void)updateDialog:(NSString*) newVersion;
|
||||
|
||||
@end
|
||||
|
555
Common.iphone/activegsViewController.mm
Normal file
@ -0,0 +1,555 @@
|
||||
/*
|
||||
ActiveGS, Copyright 2004-2016 Olivier Goguel, https://github.com/ogoguel/ActiveGS
|
||||
Based on Kegs, Copyright 2004 Kent Dickey, https://kegs.sourceforge.net
|
||||
This code is covered by the GNU GPL licence
|
||||
*/
|
||||
|
||||
#import "activegsAppDelegate.h"
|
||||
#import "activegsViewController.h"
|
||||
#import "activegslist.h"
|
||||
#include "../Kegs/Src/sim65816.h"
|
||||
|
||||
|
||||
@implementation activegsViewController
|
||||
@synthesize navItem = _navItem;
|
||||
@synthesize navView = _navView;
|
||||
@synthesize docList = _docList;
|
||||
@synthesize l0 = _l0;
|
||||
@synthesize loader = _loader;
|
||||
@synthesize tabView = _tabView;
|
||||
|
||||
|
||||
-(void)viewWillAppear:(BOOL)animated
|
||||
{
|
||||
NSLog(@"viewWillAppear -- activegsViewController");
|
||||
[self updateView];
|
||||
}
|
||||
|
||||
|
||||
-(void)activateLoader:(BOOL)_on
|
||||
{
|
||||
if (_on)
|
||||
{
|
||||
[self.loader startAnimating];
|
||||
self.loader.hidden=false;
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
[self.loader stopAnimating];
|
||||
self.loader.hidden=true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
|
||||
*/
|
||||
|
||||
- (void)UITabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
|
||||
{
|
||||
|
||||
activegsList* l = (activegsList*)viewController;
|
||||
#ifndef ACTIVEGS_BACKGROUNDIMAGE
|
||||
if (l.sourceName)
|
||||
[(UIButton*)self.navItem.titleView setTitle:l.sourceName forState:UIControlStateNormal];
|
||||
#endif
|
||||
[self updateView];
|
||||
#ifdef ACTIVEGS_SAVELASTTAB
|
||||
// sauve la config
|
||||
option.setIntValue(OPTION_LASTTAB,tabBarController.selectedIndex);
|
||||
option.saveOptions(1);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
//#define WHEELSIZEREF 100
|
||||
//float WHEELSIZE = WHEELSIZEREF ;
|
||||
|
||||
- (void)loadView
|
||||
{
|
||||
NSLog(@"activeGSViewController -- loadView");
|
||||
|
||||
[super loadView];
|
||||
|
||||
CGRect r = [UIScreen mainScreen].applicationFrame;
|
||||
|
||||
#if 0
|
||||
float s = [pManager resolutionRatio];
|
||||
WHEELSIZE = WHEELSIZEREF*s;
|
||||
CGRect rl = CGRectMake((self.view.frame.size.width - WHEELSIZE)/2,(self.view.frame.size.height -WHEELSIZE)/2,WHEELSIZE,WHEELSIZE);
|
||||
self.loader = [[[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray] autorelease];
|
||||
|
||||
[self.loader.layer setValue:[NSNumber numberWithFloat:2.0f*s] forKeyPath:@"transform.scale"];
|
||||
self.loader = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
|
||||
|
||||
[self.loader setFrame:rl];
|
||||
|
||||
#endif
|
||||
self.loader = [[[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray] autorelease];
|
||||
|
||||
[self.view addSubview:self.loader];
|
||||
|
||||
[self.loader startAnimating];
|
||||
self.loader.hidden=false;
|
||||
|
||||
|
||||
|
||||
|
||||
self.navView = [[[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, r.size.width, BARVIEW_HEIGHT)] autorelease];
|
||||
self.navView.barStyle = UIBarStyleBlack;
|
||||
// self.navView.delegate = self;
|
||||
self.navItem = [[[UINavigationItem alloc] initWithTitle:@ACTIVEGS_TITLE] autorelease];
|
||||
|
||||
#ifdef ACTIVEGS_BACKGROUNDIMAGE
|
||||
[self.view addSubview:pManager.backgroundView];
|
||||
UILabel* label = [[[UILabel alloc]initWithFrame:CGRectMake(0,0,r.size.width, BARVIEW_HEIGHT)] autorelease];
|
||||
label.text = @ACTIVEGS_TITLE;
|
||||
label.font = [UIFont systemFontOfSize:(CGFloat)16.0];
|
||||
label.backgroundColor = [UIColor clearColor];
|
||||
label.textColor = [UIColor whiteColor];
|
||||
label.textAlignment = UITextAlignmentCenter;
|
||||
|
||||
self.navItem.titleView=label;
|
||||
#else
|
||||
UIButton* titleButton = [UIButton buttonWithType:(UIButtonType)100];
|
||||
[titleButton addTarget:self action:@selector(titleButton:) forControlEvents:UIControlEventTouchUpInside];
|
||||
[titleButton setTitle:@ACTIVEGS_TITLE forState:UIControlStateNormal];
|
||||
self.navItem.titleView = titleButton;
|
||||
self.navItem.titleView.hidden=YES;
|
||||
#endif
|
||||
[self.navView pushNavigationItem:self.navItem animated:FALSE];
|
||||
|
||||
// Rectangle
|
||||
#if 0
|
||||
UIBarButtonItem *browseItem = [[[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStyleBordered
|
||||
target:self
|
||||
action:@selector(backButton:)] autorelease];
|
||||
#else
|
||||
// left Arrow
|
||||
UIButton* backButton = [UIButton buttonWithType:(UIButtonType)101]; // left-pointing shape!
|
||||
[backButton addTarget:self action:@selector(backButton:) forControlEvents:UIControlEventTouchUpInside];
|
||||
[backButton setTitle:@"Back" forState:UIControlStateNormal];
|
||||
|
||||
// create button item -- possible because UIButton subclasses UIView!
|
||||
UIBarButtonItem* browseItem = [[[UIBarButtonItem alloc] initWithCustomView:backButton] autorelease];
|
||||
#endif
|
||||
|
||||
self.navItem.leftBarButtonItem = browseItem;
|
||||
|
||||
UIButton* infoButton = [UIButton buttonWithType:UIButtonTypeInfoLight];
|
||||
[infoButton addTarget:self action:@selector(infoButton:) forControlEvents:UIControlEventTouchUpInside];
|
||||
UIBarButtonItem* infoItem = [[[UIBarButtonItem alloc] initWithCustomView:infoButton] autorelease];
|
||||
|
||||
self.navItem.rightBarButtonItem = infoItem;
|
||||
|
||||
[self.view addSubview:self.navView];
|
||||
|
||||
r.origin.y = self.navView.frame.size.height;
|
||||
r.size.height -= r.origin.y;
|
||||
|
||||
self.tabView = [[[UITabBarController alloc] init] autorelease];
|
||||
[self.tabView.view setFrame:r];
|
||||
self.tabView.delegate = self;
|
||||
NSString *imgSource;
|
||||
|
||||
self.l0 = [[activegsList alloc] autorelease];
|
||||
//imgSource = [[NSBundle mainBundle] pathForResource:@ACTIVEGS_FIRSTTABLIST ofType:@"activegsxml"] ;
|
||||
self.l0->listPath = pManager->firstTabXML.c_str();
|
||||
self.l0->filter= ALL_NO_INDEX ;
|
||||
self.l0->trackerName = ACTIVEGS_FIRSTTABTRACKER;
|
||||
imgSource = [[NSBundle mainBundle] pathForResource:@ACTIVEGS_FIRSTTABICON ofType:@"png"];
|
||||
self.l0.tabBarItem = [[[UITabBarItem alloc] initWithTitle:@ACTIVEGS_FIRSTTABTITLE image:[UIImage imageWithContentsOfFile: imgSource] tag:0] autorelease];
|
||||
|
||||
#ifdef ACTIVEGS_SINGLETAB
|
||||
[self.l0.view setFrame:r];
|
||||
[self.view addSubview:self.l0.view];
|
||||
#else
|
||||
activegsList* l3 = [[activegsList alloc] autorelease];
|
||||
l3->listPath = "http://www.freetoolsassociation.com/xml/list.activegsxml";
|
||||
l3->versionPath = "http://www.freetoolsassociation.com/xml/version.dat";
|
||||
l3->filter= ALL;
|
||||
l3.tabBarItem = [[[UITabBarItem alloc] initWithTitle:@"FTA Website" image:[UIImage imageWithContentsOfFile: imgSource] tag:0] autorelease]; ;
|
||||
l3->trackerName = "FTA";
|
||||
|
||||
activegsList* l1 = [[activegsList alloc] autorelease];
|
||||
l1->listPath = "http://www.virtualapple.org/xmlfiles/list.zip";
|
||||
l1->versionPath = "http://www.virtualapple.org/xmlfiles/version.dat";
|
||||
l1->filter = ONLY_APPLE2 ;
|
||||
l1->trackerName = "VirtualApple2";
|
||||
/*NSString */imgSource = [[NSBundle mainBundle] pathForResource:@"Tab][" ofType:@"png"];
|
||||
l1.tabBarItem = [[[UITabBarItem alloc] initWithTitle:@"Apple II" image:[UIImage imageWithContentsOfFile: imgSource] tag:0] autorelease];
|
||||
|
||||
activegsList* l2 = [[activegsList alloc] autorelease];
|
||||
l2->listPath = "http://www.virtualapple.org/xmlfiles/list.zip";;
|
||||
// l2.title = @"Apple IIGS";
|
||||
l2->filter = ONLY_2GS;
|
||||
l2->trackerName = "VirtualApple2GS";
|
||||
imgSource = [[NSBundle mainBundle] pathForResource:@"Tab2GS" ofType:@"png"];
|
||||
l2.tabBarItem = [[[UITabBarItem alloc] initWithTitle:@"Apple IIGS" image:[UIImage imageWithContentsOfFile: imgSource] tag:0] autorelease];
|
||||
|
||||
#ifndef ACTIVEGS_ENABLE_DOCUMENT
|
||||
self.docList= nil;
|
||||
#else
|
||||
self.docList = [[activegsList alloc] autorelease];
|
||||
self.docList->listPath.Empty();
|
||||
self.docList->filter = (int)(ALL_NO_INDEX|DOC_LIST);
|
||||
self.docList->trackerName = "My2GS";
|
||||
//docList.tabBarItem = [[[UITabBarItem alloc] initWithTitle:@"My 2GS" image:[UIImage imageWithContentsOfFile: imgSource] tag:0] autorelease];
|
||||
self.docList.tabBarItem = [[[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemFavorites tag:0] autorelease];
|
||||
#endif
|
||||
|
||||
[self.tabView setViewControllers:[NSArray arrayWithObjects:self.l0, l3, l1, l2, self.docList,nil]];
|
||||
option.loadOptions();
|
||||
self.tabView.selectedIndex=option.getIntValue(OPTION_LASTTAB);
|
||||
|
||||
[self.view addSubview:self.tabView.view];
|
||||
#endif // SINGLETAB
|
||||
|
||||
|
||||
// Swipe left to go back to browsing
|
||||
UISwipeGestureRecognizer* grswipeleft = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeLeft:)];
|
||||
grswipeleft.direction = UISwipeGestureRecognizerDirectionLeft;
|
||||
[self.view addGestureRecognizer:grswipeleft];
|
||||
[grswipeleft release];
|
||||
|
||||
// Swipe right to go back to browsing
|
||||
UISwipeGestureRecognizer* grswiperight = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeRight:)];
|
||||
grswiperight.direction = UISwipeGestureRecognizerDirectionRight;
|
||||
[self.view addGestureRecognizer:grswiperight];
|
||||
[grswiperight release];
|
||||
|
||||
// pour etre sur qu'il soit visible
|
||||
[self.view bringSubviewToFront:self.loader];
|
||||
|
||||
|
||||
}
|
||||
|
||||
-(void)viewDidUnload
|
||||
{
|
||||
|
||||
self.tabView.delegate = nil;
|
||||
self.tabView = nil;
|
||||
self.navItem = nil;
|
||||
self.navView = nil;
|
||||
self.loader = nil;
|
||||
|
||||
[super viewDidUnload];
|
||||
}
|
||||
|
||||
|
||||
-(void)updateDialog:(NSString*) newVersion
|
||||
{
|
||||
|
||||
activegsList* l = (activegsList*) self.tabView.selectedViewController;
|
||||
NSString* fmt = [NSString stringWithFormat:@"Database version v%@ is available!\n(current installed version is v%@)\n\nDo you want to update ?",newVersion,l.sourceRevision];
|
||||
|
||||
UIAlertView *alert = [[[UIAlertView alloc] initWithTitle:l.sourceName message:fmt delegate:self cancelButtonTitle:@"Later" otherButtonTitles:@"Update Now",nil] autorelease];
|
||||
[alert show];
|
||||
}
|
||||
|
||||
- (void)titleButton:(id)sender
|
||||
{
|
||||
|
||||
activegsList* l = (activegsList*) self.tabView.selectedViewController;
|
||||
NSString* fmt = @"No Database present";
|
||||
NSString* title = @"ActiveGS";
|
||||
if (l.sourceName)
|
||||
{
|
||||
fmt = [NSString stringWithFormat:@"Database v%@\n\nPress Refresh to reload the database.",l.sourceRevision];
|
||||
title = l.sourceName;
|
||||
}
|
||||
UIAlertView *alert = [[[UIAlertView alloc] initWithTitle:title message:fmt delegate:self cancelButtonTitle:@"OK" otherButtonTitles:@"Refresh",nil] autorelease];
|
||||
[alert show];
|
||||
}
|
||||
|
||||
- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex
|
||||
{
|
||||
if (buttonIndex==1)
|
||||
{
|
||||
|
||||
activegsList* l = (activegsList*) self.tabView.selectedViewController;
|
||||
if (!l) l=self.l0; // BestOfFTA
|
||||
|
||||
// Force redownloading of asset
|
||||
[l reloadData:YES];
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
-(void)updateView
|
||||
{
|
||||
|
||||
CGRect rv2 = [[UIScreen mainScreen] applicationFrame];
|
||||
if (abs([pManager getAngle])!=90)
|
||||
{
|
||||
float t = rv2.size.width;
|
||||
rv2.size.width = rv2.size.height;
|
||||