Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

first commit

  • Loading branch information...
commit 5caf3ed33b41165ad3d040fcc82c1b202247d41d 0 parents
@richtaur richtaur authored
Showing with 11,661 additions and 0 deletions.
  1. +2 −0  English.lproj/InfoPlist.strings
  2. +4,485 −0 English.lproj/MainMenu.xib
  3. +11 −0 README.md
  4. +32 −0 WebViewExample-Info.plist
  5. BIN  WebViewExample.app.zip
  6. +1,404 −0 WebViewExample.xcodeproj/hackett.mode1v3
  7. +265 −0 WebViewExample.xcodeproj/hackett.pbxuser
  8. +297 −0 WebViewExample.xcodeproj/project.pbxproj
  9. +17 −0 WebViewExampleAppDelegate.h
  10. +22 −0 WebViewExampleAppDelegate.m
  11. +7 −0 WebViewExample_Prefix.pch
  12. BIN  build/Debug/.DS_Store
  13. +30 −0 build/Debug/WebViewExample.app/Contents/Info.plist
  14. BIN  build/Debug/WebViewExample.app/Contents/MacOS/WebViewExample
  15. +1 −0  build/Debug/WebViewExample.app/Contents/PkgInfo
  16. BIN  build/Debug/WebViewExample.app/Contents/Resources/English.lproj/InfoPlist.strings
  17. BIN  build/Debug/WebViewExample.app/Contents/Resources/English.lproj/MainMenu.nib
  18. +45 −0 build/Debug/WebViewExample.app/Contents/Resources/game/640x480_naked.html
  19. +69 −0 build/Debug/WebViewExample.app/Contents/Resources/game/800x600.htm
  20. BIN  build/Debug/WebViewExample.app/Contents/Resources/game/death.mp3
  21. BIN  build/Debug/WebViewExample.app/Contents/Resources/game/explode.gif
  22. +69 −0 build/Debug/WebViewExample.app/Contents/Resources/game/index.htm
  23. BIN  build/Debug/WebViewExample.app/Contents/Resources/game/ship.gif
  24. BIN  build/Debug/WebViewExample.app/Contents/Resources/game/ship_moving.gif
  25. BIN  build/Debug/WebViewExample.app/Contents/Resources/game/ship_piece.gif
  26. BIN  build/Debug/WebViewExample.app/Contents/Resources/game/shot.gif
  27. BIN  build/Debug/WebViewExample.app/Contents/Resources/game/shot.mp3
  28. +13 −0 build/Debug/WebViewExample.app/Contents/Resources/game/soundmanager2-nodebug-jsmin.js
  29. BIN  build/Debug/WebViewExample.app/Contents/Resources/game/soundmanager2.swf
  30. +1 −0  build/Debug/WebViewExample.app/Contents/Resources/game/spacius-min.js
  31. +1,333 −0 build/Debug/WebViewExample.app/Contents/Resources/game/spacius.js
  32. BIN  build/Debug/WebViewExample.app/Contents/Resources/game/theme.mp3
  33. BIN  build/Debug/WebViewExample.app/Contents/Resources/game/title.gif
  34. BIN  build/Debug/WebViewExample.app/Contents/Resources/game/ufo_bogey.gif
  35. BIN  build/Debug/WebViewExample.app/Contents/Resources/game/ufo_bomber.gif
  36. BIN  build/Debug/WebViewExample.app/Contents/Resources/game/ufo_die.mp3
  37. BIN  build/Debug/WebViewExample.app/Contents/Resources/game/ufo_ds.gif
  38. BIN  build/Debug/WebViewExample.app/Contents/Resources/game/ufo_meteor.gif
  39. +45 −0 build/Debug/WebViewExample.app/Contents/Resources/htdocs/640x480_naked.html
  40. +69 −0 build/Debug/WebViewExample.app/Contents/Resources/htdocs/800x600.htm
  41. BIN  build/Debug/WebViewExample.app/Contents/Resources/htdocs/death.mp3
  42. BIN  build/Debug/WebViewExample.app/Contents/Resources/htdocs/explode.gif
  43. +69 −0 build/Debug/WebViewExample.app/Contents/Resources/htdocs/index.htm
  44. BIN  build/Debug/WebViewExample.app/Contents/Resources/htdocs/ship.gif
  45. BIN  build/Debug/WebViewExample.app/Contents/Resources/htdocs/ship_moving.gif
  46. BIN  build/Debug/WebViewExample.app/Contents/Resources/htdocs/ship_piece.gif
  47. BIN  build/Debug/WebViewExample.app/Contents/Resources/htdocs/shot.gif
  48. BIN  build/Debug/WebViewExample.app/Contents/Resources/htdocs/shot.mp3
  49. +13 −0 build/Debug/WebViewExample.app/Contents/Resources/htdocs/soundmanager2-nodebug-jsmin.js
  50. BIN  build/Debug/WebViewExample.app/Contents/Resources/htdocs/soundmanager2.swf
  51. +1 −0  build/Debug/WebViewExample.app/Contents/Resources/htdocs/spacius-min.js
  52. +1,333 −0 build/Debug/WebViewExample.app/Contents/Resources/htdocs/spacius.js
  53. BIN  build/Debug/WebViewExample.app/Contents/Resources/htdocs/theme.mp3
  54. BIN  build/Debug/WebViewExample.app/Contents/Resources/htdocs/title.gif
  55. BIN  build/Debug/WebViewExample.app/Contents/Resources/htdocs/ufo_bogey.gif
  56. BIN  build/Debug/WebViewExample.app/Contents/Resources/htdocs/ufo_bomber.gif
  57. BIN  build/Debug/WebViewExample.app/Contents/Resources/htdocs/ufo_die.mp3
  58. BIN  build/Debug/WebViewExample.app/Contents/Resources/htdocs/ufo_ds.gif
  59. BIN  build/Debug/WebViewExample.app/Contents/Resources/htdocs/ufo_meteor.gif
  60. +2 −0  build/WebViewExample.build/Debug/WebViewExample.build/Objects-normal/x86_64/WebViewExample.LinkFileList
  61. BIN  build/WebViewExample.build/Debug/WebViewExample.build/Objects-normal/x86_64/WebViewExampleAppDelegate.o
  62. BIN  build/WebViewExample.build/Debug/WebViewExample.build/Objects-normal/x86_64/main.o
  63. BIN  build/WebViewExample.build/Debug/WebViewExample.build/WebViewExample-all-target-headers.hmap
  64. BIN  build/WebViewExample.build/Debug/WebViewExample.build/WebViewExample-generated-files.hmap
  65. BIN  build/WebViewExample.build/Debug/WebViewExample.build/WebViewExample-own-target-headers.hmap
  66. BIN  build/WebViewExample.build/Debug/WebViewExample.build/WebViewExample-project-headers.hmap
  67. +11 −0 build/WebViewExample.build/Debug/WebViewExample.build/WebViewExample.dep
  68. BIN  build/WebViewExample.build/Debug/WebViewExample.build/WebViewExample.hmap
  69. +10 −0 build/WebViewExample.build/Debug/WebViewExample.build/WebViewExample~.dep
  70. +244 −0 build/WebViewExample.build/Debug/WebViewExample.build/build-state.dat
  71. +220 −0 build/WebViewExample.build/Debug/WebViewExample.build/build-state~.dat
  72. BIN  build/WebViewExample.build/WebViewExample.pbxindex/categories.pbxbtree
  73. BIN  build/WebViewExample.build/WebViewExample.pbxindex/cdecls.pbxbtree
  74. BIN  build/WebViewExample.build/WebViewExample.pbxindex/decls.pbxbtree
  75. BIN  build/WebViewExample.build/WebViewExample.pbxindex/files.pbxbtree
  76. BIN  build/WebViewExample.build/WebViewExample.pbxindex/imports.pbxbtree
  77. BIN  build/WebViewExample.build/WebViewExample.pbxindex/pbxindex.header
  78. BIN  build/WebViewExample.build/WebViewExample.pbxindex/protocols.pbxbtree
  79. BIN  build/WebViewExample.build/WebViewExample.pbxindex/refs.pbxbtree
  80. BIN  build/WebViewExample.build/WebViewExample.pbxindex/strings.pbxstrings/control
  81. BIN  build/WebViewExample.build/WebViewExample.pbxindex/strings.pbxstrings/strings
  82. BIN  build/WebViewExample.build/WebViewExample.pbxindex/subclasses.pbxbtree
  83. BIN  build/WebViewExample.build/WebViewExample.pbxindex/symbols0.pbxsymbols
  84. +45 −0 htdocs/640x480_naked.html
  85. +69 −0 htdocs/800x600.htm
  86. BIN  htdocs/death.mp3
  87. BIN  htdocs/explode.gif
  88. +69 −0 htdocs/index.htm
  89. BIN  htdocs/ship.gif
  90. BIN  htdocs/ship_moving.gif
  91. BIN  htdocs/ship_piece.gif
  92. BIN  htdocs/shot.gif
  93. BIN  htdocs/shot.mp3
  94. +13 −0 htdocs/soundmanager2-nodebug-jsmin.js
  95. BIN  htdocs/soundmanager2.swf
  96. +1 −0  htdocs/spacius-min.js
  97. +1,333 −0 htdocs/spacius.js
  98. BIN  htdocs/theme.mp3
  99. BIN  htdocs/title.gif
  100. BIN  htdocs/ufo_bogey.gif
  101. BIN  htdocs/ufo_bomber.gif
  102. BIN  htdocs/ufo_die.mp3
  103. BIN  htdocs/ufo_ds.gif
  104. BIN  htdocs/ufo_meteor.gif
  105. +11 −0 main.m
2  English.lproj/InfoPlist.strings
@@ -0,0 +1,2 @@
+/* Localized versions of Info.plist keys */
+
4,485 English.lproj/MainMenu.xib
4,485 additions, 0 deletions not shown
11 README.md
@@ -0,0 +1,11 @@
+# WebViewExample
+
+This is a tutorial Xcode project explaining how to embed a WebView into a native OSX application.
+
+Detailed steps can be found [on our blog](http://blog.lostdecadegames.com/how-to-embed-html5-into-a-native-mac-osx-app).
+
+## Lost Decade Games
+
+This tutorial written by Matt Hackett from [Lost Decade Games](http://www.lostdecadegames.com/). If you enjoyed this tutorial please consider checking out our game Onslaught! Arena, now available in the [Chrome Webstore](https://chrome.google.com/webstore/detail/khodnfbkbanejphecblcofbghjdgfaih) and [Mac App Store](http://itunes.apple.com/us/app/onslaught-arena/id418268106).
+
+Thanks!
32 WebViewExample-Info.plist
@@ -0,0 +1,32 @@
+<?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>CFBundleExecutable</key>
+ <string>${EXECUTABLE_NAME}</string>
+ <key>CFBundleIconFile</key>
+ <string></string>
+ <key>CFBundleIdentifier</key>
+ <string>com.yourcompany.${PRODUCT_NAME:rfc1034identifier}</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundleName</key>
+ <string>${PRODUCT_NAME}</string>
+ <key>CFBundlePackageType</key>
+ <string>APPL</string>
+ <key>CFBundleShortVersionString</key>
+ <string>1.0</string>
+ <key>CFBundleSignature</key>
+ <string>????</string>
+ <key>CFBundleVersion</key>
+ <string>1</string>
+ <key>LSMinimumSystemVersion</key>
+ <string>${MACOSX_DEPLOYMENT_TARGET}</string>
+ <key>NSMainNibFile</key>
+ <string>MainMenu</string>
+ <key>NSPrincipalClass</key>
+ <string>NSApplication</string>
+</dict>
+</plist>
BIN  WebViewExample.app.zip
Binary file not shown
1,404 WebViewExample.xcodeproj/hackett.mode1v3
@@ -0,0 +1,1404 @@
+<?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>ActivePerspectiveName</key>
+ <string>Project</string>
+ <key>AllowedModules</key>
+ <array>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXSmartGroupTreeModule</string>
+ <key>Name</key>
+ <string>Groups and Files Outline View</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Name</key>
+ <string>Editor</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>XCTaskListModule</string>
+ <key>Name</key>
+ <string>Task List</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>XCDetailModule</string>
+ <key>Name</key>
+ <string>File and Smart Group Detail Viewer</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>1</string>
+ <key>Module</key>
+ <string>PBXBuildResultsModule</string>
+ <key>Name</key>
+ <string>Detailed Build Results Viewer</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>1</string>
+ <key>Module</key>
+ <string>PBXProjectFindModule</string>
+ <key>Name</key>
+ <string>Project Batch Find Tool</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>XCProjectFormatConflictsModule</string>
+ <key>Name</key>
+ <string>Project Format Conflicts List</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXBookmarksModule</string>
+ <key>Name</key>
+ <string>Bookmarks Tool</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXClassBrowserModule</string>
+ <key>Name</key>
+ <string>Class Browser</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXCVSModule</string>
+ <key>Name</key>
+ <string>Source Code Control Tool</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXDebugBreakpointsModule</string>
+ <key>Name</key>
+ <string>Debug Breakpoints Tool</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>XCDockableInspector</string>
+ <key>Name</key>
+ <string>Inspector</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXOpenQuicklyModule</string>
+ <key>Name</key>
+ <string>Open Quickly Tool</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>1</string>
+ <key>Module</key>
+ <string>PBXDebugSessionModule</string>
+ <key>Name</key>
+ <string>Debugger</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>1</string>
+ <key>Module</key>
+ <string>PBXDebugCLIModule</string>
+ <key>Name</key>
+ <string>Debug Console</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>XCSnapshotModule</string>
+ <key>Name</key>
+ <string>Snapshots Tool</string>
+ </dict>
+ </array>
+ <key>BundlePath</key>
+ <string>/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources</string>
+ <key>Description</key>
+ <string>DefaultDescriptionKey</string>
+ <key>DockingSystemVisible</key>
+ <false/>
+ <key>Extension</key>
+ <string>mode1v3</string>
+ <key>FavBarConfig</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>A8D66875132D99EB00C9B726</string>
+ <key>XCBarModuleItemNames</key>
+ <dict/>
+ <key>XCBarModuleItems</key>
+ <array/>
+ </dict>
+ <key>FirstTimeWindowDisplayed</key>
+ <false/>
+ <key>Identifier</key>
+ <string>com.apple.perspectives.project.mode1v3</string>
+ <key>MajorVersion</key>
+ <integer>33</integer>
+ <key>MinorVersion</key>
+ <integer>0</integer>
+ <key>Name</key>
+ <string>Default</string>
+ <key>Notifications</key>
+ <array/>
+ <key>OpenEditors</key>
+ <array/>
+ <key>PerspectiveWidths</key>
+ <array>
+ <integer>-1</integer>
+ <integer>-1</integer>
+ </array>
+ <key>Perspectives</key>
+ <array>
+ <dict>
+ <key>ChosenToolbarItems</key>
+ <array>
+ <string>active-combo-popup</string>
+ <string>action</string>
+ <string>NSToolbarFlexibleSpaceItem</string>
+ <string>debugger-enable-breakpoints</string>
+ <string>build-and-go</string>
+ <string>com.apple.ide.PBXToolbarStopButton</string>
+ <string>get-info</string>
+ <string>NSToolbarFlexibleSpaceItem</string>
+ <string>com.apple.pbx.toolbar.searchfield</string>
+ </array>
+ <key>ControllerClassBaseName</key>
+ <string></string>
+ <key>IconName</key>
+ <string>WindowOfProjectWithEditor</string>
+ <key>Identifier</key>
+ <string>perspective.project</string>
+ <key>IsVertical</key>
+ <false/>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <true/>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXBottomSmartGroupGIDs</key>
+ <array>
+ <string>1C37FBAC04509CD000000102</string>
+ <string>1C37FAAC04509CD000000102</string>
+ <string>1C37FABC05509CD000000102</string>
+ <string>1C37FABC05539CD112110102</string>
+ <string>E2644B35053B69B200211256</string>
+ <string>1C37FABC04509CD000100104</string>
+ <string>1CC0EA4004350EF90044410B</string>
+ <string>1CC0EA4004350EF90041110B</string>
+ </array>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CE0B1FE06471DED0097A5F4</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Files</string>
+ <key>PBXProjectStructureProvided</key>
+ <string>yes</string>
+ <key>PBXSmartGroupTreeModuleColumnData</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
+ <array>
+ <real>255</real>
+ </array>
+ <key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
+ <array>
+ <string>MainColumn</string>
+ </array>
+ </dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
+ <array>
+ <string>29B97314FDCFA39411CA2CEA</string>
+ <string>080E96DDFE201D6D7F000001</string>
+ <string>29B97317FDCFA39411CA2CEA</string>
+ <string>29B97323FDCFA39411CA2CEA</string>
+ <string>1C37FABC05509CD000000102</string>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
+ <array>
+ <array>
+ <integer>0</integer>
+ </array>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
+ <string>{{0, 0}, {255, 445}}</string>
+ </dict>
+ <key>PBXTopSmartGroupGIDs</key>
+ <array/>
+ <key>XCIncludePerspectivesSwitch</key>
+ <true/>
+ <key>XCSharingToken</key>
+ <string>com.apple.Xcode.GFSharingToken</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {272, 463}}</string>
+ <key>GroupTreeTableConfiguration</key>
+ <array>
+ <string>MainColumn</string>
+ <real>255</real>
+ </array>
+ <key>RubberWindowFrame</key>
+ <string>618 674 788 504 0 0 1920 1178 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXSmartGroupTreeModule</string>
+ <key>Proportion</key>
+ <string>272pt</string>
+ </dict>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CE0B20306471E060097A5F4</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>640x480_naked.html</string>
+ <key>PBXSplitModuleInNavigatorKey</key>
+ <dict>
+ <key>Split0</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CE0B20406471E060097A5F4</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>640x480_naked.html</string>
+ <key>_historyCapacity</key>
+ <integer>0</integer>
+ <key>bookmark</key>
+ <string>A8D669D413304D1400C9B726</string>
+ <key>history</key>
+ <array>
+ <string>A8D668AD132EFFD000C9B726</string>
+ <string>A8D669CB13304D1400C9B726</string>
+ <string>A8D669CC13304D1400C9B726</string>
+ <string>A8D669CD13304D1400C9B726</string>
+ <string>A8D669CE13304D1400C9B726</string>
+ <string>A8D669CF13304D1400C9B726</string>
+ <string>A8D669D013304D1400C9B726</string>
+ <string>A8D669D113304D1400C9B726</string>
+ <string>A8D669D313304D1400C9B726</string>
+ </array>
+ </dict>
+ <key>SplitCount</key>
+ <string>1</string>
+ </dict>
+ <key>StatusBarVisibility</key>
+ <true/>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {511, 277}}</string>
+ <key>RubberWindowFrame</key>
+ <string>618 674 788 504 0 0 1920 1178 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Proportion</key>
+ <string>277pt</string>
+ </dict>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CE0B20506471E060097A5F4</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Detail</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 282}, {511, 181}}</string>
+ <key>RubberWindowFrame</key>
+ <string>618 674 788 504 0 0 1920 1178 </string>
+ </dict>
+ <key>Module</key>
+ <string>XCDetailModule</string>
+ <key>Proportion</key>
+ <string>181pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>511pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Project</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>XCModuleDock</string>
+ <string>PBXSmartGroupTreeModule</string>
+ <string>XCModuleDock</string>
+ <string>PBXNavigatorGroup</string>
+ <string>XCDetailModule</string>
+ </array>
+ <key>TableOfContents</key>
+ <array>
+ <string>A8D66873132D99EB00C9B726</string>
+ <string>1CE0B1FE06471DED0097A5F4</string>
+ <string>A8D66874132D99EB00C9B726</string>
+ <string>1CE0B20306471E060097A5F4</string>
+ <string>1CE0B20506471E060097A5F4</string>
+ </array>
+ <key>ToolbarConfigUserDefaultsMinorVersion</key>
+ <string>2</string>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.defaultV3</string>
+ </dict>
+ <dict>
+ <key>ControllerClassBaseName</key>
+ <string></string>
+ <key>IconName</key>
+ <string>WindowOfProject</string>
+ <key>Identifier</key>
+ <string>perspective.morph</string>
+ <key>IsVertical</key>
+ <integer>0</integer>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXBottomSmartGroupGIDs</key>
+ <array>
+ <string>1C37FBAC04509CD000000102</string>
+ <string>1C37FAAC04509CD000000102</string>
+ <string>1C08E77C0454961000C914BD</string>
+ <string>1C37FABC05509CD000000102</string>
+ <string>1C37FABC05539CD112110102</string>
+ <string>E2644B35053B69B200211256</string>
+ <string>1C37FABC04509CD000100104</string>
+ <string>1CC0EA4004350EF90044410B</string>
+ <string>1CC0EA4004350EF90041110B</string>
+ </array>
+ <key>PBXProjectModuleGUID</key>
+ <string>11E0B1FE06471DED0097A5F4</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Files</string>
+ <key>PBXProjectStructureProvided</key>
+ <string>yes</string>
+ <key>PBXSmartGroupTreeModuleColumnData</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
+ <array>
+ <real>186</real>
+ </array>
+ <key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
+ <array>
+ <string>MainColumn</string>
+ </array>
+ </dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
+ <array>
+ <string>29B97314FDCFA39411CA2CEA</string>
+ <string>1C37FABC05509CD000000102</string>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
+ <array>
+ <array>
+ <integer>0</integer>
+ </array>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
+ <string>{{0, 0}, {186, 337}}</string>
+ </dict>
+ <key>PBXTopSmartGroupGIDs</key>
+ <array/>
+ <key>XCIncludePerspectivesSwitch</key>
+ <integer>1</integer>
+ <key>XCSharingToken</key>
+ <string>com.apple.Xcode.GFSharingToken</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {203, 355}}</string>
+ <key>GroupTreeTableConfiguration</key>
+ <array>
+ <string>MainColumn</string>
+ <real>186</real>
+ </array>
+ <key>RubberWindowFrame</key>
+ <string>373 269 690 397 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXSmartGroupTreeModule</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Morph</string>
+ <key>PreferredWidth</key>
+ <integer>300</integer>
+ <key>ServiceClasses</key>
+ <array>
+ <string>XCModuleDock</string>
+ <string>PBXSmartGroupTreeModule</string>
+ </array>
+ <key>TableOfContents</key>
+ <array>
+ <string>11E0B1FE06471DED0097A5F4</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.default.shortV3</string>
+ </dict>
+ </array>
+ <key>PerspectivesBarVisible</key>
+ <false/>
+ <key>ShelfIsVisible</key>
+ <false/>
+ <key>SourceDescription</key>
+ <string>file at '/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources/XCPerspectivesSpecificationMode1.xcperspec'</string>
+ <key>StatusbarIsVisible</key>
+ <true/>
+ <key>TimeStamp</key>
+ <real>0.0</real>
+ <key>ToolbarConfigUserDefaultsMinorVersion</key>
+ <string>2</string>
+ <key>ToolbarDisplayMode</key>
+ <integer>1</integer>
+ <key>ToolbarIsVisible</key>
+ <true/>
+ <key>ToolbarSizeMode</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>Perspectives</string>
+ <key>UpdateMessage</key>
+ <string>The Default Workspace in this version of Xcode now includes support to hide and show the detail view (what has been referred to as the "Metro-Morph" feature). You must discard your current Default Workspace settings and update to the latest Default Workspace in order to gain this feature. Do you wish to update to the latest Workspace defaults for project '%@'?</string>
+ <key>WindowJustification</key>
+ <integer>5</integer>
+ <key>WindowOrderList</key>
+ <array>
+ <string>A8D668B9132EFFD000C9B726</string>
+ <string>A8D668BA132EFFD000C9B726</string>
+ <string>1C78EAAD065D492600B07095</string>
+ <string>1CD10A99069EF8BA00B06720</string>
+ <string>A8D66876132D99EB00C9B726</string>
+ <string>/Users/hackett/dev/code/xcode/OSX/WebViewExample/WebViewExample.xcodeproj</string>
+ </array>
+ <key>WindowString</key>
+ <string>618 674 788 504 0 0 1920 1178 </string>
+ <key>WindowToolsV3</key>
+ <array>
+ <dict>
+ <key>FirstTimeWindowDisplayed</key>
+ <false/>
+ <key>Identifier</key>
+ <string>windowTool.build</string>
+ <key>IsVertical</key>
+ <true/>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CD0528F0623707200166675</string>
+ <key>PBXProjectModuleLabel</key>
+ <string></string>
+ <key>StatusBarVisibility</key>
+ <true/>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {500, 218}}</string>
+ <key>RubberWindowFrame</key>
+ <string>347 298 500 500 0 0 1920 1178 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Proportion</key>
+ <string>218pt</string>
+ </dict>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>XCMainBuildResultsModuleGUID</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Build Results</string>
+ <key>XCBuildResultsTrigger_Collapse</key>
+ <integer>1021</integer>
+ <key>XCBuildResultsTrigger_Open</key>
+ <integer>1011</integer>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 223}, {500, 236}}</string>
+ <key>RubberWindowFrame</key>
+ <string>347 298 500 500 0 0 1920 1178 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXBuildResultsModule</string>
+ <key>Proportion</key>
+ <string>236pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>459pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Build Results</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXBuildResultsModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <true/>
+ <key>TableOfContents</key>
+ <array>
+ <string>A8D66876132D99EB00C9B726</string>
+ <string>A8D66877132D99EB00C9B726</string>
+ <string>1CD0528F0623707200166675</string>
+ <string>XCMainBuildResultsModuleGUID</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.buildV3</string>
+ <key>WindowContentMinSize</key>
+ <string>486 300</string>
+ <key>WindowString</key>
+ <string>347 298 500 500 0 0 1920 1178 </string>
+ <key>WindowToolGUID</key>
+ <string>A8D66876132D99EB00C9B726</string>
+ <key>WindowToolIsVisible</key>
+ <false/>
+ </dict>
+ <dict>
+ <key>FirstTimeWindowDisplayed</key>
+ <false/>
+ <key>Identifier</key>
+ <string>windowTool.debugger</string>
+ <key>IsVertical</key>
+ <true/>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>Debugger</key>
+ <dict>
+ <key>HorizontalSplitView</key>
+ <dict>
+ <key>_collapsingFrameDimension</key>
+ <real>0.0</real>
+ <key>_indexOfCollapsedView</key>
+ <integer>0</integer>
+ <key>_percentageOfCollapsedView</key>
+ <real>0.0</real>
+ <key>isCollapsed</key>
+ <string>yes</string>
+ <key>sizes</key>
+ <array>
+ <string>{{0, 0}, {316, 185}}</string>
+ <string>{{316, 0}, {378, 185}}</string>
+ </array>
+ </dict>
+ <key>VerticalSplitView</key>
+ <dict>
+ <key>_collapsingFrameDimension</key>
+ <real>0.0</real>
+ <key>_indexOfCollapsedView</key>
+ <integer>0</integer>
+ <key>_percentageOfCollapsedView</key>
+ <real>0.0</real>
+ <key>isCollapsed</key>
+ <string>yes</string>
+ <key>sizes</key>
+ <array>
+ <string>{{0, 0}, {694, 185}}</string>
+ <string>{{0, 185}, {694, 196}}</string>
+ </array>
+ </dict>
+ </dict>
+ <key>LauncherConfigVersion</key>
+ <string>8</string>
+ <key>PBXProjectModuleGUID</key>
+ <string>1C162984064C10D400B95A72</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Debug - GLUTExamples (Underwater)</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>DebugConsoleVisible</key>
+ <string>None</string>
+ <key>DebugConsoleWindowFrame</key>
+ <string>{{200, 200}, {500, 300}}</string>
+ <key>DebugSTDIOWindowFrame</key>
+ <string>{{200, 200}, {500, 300}}</string>
+ <key>Frame</key>
+ <string>{{0, 0}, {694, 381}}</string>
+ <key>PBXDebugSessionStackFrameViewKey</key>
+ <dict>
+ <key>DebugVariablesTableConfiguration</key>
+ <array>
+ <string>Name</string>
+ <real>120</real>
+ <string>Value</string>
+ <real>85</real>
+ <string>Summary</string>
+ <real>148</real>
+ </array>
+ <key>Frame</key>
+ <string>{{316, 0}, {378, 185}}</string>
+ <key>RubberWindowFrame</key>
+ <string>667 433 694 422 0 0 1920 1178 </string>
+ </dict>
+ <key>RubberWindowFrame</key>
+ <string>667 433 694 422 0 0 1920 1178 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXDebugSessionModule</string>
+ <key>Proportion</key>
+ <string>381pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>381pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Debugger</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXDebugSessionModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <true/>
+ <key>TableOfContents</key>
+ <array>
+ <string>1CD10A99069EF8BA00B06720</string>
+ <string>A8D668B2132EFFD000C9B726</string>
+ <string>1C162984064C10D400B95A72</string>
+ <string>A8D668B3132EFFD000C9B726</string>
+ <string>A8D668B4132EFFD000C9B726</string>
+ <string>A8D668B5132EFFD000C9B726</string>
+ <string>A8D668B6132EFFD000C9B726</string>
+ <string>A8D668B7132EFFD000C9B726</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.debugV3</string>
+ <key>WindowString</key>
+ <string>667 433 694 422 0 0 1920 1178 </string>
+ <key>WindowToolGUID</key>
+ <string>1CD10A99069EF8BA00B06720</string>
+ <key>WindowToolIsVisible</key>
+ <false/>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.find</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CDD528C0622207200134675</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>&lt;No Editor&gt;</string>
+ <key>PBXSplitModuleInNavigatorKey</key>
+ <dict>
+ <key>Split0</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CD0528D0623707200166675</string>
+ </dict>
+ <key>SplitCount</key>
+ <string>1</string>
+ </dict>
+ <key>StatusBarVisibility</key>
+ <integer>1</integer>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {781, 167}}</string>
+ <key>RubberWindowFrame</key>
+ <string>62 385 781 470 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Proportion</key>
+ <string>781pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>50%</string>
+ </dict>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CD0528E0623707200166675</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Project Find</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{8, 0}, {773, 254}}</string>
+ <key>RubberWindowFrame</key>
+ <string>62 385 781 470 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXProjectFindModule</string>
+ <key>Proportion</key>
+ <string>50%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>428pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Project Find</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXProjectFindModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1C530D57069F1CE1000CFCEE</string>
+ <string>1C530D58069F1CE1000CFCEE</string>
+ <string>1C530D59069F1CE1000CFCEE</string>
+ <string>1CDD528C0622207200134675</string>
+ <string>1C530D5A069F1CE1000CFCEE</string>
+ <string>1CE0B1FE06471DED0097A5F4</string>
+ <string>1CD0528E0623707200166675</string>
+ </array>
+ <key>WindowString</key>
+ <string>62 385 781 470 0 0 1440 878 </string>
+ <key>WindowToolGUID</key>
+ <string>1C530D57069F1CE1000CFCEE</string>
+ <key>WindowToolIsVisible</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>MENUSEPARATOR</string>
+ </dict>
+ <dict>
+ <key>FirstTimeWindowDisplayed</key>
+ <false/>
+ <key>Identifier</key>
+ <string>windowTool.debuggerConsole</string>
+ <key>IsVertical</key>
+ <true/>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1C78EAAC065D492600B07095</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Debugger Console</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {650, 209}}</string>
+ <key>RubberWindowFrame</key>
+ <string>667 605 650 250 0 0 1920 1178 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXDebugCLIModule</string>
+ <key>Proportion</key>
+ <string>209pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>209pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Debugger Console</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXDebugCLIModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <true/>
+ <key>TableOfContents</key>
+ <array>
+ <string>1C78EAAD065D492600B07095</string>
+ <string>A8D668B8132EFFD000C9B726</string>
+ <string>1C78EAAC065D492600B07095</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.consoleV3</string>
+ <key>WindowString</key>
+ <string>667 605 650 250 0 0 1920 1178 </string>
+ <key>WindowToolGUID</key>
+ <string>1C78EAAD065D492600B07095</string>
+ <key>WindowToolIsVisible</key>
+ <false/>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.snapshots</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>Module</key>
+ <string>XCSnapshotModule</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Snapshots</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>XCSnapshotModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <string>Yes</string>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.snapshots</string>
+ <key>WindowString</key>
+ <string>315 824 300 550 0 0 1440 878 </string>
+ <key>WindowToolIsVisible</key>
+ <string>Yes</string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.scm</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1C78EAB2065D492600B07095</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>&lt;No Editor&gt;</string>
+ <key>PBXSplitModuleInNavigatorKey</key>
+ <dict>
+ <key>Split0</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1C78EAB3065D492600B07095</string>
+ </dict>
+ <key>SplitCount</key>
+ <string>1</string>
+ </dict>
+ <key>StatusBarVisibility</key>
+ <integer>1</integer>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {452, 0}}</string>
+ <key>RubberWindowFrame</key>
+ <string>743 379 452 308 0 0 1280 1002 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Proportion</key>
+ <string>0pt</string>
+ </dict>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CD052920623707200166675</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>SCM</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>ConsoleFrame</key>
+ <string>{{0, 259}, {452, 0}}</string>
+ <key>Frame</key>
+ <string>{{0, 7}, {452, 259}}</string>
+ <key>RubberWindowFrame</key>
+ <string>743 379 452 308 0 0 1280 1002 </string>
+ <key>TableConfiguration</key>
+ <array>
+ <string>Status</string>
+ <real>30</real>
+ <string>FileName</string>
+ <real>199</real>
+ <string>Path</string>
+ <real>197.0950012207031</real>
+ </array>
+ <key>TableFrame</key>
+ <string>{{0, 0}, {452, 250}}</string>
+ </dict>
+ <key>Module</key>
+ <string>PBXCVSModule</string>
+ <key>Proportion</key>
+ <string>262pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>266pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>SCM</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXCVSModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1C78EAB4065D492600B07095</string>
+ <string>1C78EAB5065D492600B07095</string>
+ <string>1C78EAB2065D492600B07095</string>
+ <string>1CD052920623707200166675</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.scm</string>
+ <key>WindowString</key>
+ <string>743 379 452 308 0 0 1280 1002 </string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.breakpoints</string>
+ <key>IsVertical</key>
+ <integer>0</integer>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXBottomSmartGroupGIDs</key>
+ <array>
+ <string>1C77FABC04509CD000000102</string>
+ </array>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CE0B1FE06471DED0097A5F4</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Files</string>
+ <key>PBXProjectStructureProvided</key>
+ <string>no</string>
+ <key>PBXSmartGroupTreeModuleColumnData</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
+ <array>
+ <real>168</real>
+ </array>
+ <key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
+ <array>
+ <string>MainColumn</string>
+ </array>
+ </dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
+ <array>
+ <string>1C77FABC04509CD000000102</string>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
+ <array>
+ <array>
+ <integer>0</integer>
+ </array>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
+ <string>{{0, 0}, {168, 350}}</string>
+ </dict>
+ <key>PBXTopSmartGroupGIDs</key>
+ <array/>
+ <key>XCIncludePerspectivesSwitch</key>
+ <integer>0</integer>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {185, 368}}</string>
+ <key>GroupTreeTableConfiguration</key>
+ <array>
+ <string>MainColumn</string>
+ <real>168</real>
+ </array>
+ <key>RubberWindowFrame</key>
+ <string>315 424 744 409 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXSmartGroupTreeModule</string>
+ <key>Proportion</key>
+ <string>185pt</string>
+ </dict>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CA1AED706398EBD00589147</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Detail</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{190, 0}, {554, 368}}</string>
+ <key>RubberWindowFrame</key>
+ <string>315 424 744 409 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>XCDetailModule</string>
+ <key>Proportion</key>
+ <string>554pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>368pt</string>
+ </dict>
+ </array>
+ <key>MajorVersion</key>
+ <integer>3</integer>
+ <key>MinorVersion</key>
+ <integer>0</integer>
+ <key>Name</key>
+ <string>Breakpoints</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXSmartGroupTreeModule</string>
+ <string>XCDetailModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1CDDB66807F98D9800BB5817</string>
+ <string>1CDDB66907F98D9800BB5817</string>
+ <string>1CE0B1FE06471DED0097A5F4</string>
+ <string>1CA1AED706398EBD00589147</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.breakpointsV3</string>
+ <key>WindowString</key>
+ <string>315 424 744 409 0 0 1440 878 </string>
+ <key>WindowToolGUID</key>
+ <string>1CDDB66807F98D9800BB5817</string>
+ <key>WindowToolIsVisible</key>
+ <integer>1</integer>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.debugAnimator</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Debug Visualizer</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXNavigatorGroup</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.debugAnimatorV3</string>
+ <key>WindowString</key>
+ <string>100 100 700 500 0 0 1280 1002 </string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.bookmarks</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>Module</key>
+ <string>PBXBookmarksModule</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Bookmarks</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXBookmarksModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>0</integer>
+ <key>WindowString</key>
+ <string>538 42 401 187 0 0 1280 1002 </string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.projectFormatConflicts</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>Module</key>
+ <string>XCProjectFormatConflictsModule</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Project Format Conflicts</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>XCProjectFormatConflictsModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>0</integer>
+ <key>WindowContentMinSize</key>
+ <string>450 300</string>
+ <key>WindowString</key>
+ <string>50 850 472 307 0 0 1440 877</string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.classBrowser</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>OptionsSetName</key>
+ <string>Hierarchy, all classes</string>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CA6456E063B45B4001379D8</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Class Browser - NSObject</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>ClassesFrame</key>
+ <string>{{0, 0}, {374, 96}}</string>
+ <key>ClassesTreeTableConfiguration</key>
+ <array>
+ <string>PBXClassNameColumnIdentifier</string>
+ <real>208</real>
+ <string>PBXClassBookColumnIdentifier</string>
+ <real>22</real>
+ </array>
+ <key>Frame</key>
+ <string>{{0, 0}, {630, 331}}</string>
+ <key>MembersFrame</key>
+ <string>{{0, 105}, {374, 395}}</string>
+ <key>MembersTreeTableConfiguration</key>
+ <array>
+ <string>PBXMemberTypeIconColumnIdentifier</string>
+ <real>22</real>
+ <string>PBXMemberNameColumnIdentifier</string>
+ <real>216</real>
+ <string>PBXMemberTypeColumnIdentifier</string>
+ <real>97</real>
+ <string>PBXMemberBookColumnIdentifier</string>
+ <real>22</real>
+ </array>
+ <key>PBXModuleWindowStatusBarHidden2</key>
+ <integer>1</integer>
+ <key>RubberWindowFrame</key>
+ <string>385 179 630 352 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXClassBrowserModule</string>
+ <key>Proportion</key>
+ <string>332pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>332pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Class Browser</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXClassBrowserModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>0</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1C0AD2AF069F1E9B00FABCE6</string>
+ <string>1C0AD2B0069F1E9B00FABCE6</string>
+ <string>1CA6456E063B45B4001379D8</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.classbrowser</string>
+ <key>WindowString</key>
+ <string>385 179 630 352 0 0 1440 878 </string>
+ <key>WindowToolGUID</key>
+ <string>1C0AD2AF069F1E9B00FABCE6</string>
+ <key>WindowToolIsVisible</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.refactoring</string>
+ <key>IncludeInToolsMenu</key>
+ <integer>0</integer>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{0, 0}, {500, 335}</string>
+ <key>RubberWindowFrame</key>
+ <string>{0, 0}, {500, 335}</string>
+ </dict>
+ <key>Module</key>
+ <string>XCRefactoringModule</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Refactoring</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>XCRefactoringModule</string>
+ </array>
+ <key>WindowString</key>
+ <string>200 200 500 356 0 0 1920 1200 </string>
+ </dict>
+ </array>
+</dict>
+</plist>
265 WebViewExample.xcodeproj/hackett.pbxuser
@@ -0,0 +1,265 @@
+// !$*UTF8*$!
+{
+ 089C165DFE840E0CC02AAC07 /* English */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {450, 245}}";
+ sepNavSelRange = "{0, 0}";
+ sepNavVisRange = "{0, 45}";
+ };
+ };
+ 256AC3D80F4B6AC300CF3369 /* WebViewExampleAppDelegate.h */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {523, 245}}";
+ sepNavSelRange = "{56, 0}";
+ sepNavVisRange = "{0, 341}";
+ };
+ };
+ 256AC3D90F4B6AC300CF3369 /* WebViewExampleAppDelegate.m */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {719, 286}}";
+ sepNavSelRange = "{56, 0}";
+ sepNavVisRange = "{0, 537}";
+ };
+ };
+ 256AC3F00F4B6AF500CF3369 /* WebViewExample_Prefix.pch */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {712, 245}}";
+ sepNavSelRange = "{0, 0}";
+ sepNavVisRange = "{0, 159}";
+ };
+ };
+ 29B97313FDCFA39411CA2CEA /* Project object */ = {
+ activeBuildConfigurationName = Debug;
+ activeExecutable = A8D66867132D99E900C9B726 /* WebViewExample */;
+ activeTarget = 8D1107260486CEB800E47090 /* WebViewExample */;
+ addToTargets = (
+ 8D1107260486CEB800E47090 /* WebViewExample */,
+ );
+ codeSenseManager = A8D66879132D99EB00C9B726 /* Code sense */;
+ executables = (
+ A8D66867132D99E900C9B726 /* WebViewExample */,
+ );
+ perUserDictionary = {
+ PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
+ PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
+ PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
+ PBXFileTableDataSourceColumnWidthsKey = (
+ 20,
+ 272,
+ 20,
+ 48.16259765625,
+ 43,
+ 43,
+ 20,
+ );
+ PBXFileTableDataSourceColumnsKey = (
+ PBXFileDataSource_FiletypeID,
+ PBXFileDataSource_Filename_ColumnID,
+ PBXFileDataSource_Built_ColumnID,
+ PBXFileDataSource_ObjectSize_ColumnID,
+ PBXFileDataSource_Errors_ColumnID,
+ PBXFileDataSource_Warnings_ColumnID,
+ PBXFileDataSource_Target_ColumnID,
+ );
+ };
+ PBXPerProjectTemplateStateSaveDate = 321755625;
+ PBXWorkspaceStateSaveDate = 321755625;
+ };
+ perUserProjectItems = {
+ A8D668AD132EFFD000C9B726 /* PBXTextBookmark */ = A8D668AD132EFFD000C9B726 /* PBXTextBookmark */;
+ A8D669CB13304D1400C9B726 /* PBXTextBookmark */ = A8D669CB13304D1400C9B726 /* PBXTextBookmark */;
+ A8D669CC13304D1400C9B726 /* PlistBookmark */ = A8D669CC13304D1400C9B726 /* PlistBookmark */;
+ A8D669CD13304D1400C9B726 /* PBXTextBookmark */ = A8D669CD13304D1400C9B726 /* PBXTextBookmark */;
+ A8D669CE13304D1400C9B726 /* PBXTextBookmark */ = A8D669CE13304D1400C9B726 /* PBXTextBookmark */;
+ A8D669CF13304D1400C9B726 /* PBXTextBookmark */ = A8D669CF13304D1400C9B726 /* PBXTextBookmark */;
+ A8D669D013304D1400C9B726 /* PBXTextBookmark */ = A8D669D013304D1400C9B726 /* PBXTextBookmark */;
+ A8D669D113304D1400C9B726 /* PBXTextBookmark */ = A8D669D113304D1400C9B726 /* PBXTextBookmark */;
+ A8D669D313304D1400C9B726 /* PBXBookmark */ = A8D669D313304D1400C9B726 /* PBXBookmark */;
+ A8D669D413304D1400C9B726 /* PBXTextBookmark */ = A8D669D413304D1400C9B726 /* PBXTextBookmark */;
+ };
+ sourceControlManager = A8D66878132D99EB00C9B726 /* Source Control */;
+ userBuildSettings = {
+ };
+ };
+ 29B97316FDCFA39411CA2CEA /* main.m */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {450, 245}}";
+ sepNavSelRange = "{35, 0}";
+ sepNavVisRange = "{0, 158}";
+ };
+ };
+ 8D1107260486CEB800E47090 /* WebViewExample */ = {
+ activeExec = 0;
+ executables = (
+ A8D66867132D99E900C9B726 /* WebViewExample */,
+ );
+ };
+ A8D66867132D99E900C9B726 /* WebViewExample */ = {
+ isa = PBXExecutable;
+ activeArgIndices = (
+ );
+ argumentStrings = (
+ );
+ autoAttachOnCrash = 1;
+ breakpointsEnabled = 0;
+ configStateDict = {
+ };
+ customDataFormattersEnabled = 1;
+ dataTipCustomDataFormattersEnabled = 1;
+ dataTipShowTypeColumn = 1;
+ dataTipSortType = 0;
+ debuggerPlugin = GDBDebugging;
+ disassemblyDisplayState = 0;
+ dylibVariantSuffix = "";
+ enableDebugStr = 1;
+ environmentEntries = (
+ );
+ executableSystemSymbolLevel = 0;
+ executableUserSymbolLevel = 0;
+ libgmallocEnabled = 0;
+ name = WebViewExample;
+ savedGlobals = {
+ };
+ showTypeColumn = 0;
+ sourceDirectories = (
+ );
+ };
+ A8D66878132D99EB00C9B726 /* Source Control */ = {
+ isa = PBXSourceControlManager;
+ fallbackIsa = XCSourceControlManager;
+ isSCMEnabled = 0;
+ scmConfiguration = {
+ repositoryNamesForRoots = {
+ "" = "";
+ };
+ };
+ };
+ A8D66879132D99EB00C9B726 /* Code sense */ = {
+ isa = PBXCodeSenseManager;
+ indexTemplatePath = "";
+ };
+ A8D668AD132EFFD000C9B726 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = A8D668AE132EFFD000C9B726 /* 640x480_naked.html */;
+ name = "640x480_naked.html: 13";
+ rLen = 0;
+ rLoc = 328;
+ rType = 0;
+ vrLen = 452;
+ vrLoc = 35;
+ };
+ A8D668AE132EFFD000C9B726 /* 640x480_naked.html */ = {
+ isa = PBXFileReference;
+ name = 640x480_naked.html;
+ path = /Users/hackett/dev/projects/_archive/spacius/game/640x480_naked.html;
+ sourceTree = "<absolute>";
+ };
+ A8D6699513303F8A00C9B726 /* 640x480_naked.html */ = {
+ isa = PBXFileReference;
+ lastKnownFileType = text.html;
+ path = 640x480_naked.html;
+ sourceTree = "<group>";
+ };
+ A8D669CB13304D1400C9B726 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 29B97316FDCFA39411CA2CEA /* main.m */;
+ name = "main.m: 4";
+ rLen = 0;
+ rLoc = 35;
+ rType = 0;
+ vrLen = 158;
+ vrLoc = 0;
+ };
+ A8D669CC13304D1400C9B726 /* PlistBookmark */ = {
+ isa = PlistBookmark;
+ fRef = 8D1107310486CEB800E47090 /* WebViewExample-Info.plist */;
+ fallbackIsa = PBXBookmark;
+ isK = 0;
+ kPath = (
+ );
+ name = "/Users/hackett/dev/code/xcode/OSX/WebViewExample/WebViewExample-Info.plist";
+ rLen = 0;
+ rLoc = 9223372036854775807;
+ };
+ A8D669CD13304D1400C9B726 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 256AC3F00F4B6AF500CF3369 /* WebViewExample_Prefix.pch */;
+ name = "WebViewExample_Prefix.pch: 1";
+ rLen = 0;
+ rLoc = 0;
+ rType = 0;
+ vrLen = 159;
+ vrLoc = 0;
+ };
+ A8D669CE13304D1400C9B726 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 256AC3D80F4B6AC300CF3369 /* WebViewExampleAppDelegate.h */;
+ name = "WebViewExampleAppDelegate.h: 4";
+ rLen = 0;
+ rLoc = 56;
+ rType = 0;
+ vrLen = 341;
+ vrLoc = 0;
+ };
+ A8D669CF13304D1400C9B726 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 256AC3D90F4B6AC300CF3369 /* WebViewExampleAppDelegate.m */;
+ name = "WebViewExampleAppDelegate.m: 4";
+ rLen = 0;
+ rLoc = 56;
+ rType = 0;
+ vrLen = 537;
+ vrLoc = 0;
+ };
+ A8D669D013304D1400C9B726 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 089C165DFE840E0CC02AAC07 /* English */;
+ name = "InfoPlist.strings: 1";
+ rLen = 0;
+ rLoc = 0;
+ rType = 0;
+ vrLen = 45;
+ vrLoc = 0;
+ };
+ A8D669D113304D1400C9B726 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = A8D669D213304D1400C9B726 /* 800x600.htm */;
+ name = "800x600.htm: 1";
+ rLen = 0;
+ rLoc = 0;
+ rType = 0;
+ vrLen = 607;
+ vrLoc = 0;
+ };
+ A8D669D213304D1400C9B726 /* 800x600.htm */ = {
+ isa = PBXFileReference;
+ name = 800x600.htm;
+ path = /Users/hackett/dev/code/xcode/OSX/WebViewExample/htdocs/800x600.htm;
+ sourceTree = "<absolute>";
+ };
+ A8D669D313304D1400C9B726 /* PBXBookmark */ = {
+ isa = PBXBookmark;
+ fRef = A8D6699513303F8A00C9B726 /* 640x480_naked.html */;
+ };
+ A8D669D413304D1400C9B726 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = A8D669D513304D1400C9B726 /* 640x480_naked.html */;
+ name = "640x480_naked.html: 1";
+ rLen = 0;
+ rLoc = 0;
+ rType = 0;
+ vrLen = 450;
+ vrLoc = 0;
+ };
+ A8D669D513304D1400C9B726 /* 640x480_naked.html */ = {
+ isa = PBXFileReference;
+ name = 640x480_naked.html;
+ path = /Users/hackett/dev/code/xcode/OSX/WebViewExample/htdocs/640x480_naked.html;
+ sourceTree = "<absolute>";
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {579, 533}}";
+ sepNavSelRange = "{0, 0}";
+ sepNavVisRange = "{0, 450}";
+ };
+ };
+}
297 WebViewExample.xcodeproj/project.pbxproj
@@ -0,0 +1,297 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 45;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ 1DDD58160DA1D0A300B32029 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1DDD58140DA1D0A300B32029 /* MainMenu.xib */; };
+ 256AC3DA0F4B6AC300CF3369 /* WebViewExampleAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 256AC3D90F4B6AC300CF3369 /* WebViewExampleAppDelegate.m */; };
+ 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; };
+ 8D11072D0486CEB800E47090 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; settings = {ATTRIBUTES = (); }; };
+ 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; };
+ A8D6687C132D9AB300C9B726 /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A8D6687B132D9AB300C9B726 /* WebKit.framework */; };
+ A8D669AA13303F8A00C9B726 /* htdocs in Resources */ = {isa = PBXBuildFile; fileRef = A8D6699313303F8A00C9B726 /* htdocs */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXFileReference section */
+ 089C165DFE840E0CC02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
+ 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
+ 13E42FB307B3F0F600E4EEF1 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = /System/Library/Frameworks/CoreData.framework; sourceTree = "<absolute>"; };
+ 1DDD58150DA1D0A300B32029 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = English.lproj/MainMenu.xib; sourceTree = "<group>"; };
+ 256AC3D80F4B6AC300CF3369 /* WebViewExampleAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebViewExampleAppDelegate.h; sourceTree = "<group>"; };
+ 256AC3D90F4B6AC300CF3369 /* WebViewExampleAppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WebViewExampleAppDelegate.m; sourceTree = "<group>"; };
+ 256AC3F00F4B6AF500CF3369 /* WebViewExample_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebViewExample_Prefix.pch; sourceTree = "<group>"; };
+ 29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
+ 29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; };
+ 29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; };
+ 8D1107310486CEB800E47090 /* WebViewExample-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "WebViewExample-Info.plist"; sourceTree = "<group>"; };
+ 8D1107320486CEB800E47090 /* WebViewExample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = WebViewExample.app; sourceTree = BUILT_PRODUCTS_DIR; };
+ A8D6687B132D9AB300C9B726 /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = System/Library/Frameworks/WebKit.framework; sourceTree = SDKROOT; };
+ A8D6699313303F8A00C9B726 /* htdocs */ = {isa = PBXFileReference; lastKnownFileType = folder; path = htdocs; sourceTree = "<group>"; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ 8D11072E0486CEB800E47090 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */,
+ A8D6687C132D9AB300C9B726 /* WebKit.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ 080E96DDFE201D6D7F000001 /* Classes */ = {
+ isa = PBXGroup;
+ children = (
+ 256AC3D80F4B6AC300CF3369 /* WebViewExampleAppDelegate.h */,
+ 256AC3D90F4B6AC300CF3369 /* WebViewExampleAppDelegate.m */,
+ );
+ name = Classes;
+ sourceTree = "<group>";
+ };
+ 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */,
+ );
+ name = "Linked Frameworks";
+ sourceTree = "<group>";
+ };
+ 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ 29B97324FDCFA39411CA2CEA /* AppKit.framework */,
+ 13E42FB307B3F0F600E4EEF1 /* CoreData.framework */,
+ 29B97325FDCFA39411CA2CEA /* Foundation.framework */,
+ A8D6687B132D9AB300C9B726 /* WebKit.framework */,
+ );
+ name = "Other Frameworks";
+ sourceTree = "<group>";
+ };
+ 19C28FACFE9D520D11CA2CBB /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ 8D1107320486CEB800E47090 /* WebViewExample.app */,
+ );
+ name = Products;
+ sourceTree = "<group>";
+ };
+ 29B97314FDCFA39411CA2CEA /* WebViewExample */ = {
+ isa = PBXGroup;
+ children = (
+ 080E96DDFE201D6D7F000001 /* Classes */,
+ 29B97315FDCFA39411CA2CEA /* Other Sources */,
+ 29B97317FDCFA39411CA2CEA /* Resources */,
+ 29B97323FDCFA39411CA2CEA /* Frameworks */,
+ 19C28FACFE9D520D11CA2CBB /* Products */,
+ );
+ name = WebViewExample;
+ sourceTree = "<group>";
+ };
+ 29B97315FDCFA39411CA2CEA /* Other Sources */ = {
+ isa = PBXGroup;
+ children = (
+ 256AC3F00F4B6AF500CF3369 /* WebViewExample_Prefix.pch */,
+ 29B97316FDCFA39411CA2CEA /* main.m */,
+ );
+ name = "Other Sources";
+ sourceTree = "<group>";
+ };
+ 29B97317FDCFA39411CA2CEA /* Resources */ = {
+ isa = PBXGroup;
+ children = (
+ 8D1107310486CEB800E47090 /* WebViewExample-Info.plist */,
+ A8D6699313303F8A00C9B726 /* htdocs */,
+ 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */,
+ 1DDD58140DA1D0A300B32029 /* MainMenu.xib */,
+ );
+ name = Resources;
+ sourceTree = "<group>";
+ };
+ 29B97323FDCFA39411CA2CEA /* Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */,
+ 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */,
+ );
+ name = Frameworks;
+ sourceTree = "<group>";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+ 8D1107260486CEB800E47090 /* WebViewExample */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "WebViewExample" */;
+ buildPhases = (
+ 8D1107290486CEB800E47090 /* Resources */,
+ 8D11072C0486CEB800E47090 /* Sources */,
+ 8D11072E0486CEB800E47090 /* Frameworks */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = WebViewExample;
+ productInstallPath = "$(HOME)/Applications";
+ productName = WebViewExample;
+ productReference = 8D1107320486CEB800E47090 /* WebViewExample.app */;
+ productType = "com.apple.product-type.application";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ 29B97313FDCFA39411CA2CEA /* Project object */ = {
+ isa = PBXProject;
+ buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "WebViewExample" */;
+ compatibilityVersion = "Xcode 3.1";
+ developmentRegion = English;
+ hasScannedForEncodings = 1;
+ knownRegions = (
+ English,
+ Japanese,
+ French,
+ German,
+ );
+ mainGroup = 29B97314FDCFA39411CA2CEA /* WebViewExample */;
+ projectDirPath = "";
+ projectRoot = "";
+ targets = (
+ 8D1107260486CEB800E47090 /* WebViewExample */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+ 8D1107290486CEB800E47090 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */,
+ 1DDD58160DA1D0A300B32029 /* MainMenu.xib in Resources */,
+ A8D669AA13303F8A00C9B726 /* htdocs in Resources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ 8D11072C0486CEB800E47090 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 8D11072D0486CEB800E47090 /* main.m in Sources */,
+ 256AC3DA0F4B6AC300CF3369 /* WebViewExampleAppDelegate.m in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXVariantGroup section */
+ 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */ = {
+ isa = PBXVariantGroup;
+ children = (
+ 089C165DFE840E0CC02AAC07 /* English */,
+ );
+ name = InfoPlist.strings;
+ sourceTree = "<group>";
+ };
+ 1DDD58140DA1D0A300B32029 /* MainMenu.xib */ = {
+ isa = PBXVariantGroup;
+ children = (
+ 1DDD58150DA1D0A300B32029 /* English */,
+ );
+ name = MainMenu.xib;
+ sourceTree = "<group>";
+ };
+/* End PBXVariantGroup section */
+
+/* Begin XCBuildConfiguration section */
+ C01FCF4B08A954540054247B /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ COPY_PHASE_STRIP = NO;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_ENABLE_FIX_AND_CONTINUE = YES;
+ GCC_MODEL_TUNING = G5;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = WebViewExample_Prefix.pch;
+ INFOPLIST_FILE = "WebViewExample-Info.plist";
+ INSTALL_PATH = "$(HOME)/Applications";
+ PRODUCT_NAME = WebViewExample;
+ };
+ name = Debug;
+ };
+ C01FCF4C08A954540054247B /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ GCC_MODEL_TUNING = G5;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = WebViewExample_Prefix.pch;
+ INFOPLIST_FILE = "WebViewExample-Info.plist";
+ INSTALL_PATH = "$(HOME)/Applications";
+ PRODUCT_NAME = WebViewExample;
+ };
+ name = Release;
+ };
+ C01FCF4F08A954540054247B /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ ONLY_ACTIVE_ARCH = YES;
+ PREBINDING = NO;
+ SDKROOT = macosx10.6;
+ };
+ name = Debug;
+ };
+ C01FCF5008A954540054247B /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ PREBINDING = NO;
+ SDKROOT = macosx10.6;
+ };
+ name = Release;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "WebViewExample" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ C01FCF4B08A954540054247B /* Debug */,
+ C01FCF4C08A954540054247B /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ C01FCF4E08A954540054247B /* Build configuration list for PBXProject "WebViewExample" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ C01FCF4F08A954540054247B /* Debug */,
+ C01FCF5008A954540054247B /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = 29B97313FDCFA39411CA2CEA /* Project object */;
+}
17 WebViewExampleAppDelegate.h
@@ -0,0 +1,17 @@
+//
+// WebViewExampleAppDelegate.h
+// WebViewExample
+//
+
+#import <Cocoa/Cocoa.h>
+#import <WebKit/WebKit.h>
+
+@interface WebViewExampleAppDelegate : NSObject <NSApplicationDelegate> {
+ NSWindow *window;
+ IBOutlet WebView *webView;
+}
+
+@property (assign) IBOutlet NSWindow *window;
+@property (nonatomic, retain) IBOutlet WebView *webView;
+
+@end
22 WebViewExampleAppDelegate.m
@@ -0,0 +1,22 @@
+//
+// WebViewExampleAppDelegate.m
+// WebViewExample
+//
+
+#import "WebViewExampleAppDelegate.h"
+
+@implementation WebViewExampleAppDelegate
+
+@synthesize window;
+@synthesize webView;
+
+- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
+}
+
+- (void)awakeFromNib {
+ NSString *resourcesPath = [[NSBundle mainBundle] resourcePath];
+ NSString *htmlPath = [resourcesPath stringByAppendingString:@"/htdocs/640x480_naked.html"];
+ [[webView mainFrame] loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:htmlPath]]];
+}
+
+@end
7 WebViewExample_Prefix.pch
@@ -0,0 +1,7 @@
+//
+// Prefix header for all source files of the 'WebViewExample' target in the 'WebViewExample' project
+//
+
+#ifdef __OBJC__
+ #import <Cocoa/Cocoa.h>
+#endif
BIN  build/Debug/.DS_Store
Binary file not shown
30 build/Debug/WebViewExample.app/Contents/Info.plist
@@ -0,0 +1,30 @@
+<?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>CFBundleExecutable</key>
+ <string>WebViewExample</string>
+ <key>CFBundleIdentifier</key>
+ <string>com.yourcompany.WebViewExample</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundleName</key>
+ <string>WebViewExample</string>
+ <key>CFBundlePackageType</key>
+ <string>APPL</string>
+ <key>CFBundleShortVersionString</key>
+ <string>1.0</string>
+ <key>CFBundleSignature</key>
+ <string>????</string>
+ <key>CFBundleVersion</key>
+ <string>1</string>
+ <key>LSMinimumSystemVersion</key>
+ <string>10.6</string>
+ <key>NSMainNibFile</key>
+ <string>MainMenu</string>
+ <key>NSPrincipalClass</key>
+ <string>NSApplication</string>
+</dict>
+</plist>
BIN  build/Debug/WebViewExample.app/Contents/MacOS/WebViewExample
Binary file not shown
1  build/Debug/WebViewExample.app/Contents/PkgInfo
@@ -0,0 +1 @@
+APPL????
BIN  build/Debug/WebViewExample.app/Contents/Resources/English.lproj/InfoPlist.strings
Binary file not shown
BIN  build/Debug/WebViewExample.app/Contents/Resources/English.lproj/MainMenu.nib
Binary file not shown
45 build/Debug/WebViewExample.app/Contents/Resources/game/640x480_naked.html
@@ -0,0 +1,45 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <title>Spacius! A Space Adventure</title>
+ <meta charset="utf-8">
+ <script src="soundmanager2-nodebug-jsmin.js" type="text/javascript"></script>
+ <script src="spacius-min.js" type="text/javascript"></script>
+ <style>
+ html {
+ background: #333;
+ }
+ body {
+ color: #fff;
+ font-family: Courier, Fixed-Sys, Sans-Serif;
+ margin: 0;
+ }
+ #spacius {
+ width: 640px;
+ height: 480px;
+ }
+ #soundmanager-debug-toggle {
+ display: none;
+ }
+ </style>
+</head>
+<body>
+
+<div id="spacius">
+Sorry, you must have JavaScript support to enjoy the thrill of battling your way through space!
+</div>
+
+<script>
+<!--//
+
+document.getElementById('spacius').innerHTML = '';
+
+Spacius.init({
+ id : 'spacius'
+});
+
+//-->
+</script>
+
+</body>
+</html>
69 build/Debug/WebViewExample.app/Contents/Resources/game/800x600.htm
@@ -0,0 +1,69 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>Spacius! A Space Adventure</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+ <script src="soundmanager2-nodebug-jsmin.js" type="text/javascript"></script>
+ <script src="spacius-min.js" type="text/javascript"></script>
+ <style type="text/css">
+ html {
+ background: #333;
+ }
+ a {
+ color: #42b4ff;
+ }
+ a:hover {
+ color: #8098e3;
+ }
+ body {
+ color: #fff;
+ font-family: courier, fixed-sys, sans-serif;
+ padding: 10px;
+ }
+ h1 {
+ margin: 0 0 10px 0;
+ }
+ h1 span {
+ color: #aaa;
+ font-size: 10px;
+ }
+ #spacius {
+ width: 800px;
+ height: 600px;
+ }
+ #soundmanager-debug-toggle {
+ display: none;
+ }
+ </style>
+</head>
+<body>
+
+<h1>Spacius! <span>A Space Adventure</span></h1>
+
+<div id="spacius">
+Sorry, you must have JavaScript support to enjoy the thrill of battling your way through space!
+</div>
+
+<p>
+Written by <a href="http://richter.paletteswap.com/">Matt Hackett</a>.
+Music and sound effects by <a href="http://josh.jmflava.com/">Josh Morse</a>.
+</p>
+
+<p>
+<a href="/article/spacius-a-space-adventure/">Click here for instructions, score information and comments.</a>
+</p>
+
+<script type="text/javascript">
+<!--//
+
+document.getElementById('spacius').innerHTML = '';
+
+Spacius.init({
+ id : 'spacius'
+});
+
+//-->
+</script>
+
+</body>
+</html>
BIN  build/Debug/WebViewExample.app/Contents/Resources/game/death.mp3
Binary file not shown
BIN  build/Debug/WebViewExample.app/Contents/Resources/game/explode.gif
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
69 build/Debug/WebViewExample.app/Contents/Resources/game/index.htm
@@ -0,0 +1,69 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>Spacius! A Space Adventure</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+ <script src="soundmanager2-nodebug-jsmin.js" type="text/javascript"></script>
+ <script src="spacius-min.js" type="text/javascript"></script>
+ <style type="text/css">
+ html {
+ background: #333;
+ }
+ a {
+ color: #42b4ff;
+ }
+ a:hover {
+ color: #8098e3;
+ }
+ body {
+ color: #fff;
+ font-family: courier, fixed-sys, sans-serif;
+ padding: 10px;
+ }
+ h1 {
+ margin: 0 0 10px 0;
+ }
+ h1 span {
+ color: #aaa;
+ font-size: 10px;
+ }
+ #spacius {
+ width: 400px;
+ height: 300px;
+ }
+ #soundmanager-debug-toggle {
+ display: none;
+ }
+ </style>
+</head>
+<body>
+
+<h1>Spacius! <span>A Space Adventure</span></h1>
+
+<div id="spacius">
+Sorry, you must have JavaScript support to enjoy the thrill of battling your way through space!
+</div>
+
+<p>
+Written by <a href="http://richter.paletteswap.com/">Matt Hackett</a>.
+Music and sound effects by <a href="http://josh.jmflava.com/">Josh Morse</a>.
+</p>
+
+<p>
+<a href="/article/spacius-a-space-adventure/">Click here for instructions, score information and comments.</a>
+</p>
+
+<script type="text/javascript">
+<!--//
+
+document.getElementById('spacius').innerHTML = '';
+
+Spacius.init({
+ id : 'spacius'
+});
+
+//-->
+</script>
+
+</body>
+</html>
BIN  build/Debug/WebViewExample.app/Contents/Resources/game/ship.gif
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
BIN  build/Debug/WebViewExample.app/Contents/Resources/game/ship_moving.gif
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
BIN  build/Debug/WebViewExample.app/Contents/Resources/game/ship_piece.gif
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
BIN  build/Debug/WebViewExample.app/Contents/Resources/game/shot.gif
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
BIN  build/Debug/WebViewExample.app/Contents/Resources/game/shot.mp3
Binary file not shown
13 build/Debug/WebViewExample.app/Contents/Resources/game/soundmanager2-nodebug-jsmin.js
@@ -0,0 +1,13 @@
+/*
+ SoundManager 2: Javascript Sound for the Web
+ --------------------------------------------
+ http://schillmania.com/projects/soundmanager2/
+
+ Copyright (c) 2008, Scott Schiller. All rights reserved.
+ Code licensed under the BSD License:
+ http://schillmania.com/projects/soundmanager2/license.txt
+
+ V2.5b.20080525
+*/
+
+function SoundManager(smURL,smID){var self=this;this.version='V2.5b.20080525';this.url=(smURL||'soundmanager2.swf');this.debugMode=true;this.useConsole=true;this.consoleOnly=false;this.waitForWindowLoad=false;this.nullURL='data/null.mp3';this.defaultOptions={'autoLoad':false,'stream':true,'autoPlay':false,'onid3':null,'onload':null,'whileloading':null,'onplay':null,'onpause':null,'onresume':null,'whileplaying':null,'onstop':null,'onfinish':null,'onbeforefinish':null,'onbeforefinishtime':5000,'onbeforefinishcomplete':null,'onjustbeforefinish':null,'onjustbeforefinishtime':200,'multiShot':true,'position':null,'pan':0,'volume':100};this.allowPolling=true;this.swfLoaded=false;this.enabled=false;this.o=null;this.id=(smID||'sm2movie');this.oMC=null;this.sounds=[];this.soundIDs=[];this.isIE=(navigator.userAgent.match(/MSIE/));this.isSafari=(navigator.userAgent.match(/safari/i));this.debugID='soundmanager-debug';this._debugOpen=true;this._didAppend=false;this._appendSuccess=false;this._didInit=false;this._disabled=false;this._windowLoaded=false;this._hasConsole=(typeof console!='undefined'&&typeof console.log!='undefined');this._debugLevels=['log','info','warn','error'];this.sandbox={'type':null,'types':{'remote':'remote (domain-based) rules','localWithFile':'local with file access (no internet access)','localWithNetwork':'local with network (internet access only, no local access)','localTrusted':'local, trusted (local + internet access)'},'description':null,'noRemote':null,'noLocal':null};this._overHTTP=(document.location?document.location.protocol.match(/http/i):null);this._waitingforEI=false;this._initPending=false;this._tryInitOnFocus=(this.isSafari&&typeof document.hasFocus=='undefined');this._isFocused=(typeof document.hasFocus!='undefined'?document.hasFocus():null);this._okToDisable=!this._tryInitOnFocus;var flashCPLink='http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04.html';this.supported=function(){return(self._didInit&&!self._disabled);};this.getMovie=function(smID){return self.isIE?window[smID]:(self.isSafari?document.getElementById(smID+'-embed')||document[smID+'-embed']:document.getElementById(smID+'-embed'));};this.loadFromXML=function(sXmlUrl){try{self.o._loadFromXML(sXmlUrl);}catch(e){self._failSafely();return true;};};this.createSound=function(oOptions){if(!self._didInit)throw new Error('soundManager.createSound(): Not loaded yet - wait for soundManager.onload() before calling sound-related methods');if(arguments.length==2){oOptions={'id':arguments[0],'url':arguments[1]};};var thisOptions=self._mergeObjects(oOptions);if(self._idCheck(thisOptions.id,true)){return self.sounds[thisOptions.id];};self.sounds[thisOptions.id]=new SMSound(self,thisOptions);self.soundIDs[self.soundIDs.length]=thisOptions.id;try{self.o._createSound(thisOptions.id,thisOptions.onjustbeforefinishtime);}catch(e){self._failSafely();return true;};if(thisOptions.autoLoad||thisOptions.autoPlay)self.sounds[thisOptions.id].load(thisOptions);if(thisOptions.autoPlay)self.sounds[thisOptions.id].playState=1;return self.sounds[thisOptions.id];};this.destroySound=function(sID){if(!self._idCheck(sID))return false;for(var i=0;i<self.soundIDs.length;i++){if(self.soundIDs[i]==sID){self.soundIDs.splice(i,1);continue;};};self.sounds[sID].unload();delete self.sounds[sID];};this.load=function(sID,oOptions){if(!self._idCheck(sID))return false;self.sounds[sID].load(oOptions);};this.unload=function(sID){if(!self._idCheck(sID))return false;self.sounds[sID].unload();};this.play=function(sID,oOptions){if(!self._idCheck(sID)){if(typeof oOptions!='Object')oOptions={url:oOptions};if(oOptions&&oOptions.url){oOptions.id=sID;self.createSound(oOptions);}else{return false;};};self.sounds[sID].play(oOptions);};this.start=this.play;this.setPosition=function(sID,nMsecOffset){if(!self._idCheck(sID))return false;self.sounds[sID].setPosition(nMsecOffset);};this.stop=function(sID){if(!self._idCheck(sID))return false;self.sounds[sID].stop();};this.stopAll=function(){for(var oSound in self.sounds){if(self.sounds[oSound]instanceof SMSound)self.sounds[oSound].stop();};};this.pause=function(sID){if(!self._idCheck(sID))return false;self.sounds[sID].pause();};this.resume=function(sID){if(!self._idCheck(sID))return false;self.sounds[sID].resume();};this.togglePause=function(sID){if(!self._idCheck(sID))return false;self.sounds[sID].togglePause();};this.setPan=function(sID,nPan){if(!self._idCheck(sID))return false;self.sounds[sID].setPan(nPan);};this.setVolume=function(sID,nVol){if(!self._idCheck(sID))return false;self.sounds[sID].setVolume(nVol);};this.mute=function(sID){if(!sID){var o=null;for(o in self.sounds){self.sounds[o].mute();}}else{if(!self._idCheck(sID))return false;self.sounds[sID].mute();}};this.unmute=function(sID){if(!sID){var o=null;for(o in self.sounds){self.sounds[o].unmute();}}else{if(!self._idCheck(sID))return false;self.sounds[sID].unmute();}};this.setPolling=function(bPolling){if(!self.o||!self.allowPolling)return false;self.o._setPolling(bPolling);};this.disable=function(){if(self._disabled)return false;self._disabled=true;for(var i=self.soundIDs.length;i--;){self._disableObject(self.sounds[self.soundIDs[i]]);};self.initComplete();self._disableObject(self);};this.getSoundById=function(sID,suppressDebug){if(!sID)throw new Error('SoundManager.getSoundById(): sID is null/undefined');var result=self.sounds[sID];if(!result&&!suppressDebug){};return result;};this.onload=function(){};this.onerror=function(){};this._idCheck=this.getSoundById;this._disableObject=function(o){for(var oProp in o){if(typeof o[oProp]=='function'&&typeof o[oProp]._protected=='undefined')o[oProp]=function(){return false;};};oProp=null;};this._failSafely=function(){var fpgssTitle='You may need to whitelist this location/domain eg. file:///C:/ or C:/ or mysite.com, or set ALWAYS ALLOW under the Flash Player Global Security Settings page. The latter is probably less-secure.';var flashCPL='<a href="'+flashCPLink+'" title="'+fpgssTitle+'">view/edit</a>';var FPGSS='<a href="'+flashCPLink+'" title="Flash Player Global Security Settings">FPGSS</a>';if(!self._disabled){self.disable();};};this._createMovie=function(smID,smURL){if(self._didAppend&&self._appendSuccess)return false;if(window.location.href.indexOf('debug=1')+1)self.debugMode=true;self._didAppend=true;var html=['<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="16" height="16" id="'+smID+'"><param name="movie" value="'+smURL+'"><param name="quality" value="high"><param name="allowScriptAccess" value="always" /></object>','<embed name="'+smID+'-embed" id="'+smID+'-embed" src="'+smURL+'" width="1" height="1" quality="high" allowScriptAccess="always" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash"></embed>'];var toggleElement='<div id="'+self.debugID+'-toggle" style="position:fixed;_position:absolute;right:0px;bottom:0px;_top:0px;width:1.2em;height:1.2em;line-height:1.2em;margin:2px;padding:0px;text-align:center;border:1px solid #999;cursor:pointer;background:#fff;color:#333;z-index:706" title="Toggle SM2 debug console" onclick="soundManager._toggleDebug()">-</div>';var debugHTML='<div id="'+self.debugID+'" style="display:'+(self.debugMode&&((!self._hasConsole||!self.useConsole)||(self.useConsole&&self._hasConsole&&!self.consoleOnly))?'block':'none')+';opacity:0.85"></div>';var appXHTML='soundManager._createMovie(): appendChild/innerHTML set failed. Serving application/xhtml+xml MIME type? Browser may be enforcing strict rules, not allowing write to innerHTML. (PS: If so, this means your commitment to XML validation is going to break stuff now, because this part isn\'t finished yet. ;))';var sHTML='<div style="position:absolute;left:-256px;top:-256px;width:1px;height:1px" class="movieContainer">'+html[self.isIE?0:1]+'</div>'+(self.debugMode&&((!self._hasConsole||!self.useConsole)||(self.useConsole&&self._hasConsole&&!self.consoleOnly))&&!document.getElementById(self.debugID)?'x'+debugHTML+toggleElement:'');var oTarget=(document.body?document.body:(document.documentElement?document.documentElement:document.getElementsByTagName('div')[0]));if(oTarget){self.oMC=document.createElement('div');self.oMC.className='movieContainer';self.oMC.style.position='absolute';self.oMC.style.left='-256px';self.oMC.style.width='1px';self.oMC.style.height='1px';try{oTarget.appendChild(self.oMC);self.oMC.innerHTML=html[self.isIE?0:1];self._appendSuccess=true;}catch(e){throw new Error(appXHTML);};if(!document.getElementById(self.debugID)&&((!self._hasConsole||!self.useConsole)||(self.useConsole&&self._hasConsole&&!self.consoleOnly))){var oDebug=document.createElement('div');oDebug.id=self.debugID;oDebug.style.display=(self.debugMode?'block':'none');if(self.debugMode){try{var oD=document.createElement('div');oTarget.appendChild(oD);oD.innerHTML=toggleElement;}catch(e){throw new Error(appXHTML);};};oTarget.appendChild(oDebug);};oTarget=null;};};this._writeDebug=function(sText,sType){};this._writeDebug._protected=true;this._writeDebugAlert=function(sText){alert(sText);};if(window.location.href.indexOf('debug=alert')+1&&self.debugMode){self._writeDebug=self._writeDebugAlert;};this._toggleDebug=function(){var o=document.getElementById(self.debugID);var oT=document.getElementById(self.debugID+'-toggle');if(!o)return false;if(self._debugOpen){oT.innerHTML='+';o.style.display='none';}else{oT.innerHTML='-';o.style.display='block';};self._debugOpen=!self._debugOpen;};this._toggleDebug._protected=true;this._debug=function(){};this._mergeObjects=function(oMain,oAdd){var o1=oMain;var o2=(typeof oAdd=='undefined'?self.defaultOptions:oAdd);for(var o in o2){if(typeof o1[o]=='undefined')o1[o]=o2[o];};return o1;};this.createMovie=function(sURL){if(sURL)self.url=sURL;self._initMovie();};this.go=this.createMovie;this._initMovie=function(){if(self.o)return false;self.o=self.getMovie(self.id);if(!self.o){self._createMovie(self.id,self.url);self.o=self.getMovie(self.id);};};this.waitForExternalInterface=function(){if(self._waitingForEI)return false;self._waitingForEI=true;if(self._tryInitOnFocus&&!self._isFocused){return false;};if(!self._didInit){};setTimeout(function(){if(!self._didInit){if(!self._overHTTP){};};if(!self._didInit&&self._okToDisable)self._failSafely();},750);};this.handleFocus=function(){if(self._isFocused||!self._tryInitOnFocus)return true;self._okToDisable=true;self._isFocused=true;if(self._tryInitOnFocus){window.removeEventListener('mousemove',self.handleFocus,false);};self._waitingForEI=false;setTimeout(self.waitForExternalInterface,500);if(window.removeEventListener){window.removeEventListener('focus',self.handleFocus,false);}else if(window.detachEvent){window.detachEvent('onfocus',self.handleFocus);};};this.initComplete=function(){if(self._didInit)return false;self._didInit=true;if(self._disabled){self.onerror.apply(window);return false;};if(self.waitForWindowLoad&&!self._windowLoaded){if(window.addEventListener){window.addEventListener('load',self.initUserOnload,false);}else if(window.attachEvent){window.attachEvent('onload',self.initUserOnload);};return false;}else{if(self.waitForWindowLoad&&self._windowLoaded){};self.initUserOnload();};};this.initUserOnload=function(){try{self.onload.apply(window);}catch(e){throw e;};};this.init=function(){self._initMovie();if(self._didInit){return false;};if(window.removeEventListener){window.removeEventListener('load',self.beginDelayedInit,false);}else if(window.detachEvent){window.detachEvent('onload',self.beginDelayedInit);};try{self.o._externalInterfaceTest();self.setPolling(true);self.enabled=true;}catch(e){self._failSafely();self.initComplete();return false;};self.initComplete();};this.beginDelayedInit=function(){self._windowLoaded=true;setTimeout(self.waitForExternalInterface,500);setTimeout(self.beginInit,20);};this.beginInit=function(){if(self._initPending)return false;self.createMovie();self._initMovie();self._initPending=true;return true;};this.domContentLoaded=function(){if(document.removeEventListener)document.removeEventListener('DOMContentLoaded',self.domContentLoaded,false);self.go();};this._externalInterfaceOK=function(){if(self.swfLoaded)return false;self.swfLoaded=true;self._tryInitOnFocus=false;if(self.isIE){setTimeout(self.init,100);}else{self.init();};};this._setSandboxType=function(sandboxType){var sb=self.sandbox;sb.type=sandboxType;sb.description=sb.types[(typeof sb.types[sandboxType]!='undefined'?sandboxType:'unknown')];if(sb.type=='localWithFile'){sb.noRemote=true;sb.noLocal=false;}else if(sb.type=='localWithNetwork'){sb.noRemote=false;sb.noLocal=true;}else if(sb.type=='localTrusted'){sb.noRemote=false;sb.noLocal=false;};};this.destruct=function(){if(self.isSafari){for(var i=self.soundIDs.length;i--;){if(self.sounds[self.soundIDs[i]].readyState==1)self.sounds[self.soundIDs[i]].unload();};};self.disable();};function SMSound(oSM,oOptions){var self=this;var sm=oSM;this.sID=oOptions.id;this.url=oOptions.url;this.options=sm._mergeObjects(oOptions);if(sm.debugMode){var stuff=null;var msg=[];var sF=null;var sfBracket=null;var maxLength=64;for(stuff in this.options){if(this.options[stuff]!=null){if(this.options[stuff]instanceof Function){sF=this.options[stuff].toString();sF=sF.replace(/\s\s+/g,' ');sfBracket=sF.indexOf('{');msg[msg.length]=' '+stuff+': {'+sF.substr(sfBracket+1,(Math.min(Math.max(sF.indexOf('\n')-1,maxLength),maxLength))).replace(/\n/g,'')+'... }';}else{msg[msg.length]=' '+stuff+': '+this.options[stuff];};};};};this.id3={};self.resetProperties=function(bLoaded){self.bytesLoaded=null;self.bytesTotal=null;self.position=null;self.duration=null;self.durationEstimate=null;self.loaded=false;self.loadSuccess=null;self.playState=0;self.paused=false;self.readyState=0;self.didBeforeFinish=false;self.didJustBeforeFinish=false;};self.resetProperties();this.load=function(oOptions){self.loaded=false;self.loadSuccess=null;self.readyState=1;self.playState=(oOptions.autoPlay||false);var thisOptions=sm._mergeObjects(oOptions);if(typeof thisOptions.url=='undefined')thisOptions.url=self.url;try{sm.o._load(self.sID,thisOptions.url,thisOptions.stream,thisOptions.autoPlay,(thisOptions.whileloading?1:0));}catch(e){};};this.unload=function(){self.setPosition(0);sm.o._unload(self.sID,sm.nullURL);self.resetProperties();};this.play=function(oOptions){if(!oOptions)oOptions={};var thisOptions=sm._mergeObjects(oOptions,self.options);thisOptions=sm._mergeObjects(thisOptions);if(self.playState==1){var allowMulti=thisOptions.multiShot;if(!allowMulti){return false;}else{};};if(!self.loaded){if(self.readyState==0){thisOptions.stream=true;thisOptions.autoPlay=true;self.load(thisOptions);}else if(self.readyState==2){return false;}else{};}else{};if(self.paused){self.resume();}else{self.playState=1;self.position=(typeof thisOptions.position!='undefined'&&!isNaN(thisOptions.position)?thisOptions.position/1000:0);if(thisOptions.onplay)thisOptions.onplay.apply(self);self.setVolume(thisOptions.volume);self.setPan(thisOptions.pan);if(!thisOptions.autoPlay){sm.o._start(self.sID,thisOptions.loop||1,self.position);};};};this.start=this.play;this.stop=function(bAll){if(self.playState==1){self.playState=0;self.paused=false;if(self.options.onstop)self.options.onstop.apply(self);sm.o._stop(self.sID);};};this.setPosition=function(nMsecOffset){self.options.position=nMsecOffset;sm.o._setPosition(self.sID,nMsecOffset/1000,self.paused||!self.playState);};this.pause=function(){if(self.paused)return false;self.paused=true;sm.o._pause(self.sID);if(self.options.onpause)self.options.onpause.apply(self);};this.resume=function(){if(!self.paused)return false;self.paused=false;sm.o._pause(self.sID);if(self.options.onresume)self.options.onresume.apply(self);};this.togglePause=function(){if(!self.playState){self.play({position:self.position/1000});return false;};if(self.paused){self.resume();}else{self.pause();};};this.setPan=function(nPan){if(typeof nPan=='undefined')nPan=0;sm.o._setPan(self.sID,nPan);self.options.pan=nPan;};this.setVolume=function(nVol){if(typeof nVol=='undefined')nVol=100;sm.o._setVolume(self.sID,nVol);self.options.volume=nVol;};this.mute=function(){sm.o._setVolume(self.sID,0);};this.unmute=function(){sm.o._setVolume(self.sID,self.options.volume);};this._whileloading=function(nBytesLoaded,nBytesTotal,nDuration){self.bytesLoaded=nBytesLoaded;self.bytesTotal=nBytesTotal;self.duration=nDuration;self.durationEstimate=parseInt((self.bytesTotal/self.bytesLoaded)*self.duration);if(self.readyState!=3&&self.options.whileloading)self.options.whileloading.apply(self);};this._onid3=function(oID3PropNames,oID3Data){var oData=[];for(var i=0,j=oID3PropNames.length;i<j;i++){oData[oID3PropNames[i]]=oID3Data[i];};self.id3=sm._mergeObjects(self.id3,oData);if(self.options.onid3)self.options.onid3.apply(self);};this._whileplaying=function(nPosition){if(isNaN(nPosition)||nPosition==null)return false;self.position=nPosition;if(self.playState==1){if(self.options.whileplaying)self.options.whileplaying.apply(self);if(self.loaded&&self.options.onbeforefinish&&self.options.onbeforefinishtime&&!self.didBeforeFinish&&self.duration-self.position<=self.options.onbeforefinishtime){self._onbeforefinish();};};};this._onload=function(bSuccess){bSuccess=(bSuccess==1?true:false);if(!bSuccess){if(sm.sandbox.noRemote==true){};if(sm.sandbox.noLocal==true){};};self.loaded=bSuccess;self.loadSuccess=bSuccess;self.readyState=bSuccess?3:2;if(self.options.onload){self.options.onload.apply(self);};};this._onbeforefinish=function(){if(!self.didBeforeFinish){self.didBeforeFinish=true;if(self.options.onbeforefinish)self.options.onbeforefinish.apply(self);};};this._onjustbeforefinish=function(msOffset){if(!self.didJustBeforeFinish){self.didJustBeforeFinish=true;if(self.options.onjustbeforefinish)self.options.onjustbeforefinish.apply(self);;};};this._onfinish=function(){self.playState=0;self.paused=false;if(self.options.onfinish)self.options.onfinish.apply(self);if(self.options.onbeforefinishcomplete)self.options.onbeforefinishcomplete.apply(self);self.setPosition(0);self.didBeforeFinish=false;self.didJustBeforeFinish=false;};};if(window.addEventListener){window.addEventListener('focus',self.handleFocus,false);window.addEventListener('load',self.beginDelayedInit,false);window.addEventListener('beforeunload',self.destruct,false);if(self._tryInitOnFocus)window.addEventListener('mousemove',self.handleFocus,false);}else if(window.attachEvent){window.attachEvent('onfocus',self.handleFocus);window.attachEvent('onload',self.beginDelayedInit);window.attachEvent('beforeunload',self.destruct);}else{soundManager.onerror();soundManager.disable();};if(document.addEventListener)document.addEventListener('DOMContentLoaded',self.domContentLoaded,false);};var soundManager=new SoundManager();
BIN  build/Debug/WebViewExample.app/Contents/Resources/game/soundmanager2.swf
Binary file not shown
1  build/Debug/WebViewExample.app/Contents/Resources/game/spacius-min.js
@@ -0,0 +1 @@
+Spacius=function(){var d=37,l=39,n=40,AF=38,s=32,v=83,k=10,c=1,e=2,AJ=3,H=400,AH=300,o=3,K=16,AD=2,AM=32,b=16,O=5,D=8,AB=15,V=1,A=2,j=3,M=4,B=32,m=32;var J,a={mode:AJ},T={},Y,I,Q,W=[],q=false,AG=[],h=[0,200,800,2000,4000,10000,999999999];var AI=function(AN){Y=AN;Y.imgUrl=Y.imgUrl||"./";J=document.getElementById(Y.id);H=Y.width||J.offsetWidth||H;AH=Y.height||J.offsetHeight||AH;Q=document.createElement("div");AK(Q,{background:"#000",overflow:"hidden",position:"relative",width:H+"px",height:AH+"px"});J.appendChild(Q);R.init();C.init();AA.init();t.init();w.init();X.init();X.start();L(document,"keydown",E);L(document,"keyup",AE);soundManager.onload=function(){q=true;T.death=soundManager.createSound({id:"death",url:"death.mp3"});T.shot=soundManager.createSound({id:"shot",url:"shot.mp3"});T.theme=soundManager.createSound({id:"theme",onfinish:function(){P("theme")},url:"theme.mp3"});T.ufoDie=soundManager.createSound({id:"ufoDie",url:"ufo_die.mp3"})}};var L=(document.addEventListener?function(AO,AP,AN){AO.addEventListener(AP,AN,false)}:function(AO,AP,AN){AO.attachEvent("on"+AP,AN)});var U=function(){if(a.mode!=e){return }var AN=false;switch(a.wave){case 1:if(u(1,100)==1){N("bomber")}break;case 2:if(!I){I=f({delay:16,movement:V,num:6,speed:u(3,4),type:"bogey"})}break;case 3:if(!I){I=f({delay:16,movement:M,num:u(5,8),speed:u(2,3),type:"ds"})}break;case 4:AN=250;if(!I){I=f({delay:10,extra:{tallWave:true},movement:M,num:8,speed:u(3,4),type:"bogey"})}break;case 5:AN=150;if(u(1,50)==1){N("bomber",{speed:u(4,6)})}break;case 6:AN=200;if(u(1,75)==1){N("bomber",{speed:u(3,6)})}if(!I){if(u(1,2)==1){I=f({delay:16,movement:M,num:5,speed:u(2,3),type:"ds"})}else{I=f({delay:16,movement:V,num:6,speed:u(2,3),type:"bogey"})}}break}if(AN){if(u(1,AN)==1){N("meteor",{movement:A})}}if(I){if(I.d++>=I.delay){I.d=0;if(I.n<I.num){if(N(I.type,I)){I.n++}}else{if(a.numUfos<=0){I=false}}}}if(a.score>=h[a.wave]){a.wave++;I=false}};var g=function(AN,AQ){var AP=((AN.x>=AQ.x)&&(AN.x<=AN.x)),AO=((AN.y>=AQ.y)&&(AN.y<=AQ.y));if((AN.x<AQ.x2)&&(AN.x2>AQ.x)&&(AN.y<AQ.y2)&&(AN.y2>AQ.y)){return true}return false};var f=function(AN){AN.d=0;AN.n=0;switch(AN.movement){case V:AN.x=H;AN.y=u(m,(AH/4));break;case M:AN.x=H;AN.y=u((AH/4),(AH/2));break}return AN};var E=function(AN){if(a.mode==e){switch(AN.keyCode){case d:AA.setMoveX(d);break;case l:AA.setMoveX(l);AA.setImg("ship_moving.gif");break;case AF:AA.setMoveY(AF);break;case n:AA.setMoveY(n);break;case s:AL();break}}else{if(a.mode==AJ){if(AN.keyCode==s){G()}}}if(AN.keyCode==v){Z()}};var AE=function(AN){if(a.mode!=e){return }switch(AN.keyCode){case d:AA.setMoveX();break;case l:AA.setMoveX();AA.setImg("ship.gif");break;case AF:AA.setMoveY();break;case n:AA.setMoveY();break}};var AC=function(){var AQ=[],AP,AR;var AO=function(){for(var AT=0;AT<AR.num;AT++){AQ[AT].hide()}clearInterval(AP);AR.onComplete()};var AN=function(){for(var AT=0;AT<AR.num;AT++){AQ[AT].x-=Math.cos(AQ[AT].radians)*AR.speed;AQ[AT].y-=Math.sin(AQ[AT].radians)*AR.speed;AQ[AT].style.left=AQ[AT].x+"px";AQ[AT].style.top=AQ[AT].y+"px";if((AQ[AT].x<0)||(AQ[AT].x>H)||(AQ[AT].y<0)||(AQ[AT].y>AH)){AQ[AT].hide()}}};var AS=function(AV){var AT=0,AW=parseInt(360/AV.num);AV.speed=AV.speed||2;for(var AU=0;AU<AV.num;AU++){if(!AQ[AU]){AQ[AU]=S();Q.appendChild(AQ[AU])}AK(AQ[AU],{background:"url("+Y.imgUrl+"ship_piece.gif)",position:"absolute",width:"8px",height:"8px",zIndex:"2"});AQ[AU].radians=(AT*Math.PI)/180;AQ[AU].x=AA.getX()+(AM/2);AQ[AU].y=AA.getY()+(b/2);AQ[AU].style.left=AQ[AU].x+"px";AQ[AU].style.top=AQ[AU].y+"px";AT+=AW;AQ[AU].show()}AP=setInterval(AN,k);setTimeout(AO,2500);AR=AV};return{start:AS}}();var F=function(){var AO,AN,AQ=W.length,AP=AG.length;AA.move();for(AN=0;AN<AP;AN++){if(AG[AN].isAlive()){AG[AN].move();if(AA.isAlive()&&g(AA.getCoords(),AG[AN].getCoords())){AA.kill();AG[AN].kill()}for(AO=0;AO<AQ;AO++){if(W[AO].isActive()){if(g(W[AO].getCoords(),AG[AN].getCoords())){W[AO].stop();AG[AN].kill()}}}}}for(AO=0;AO<AQ;AO++){if(W[AO].isActive()){W[AO].move()}}U()};var S=function(){var AN=document.createElement("div");AN.hide=function(){AN.style.display="none"};AN.show=function(){AN.style.display=""};return AN};var N=function(AP,AQ){var AO=false;for(var AN=0;AN<AB;AN++){if(!AG[AN]){AO=true;AG[AN]=new z();break}else{if(!AG[AN].isActive()){AO=true;break}}}if(AO){a.numUfos++;AG[AN].start(AP,AQ)}return AO};var R=function(){var AP=S(),AQ;var AR=function(){AK(AP,{color:"#fff",fontFamily:"verdana, sans-serif",fontSize:"10px",padding:"0px",position:"absolute",left:"2px",bottom:"2px"});AP.hide();Q.appendChild(AP)};var AO=function(){if(AQ){clearTimeout(AQ)}AQ=setTimeout(function(){AP.hide()},1000)};var AN=function(){AP.innerHTML="Sound is "+(q?"ON":"OFF");AP.show()};return{hide:AO,init:AR,show:AN}}();var G=function(){if(a.interval){clearInterval(a.interval);a.interval=false}a.interval=setInterval(F,k);a.mode=e;a.numUfos=0;a.score=0;a.wave=1;I=false;C.add(0);t.hide();w.hide();C.show();AA.start();P("theme")};var P=function(AN){if(q&&T&&T[AN]){T[AN].play()}};var C=function(){var AN=S();var AP=function(){AK(AN,{color:"#fff",display:"none",fontFamily:"verdana, sans-serif",fontSize:"10px",left:"2px",top:"2px",position:"absolute",zIndex:"1"});AN.innerHTML="Score: 0";Q.appendChild(AN)};var AO=function(AQ){a.score+=AQ||0;AN.innerHTML="Score: "+a.score};return{add:AO,hide:AN.hide,init:AP,show:AN.show}}();var u=function(AO,AN){return(AO+Math.floor((AN-AO+1)*(Math.random()%1)))};var AK=function(AP,AO){for(var AN in AO){AP.style[AN]=AO[AN]}};var AA=function(){var AY=true,AO=S(),AR=0,AP=0;var AZ=function(){AK(AO,{background:"url("+Y.imgUrl+"ship.gif)",display:"none",width:AM+"px",height:b+"px",position:"absolute",zIndex:"2"});Q.appendChild(AO)};var AS=function(){return{x:AO.x,y:AO.y,x2:(AO.x+AM),y2:(AO.y+b)}};var AW=function(){return AY};var AT=function(){AY=false;a.mode=c;AC.start({num:K,onComplete:function(){a.mode=AJ;w.show()}});AA.hide();P("death");i("theme")};var AQ=function(){switch(AR){case d:AO.x-=AD;if(AO.x<0){AO.x=0}break;case l:AO.x+=AD;if((AO.x+AM)>H){AO.x=(H-AM)}break}switch(AP){case AF:AO.y-=AD;if(AO.y<0){AO.y=0}break;case n:AO.y+=AD;if((AO.y+b)>AH){AO.y=(AH-b)}break}AO.style.left=AO.x+"px";AO.style.top=AO.y+"px"};var AV=function(Aa){AO.style.background="url("+Y.imgUrl+Aa+")"};var AX=function(Aa){AR=Aa||false};var AU=function(Aa){AP=Aa||false};var AN=function(){AY=true;AO.x=((H/2)-(AM/2));AO.y=((AH/2)-(b/2));AR=0;AP=0;AO.style.left=AO.x+"px";AO.style.top=AO.y+"px";AO.show()};return{getCoords:AS,getX:function(){return AO.x},getY:function(){return AO.y},hide:AO.hide,init:AZ,isAlive:AW,kill:AT,move:AQ,setImg:AV,setMoveX:AX,setMoveY:AU,show:AO.show,start:AN}}();var p=function(){var AS=false,AR=S();var AT=function(){AK(AR,{background:"url("+Y.imgUrl+"shot.gif)",overflow:"hidden",position:"absolute",width:D+"px",height:D+"px"});Q.appendChild(AR);AU()};var AQ=function(){return AS};var AP=function(){return{x:AR.x,y:AR.y,x2:(AR.x+D),y2:(AR.y+D)}};var AN=function(){AR.x+=O;if((AR.x+D)>=H){AO()}AR.style.left=AR.x+"px"};var AU=function(){AS=true;AR.x=(AA.getX()+AM);AR.y=(AA.getY()+(b/4));AR.style.left=AR.x+"px";AR.style.top=AR.y+"px";AR.show()};var AO=function(){AS=false;AR.hide()};AT();return{move:AN,getCoords:AP,isActive:AQ,start:AU,stop:AO}};var AL=function(){var AO=false;for(var AN=0;AN<o;AN++){if(!W[AN]){AO=true;W[AN]=new p();break}else{if(!W[AN].isActive()){AO=true;W[AN].start();break}}}P("shot")};var X=function(){var AQ=false,AS=50,AT=25,AR=[];var AP=function(){for(var AW=0;AW<AS;AW++){AR[AW].x-=AR[AW].speed;if(AR[AW].x<0){AR[AW].x=(H-1);AR[AW].y=u(0,AH-1)}AR[AW].style.left=AR[AW].x+"px";AR[AW].style.top=AR[AW].y+"px"}};var AN=function(){var AX=S("div"),AW=u(1,5);r=(AW*55)-50,x=u(0,H-1),y=u(0,AH-1);AX.speed=AW;AK(AX,{background:"rgb("+r+","+r+","+r+")",zoom:1,left:x+"px",top:y+"px",overflow:"hidden",position:"absolute",width:"1px",height:"1px",zIndex:"1"});AX.x=x;AX.y=y;Q.appendChild(AX);return AX};var AO=function(){if(!AQ){AQ=setInterval(AP,AT)}};var AU=function(){if(AQ){clearInterval(AQ);AQ=false}};var AV=function(){for(var AW=0;AW<AS;AW++){AR[AW]=AN()}};return{init:AV,start:AO,stop:AU}}();var i=function(AN){if(T&&q&&T[AN]){T[AN].stop()}};var t=function(){var AP=S();var AQ=function(){AK(AP,{background:"url("+Y.imgUrl+"title.gif)",left:(H/2-144)+"px",top:(AH/2-55)+"px",position:"absolute",width:"287px",height:"110px",zIndex:"2"});Q.appendChild(AP)};var AO=function(){AP.style.display="none"};var AN=function(){AP.style.display=""};return{hide:AP.hide,init:AQ,show:AP.show}}();var Z=function(){if(q){if(a.mode==e){i("theme")}q=false}else{q=true;if(a.mode==e){P("theme")}}R.show();R.hide()};var w=function(){var AN=S();var AO=function(){AK(AN,{color:"#fff",fontFamily:"verdana, sans-serif",fontSize:"10px",padding:"0px",position:"absolute",right:"2px",bottom:"2px"});AN.hide();AN.innerHTML="Play Again?<br>Press SPACE";Q.appendChild(AN)};return{hide:AN.hide,init:AO,show:AN.show}}();var z=function(){var AQ=false,AW=false,AO,AU;var AZ=function(){AO=S();Q.appendChild(AO)};var AY={"1":function(){switch(AO.stage){case 1:if(AO.x<(H/4)){AO.stage=2}case 3:AO.x-=AO.speed;break;case 2:AO.x+=AO.speed;AO.y+=AO.speed;if((AO.x>(H*0.75))||(AO.y>(AH*0.75))){AO.stage=3}break}if(AO.x<-B){AV()}AO.style.left=AO.x+"px";AO.style.top=AO.y+"px"},"3":function(){AO.x-=AO.speed;if(AO.x<-B){AV()}AO.style.left=AO.x+"px";AO.style.top=AO.y+"px"},"4":function(){AO.inc+=5;AO.x-=AO.speed;if(AO.extra&&AO.extra.tallWave){AO.y=parseInt(AO.yStart-((m*2)*Math.sin(0.02*AO.inc)))}else{AO.y=parseInt(AO.yStart-(m*Math.sin(0.0125*AO.inc)))}if(AO.x<-B){AV()}AO.style.left=AO.x+"px";AO.style.top=AO.y+"px"},"2":function(){AO.x-=Math.cos(AO.radians)*AO.speed;AO.y-=Math.sin(AO.radians)*AO.speed;if((AO.x<-B)||(AO.y>AH)){AV()}AO.style.left=AO.x+"px";AO.style.top=AO.y+"px"}};var AR=function(){return{x:AO.x,y:AO.y,x2:(AO.x+B),y2:(AO.y+B)}};var AX=function(){return AQ};var AT=function(){return AW};var AS=function(){AW=false;AO.style.background="url("+Y.imgUrl+"explode.gif)";P("ufoDie");C.add(AO.score);setTimeout(AV,900)};var AP=function(){AY[AO.movement]()};var AN=function(Aa,Ab){Ab=Ab||{};AQ=true;AW=true;AO.extra=Ab.extra;AO.movement=Ab.movement||j;AO.speed=Ab.speed||u(1,3);AO.stage=1;AO.x=Ab.x||(H-B);AO.y=Ab.y||u(0,(AH-m));AU=Aa;switch(AO.movement){case M:AO.inc=0;AO.speed=Ab.speed||u(1,2);AO.yStart=AO.y;break;case A:AO.radians=((u(225,315)*Math.PI)/180);AO.speed=Ab.speed||u(3,5);AO.x=(H/2)-u(-B,B);AO.y=-m;break}switch(Aa){case"bogey":AO.score=20;break;case"bomber":AO.score=15;break;case"ds":AO.score=25;break;case"meteor":AO.score=50;break}AK(AO,{background:"url(ufo_"+AU+".gif)",left:AO.x+"px",top:AO.y+"px",position:"absolute",width:B+"px",height:m+"px",zIndex:"2"});AO.show()};var AV=function(){AQ=false;AW=false;AO.hide();a.numUfos--};AZ();return{getCoords:AR,isActive:AX,isAlive:AT,kill:AS,move:AP,start:AN,stop:AV}};return{init:AI}}()
1,333 build/Debug/WebViewExample.app/Contents/Resources/game/spacius.js
@@ -0,0 +1,1333 @@
+/**
+ * @Constructor
+ */
+Spacius = function() {
+
+ // Constants (sort of)
+ var
+ // Keys
+ KEY_LEFT = 37,
+ KEY_RIGHT = 39,
+ KEY_DOWN = 40,
+ KEY_UP = 38,
+ KEY_SPACE = 32,
+ KEY_S = 83,
+
+ // Game settings
+ MAIN_TIME = 10,
+ MODE_DYING = 1,
+ MODE_PLAYING = 2,
+ MODE_TITLE = 3,
+ SCREEN_WIDTH = 400,
+ SCREEN_HEIGHT = 300,
+
+ // Ship settings
+ MAX_SHOTS = 3,
+ NUM_PIECES = 16,
+ SHIP_SPEED = 2,
+ SHIP_WIDTH = 32,
+ SHIP_HEIGHT = 16,
+ SHOT_SPEED = 5,
+ SHOT_SIZE = 8,
+
+ // UFO settings
+ MAX_UFOS = 15,
+ MOVE_DIAG = 1,
+ MOVE_METEOR = 2,
+ MOVE_STRAIGHT = 3,
+ MOVE_WAVE = 4,
+ UFO_WIDTH = 32,
+ UFO_HEIGHT = 32;
+
+ var
+ con,
+ game = {
+ mode : MODE_TITLE
+ },
+ mp3 = {},
+ ops,