[Vm-dev] [commit] r2288 - iOS add SqueakLocale plugin

commits at squeakvm.org commits at squeakvm.org
Wed Sep 8 06:39:12 UTC 2010


Author: johnmci
Date: 2010-09-07 23:39:12 -0700 (Tue, 07 Sep 2010)
New Revision: 2288

Added:
   trunk/platforms/iOS/plugins/SqueakLocale/
   trunk/platforms/iOS/plugins/SqueakLocale/Info-SqueakLocalePlugin__Upgraded_.plist
   trunk/platforms/iOS/plugins/SqueakLocale/SqueakLocale.xcodeproj/
   trunk/platforms/iOS/plugins/SqueakLocale/SqueakLocale.xcodeproj/johnmci.mode1
   trunk/platforms/iOS/plugins/SqueakLocale/SqueakLocale.xcodeproj/johnmci.mode1v3
   trunk/platforms/iOS/plugins/SqueakLocale/SqueakLocale.xcodeproj/johnmci.pbxuser
   trunk/platforms/iOS/plugins/SqueakLocale/SqueakLocale.xcodeproj/project.pbxproj
   trunk/platforms/iOS/plugins/SqueakLocale/sqMacLocaleCocoa.h
   trunk/platforms/iOS/plugins/SqueakLocale/sqMacLocaleCocoa.m
   trunk/platforms/iOS/vm/src/plugins/LocalePlugin/
   trunk/platforms/iOS/vm/src/plugins/LocalePlugin/LocalePlugin.c
Log:
iOS add SqueakLocale plugin

Added: trunk/platforms/iOS/plugins/SqueakLocale/Info-SqueakLocalePlugin__Upgraded_.plist
===================================================================
--- trunk/platforms/iOS/plugins/SqueakLocale/Info-SqueakLocalePlugin__Upgraded_.plist	                        (rev 0)
+++ trunk/platforms/iOS/plugins/SqueakLocale/Info-SqueakLocalePlugin__Upgraded_.plist	2010-09-08 06:39:12 UTC (rev 2288)
@@ -0,0 +1,28 @@
+<?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>LocalePlugin</string>
+	<key>CFBundleGetInfoString</key>
+	<string>LocalePlugin for Squeak, Cocoa based</string>
+	<key>CFBundleIconFile</key>
+	<string>SqueakPlugin.icns</string>
+	<key>CFBundleIdentifier</key>
+	<string>org.squeak.LocalePlugin</string>
+	<key>CFBundleInfoDictionaryVersion</key>
+	<string>6.0</string>
+	<key>CFBundleName</key>
+	<string>LocalePlugin</string>
+	<key>CFBundlePackageType</key>
+	<string>BNDL</string>
+	<key>CFBundleShortVersionString</key>
+	<string>2.0b1</string>
+	<key>CFBundleSignature</key>
+	<string>FAST</string>
+	<key>CFBundleVersion</key>
+	<string>2</string>
+</dict>
+</plist>

Added: trunk/platforms/iOS/plugins/SqueakLocale/SqueakLocale.xcodeproj/johnmci.mode1
===================================================================
--- trunk/platforms/iOS/plugins/SqueakLocale/SqueakLocale.xcodeproj/johnmci.mode1	                        (rev 0)
+++ trunk/platforms/iOS/plugins/SqueakLocale/SqueakLocale.xcodeproj/johnmci.mode1	2010-09-08 06:39:12 UTC (rev 2288)
@@ -0,0 +1,1419 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//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>PBXRunSessionModule</string>
+			<key>Name</key>
+			<string>Run Log</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>
+	</array>
+	<key>Description</key>
+	<string>DefaultDescriptionKey</string>
+	<key>DockingSystemVisible</key>
+	<false/>
+	<key>Extension</key>
+	<string>mode1</string>
+	<key>FavBarConfig</key>
+	<dict>
+		<key>PBXProjectModuleGUID</key>
+		<string>94AF35A4084782DD00FA5ACB</string>
+		<key>XCBarModuleItemNames</key>
+		<dict/>
+		<key>XCBarModuleItems</key>
+		<array/>
+	</dict>
+	<key>FirstTimeWindowDisplayed</key>
+	<false/>
+	<key>Identifier</key>
+	<string>com.apple.perspectives.project.mode1</string>
+	<key>MajorVersion</key>
+	<integer>31</integer>
+	<key>MinorVersion</key>
+	<integer>1</integer>
+	<key>Name</key>
+	<string>Default</string>
+	<key>Notifications</key>
+	<array>
+		<dict>
+			<key>XCObserverAutoDisconnectKey</key>
+			<true/>
+			<key>XCObserverDefintionKey</key>
+			<dict>
+				<key>PBXStatusErrorsKey</key>
+				<integer>0</integer>
+			</dict>
+			<key>XCObserverFactoryKey</key>
+			<string>XCPerspectivesSpecificationIdentifier</string>
+			<key>XCObserverGUIDKey</key>
+			<string>XCObserverProjectIdentifier</string>
+			<key>XCObserverNotificationKey</key>
+			<string>PBXStatusBuildStateMessageNotification</string>
+			<key>XCObserverTargetKey</key>
+			<string>XCMainBuildResultsModuleGUID</string>
+			<key>XCObserverTriggerKey</key>
+			<string>awakenModuleWithObserver:</string>
+			<key>XCObserverValidationKey</key>
+			<dict>
+				<key>PBXStatusErrorsKey</key>
+				<integer>2</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>XCObserverAutoDisconnectKey</key>
+			<true/>
+			<key>XCObserverDefintionKey</key>
+			<dict>
+				<key>PBXStatusWarningsKey</key>
+				<integer>0</integer>
+			</dict>
+			<key>XCObserverFactoryKey</key>
+			<string>XCPerspectivesSpecificationIdentifier</string>
+			<key>XCObserverGUIDKey</key>
+			<string>XCObserverProjectIdentifier</string>
+			<key>XCObserverNotificationKey</key>
+			<string>PBXStatusBuildStateMessageNotification</string>
+			<key>XCObserverTargetKey</key>
+			<string>XCMainBuildResultsModuleGUID</string>
+			<key>XCObserverTriggerKey</key>
+			<string>awakenModuleWithObserver:</string>
+			<key>XCObserverValidationKey</key>
+			<dict>
+				<key>PBXStatusWarningsKey</key>
+				<integer>2</integer>
+			</dict>
+		</dict>
+	</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-target-popup</string>
+				<string>active-buildstyle-popup</string>
+				<string>action</string>
+				<string>NSToolbarFlexibleSpaceItem</string>
+				<string>buildOrClean</string>
+				<string>build-and-runOrDebug</string>
+				<string>com.apple.ide.PBXToolbarStopButton</string>
+				<string>get-info</string>
+				<string>toggle-editor</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>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>1CE0B1FE06471DED0097A5F4</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>66DF6BFE01D7DCEA00A80119</string>
+								<string>66B8BC570381F53800A8011A</string>
+								<string>66DF6BFF01D7DCEA00A80119</string>
+								<string>66DF6C3901D7DCEA00A80119</string>
+								<string>66DF6C4501D7DEEE00A80119</string>
+								<string>1C37FBAC04509CD000000102</string>
+								<string>1C37FAAC04509CD000000102</string>
+								<string>1C37FABC05509CD000000102</string>
+							</array>
+							<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
+							<array>
+								<array>
+									<integer>11</integer>
+									<integer>8</integer>
+									<integer>0</integer>
+								</array>
+							</array>
+							<key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
+							<string>{{0, 0}, {186, 733}}</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}, {203, 751}}</string>
+						<key>GroupTreeTableConfiguration</key>
+						<array>
+							<string>MainColumn</string>
+							<real>186</real>
+						</array>
+						<key>RubberWindowFrame</key>
+						<string>115 104 919 792 0 0 1680 1028 </string>
+					</dict>
+					<key>Module</key>
+					<string>PBXSmartGroupTreeModule</string>
+					<key>Proportion</key>
+					<string>203pt</string>
+				</dict>
+				<dict>
+					<key>Dock</key>
+					<array>
+						<dict>
+							<key>ContentConfiguration</key>
+							<dict>
+								<key>PBXProjectModuleGUID</key>
+								<string>1CE0B20306471E060097A5F4</string>
+								<key>PBXProjectModuleLabel</key>
+								<string>LocalePlugin.c</string>
+								<key>PBXSplitModuleInNavigatorKey</key>
+								<dict>
+									<key>Split0</key>
+									<dict>
+										<key>PBXProjectModuleGUID</key>
+										<string>1CE0B20406471E060097A5F4</string>
+										<key>PBXProjectModuleLabel</key>
+										<string>LocalePlugin.c</string>
+										<key>_historyCapacity</key>
+										<integer>0</integer>
+										<key>bookmark</key>
+										<string>94B4E4A70C75EA3800F83D97</string>
+										<key>history</key>
+										<array>
+											<string>944D6258085F474800600D6E</string>
+											<string>94BBFE8908A46E3D00181406</string>
+											<string>94BB001D08A54ECD00181406</string>
+											<string>94CB5D6309E1DEC400AD2895</string>
+											<string>94ACFA7709EEFA300043ED40</string>
+											<string>94ACFA7809EEFA300043ED40</string>
+											<string>94B4E4990C75EA3700F83D97</string>
+											<string>9457F0A509C0D6F000D1610A</string>
+										</array>
+										<key>prevStack</key>
+										<array>
+											<string>947907390858EDF80068B3F8</string>
+											<string>94461699085E5999004F7BD5</string>
+											<string>9446169B085E5999004F7BD5</string>
+											<string>944D625B085F474800600D6E</string>
+											<string>946D55B2089DFA400081F0EE</string>
+											<string>94BBFE8E08A46E3D00181406</string>
+											<string>94BB005208A5562100181406</string>
+											<string>94B4E49A0C75EA3700F83D97</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}, {711, 692}}</string>
+								<key>RubberWindowFrame</key>
+								<string>115 104 919 792 0 0 1680 1028 </string>
+							</dict>
+							<key>Module</key>
+							<string>PBXNavigatorGroup</string>
+							<key>Proportion</key>
+							<string>692pt</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, 697}, {711, 54}}</string>
+								<key>RubberWindowFrame</key>
+								<string>115 104 919 792 0 0 1680 1028 </string>
+							</dict>
+							<key>Module</key>
+							<string>XCDetailModule</string>
+							<key>Proportion</key>
+							<string>54pt</string>
+						</dict>
+					</array>
+					<key>Proportion</key>
+					<string>711pt</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>94B4E49C0C75EA3700F83D97</string>
+				<string>1CE0B1FE06471DED0097A5F4</string>
+				<string>94B4E49D0C75EA3700F83D97</string>
+				<string>1CE0B20306471E060097A5F4</string>
+				<string>1CE0B20506471E060097A5F4</string>
+			</array>
+			<key>ToolbarConfiguration</key>
+			<string>xcode.toolbar.config.default</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.short</string>
+		</dict>
+	</array>
+	<key>PerspectivesBarVisible</key>
+	<false/>
+	<key>ShelfIsVisible</key>
+	<false/>
+	<key>SourceDescription</key>
+	<string>file at '/System/Library/PrivateFrameworks/DevToolsInterface.framework/Versions/A/Resources/XCPerspectivesSpecificationMode1.xcperspec'</string>
+	<key>StatusbarIsVisible</key>
+	<true/>
+	<key>TimeStamp</key>
+	<real>209054117.07446</real>
+	<key>ToolbarDisplayMode</key>
+	<integer>1</integer>
+	<key>ToolbarIsVisible</key>
+	<true/>
+	<key>ToolbarSizeMode</key>
+	<integer>2</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>1C530D57069F1CE1000CFCEE</string>
+		<string>/Users/johnmci/Documents/SqueakLocale/SqueakLocale.xcodeproj</string>
+	</array>
+	<key>WindowString</key>
+	<string>115 104 919 792 0 0 1680 1028 </string>
+	<key>WindowTools</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}, {879, 130}}</string>
+								<key>RubberWindowFrame</key>
+								<string>444 71 879 795 0 0 1440 878 </string>
+							</dict>
+							<key>Module</key>
+							<string>PBXNavigatorGroup</string>
+							<key>Proportion</key>
+							<string>130pt</string>
+						</dict>
+						<dict>
+							<key>BecomeActive</key>
+							<true/>
+							<key>ContentConfiguration</key>
+							<dict>
+								<key>PBXBuildLogShowsTranscriptDefaultKey</key>
+								<string>{{0, 5}, {879, 614}}</string>
+								<key>PBXProjectModuleGUID</key>
+								<string>XCMainBuildResultsModuleGUID</string>
+								<key>PBXProjectModuleLabel</key>
+								<string>Build</string>
+								<key>XCBuildResultsTrigger_Collapse</key>
+								<integer>1021</integer>
+								<key>XCBuildResultsTrigger_Open</key>
+								<integer>1013</integer>
+							</dict>
+							<key>GeometryConfiguration</key>
+							<dict>
+								<key>Frame</key>
+								<string>{{0, 135}, {879, 619}}</string>
+								<key>RubberWindowFrame</key>
+								<string>444 71 879 795 0 0 1440 878 </string>
+							</dict>
+							<key>Module</key>
+							<string>PBXBuildResultsModule</string>
+							<key>Proportion</key>
+							<string>619pt</string>
+						</dict>
+					</array>
+					<key>Proportion</key>
+					<string>754pt</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>94BBFEA708A46E3D00181406</string>
+				<string>94B2DFEA09C7B53D00C46523</string>
+				<string>1CD0528F0623707200166675</string>
+				<string>XCMainBuildResultsModuleGUID</string>
+			</array>
+			<key>ToolbarConfiguration</key>
+			<string>xcode.toolbar.config.build</string>
+			<key>WindowString</key>
+			<string>444 71 879 795 0 0 1440 878 </string>
+			<key>WindowToolGUID</key>
+			<string>94BBFEA708A46E3D00181406</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}, {410, 251}}</string>
+											<string>{{0, 251}, {410, 371}}</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}, {410, 622}}</string>
+											<string>{{410, 0}, {820, 622}}</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>DebugConsoleDrawerSize</key>
+								<string>{100, 120}</string>
+								<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}, {1230, 622}}</string>
+								<key>RubberWindowFrame</key>
+								<string>208 95 1230 663 0 0 1440 878 </string>
+							</dict>
+							<key>Module</key>
+							<string>PBXDebugSessionModule</string>
+							<key>Proportion</key>
+							<string>622pt</string>
+						</dict>
+					</array>
+					<key>Proportion</key>
+					<string>622pt</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>94BBFEA908A46E3D00181406</string>
+				<string>1C162984064C10D400B95A72</string>
+				<string>94BBFEAA08A46E3D00181406</string>
+				<string>94BBFEAB08A46E3D00181406</string>
+				<string>94BBFEAC08A46E3D00181406</string>
+				<string>94BBFEAD08A46E3D00181406</string>
+				<string>94BBFEAE08A46E3D00181406</string>
+				<string>94BBFEAF08A46E3D00181406</string>
+			</array>
+			<key>ToolbarConfiguration</key>
+			<string>xcode.toolbar.config.debug</string>
+			<key>WindowString</key>
+			<string>208 95 1230 663 0 0 1440 878 </string>
+			<key>WindowToolGUID</key>
+			<string>1CD10A99069EF8BA00B06720</string>
+			<key>WindowToolIsVisible</key>
+			<false/>
+		</dict>
+		<dict>
+			<key>FirstTimeWindowDisplayed</key>
+			<false/>
+			<key>Identifier</key>
+			<string>windowTool.find</string>
+			<key>IsVertical</key>
+			<true/>
+			<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></string>
+										<key>StatusBarVisibility</key>
+										<true/>
+									</dict>
+									<key>GeometryConfiguration</key>
+									<dict>
+										<key>Frame</key>
+										<string>{{0, 0}, {791, 416}}</string>
+										<key>RubberWindowFrame</key>
+										<string>629 73 791 674 0 0 1680 1028 </string>
+									</dict>
+									<key>Module</key>
+									<string>PBXNavigatorGroup</string>
+									<key>Proportion</key>
+									<string>791pt</string>
+								</dict>
+							</array>
+							<key>Proportion</key>
+							<string>416pt</string>
+						</dict>
+						<dict>
+							<key>BecomeActive</key>
+							<true/>
+							<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>{{0, 421}, {791, 212}}</string>
+								<key>RubberWindowFrame</key>
+								<string>629 73 791 674 0 0 1680 1028 </string>
+							</dict>
+							<key>Module</key>
+							<string>PBXProjectFindModule</string>
+							<key>Proportion</key>
+							<string>212pt</string>
+						</dict>
+					</array>
+					<key>Proportion</key>
+					<string>633pt</string>
+				</dict>
+			</array>
+			<key>Name</key>
+			<string>Project Find</string>
+			<key>ServiceClasses</key>
+			<array>
+				<string>PBXProjectFindModule</string>
+			</array>
+			<key>StatusbarIsVisible</key>
+			<true/>
+			<key>TableOfContents</key>
+			<array>
+				<string>1C530D57069F1CE1000CFCEE</string>
+				<string>94B4E49E0C75EA3700F83D97</string>
+				<string>94B4E49F0C75EA3700F83D97</string>
+				<string>1CDD528C0622207200134675</string>
+				<string>1CD0528E0623707200166675</string>
+			</array>
+			<key>WindowString</key>
+			<string>629 73 791 674 0 0 1680 1028 </string>
+			<key>WindowToolGUID</key>
+			<string>1C530D57069F1CE1000CFCEE</string>
+			<key>WindowToolIsVisible</key>
+			<true/>
+		</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}, {686, 500}}</string>
+								<key>RubberWindowFrame</key>
+								<string>759 114 686 541 0 0 1440 878 </string>
+							</dict>
+							<key>Module</key>
+							<string>PBXDebugCLIModule</string>
+							<key>Proportion</key>
+							<string>500pt</string>
+						</dict>
+					</array>
+					<key>Proportion</key>
+					<string>500pt</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>94ABA92F0858D3A300079BE1</string>
+				<string>94BBFFFF08A5476700181406</string>
+				<string>1C78EAAC065D492600B07095</string>
+			</array>
+			<key>WindowString</key>
+			<string>759 114 686 541 0 0 1440 878 </string>
+			<key>WindowToolGUID</key>
+			<string>94ABA92F0858D3A300079BE1</string>
+			<key>WindowToolIsVisible</key>
+			<false/>
+		</dict>
+		<dict>
+			<key>Identifier</key>
+			<string>windowTool.run</string>
+			<key>Layout</key>
+			<array>
+				<dict>
+					<key>Dock</key>
+					<array>
+						<dict>
+							<key>ContentConfiguration</key>
+							<dict>
+								<key>LauncherConfigVersion</key>
+								<string>3</string>
+								<key>PBXProjectModuleGUID</key>
+								<string>1CD0528B0623707200166675</string>
+								<key>PBXProjectModuleLabel</key>
+								<string>Run</string>
+								<key>Runner</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}, {493, 167}}</string>
+											<string>{{0, 176}, {493, 267}}</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}, {405, 443}}</string>
+											<string>{{414, 0}, {514, 443}}</string>
+										</array>
+									</dict>
+								</dict>
+							</dict>
+							<key>GeometryConfiguration</key>
+							<dict>
+								<key>Frame</key>
+								<string>{{0, 0}, {460, 159}}</string>
+								<key>RubberWindowFrame</key>
+								<string>316 696 459 200 0 0 1280 1002 </string>
+							</dict>
+							<key>Module</key>
+							<string>PBXRunSessionModule</string>
+							<key>Proportion</key>
+							<string>159pt</string>
+						</dict>
+					</array>
+					<key>Proportion</key>
+					<string>159pt</string>
+				</dict>
+			</array>
+			<key>Name</key>
+			<string>Run Log</string>
+			<key>ServiceClasses</key>
+			<array>
+				<string>PBXRunSessionModule</string>
+			</array>
+			<key>StatusbarIsVisible</key>
+			<integer>1</integer>
+			<key>TableOfContents</key>
+			<array>
+				<string>1C0AD2B3069F1EA900FABCE6</string>
+				<string>1C0AD2B4069F1EA900FABCE6</string>
+				<string>1CD0528B0623707200166675</string>
+				<string>1C0AD2B5069F1EA900FABCE6</string>
+			</array>
+			<key>ToolbarConfiguration</key>
+			<string>xcode.toolbar.config.run</string>
+			<key>WindowString</key>
+			<string>316 696 459 200 0 0 1280 1002 </string>
+			<key>WindowToolGUID</key>
+			<string>1C0AD2B3069F1EA900FABCE6</string>
+			<key>WindowToolIsVisible</key>
+			<integer>0</integer>
+		</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.09500122070312</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>
+			<false/>
+			<key>Layout</key>
+			<array>
+				<dict>
+					<key>Dock</key>
+					<array>
+						<dict>
+							<key>BecomeActive</key>
+							<true/>
+							<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>
+								<false/>
+							</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>2</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>
+			<true/>
+			<key>TableOfContents</key>
+			<array>
+				<string>1CDDB66807F98D9800BB5817</string>
+				<string>1CDDB66907F98D9800BB5817</string>
+				<string>1CE0B1FE06471DED0097A5F4</string>
+				<string>1CA1AED706398EBD00589147</string>
+			</array>
+			<key>ToolbarConfiguration</key>
+			<string>xcode.toolbar.config.breakpoints</string>
+			<key>WindowString</key>
+			<string>315 424 744 409 0 0 1440 878 </string>
+			<key>WindowToolGUID</key>
+			<string>1CDDB66807F98D9800BB5817</string>
+			<key>WindowToolIsVisible</key>
+			<true/>
+		</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>
+			<true/>
+			<key>ToolbarConfiguration</key>
+			<string>xcode.toolbar.config.debugAnimator</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.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>
+	</array>
+</dict>
+</plist>

Added: trunk/platforms/iOS/plugins/SqueakLocale/SqueakLocale.xcodeproj/johnmci.mode1v3
===================================================================
--- trunk/platforms/iOS/plugins/SqueakLocale/SqueakLocale.xcodeproj/johnmci.mode1v3	                        (rev 0)
+++ trunk/platforms/iOS/plugins/SqueakLocale/SqueakLocale.xcodeproj/johnmci.mode1v3	2010-09-08 06:39:12 UTC (rev 2288)
@@ -0,0 +1,1490 @@
+<?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>Description</key>
+	<string>DefaultDescriptionKey</string>
+	<key>DockingSystemVisible</key>
+	<false/>
+	<key>Extension</key>
+	<string>mode1v3</string>
+	<key>FavBarConfig</key>
+	<dict>
+		<key>PBXProjectModuleGUID</key>
+		<string>9471AF5E1107A072004DD8A7</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>
+		<dict>
+			<key>XCObserverAutoDisconnectKey</key>
+			<true/>
+			<key>XCObserverDefintionKey</key>
+			<dict>
+				<key>PBXStatusErrorsKey</key>
+				<integer>0</integer>
+			</dict>
+			<key>XCObserverFactoryKey</key>
+			<string>XCPerspectivesSpecificationIdentifier</string>
+			<key>XCObserverGUIDKey</key>
+			<string>XCObserverProjectIdentifier</string>
+			<key>XCObserverNotificationKey</key>
+			<string>PBXStatusBuildStateMessageNotification</string>
+			<key>XCObserverTargetKey</key>
+			<string>XCMainBuildResultsModuleGUID</string>
+			<key>XCObserverTriggerKey</key>
+			<string>awakenModuleWithObserver:</string>
+			<key>XCObserverValidationKey</key>
+			<dict>
+				<key>PBXStatusErrorsKey</key>
+				<integer>2</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>XCObserverAutoDisconnectKey</key>
+			<true/>
+			<key>XCObserverDefintionKey</key>
+			<dict>
+				<key>PBXStatusWarningsKey</key>
+				<integer>0</integer>
+			</dict>
+			<key>XCObserverFactoryKey</key>
+			<string>XCPerspectivesSpecificationIdentifier</string>
+			<key>XCObserverGUIDKey</key>
+			<string>XCObserverProjectIdentifier</string>
+			<key>XCObserverNotificationKey</key>
+			<string>PBXStatusBuildStateMessageNotification</string>
+			<key>XCObserverTargetKey</key>
+			<string>XCMainBuildResultsModuleGUID</string>
+			<key>XCObserverTriggerKey</key>
+			<string>awakenModuleWithObserver:</string>
+			<key>XCObserverValidationKey</key>
+			<dict>
+				<key>PBXStatusWarningsKey</key>
+				<integer>2</integer>
+			</dict>
+		</dict>
+		<dict>
+			<key>XCObserverAutoDisconnectKey</key>
+			<true/>
+			<key>XCObserverDefintionKey</key>
+			<dict>
+				<key>PBXStatusAnalyzerResultsKey</key>
+				<integer>0</integer>
+			</dict>
+			<key>XCObserverFactoryKey</key>
+			<string>XCPerspectivesSpecificationIdentifier</string>
+			<key>XCObserverGUIDKey</key>
+			<string>XCObserverProjectIdentifier</string>
+			<key>XCObserverNotificationKey</key>
+			<string>PBXStatusBuildStateMessageNotification</string>
+			<key>XCObserverTargetKey</key>
+			<string>XCMainBuildResultsModuleGUID</string>
+			<key>XCObserverTriggerKey</key>
+			<string>awakenModuleWithObserver:</string>
+			<key>XCObserverValidationKey</key>
+			<dict>
+				<key>PBXStatusAnalyzerResultsKey</key>
+				<integer>2</integer>
+			</dict>
+		</dict>
+	</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>373</real>
+							</array>
+							<key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
+							<array>
+								<string>MainColumn</string>
+							</array>
+						</dict>
+						<key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key>
+						<dict>
+							<key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
+							<array>
+								<string>66DF6BFE01D7DCEA00A80119</string>
+								<string>94E7F9191237565E00A03A11</string>
+								<string>66B8BC570381F53800A8011A</string>
+								<string>94E7F8371237541300A03A11</string>
+								<string>66DF6BFF01D7DCEA00A80119</string>
+								<string>66DF6C3901D7DCEA00A80119</string>
+								<string>66DF6C4501D7DEEE00A80119</string>
+								<string>1C37FBAC04509CD000000102</string>
+								<string>1C37FAAC04509CD000000102</string>
+								<string>1C37FABC05509CD000000102</string>
+							</array>
+							<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
+							<array>
+								<array>
+									<integer>15</integer>
+									<integer>13</integer>
+									<integer>0</integer>
+								</array>
+							</array>
+							<key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
+							<string>{{0, 0}, {373, 917}}</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}, {390, 935}}</string>
+						<key>GroupTreeTableConfiguration</key>
+						<array>
+							<string>MainColumn</string>
+							<real>373</real>
+						</array>
+						<key>RubberWindowFrame</key>
+						<string>63 52 1502 976 0 0 1680 1028 </string>
+					</dict>
+					<key>Module</key>
+					<string>PBXSmartGroupTreeModule</string>
+					<key>Proportion</key>
+					<string>390pt</string>
+				</dict>
+				<dict>
+					<key>Dock</key>
+					<array>
+						<dict>
+							<key>ContentConfiguration</key>
+							<dict>
+								<key>PBXProjectModuleGUID</key>
+								<string>1CE0B20306471E060097A5F4</string>
+								<key>PBXProjectModuleLabel</key>
+								<string>sqMacLocaleCocoa.m</string>
+								<key>PBXSplitModuleInNavigatorKey</key>
+								<dict>
+									<key>Split0</key>
+									<dict>
+										<key>PBXProjectModuleGUID</key>
+										<string>1CE0B20406471E060097A5F4</string>
+										<key>PBXProjectModuleLabel</key>
+										<string>sqMacLocaleCocoa.m</string>
+										<key>_historyCapacity</key>
+										<integer>0</integer>
+										<key>bookmark</key>
+										<string>947DE623123766C500CA9280</string>
+										<key>history</key>
+										<array>
+											<string>944D6258085F474800600D6E</string>
+											<string>94BB001D08A54ECD00181406</string>
+											<string>94E7F76E1237474100A03A11</string>
+											<string>94E7F76F1237474100A03A11</string>
+											<string>94E7F7711237474100A03A11</string>
+											<string>94E7F9281237572100A03A11</string>
+											<string>94E7F9291237572100A03A11</string>
+											<string>94E7F92C1237572100A03A11</string>
+											<string>94E7F92D1237572100A03A11</string>
+											<string>94E7F92F1237572100A03A11</string>
+											<string>94E7F989123759D900A03A11</string>
+											<string>94E7F98A123759D900A03A11</string>
+											<string>94E7FA0112375E5F00A03A11</string>
+											<string>94E7FA2D12375F8900A03A11</string>
+											<string>94E7FAAF123765D000A03A11</string>
+											<string>94E7FAB0123765D000A03A11</string>
+											<string>947DE622123766C500CA9280</string>
+											<string>94E7FAB1123765D000A03A11</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}, {1107, 871}}</string>
+								<key>RubberWindowFrame</key>
+								<string>63 52 1502 976 0 0 1680 1028 </string>
+							</dict>
+							<key>Module</key>
+							<string>PBXNavigatorGroup</string>
+							<key>Proportion</key>
+							<string>871pt</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, 876}, {1107, 59}}</string>
+								<key>RubberWindowFrame</key>
+								<string>63 52 1502 976 0 0 1680 1028 </string>
+							</dict>
+							<key>Module</key>
+							<string>XCDetailModule</string>
+							<key>Proportion</key>
+							<string>59pt</string>
+						</dict>
+					</array>
+					<key>Proportion</key>
+					<string>1107pt</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>947DE613123766A000CA9280</string>
+				<string>1CE0B1FE06471DED0097A5F4</string>
+				<string>947DE614123766A000CA9280</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>
+			<false/>
+			<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>StatusbarIsVisible</key>
+	<true/>
+	<key>TimeStamp</key>
+	<real>305620677.60852802</real>
+	<key>ToolbarConfigUserDefaultsMinorVersion</key>
+	<string>2</string>
+	<key>ToolbarDisplayMode</key>
+	<integer>1</integer>
+	<key>ToolbarIsVisible</key>
+	<true/>
+	<key>ToolbarSizeMode</key>
+	<integer>2</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>9471AF5F1107A072004DD8A7</string>
+		<string>1CD10A99069EF8BA00B06720</string>
+		<string>/Users/johnmci/Documents/Squeak3.8.0/platforms/iOS/plugins/SqueakLocale/SqueakLocale.xcodeproj</string>
+	</array>
+	<key>WindowString</key>
+	<string>63 52 1502 976 0 0 1680 1028 </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}, {879, 255}}</string>
+								<key>RubberWindowFrame</key>
+								<string>281 201 879 795 0 0 1680 1028 </string>
+							</dict>
+							<key>Module</key>
+							<string>PBXNavigatorGroup</string>
+							<key>Proportion</key>
+							<string>255pt</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>1013</integer>
+							</dict>
+							<key>GeometryConfiguration</key>
+							<dict>
+								<key>Frame</key>
+								<string>{{0, 260}, {879, 494}}</string>
+								<key>RubberWindowFrame</key>
+								<string>281 201 879 795 0 0 1680 1028 </string>
+							</dict>
+							<key>Module</key>
+							<string>PBXBuildResultsModule</string>
+							<key>Proportion</key>
+							<string>494pt</string>
+						</dict>
+					</array>
+					<key>Proportion</key>
+					<string>754pt</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>9471AF5F1107A072004DD8A7</string>
+				<string>947DE619123766A000CA9280</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>281 201 879 795 0 0 1680 1028 </string>
+			<key>WindowToolGUID</key>
+			<string>9471AF5F1107A072004DD8A7</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}, {615, 330}}</string>
+											<string>{{615, 0}, {615, 330}}</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}, {1230, 330}}</string>
+											<string>{{0, 330}, {1230, 292}}</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}, {1230, 622}}</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>385</real>
+									</array>
+									<key>Frame</key>
+									<string>{{615, 0}, {615, 330}}</string>
+									<key>RubberWindowFrame</key>
+									<string>446 132 1230 663 0 0 1680 1028 </string>
+								</dict>
+								<key>RubberWindowFrame</key>
+								<string>446 132 1230 663 0 0 1680 1028 </string>
+							</dict>
+							<key>Module</key>
+							<string>PBXDebugSessionModule</string>
+							<key>Proportion</key>
+							<string>622pt</string>
+						</dict>
+					</array>
+					<key>Proportion</key>
+					<string>622pt</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>947DE61A123766A000CA9280</string>
+				<string>1C162984064C10D400B95A72</string>
+				<string>947DE61B123766A000CA9280</string>
+				<string>947DE61C123766A000CA9280</string>
+				<string>947DE61D123766A000CA9280</string>
+				<string>947DE61E123766A000CA9280</string>
+				<string>947DE61F123766A000CA9280</string>
+			</array>
+			<key>ToolbarConfiguration</key>
+			<string>xcode.toolbar.config.debugV3</string>
+			<key>WindowString</key>
+			<string>446 132 1230 663 0 0 1680 1028 </string>
+			<key>WindowToolGUID</key>
+			<string>1CD10A99069EF8BA00B06720</string>
+			<key>WindowToolIsVisible</key>
+			<true/>
+		</dict>
+		<dict>
+			<key>FirstTimeWindowDisplayed</key>
+			<false/>
+			<key>Identifier</key>
+			<string>windowTool.find</string>
+			<key>IsVertical</key>
+			<true/>
+			<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>interp.h</string>
+										<key>StatusBarVisibility</key>
+										<true/>
+									</dict>
+									<key>GeometryConfiguration</key>
+									<dict>
+										<key>Frame</key>
+										<string>{{0, 0}, {791, 294}}</string>
+										<key>RubberWindowFrame</key>
+										<string>629 73 791 674 0 0 1680 1028 </string>
+									</dict>
+									<key>Module</key>
+									<string>PBXNavigatorGroup</string>
+									<key>Proportion</key>
+									<string>791pt</string>
+								</dict>
+							</array>
+							<key>Proportion</key>
+							<string>294pt</string>
+						</dict>
+						<dict>
+							<key>BecomeActive</key>
+							<true/>
+							<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>{{0, 299}, {791, 334}}</string>
+								<key>RubberWindowFrame</key>
+								<string>629 73 791 674 0 0 1680 1028 </string>
+							</dict>
+							<key>Module</key>
+							<string>PBXProjectFindModule</string>
+							<key>Proportion</key>
+							<string>334pt</string>
+						</dict>
+					</array>
+					<key>Proportion</key>
+					<string>633pt</string>
+				</dict>
+			</array>
+			<key>Name</key>
+			<string>Project Find</string>
+			<key>ServiceClasses</key>
+			<array>
+				<string>PBXProjectFindModule</string>
+			</array>
+			<key>StatusbarIsVisible</key>
+			<true/>
+			<key>TableOfContents</key>
+			<array>
+				<string>1C530D57069F1CE1000CFCEE</string>
+				<string>94E7F766123745D200A03A11</string>
+				<string>94E7F767123745D200A03A11</string>
+				<string>1CDD528C0622207200134675</string>
+				<string>1CD0528E0623707200166675</string>
+			</array>
+			<key>WindowString</key>
+			<string>629 73 791 674 0 0 1680 1028 </string>
+			<key>WindowToolGUID</key>
+			<string>1C530D57069F1CE1000CFCEE</string>
+			<key>WindowToolIsVisible</key>
+			<false/>
+		</dict>
+		<dict>
+			<key>FirstTimeWindowDisplayed</key>
+			<false/>
+			<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}, {686, 500}}</string>
+								<key>RubberWindowFrame</key>
+								<string>999 145 686 541 0 0 1680 1028 </string>
+							</dict>
+							<key>Module</key>
+							<string>PBXDebugCLIModule</string>
+							<key>Proportion</key>
+							<string>500pt</string>
+						</dict>
+					</array>
+					<key>Proportion</key>
+					<string>500pt</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>94E7F9A212375A9500A03A11</string>
+				<string>1C78EAAC065D492600B07095</string>
+			</array>
+			<key>ToolbarConfiguration</key>
+			<string>xcode.toolbar.config.consoleV3</string>
+			<key>WindowString</key>
+			<string>999 145 686 541 0 0 1680 1028 </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>FirstTimeWindowDisplayed</key>
+			<false/>
+			<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.09500122070312</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>
+			<true/>
+			<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>FirstTimeWindowDisplayed</key>
+			<false/>
+			<key>Identifier</key>
+			<string>windowTool.breakpoints</string>
+			<key>IsVertical</key>
+			<false/>
+			<key>Layout</key>
+			<array>
+				<dict>
+					<key>Dock</key>
+					<array>
+						<dict>
+							<key>BecomeActive</key>
+							<true/>
+							<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>
+								<false/>
+							</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>
+			<true/>
+			<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>
+			<true/>
+		</dict>
+		<dict>
+			<key>FirstTimeWindowDisplayed</key>
+			<false/>
+			<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>
+			<true/>
+			<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>FirstTimeWindowDisplayed</key>
+			<false/>
+			<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>
+			<false/>
+			<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>
+			<false/>
+			<key>WindowContentMinSize</key>
+			<string>450 300</string>
+			<key>WindowString</key>
+			<string>50 850 472 307 0 0 1440 877</string>
+		</dict>
+		<dict>
+			<key>FirstTimeWindowDisplayed</key>
+			<false/>
+			<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>
+			<false/>
+			<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>
+			<false/>
+		</dict>
+		<dict>
+			<key>Identifier</key>
+			<string>windowTool.refactoring</string>
+			<key>IncludeInToolsMenu</key>
+			<false/>
+			<key>Layout</key>
+			<array>
+				<dict>
+					<key>Dock</key>
+					<array>
+						<dict>
+							<key>BecomeActive</key>
+							<true/>
+							<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>

Added: trunk/platforms/iOS/plugins/SqueakLocale/SqueakLocale.xcodeproj/johnmci.pbxuser
===================================================================
--- trunk/platforms/iOS/plugins/SqueakLocale/SqueakLocale.xcodeproj/johnmci.pbxuser	                        (rev 0)
+++ trunk/platforms/iOS/plugins/SqueakLocale/SqueakLocale.xcodeproj/johnmci.pbxuser	2010-09-08 06:39:12 UTC (rev 2288)
@@ -0,0 +1,933 @@
+// !$*UTF8*$!
+{
+	66B8BC580381F61C00A8011A /* sqConfig.h */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {1058, 815}}";
+			sepNavSelRange = "{0, 0}";
+			sepNavVisRange = "{0, 302}";
+			sepNavVisRect = "{{0, 0}, {673, 397}}";
+		};
+	};
+	66B8BC5A0381F63A00A8011A /* sqPlatformSpecific.h */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {1058, 2210}}";
+			sepNavSelRange = "{1460, 0}";
+			sepNavVisRange = "{0, 2795}";
+			sepNavVisRect = "{{0, 190}, {673, 397}}";
+		};
+	};
+	66B8BC5C0381F66500A8011A /* sq.h */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {1058, 5876}}";
+			sepNavSelRange = "{0, 0}";
+			sepNavVisRange = "{0, 2351}";
+			sepNavVisRect = "{{0, 5935}, {740, 73}}";
+		};
+	};
+	66B8BC5E0381F69100A8011A /* sqVirtualMachine.h */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {1058, 3562}}";
+			sepNavSelRange = "{0, 0}";
+			sepNavVisRange = "{0, 1990}";
+			sepNavVisRect = "{{0, 2585}, {673, 397}}";
+			sepNavWindowFrame = "{{84, 252}, {750, 558}}";
+		};
+	};
+	66DF6BFD01D7DCEA00A80119 /* Project object */ = {
+		activeBuildConfigurationName = Deployment;
+		activeExecutable = 94ABA91E0858D35E00079BE1 /* Squeak */;
+		activeTarget = 94AF34E00846F91100FA5ACB /* SqueakLocalePlugin */;
+		addToTargets = (
+			94AF34E00846F91100FA5ACB /* SqueakLocalePlugin */,
+		);
+		breakpoints = (
+			947906FD0858E5030068B3F8 /* sqMacLocaleCarbon.c:67 */,
+			94BB001C08A54ECA00181406 /* sqMacLocaleCarbon.c:205 */,
+			94E7F7F91237521E00A03A11 /* sqMacLocaleCocoa.m:188 */,
+		);
+		codeSenseManager = 9444E60E06E7B8740063F6CC /* Code sense */;
+		executables = (
+			94ABA91E0858D35E00079BE1 /* Squeak */,
+		);
+		expressions = (
+			buffer,
+		);
+		perUserDictionary = {
+			PBXConfiguration.PBXFileTableDataSource3.PBXExecutablesDataSource = {
+				PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
+				PBXFileTableDataSourceColumnSortingKey = PBXExecutablesDataSource_NameID;
+				PBXFileTableDataSourceColumnWidthsKey = (
+					22,
+					300,
+					377,
+				);
+				PBXFileTableDataSourceColumnsKey = (
+					PBXExecutablesDataSource_ActiveFlagID,
+					PBXExecutablesDataSource_NameID,
+					PBXExecutablesDataSource_CommentsID,
+				);
+			};
+			PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
+				PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
+				PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
+				PBXFileTableDataSourceColumnWidthsKey = (
+					20,
+					868,
+					20,
+					48,
+					43,
+					43,
+					20,
+				);
+				PBXFileTableDataSourceColumnsKey = (
+					PBXFileDataSource_FiletypeID,
+					PBXFileDataSource_Filename_ColumnID,
+					PBXFileDataSource_Built_ColumnID,
+					PBXFileDataSource_ObjectSize_ColumnID,
+					PBXFileDataSource_Errors_ColumnID,
+					PBXFileDataSource_Warnings_ColumnID,
+					PBXFileDataSource_Target_ColumnID,
+				);
+			};
+			PBXConfiguration.PBXFileTableDataSource3.PBXFindDataSource = {
+				PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
+				PBXFileTableDataSourceColumnSortingKey = PBXFindDataSource_LocationID;
+				PBXFileTableDataSourceColumnWidthsKey = (
+					200,
+					120,
+				);
+				PBXFileTableDataSourceColumnsKey = (
+					PBXFindDataSource_MessageID,
+					PBXFindDataSource_LocationID,
+				);
+			};
+			PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = {
+				PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
+				PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
+				PBXFileTableDataSourceColumnWidthsKey = (
+					20,
+					828,
+					60,
+					20,
+					48,
+					43,
+					43,
+				);
+				PBXFileTableDataSourceColumnsKey = (
+					PBXFileDataSource_FiletypeID,
+					PBXFileDataSource_Filename_ColumnID,
+					PBXTargetDataSource_PrimaryAttribute,
+					PBXFileDataSource_Built_ColumnID,
+					PBXFileDataSource_ObjectSize_ColumnID,
+					PBXFileDataSource_Errors_ColumnID,
+					PBXFileDataSource_Warnings_ColumnID,
+				);
+			};
+			PBXPerProjectTemplateStateSaveDate = 305620629;
+			PBXPrepackagedSmartGroups_v2 = (
+				{
+					PBXTransientLocationAtTop = bottom;
+					absolutePathToBundle = "";
+					activationKey = OldTargetSmartGroup;
+					clz = PBXTargetSmartGroup;
+					description = "Displays all targets of the project.";
+					globalID = 1C37FABC04509CD000000102;
+					name = Targets;
+					preferences = {
+						image = Targets;
+					};
+				},
+				{
+					PBXTransientLocationAtTop = bottom;
+					absolutePathToBundle = "";
+					clz = PBXTargetSmartGroup2;
+					description = "Displays all targets of the project as well as nested build phases.";
+					globalID = 1C37FBAC04509CD000000102;
+					name = Targets;
+					preferences = {
+						image = Targets;
+					};
+				},
+				{
+					PBXTransientLocationAtTop = bottom;
+					absolutePathToBundle = "";
+					clz = PBXExecutablesSmartGroup;
+					description = "Displays all executables of the project.";
+					globalID = 1C37FAAC04509CD000000102;
+					name = Executables;
+					preferences = {
+						image = Executable;
+					};
+				},
+				{
+					" PBXTransientLocationAtTop " = bottom;
+					absolutePathToBundle = "";
+					clz = PBXErrorsWarningsSmartGroup;
+					description = "Displays files with errors or warnings.";
+					globalID = 1C08E77C0454961000C914BD;
+					name = "Errors and Warnings";
+					preferences = {
+						fnmatch = "";
+						image = WarningsErrors;
+						recursive = 1;
+						regex = "";
+						root = "<PROJECT>";
+					};
+				},
+				{
+					PBXTransientLocationAtTop = bottom;
+					absolutePathToBundle = "";
+					clz = PBXFilenameSmartGroup;
+					description = "Filters items in a given group (potentially recursively) based on matching the name with the regular expression of the filter.";
+					globalID = 1CC0EA4004350EF90044410B;
+					name = "Implementation Files";
+					preferences = {
+						canSave = 1;
+						fnmatch = "";
+						image = SmartFolder;
+						isLeaf = 0;
+						recursive = 1;
+						regex = "?*\\.[mcMC]";
+						root = "<PROJECT>";
+					};
+				},
+				{
+					PBXTransientLocationAtTop = bottom;
+					absolutePathToBundle = "";
+					clz = PBXFilenameSmartGroup;
+					description = "This group displays Interface Builder NIB Files.";
+					globalID = 1CC0EA4004350EF90041110B;
+					name = "NIB Files";
+					preferences = {
+						canSave = 1;
+						fnmatch = "*.nib";
+						image = SmartFolder;
+						isLeaf = 0;
+						recursive = 1;
+						regex = "";
+						root = "<PROJECT>";
+					};
+				},
+				{
+					PBXTransientLocationAtTop = no;
+					absolutePathToBundle = "";
+					clz = PBXFindSmartGroup;
+					description = "Displays Find Results.";
+					globalID = 1C37FABC05509CD000000102;
+					name = "Find Results";
+					preferences = {
+						image = spyglass;
+					};
+				},
+				{
+					PBXTransientLocationAtTop = no;
+					absolutePathToBundle = "";
+					clz = PBXBookmarksSmartGroup;
+					description = "Displays Project Bookmarks.";
+					globalID = 1C37FABC05539CD112110102;
+					name = Bookmarks;
+					preferences = {
+						image = Bookmarks;
+					};
+				},
+				{
+					PBXTransientLocationAtTop = bottom;
+					absolutePathToBundle = "";
+					clz = XCSCMSmartGroup;
+					description = "Displays files with interesting SCM status.";
+					globalID = E2644B35053B69B200211256;
+					name = SCM;
+					preferences = {
+						image = PBXRepository;
+						isLeaf = 0;
+					};
+				},
+				{
+					PBXTransientLocationAtTop = bottom;
+					absolutePathToBundle = "";
+					clz = PBXSymbolsSmartGroup;
+					description = "Displays all symbols for the project.";
+					globalID = 1C37FABC04509CD000100104;
+					name = "Project Symbols";
+					preferences = {
+						image = ProjectSymbols;
+						isLeaf = 1;
+					};
+				},
+				{
+					PBXTransientLocationAtTop = bottom;
+					absolutePathToBundle = "";
+					clz = PBXFilenameSmartGroup;
+					description = "Filters items in a given group (potentially recursively) based on matching the name with the regular expression of the filter.";
+					globalID = PBXTemplateMarker;
+					name = "Simple Filter SmartGroup";
+					preferences = {
+						canSave = 1;
+						fnmatch = "*.nib";
+						image = SmartFolder;
+						isLeaf = 0;
+						recursive = 1;
+						regex = "";
+						root = "<PROJECT>";
+					};
+				},
+				{
+					PBXTransientLocationAtTop = bottom;
+					absolutePathToBundle = "";
+					clz = PBXFilenameSmartGroup;
+					description = "Filters items in a given group (potentially recursively) based on matching the name with the regular expression of the filter.";
+					globalID = PBXTemplateMarker;
+					name = "Simple Regular Expression SmartGroup";
+					preferences = {
+						canSave = 1;
+						fnmatch = "";
+						image = SmartFolder;
+						isLeaf = 0;
+						recursive = 1;
+						regex = "?*\\.[mcMC]";
+						root = "<PROJECT>";
+					};
+				},
+				{
+					PBXTransientLocationAtTop = bottom;
+					clz = XDDesignSmartGroup;
+					description = "Displays Xdesign models";
+					globalID = 2E4A936305E6979E00701470;
+					name = Design;
+					preferences = {
+						image = Design;
+						isLeaf = 0;
+					};
+				},
+			);
+			PBXWorkspaceContents = (
+				{
+					PBXProjectWorkspaceModule_StateKey_Rev39 = {
+						PBXProjectWorkspaceModule_DataSourceSelectionKey_Rev6 = {
+							BoundsStr = "{{0, 0}, {469, 441}}";
+							Rows = (
+								9,
+							);
+							VisibleRectStr = "{{0, 0}, {469, 441}}";
+						};
+						PBXProjectWorkspaceModule_EditorOpen = false;
+						PBXProjectWorkspaceModule_EmbeddedNavigatorGroup = {
+							PBXSplitModuleInNavigatorKey = {
+								SplitCount = 1;
+							};
+						};
+						PBXProjectWorkspaceModule_GeometryKey_Rev15 = {
+							PBXProjectWorkspaceModule_SGTM_Geometry = {
+								_collapsingFrameDimension = 0;
+								_indexOfCollapsedView = 0;
+								_percentageOfCollapsedView = 0;
+								sizes = (
+									"{{0, 0}, {182, 458}}",
+									"{{182, 0}, {484, 458}}",
+								);
+							};
+						};
+						PBXProjectWorkspaceModule_OldDetailFrame = "{{0, 0}, {484, 458}}";
+						PBXProjectWorkspaceModule_OldEditorFrame = "{{0, 0}, {750, 480}}";
+						PBXProjectWorkspaceModule_OldSuperviewFrame = "{{182, 0}, {484, 458}}";
+						PBXProjectWorkspaceModule_SGTM = {
+							PBXBottomSmartGroupGIDs = (
+								1C37FBAC04509CD000000102,
+								1C37FAAC04509CD000000102,
+								1C08E77C0454961000C914BD,
+								1CC0EA4004350EF90044410B,
+								1CC0EA4004350EF90041110B,
+								1C37FABC05509CD000000102,
+								1C37FABC05539CD112110102,
+								E2644B35053B69B200211256,
+								1C37FABC04509CD000100104,
+							);
+							PBXSmartGroupTreeModuleColumnData = {
+								PBXSmartGroupTreeModuleColumnWidthsKey = (
+									165,
+								);
+								PBXSmartGroupTreeModuleColumnsKey_v4 = (
+									MainColumn,
+								);
+							};
+							PBXSmartGroupTreeModuleOutlineStateKey_v7 = {
+								PBXSmartGroupTreeModuleOutlineStateExpansionKey = (
+									66DF6BFE01D7DCEA00A80119,
+									66B8BC570381F53800A8011A,
+									66DF6BFF01D7DCEA00A80119,
+								);
+								PBXSmartGroupTreeModuleOutlineStateSelectionKey = (
+									(
+										0,
+									),
+								);
+								PBXSmartGroupTreeModuleOutlineStateVisibleRectKey = "{{0, 0}, {165, 440}}";
+							};
+							PBXTopSmartGroupGIDs = (
+							);
+						};
+					};
+				},
+			);
+			"PBXWorkspaceContents:PBXConfiguration.PBXModule.PBXBuildResultsModule" = {
+			};
+			"PBXWorkspaceContents:PBXConfiguration.PBXModule.PBXDebugCLIModule" = {
+			};
+			"PBXWorkspaceContents:PBXConfiguration.PBXModule.PBXNavigatorGroup" = {
+				PBXSplitModuleInNavigatorKey = {
+					SplitCount = 1;
+				};
+			};
+			"PBXWorkspaceContents:PBXConfiguration.PBXModule.PBXProjectWorkspaceModule" = {
+				PBXProjectWorkspaceModule_StateKey_Rev39 = {
+					PBXProjectWorkspaceModule_DataSourceSelectionKey_Rev6 = {
+						BoundsStr = "{{0, 0}, {469, 441}}";
+						Rows = (
+							0,
+						);
+						VisibleRectStr = "{{0, 0}, {469, 441}}";
+					};
+					PBXProjectWorkspaceModule_EditorOpen = false;
+					PBXProjectWorkspaceModule_EmbeddedNavigatorGroup = {
+						PBXSplitModuleInNavigatorKey = {
+							SplitCount = 1;
+						};
+					};
+					PBXProjectWorkspaceModule_GeometryKey_Rev15 = {
+						PBXProjectWorkspaceModule_SGTM_Geometry = {
+							_collapsingFrameDimension = 0;
+							_indexOfCollapsedView = 0;
+							_percentageOfCollapsedView = 0;
+							sizes = (
+								"{{0, 0}, {182, 458}}",
+								"{{182, 0}, {484, 458}}",
+							);
+						};
+					};
+					PBXProjectWorkspaceModule_OldDetailFrame = "{{0, 0}, {484, 458}}";
+					PBXProjectWorkspaceModule_OldEditorFrame = "{{0, 0}, {750, 480}}";
+					PBXProjectWorkspaceModule_OldSuperviewFrame = "{{182, 0}, {484, 458}}";
+					PBXProjectWorkspaceModule_SGTM = {
+						PBXBottomSmartGroupGIDs = (
+							1C37FBAC04509CD000000102,
+							1C37FAAC04509CD000000102,
+							1C08E77C0454961000C914BD,
+							1CC0EA4004350EF90044410B,
+							1CC0EA4004350EF90041110B,
+							1C37FABC05509CD000000102,
+							1C37FABC05539CD112110102,
+							E2644B35053B69B200211256,
+							1C37FABC04509CD000100104,
+						);
+						PBXSmartGroupTreeModuleColumnData = {
+							PBXSmartGroupTreeModuleColumnWidthsKey = (
+								165,
+							);
+							PBXSmartGroupTreeModuleColumnsKey_v4 = (
+								MainColumn,
+							);
+						};
+						PBXSmartGroupTreeModuleOutlineStateKey_v7 = {
+							PBXSmartGroupTreeModuleOutlineStateExpansionKey = (
+							);
+							PBXSmartGroupTreeModuleOutlineStateSelectionKey = (
+								(
+									0,
+								),
+							);
+							PBXSmartGroupTreeModuleOutlineStateVisibleRectKey = "{{0, 0}, {165, 440}}";
+						};
+						PBXTopSmartGroupGIDs = (
+						);
+					};
+				};
+			};
+			PBXWorkspaceGeometries = (
+				{
+					Frame = "{{0, 0}, {666, 458}}";
+					PBXProjectWorkspaceModule_GeometryKey_Rev15 = {
+					};
+					RubberWindowFrame = "212 190 666 500 0 0 1024 746 ";
+				},
+			);
+			"PBXWorkspaceGeometries:PBXConfiguration.PBXModule.PBXBuildResultsModule" = {
+				Frame = "{{0, 0}, {480, 217}}";
+				PBXModuleWindowStatusBarHidden = YES;
+				RubberWindowFrame = "272 407 480 238 0 0 1024 746 ";
+			};
+			"PBXWorkspaceGeometries:PBXConfiguration.PBXModule.PBXDebugCLIModule" = {
+				Frame = "{{0, 0}, {400, 201}}";
+				PBXModuleWindowStatusBarHidden = YES;
+				RubberWindowFrame = "50 718 400 222 0 0 1024 746 ";
+			};
+			"PBXWorkspaceGeometries:PBXConfiguration.PBXModule.PBXNavigatorGroup" = {
+				Frame = "{{0, 0}, {750, 481}}";
+				PBXModuleWindowStatusBarHidden = YES;
+				RubberWindowFrame = "61 197 750 502 0 0 1024 746 ";
+			};
+			"PBXWorkspaceGeometries:PBXConfiguration.PBXModule.PBXProjectWorkspaceModule" = {
+				Frame = "{{0, 0}, {666, 458}}";
+				PBXProjectWorkspaceModule_GeometryKey_Rev15 = {
+				};
+				RubberWindowFrame = "212 190 666 500 0 0 1024 746 ";
+			};
+			PBXWorkspaceStateSaveDate = 305620629;
+		};
+		perUserProjectItems = {
+			944D6258085F474800600D6E /* PBXTextBookmark */ = 944D6258085F474800600D6E /* PBXTextBookmark */;
+			947DE622123766C500CA9280 /* PBXTextBookmark */ = 947DE622123766C500CA9280 /* PBXTextBookmark */;
+			947DE623123766C500CA9280 /* PBXTextBookmark */ = 947DE623123766C500CA9280 /* PBXTextBookmark */;
+			94BB001D08A54ECD00181406 /* PBXTextBookmark */ = 94BB001D08A54ECD00181406 /* PBXTextBookmark */;
+			94E7F76E1237474100A03A11 /* PlistBookmark */ = 94E7F76E1237474100A03A11 /* PlistBookmark */;
+			94E7F76F1237474100A03A11 /* PBXTextBookmark */ = 94E7F76F1237474100A03A11 /* PBXTextBookmark */;
+			94E7F7711237474100A03A11 /* PBXTextBookmark */ = 94E7F7711237474100A03A11 /* PBXTextBookmark */;
+			94E7F9281237572100A03A11 /* PBXTextBookmark */ = 94E7F9281237572100A03A11 /* PBXTextBookmark */;
+			94E7F9291237572100A03A11 /* PBXTextBookmark */ = 94E7F9291237572100A03A11 /* PBXTextBookmark */;
+			94E7F92C1237572100A03A11 /* PBXTextBookmark */ = 94E7F92C1237572100A03A11 /* PBXTextBookmark */;
+			94E7F92D1237572100A03A11 /* PBXTextBookmark */ = 94E7F92D1237572100A03A11 /* PBXTextBookmark */;
+			94E7F92F1237572100A03A11 /* PBXTextBookmark */ = 94E7F92F1237572100A03A11 /* PBXTextBookmark */;
+			94E7F989123759D900A03A11 /* PBXTextBookmark */ = 94E7F989123759D900A03A11 /* PBXTextBookmark */;
+			94E7F98A123759D900A03A11 /* PBXTextBookmark */ = 94E7F98A123759D900A03A11 /* PBXTextBookmark */;
+			94E7FA0112375E5F00A03A11 /* PBXTextBookmark */ = 94E7FA0112375E5F00A03A11 /* PBXTextBookmark */;
+			94E7FA2D12375F8900A03A11 /* PBXTextBookmark */ = 94E7FA2D12375F8900A03A11 /* PBXTextBookmark */;
+			94E7FAAF123765D000A03A11 /* PBXTextBookmark */ = 94E7FAAF123765D000A03A11 /* PBXTextBookmark */;
+			94E7FAB0123765D000A03A11 /* PBXTextBookmark */ = 94E7FAB0123765D000A03A11 /* PBXTextBookmark */;
+			94E7FAB1123765D000A03A11 /* PBXTextBookmark */ = 94E7FAB1123765D000A03A11 /* PBXTextBookmark */;
+		};
+		sourceControlManager = 9444E60D06E7B8740063F6CC /* Source Control */;
+		userBuildSettings = {
+		};
+	};
+	94405843085E5A7A004495D0 /* InfoPlist.strings */ = {
+		isa = PBXFileReference;
+		lastKnownFileType = text.plist.strings;
+		name = InfoPlist.strings;
+		path = /Users/johnmci/Documents/SqueakLocale/build/LocalePlugin.bundle/Contents/Resources/English.lproj/InfoPlist.strings;
+		sourceTree = "<absolute>";
+	};
+	9444E60D06E7B8740063F6CC /* Source Control */ = {
+		isa = PBXSourceControlManager;
+		fallbackIsa = XCSourceControlManager;
+		isSCMEnabled = 0;
+		scmConfiguration = {
+			repositoryNamesForRoots = {
+				"" = "";
+			};
+		};
+		scmType = scm.cvs;
+	};
+	9444E60E06E7B8740063F6CC /* Code sense */ = {
+		isa = PBXCodeSenseManager;
+		indexTemplatePath = "";
+	};
+	944D6258085F474800600D6E /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 94405843085E5A7A004495D0 /* InfoPlist.strings */;
+		name = "InfoPlist.strings: 1";
+		rLen = 0;
+		rLoc = 0;
+		rType = 0;
+		vrLen = 263;
+		vrLoc = 0;
+	};
+	947906FD0858E5030068B3F8 /* sqMacLocaleCarbon.c:67 */ = {
+		isa = PBXFileBreakpoint;
+		actions = (
+		);
+		breakpointStyle = 0;
+		continueAfterActions = 0;
+		countType = 0;
+		delayBeforeContinue = 0;
+		fileReference = 94ABA89B0858C5FA00079BE1 /* sqMacLocaleCarbon.c */;
+		functionName = "sqLocMeasurementMetric()";
+		hitCount = 0;
+		ignoreCount = 0;
+		lineNumber = 67;
+		modificationTime = 305620382.070979;
+		originalNumberOfMultipleMatches = 1;
+		state = 0;
+	};
+	947DE622123766C500CA9280 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 94ABA8920858C40D00079BE1 /* sqMemoryAccess.h */;
+		name = "sqMemoryAccess.h: 5";
+		rLen = 0;
+		rLoc = 145;
+		rType = 0;
+		vrLen = 1759;
+		vrLoc = 0;
+	};
+	947DE623123766C500CA9280 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 94E7F6C6123740F900A03A11 /* sqMacLocaleCocoa.m */;
+		name = "sqMacLocaleCocoa.m: 156";
+		rLen = 5;
+		rLoc = 6116;
+		rType = 0;
+		vrLen = 2209;
+		vrLoc = 4985;
+	};
+	94ABA8870858C2CB00079BE1 /* LocalePlugin.c */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {1405, 4888}}";
+			sepNavSelRange = "{7273, 0}";
+			sepNavVisRange = "{6380, 1693}";
+			sepNavVisRect = "{{0, 1920}, {670, 660}}";
+			sepNavWindowFrame = "{{153, 28}, {962, 719}}";
+		};
+	};
+	94ABA8900858C3F900079BE1 /* LocalePlugin.h */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {1058, 1222}}";
+			sepNavSelRange = "{1369, 0}";
+			sepNavVisRange = "{878, 2289}";
+			sepNavVisRect = "{{0, 0}, {400, 654}}";
+		};
+	};
+	94ABA8920858C40D00079BE1 /* sqMemoryAccess.h */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {1058, 2509}}";
+			sepNavSelRange = "{145, 0}";
+			sepNavVisRange = "{0, 1759}";
+			sepNavWindowFrame = "{{38, 28}, {1206, 974}}";
+		};
+	};
+	94ABA89B0858C5FA00079BE1 /* sqMacLocaleCarbon.c */ = {
+		isa = PBXFileReference;
+		fileEncoding = 4;
+		lastKnownFileType = sourcecode.c.c;
+		name = sqMacLocaleCarbon.c;
+		path = /Users/johnmci/Documents/Squeak3.8.0/platforms/iOS/plugins/SqueakLocale/sqMacLocaleCarbon.c;
+		sourceTree = "<absolute>";
+	};
+	94ABA91E0858D35E00079BE1 /* Squeak */ = {
+		isa = PBXExecutable;
+		activeArgIndices = (
+		);
+		argumentStrings = (
+		);
+		autoAttachOnCrash = 1;
+		breakpointsEnabled = 1;
+		configStateDict = {
+			"PBXLSLaunchAction-0" = {
+				PBXLSLaunchAction = 0;
+				PBXLSLaunchStartAction = 1;
+				PBXLSLaunchStdioStyle = 2;
+				PBXLSLaunchStyle = 0;
+				class = PBXLSRunLaunchConfig;
+				commandLineArgs = (
+				);
+				displayName = "Executable Runner";
+				environment = {
+				};
+				identifier = com.apple.Xcode.launch.runConfig;
+				remoteHostInfo = "";
+				startActionInfo = "";
+			};
+		};
+		customDataFormattersEnabled = 1;
+		dataTipCustomDataFormattersEnabled = 1;
+		dataTipShowTypeColumn = 1;
+		dataTipSortType = 0;
+		debuggerPlugin = GDBDebugging;
+		disassemblyDisplayState = 0;
+		dylibVariantSuffix = "";
+		enableDebugStr = 1;
+		environmentEntries = (
+		);
+		executableSystemSymbolLevel = 0;
+		executableUserSymbolLevel = 0;
+		launchableReference = 94ABA91F0858D35E00079BE1 /* Squeak.app */;
+		libgmallocEnabled = 0;
+		name = Squeak;
+		savedGlobals = {
+		};
+		showTypeColumn = 0;
+		sourceDirectories = (
+		);
+		variableFormatDictionary = {
+		};
+	};
+	94ABA91F0858D35E00079BE1 /* Squeak.app */ = {
+		isa = PBXFileReference;
+		explicitFileType = wrapper.application;
+		name = Squeak.app;
+		path = ../../vm/build/Debug/Squeak.app;
+		sourceTree = SOURCE_ROOT;
+	};
+	94AF34E00846F91100FA5ACB /* SqueakLocalePlugin */ = {
+		activeExec = 0;
+	};
+	94AF34F10846F91100FA5ACB /* Info-SqueakLocalePlugin__Upgraded_.plist */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {686, 654}}";
+			sepNavSelRange = "{823, 0}";
+			sepNavVisRect = "{{0, 0}, {400, 654}}";
+			sepNavWindowFrame = "{{84, 91}, {962, 719}}";
+		};
+	};
+	94AF35000846F98600FA5ACB /* config.h */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {1058, 2275}}";
+			sepNavSelRange = "{0, 0}";
+			sepNavVisRange = "{0, 1970}";
+			sepNavVisRect = "{{0, 0}, {673, 397}}";
+		};
+	};
+	94AF35040846F9AB00FA5ACB /* interp.h */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {742, 637}}";
+			sepNavSelRange = "{396, 20}";
+			sepNavVisRange = "{0, 586}";
+			sepNavVisRect = "{{0, 0}, {673, 397}}";
+			sepNavWindowFrame = "{{61, 7}, {1206, 974}}";
+		};
+	};
+	94BB001C08A54ECA00181406 /* sqMacLocaleCarbon.c:205 */ = {
+		isa = PBXFileBreakpoint;
+		actions = (
+		);
+		breakpointStyle = 0;
+		continueAfterActions = 0;
+		countType = 0;
+		delayBeforeContinue = 0;
+		fileReference = 94ABA89B0858C5FA00079BE1 /* sqMacLocaleCarbon.c */;
+		functionName = "getCountryOrLanguage()";
+		hitCount = 0;
+		ignoreCount = 0;
+		lineNumber = 205;
+		modificationTime = 305620382.071057;
+		originalNumberOfMultipleMatches = 1;
+		state = 0;
+	};
+	94BB001D08A54ECD00181406 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 94BBFE8D08A46E3D00181406 /* sqMacLocaleOS9.c */;
+		name = smRegionCode;
+		rLen = 12;
+		rLoc = 737;
+		rType = 0;
+		vrLen = 1065;
+		vrLoc = 0;
+	};
+	94BBFE8D08A46E3D00181406 /* sqMacLocaleOS9.c */ = {
+		isa = PBXFileReference;
+		lastKnownFileType = sourcecode.c.c;
+		name = sqMacLocaleOS9.c;
+		path = /Users/johnmci/Documents/SqueakLocale/sqMacLocaleOS9.c;
+		sourceTree = "<absolute>";
+	};
+	94E7F6C5123740F900A03A11 /* sqMacLocaleCocoa.h */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {1058, 815}}";
+			sepNavSelRange = "{1727, 14}";
+			sepNavVisRange = "{0, 1741}";
+			sepNavWindowFrame = "{{61, 7}, {1206, 974}}";
+		};
+	};
+	94E7F6C6123740F900A03A11 /* sqMacLocaleCocoa.m */ = {
+		uiCtxt = {
+			sepNavIntBoundsRect = "{{0, 0}, {1058, 3380}}";
+			sepNavSelRange = "{6116, 5}";
+			sepNavVisRange = "{4985, 2209}";
+			sepNavWindowFrame = "{{38, 28}, {1206, 974}}";
+		};
+	};
+	94E7F76E1237474100A03A11 /* PlistBookmark */ = {
+		isa = PlistBookmark;
+		fRef = 94AF34F10846F91100FA5ACB /* Info-SqueakLocalePlugin__Upgraded_.plist */;
+		fallbackIsa = PBXBookmark;
+		isK = 0;
+		kPath = (
+			CFBundleIconFile,
+		);
+		name = "/Users/johnmci/Documents/Squeak3.8.0/platforms/iOS/plugins/SqueakLocale/Info-SqueakLocalePlugin__Upgraded_.plist";
+		rLen = 0;
+		rLoc = 9223372036854775808;
+	};
+	94E7F76F1237474100A03A11 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 94E7F7701237474100A03A11 /* sqMacLocaleCarbon.h */;
+		name = "sqMacLocaleCarbon.h: 9";
+		rLen = 6;
+		rLoc = 107;
+		rType = 0;
+		vrLen = 189;
+		vrLoc = 0;
+	};
+	94E7F7701237474100A03A11 /* sqMacLocaleCarbon.h */ = {
+		isa = PBXFileReference;
+		lastKnownFileType = sourcecode.c.h;
+		name = sqMacLocaleCarbon.h;
+		path = /Users/johnmci/Documents/SqueakLocale/sqMacLocaleCarbon.h;
+		sourceTree = "<absolute>";
+	};
+	94E7F7711237474100A03A11 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 94E7F7721237474100A03A11 /* sqMacLocaleCarbon.c */;
+		name = "sqMacLocaleCarbon.c: 3";
+		rLen = 12;
+		rLoc = 31;
+		rType = 0;
+		vrLen = 1756;
+		vrLoc = 0;
+	};
+	94E7F7721237474100A03A11 /* sqMacLocaleCarbon.c */ = {
+		isa = PBXFileReference;
+		lastKnownFileType = sourcecode.c.c;
+		name = sqMacLocaleCarbon.c;
+		path = /Users/johnmci/Documents/SqueakLocale/sqMacLocaleCarbon.c;
+		sourceTree = "<absolute>";
+	};
+	94E7F7F91237521E00A03A11 /* sqMacLocaleCocoa.m:188 */ = {
+		isa = PBXFileBreakpoint;
+		actions = (
+		);
+		breakpointStyle = 0;
+		continueAfterActions = 0;
+		countType = 0;
+		delayBeforeContinue = 0;
+		fileReference = 94E7F6C6123740F900A03A11 /* sqMacLocaleCocoa.m */;
+		hitCount = 0;
+		ignoreCount = 0;
+		lineNumber = 188;
+		location = LocalePlugin;
+		modificationTime = 305620382.071103;
+		originalNumberOfMultipleMatches = 1;
+		state = 1;
+	};
+	94E7F9281237572100A03A11 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 66B8BC5C0381F66500A8011A /* sq.h */;
+		name = "sq.h: 1";
+		rLen = 0;
+		rLoc = 0;
+		rType = 0;
+		vrLen = 2351;
+		vrLoc = 0;
+	};
+	94E7F9291237572100A03A11 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 66B8BC5E0381F69100A8011A /* sqVirtualMachine.h */;
+		name = "sqVirtualMachine.h: 1";
+		rLen = 0;
+		rLoc = 0;
+		rType = 0;
+		vrLen = 1990;
+		vrLoc = 0;
+	};
+	94E7F92C1237572100A03A11 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 94AF35040846F9AB00FA5ACB /* interp.h */;
+		name = "interp.h: 12";
+		rLen = 1;
+		rLoc = 317;
+		rType = 0;
+		vrLen = 1522;
+		vrLoc = 0;
+	};
+	94E7F92D1237572100A03A11 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 66B8BC580381F61C00A8011A /* sqConfig.h */;
+		name = "sqConfig.h: 1";
+		rLen = 0;
+		rLoc = 0;
+		rType = 0;
+		vrLen = 302;
+		vrLoc = 0;
+	};
+	94E7F92F1237572100A03A11 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 94E7F6C5123740F900A03A11 /* sqMacLocaleCocoa.h */;
+		name = "sqMacLocaleCocoa.h: 39";
+		rLen = 14;
+		rLoc = 1727;
+		rType = 0;
+		vrLen = 1741;
+		vrLoc = 0;
+	};
+	94E7F989123759D900A03A11 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 94ABA8900858C3F900079BE1 /* LocalePlugin.h */;
+		name = "LocalePlugin.h: 45";
+		rLen = 0;
+		rLoc = 1369;
+		rType = 0;
+		vrLen = 2289;
+		vrLoc = 878;
+	};
+	94E7F98A123759D900A03A11 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 94E7F98B123759D900A03A11 /* sqUnixLocale.c */;
+		name = "sqUnixLocale.c: 74";
+		rLen = 21;
+		rLoc = 1811;
+		rType = 0;
+		vrLen = 1507;
+		vrLoc = 606;
+	};
+	94E7F98B123759D900A03A11 /* sqUnixLocale.c */ = {
+		isa = PBXFileReference;
+		lastKnownFileType = sourcecode.c.c;
+		name = sqUnixLocale.c;
+		path = "/Volumes/330GB Photos/Cog/platforms/unix/plugins/LocalePlugin/sqUnixLocale.c";
+		sourceTree = "<absolute>";
+	};
+	94E7FA0112375E5F00A03A11 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 94E7FA0212375E5F00A03A11 /* sqSqueakOSXApplication+clipboard.m */;
+		name = "sqSqueakOSXApplication+clipboard.m: 76";
+		rLen = 0;
+		rLoc = 3258;
+		rType = 0;
+		vrLen = 2662;
+		vrLoc = 945;
+	};
+	94E7FA0212375E5F00A03A11 /* sqSqueakOSXApplication+clipboard.m */ = {
+		isa = PBXFileReference;
+		lastKnownFileType = sourcecode.c.objc;
+		name = "sqSqueakOSXApplication+clipboard.m";
+		path = "/Users/johnmci/Documents/Squeak3.8.0/platforms/iOS/vm/OSX/sqSqueakOSXApplication+clipboard.m";
+		sourceTree = "<absolute>";
+	};
+	94E7FA2D12375F8900A03A11 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 94ABA8870858C2CB00079BE1 /* LocalePlugin.c */;
+		name = "LocalePlugin.c: 265";
+		rLen = 0;
+		rLoc = 7273;
+		rType = 0;
+		vrLen = 1693;
+		vrLoc = 6380;
+	};
+	94E7FAAF123765D000A03A11 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 66B8BC5A0381F63A00A8011A /* sqPlatformSpecific.h */;
+		name = "sqPlatformSpecific.h: 31";
+		rLen = 0;
+		rLoc = 1460;
+		rType = 0;
+		vrLen = 2795;
+		vrLoc = 0;
+	};
+	94E7FAB0123765D000A03A11 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 94AF35000846F98600FA5ACB /* config.h */;
+		name = "config.h: 1";
+		rLen = 0;
+		rLoc = 0;
+		rType = 0;
+		vrLen = 1970;
+		vrLoc = 0;
+	};
+	94E7FAB1123765D000A03A11 /* PBXTextBookmark */ = {
+		isa = PBXTextBookmark;
+		fRef = 94E7F6C6123740F900A03A11 /* sqMacLocaleCocoa.m */;
+		name = "sqMacLocaleCocoa.m: 156";
+		rLen = 5;
+		rLoc = 6116;
+		rType = 0;
+		vrLen = 2117;
+		vrLoc = 5031;
+	};
+}

Added: trunk/platforms/iOS/plugins/SqueakLocale/SqueakLocale.xcodeproj/project.pbxproj
===================================================================
--- trunk/platforms/iOS/plugins/SqueakLocale/SqueakLocale.xcodeproj/project.pbxproj	                        (rev 0)
+++ trunk/platforms/iOS/plugins/SqueakLocale/SqueakLocale.xcodeproj/project.pbxproj	2010-09-08 06:39:12 UTC (rev 2288)
@@ -0,0 +1,318 @@
+// !$*UTF8*$!
+{
+	archiveVersion = 1;
+	classes = {
+	};
+	objectVersion = 46;
+	objects = {
+
+/* Begin PBXBuildFile section */
+		94ABA8880858C2CB00079BE1 /* LocalePlugin.c in Sources */ = {isa = PBXBuildFile; fileRef = 94ABA8870858C2CB00079BE1 /* LocalePlugin.c */; };
+		94ABA8910858C3F900079BE1 /* LocalePlugin.h in Headers */ = {isa = PBXBuildFile; fileRef = 94ABA8900858C3F900079BE1 /* LocalePlugin.h */; };
+		94ABA8930858C40D00079BE1 /* sqMemoryAccess.h in Headers */ = {isa = PBXBuildFile; fileRef = 94ABA8920858C40D00079BE1 /* sqMemoryAccess.h */; };
+		94AF34E20846F91100FA5ACB /* sqConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = 66B8BC580381F61C00A8011A /* sqConfig.h */; };
+		94AF34E30846F91100FA5ACB /* sqPlatformSpecific.h in Headers */ = {isa = PBXBuildFile; fileRef = 66B8BC5A0381F63A00A8011A /* sqPlatformSpecific.h */; };
+		94AF34E40846F91100FA5ACB /* sq.h in Headers */ = {isa = PBXBuildFile; fileRef = 66B8BC5C0381F66500A8011A /* sq.h */; };
+		94AF34E50846F91100FA5ACB /* sqVirtualMachine.h in Headers */ = {isa = PBXBuildFile; fileRef = 66B8BC5E0381F69100A8011A /* sqVirtualMachine.h */; };
+		94AF34E80846F91100FA5ACB /* SqueakPlugin.icns in Resources */ = {isa = PBXBuildFile; fileRef = 66C6C8E501DB1EC300A80109 /* SqueakPlugin.icns */; };
+		94AF35010846F98600FA5ACB /* config.h in Headers */ = {isa = PBXBuildFile; fileRef = 94AF35000846F98600FA5ACB /* config.h */; };
+		94AF35050846F9AB00FA5ACB /* interp.h in Headers */ = {isa = PBXBuildFile; fileRef = 94AF35040846F9AB00FA5ACB /* interp.h */; };
+		94E7F6C7123740F900A03A11 /* sqMacLocaleCocoa.h in Headers */ = {isa = PBXBuildFile; fileRef = 94E7F6C5123740F900A03A11 /* sqMacLocaleCocoa.h */; };
+		94E7F6C8123740F900A03A11 /* sqMacLocaleCocoa.m in Sources */ = {isa = PBXBuildFile; fileRef = 94E7F6C6123740F900A03A11 /* sqMacLocaleCocoa.m */; };
+		94E7F9051237550300A03A11 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 94E7F9041237550300A03A11 /* Cocoa.framework */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXBuildRule section */
+		94AF34F70846F94F00FA5ACB /* PBXBuildRule */ = {
+			isa = PBXBuildRule;
+			compilerSpec = com.apple.compilers.gcc.3_3;
+			fileType = sourcecode.c;
+			isEditable = 1;
+			outputFiles = (
+			);
+		};
+/* End PBXBuildRule section */
+
+/* Begin PBXFileReference section */
+		66B8BC580381F61C00A8011A /* sqConfig.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = sqConfig.h; sourceTree = "<group>"; };
+		66B8BC5A0381F63A00A8011A /* sqPlatformSpecific.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = sqPlatformSpecific.h; sourceTree = "<group>"; };
+		66B8BC5C0381F66500A8011A /* sq.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = sq.h; sourceTree = "<group>"; };
+		66B8BC5E0381F69100A8011A /* sqVirtualMachine.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = sqVirtualMachine.h; sourceTree = "<group>"; };
+		66C6C8E501DB1EC300A80109 /* SqueakPlugin.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; name = SqueakPlugin.icns; path = ../../vm/OSX/SqueakPlugin.icns; sourceTree = "<group>"; };
+		94ABA8870858C2CB00079BE1 /* LocalePlugin.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = LocalePlugin.c; sourceTree = "<group>"; };
+		94ABA8900858C3F900079BE1 /* LocalePlugin.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = LocalePlugin.h; path = ../../../../../Cross/plugins/LocalePlugin/LocalePlugin.h; sourceTree = "<group>"; };
+		94ABA8920858C40D00079BE1 /* sqMemoryAccess.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = sqMemoryAccess.h; sourceTree = "<group>"; };
+		94AF34F10846F91100FA5ACB /* Info-SqueakLocalePlugin__Upgraded_.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Info-SqueakLocalePlugin__Upgraded_.plist"; sourceTree = "<group>"; };
+		94AF34F20846F91100FA5ACB /* LocalePlugin.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = LocalePlugin.bundle; sourceTree = BUILT_PRODUCTS_DIR; };
+		94AF35000846F98600FA5ACB /* config.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = config.h; sourceTree = "<group>"; };
+		94AF35040846F9AB00FA5ACB /* interp.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = interp.h; path = ../src/vm/interp.h; sourceTree = "<group>"; };
+		94E7F6C5123740F900A03A11 /* sqMacLocaleCocoa.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sqMacLocaleCocoa.h; sourceTree = "<group>"; };
+		94E7F6C6123740F900A03A11 /* sqMacLocaleCocoa.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = sqMacLocaleCocoa.m; sourceTree = "<group>"; };
+		94E7F9041237550300A03A11 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+		94AF34EE0846F91100FA5ACB /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				94E7F9051237550300A03A11 /* Cocoa.framework in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+		66B8BC570381F53800A8011A /* iPhone */ = {
+			isa = PBXGroup;
+			children = (
+				94AF35040846F9AB00FA5ACB /* interp.h */,
+				94AF35000846F98600FA5ACB /* config.h */,
+				66B8BC580381F61C00A8011A /* sqConfig.h */,
+				66B8BC5A0381F63A00A8011A /* sqPlatformSpecific.h */,
+			);
+			name = iPhone;
+			path = ../../vm/iPhone;
+			sourceTree = SOURCE_ROOT;
+		};
+		66DF6BFE01D7DCEA00A80119 = {
+			isa = PBXGroup;
+			children = (
+				94E7F9191237565E00A03A11 /* vm */,
+				66B8BC570381F53800A8011A /* iPhone */,
+				94E7F8371237541300A03A11 /* LocalePlugin */,
+				66DF6BFF01D7DCEA00A80119 /* Sources */,
+				66DF6C3901D7DCEA00A80119 /* resources */,
+				66DF6C4501D7DEEE00A80119 /* Products */,
+				94AF34F10846F91100FA5ACB /* Info-SqueakLocalePlugin__Upgraded_.plist */,
+				94E7F9041237550300A03A11 /* Cocoa.framework */,
+			);
+			sourceTree = "<group>";
+		};
+		66DF6BFF01D7DCEA00A80119 /* Sources */ = {
+			isa = PBXGroup;
+			children = (
+				94E7F6C5123740F900A03A11 /* sqMacLocaleCocoa.h */,
+				94E7F6C6123740F900A03A11 /* sqMacLocaleCocoa.m */,
+			);
+			name = Sources;
+			sourceTree = "<group>";
+		};
+		66DF6C3901D7DCEA00A80119 /* resources */ = {
+			isa = PBXGroup;
+			children = (
+				66C6C8E501DB1EC300A80109 /* SqueakPlugin.icns */,
+			);
+			name = resources;
+			sourceTree = "<group>";
+		};
+		66DF6C4501D7DEEE00A80119 /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				94AF34F20846F91100FA5ACB /* LocalePlugin.bundle */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		94E7F8371237541300A03A11 /* LocalePlugin */ = {
+			isa = PBXGroup;
+			children = (
+				94ABA8900858C3F900079BE1 /* LocalePlugin.h */,
+				94ABA8870858C2CB00079BE1 /* LocalePlugin.c */,
+			);
+			name = LocalePlugin;
+			path = ../../vm/src/plugins/LocalePlugin;
+			sourceTree = SOURCE_ROOT;
+		};
+		94E7F9191237565E00A03A11 /* vm */ = {
+			isa = PBXGroup;
+			children = (
+				66B8BC5C0381F66500A8011A /* sq.h */,
+				66B8BC5E0381F69100A8011A /* sqVirtualMachine.h */,
+				94ABA8920858C40D00079BE1 /* sqMemoryAccess.h */,
+			);
+			name = vm;
+			path = ../../../Cross/vm;
+			sourceTree = "<group>";
+		};
+/* End PBXGroup section */
+
+/* Begin PBXHeadersBuildPhase section */
+		94AF34E10846F91100FA5ACB /* Headers */ = {
+			isa = PBXHeadersBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				94AF34E20846F91100FA5ACB /* sqConfig.h in Headers */,
+				94AF34E30846F91100FA5ACB /* sqPlatformSpecific.h in Headers */,
+				94AF34E40846F91100FA5ACB /* sq.h in Headers */,
+				94AF34E50846F91100FA5ACB /* sqVirtualMachine.h in Headers */,
+				94AF35010846F98600FA5ACB /* config.h in Headers */,
+				94AF35050846F9AB00FA5ACB /* interp.h in Headers */,
+				94ABA8910858C3F900079BE1 /* LocalePlugin.h in Headers */,
+				94ABA8930858C40D00079BE1 /* sqMemoryAccess.h in Headers */,
+				94E7F6C7123740F900A03A11 /* sqMacLocaleCocoa.h in Headers */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXHeadersBuildPhase section */
+
+/* Begin PBXNativeTarget section */
+		94AF34E00846F91100FA5ACB /* SqueakLocalePlugin */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 943BD77109BFD3D00013220E /* Build configuration list for PBXNativeTarget "SqueakLocalePlugin" */;
+			buildPhases = (
+				94AF34E10846F91100FA5ACB /* Headers */,
+				94AF34E70846F91100FA5ACB /* Resources */,
+				94AF34EA0846F91100FA5ACB /* Sources */,
+				94AF34EE0846F91100FA5ACB /* Frameworks */,
+				94AF34F00846F91100FA5ACB /* Rez */,
+			);
+			buildRules = (
+				94AF34F70846F94F00FA5ACB /* PBXBuildRule */,
+			);
+			dependencies = (
+			);
+			name = SqueakLocalePlugin;
+			productInstallPath = "$(USER_LIBRARY_DIR)/Bundles";
+			productName = "mpeg3PluginBundle Debug";
+			productReference = 94AF34F20846F91100FA5ACB /* LocalePlugin.bundle */;
+			productType = "com.apple.product-type.bundle";
+		};
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+		66DF6BFD01D7DCEA00A80119 /* Project object */ = {
+			isa = PBXProject;
+			buildConfigurationList = 943BD77509BFD3D00013220E /* Build configuration list for PBXProject "SqueakLocale" */;
+			compatibilityVersion = "Xcode 3.2";
+			developmentRegion = English;
+			hasScannedForEncodings = 1;
+			knownRegions = (
+				English,
+				Japanese,
+				French,
+				German,
+			);
+			mainGroup = 66DF6BFE01D7DCEA00A80119;
+			productRefGroup = 66DF6C4501D7DEEE00A80119 /* Products */;
+			projectDirPath = "";
+			projectRoot = "";
+			targets = (
+				94AF34E00846F91100FA5ACB /* SqueakLocalePlugin */,
+			);
+		};
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+		94AF34E70846F91100FA5ACB /* Resources */ = {
+			isa = PBXResourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				94AF34E80846F91100FA5ACB /* SqueakPlugin.icns in Resources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXRezBuildPhase section */
+		94AF34F00846F91100FA5ACB /* Rez */ = {
+			isa = PBXRezBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXRezBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+		94AF34EA0846F91100FA5ACB /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				94ABA8880858C2CB00079BE1 /* LocalePlugin.c in Sources */,
+				94E7F6C8123740F900A03A11 /* sqMacLocaleCocoa.m in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXSourcesBuildPhase section */
+
+/* Begin XCBuildConfiguration section */
+		943BD77209BFD3D00013220E /* Development */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_ENABLE_FIX_AND_CONTINUE = YES;
+				GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				GENERATE_PKGINFO_FILE = YES;
+				INFOPLIST_FILE = "Info-SqueakLocalePlugin__Upgraded_.plist";
+				ONLY_ACTIVE_ARCH = YES;
+				OTHER_LDFLAGS = "";
+				PRODUCT_NAME = LocalePlugin;
+				SECTORDER_FLAGS = "";
+				USER_HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../vm/iPhone\"";
+				WARNING_CFLAGS = (
+					"-Wmost",
+					"-Wno-four-char-constants",
+					"-Wno-unknown-pragmas",
+				);
+				WRAPPER_EXTENSION = bundle;
+			};
+			name = Development;
+		};
+		943BD77309BFD3D00013220E /* Deployment */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
+				CODE_SIGN_IDENTITY = "iPhone Distribution: Corporate Smalltalk Consulting Ltd";
+				COPY_PHASE_STRIP = YES;
+				GENERATE_PKGINFO_FILE = YES;
+				INFOPLIST_FILE = "Info-SqueakLocalePlugin__Upgraded_.plist";
+				PRODUCT_NAME = LocalePlugin;
+				SDKROOT = macosx10.5;
+				USER_HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../vm/iPhone\"";
+				WRAPPER_EXTENSION = bundle;
+			};
+			name = Deployment;
+		};
+		943BD77609BFD3D00013220E /* Development */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				MACOSX_DEPLOYMENT_TARGET = 10.5;
+				SDKROOT = macosx10.5;
+			};
+			name = Development;
+		};
+		943BD77709BFD3D00013220E /* Deployment */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				MACOSX_DEPLOYMENT_TARGET = 10.5;
+				SDKROOT = macosx10.5;
+			};
+			name = Deployment;
+		};
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+		943BD77109BFD3D00013220E /* Build configuration list for PBXNativeTarget "SqueakLocalePlugin" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				943BD77209BFD3D00013220E /* Development */,
+				943BD77309BFD3D00013220E /* Deployment */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Development;
+		};
+		943BD77509BFD3D00013220E /* Build configuration list for PBXProject "SqueakLocale" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				943BD77609BFD3D00013220E /* Development */,
+				943BD77709BFD3D00013220E /* Deployment */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Development;
+		};
+/* End XCConfigurationList section */
+	};
+	rootObject = 66DF6BFD01D7DCEA00A80119 /* Project object */;
+}

Added: trunk/platforms/iOS/plugins/SqueakLocale/sqMacLocaleCocoa.h
===================================================================
--- trunk/platforms/iOS/plugins/SqueakLocale/sqMacLocaleCocoa.h	                        (rev 0)
+++ trunk/platforms/iOS/plugins/SqueakLocale/sqMacLocaleCocoa.h	2010-09-08 06:39:12 UTC (rev 2288)
@@ -0,0 +1,39 @@
+//
+//  sqMacLocaleCocoa.h
+//  SqueakLocale
+//
+//  Created by John M McIntosh on 10-09-07.
+/*
+ Copyright (c) 2010 Corporate Smalltalk Consulting Ltd. All rights reserved.
+ MIT License
+ Permission is hereby granted, free of charge, to any person
+ obtaining a copy of this software and associated documentation
+ files (the "Software"), to deal in the Software without
+ restriction, including without limitation the rights to use,
+ copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the
+ Software is furnished to do so, subject to the following
+ conditions:
+ 
+ The above copyright notice and this permission notice shall be
+ included in all copies or substantial portions of the Software.
+ 
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ OTHER DEALINGS IN THE SOFTWARE.
+ 
+ The end-user documentation included with the redistribution, if any, must include the following acknowledgment: 
+ "This product includes software developed by Corporate Smalltalk Consulting Ltd (http://www.smalltalkconsulting.com) 
+ and its contributors", in the same place and form as other third-party acknowledgments. 
+ Alternately, this acknowledgment may appear in the software itself, in the same form and location as other 
+ such third-party acknowledgments.
+ */
+//
+
+#import <Cocoa/Cocoa.h>
+#import "sq.h"
\ No newline at end of file

Added: trunk/platforms/iOS/plugins/SqueakLocale/sqMacLocaleCocoa.m
===================================================================
--- trunk/platforms/iOS/plugins/SqueakLocale/sqMacLocaleCocoa.m	                        (rev 0)
+++ trunk/platforms/iOS/plugins/SqueakLocale/sqMacLocaleCocoa.m	2010-09-08 06:39:12 UTC (rev 2288)
@@ -0,0 +1,258 @@
+//
+//  sqMacLocaleCocoa.m
+//  SqueakLocale
+//
+//  Created by John M McIntosh on 10-09-07.
+/*
+Copyright (c) 2010 Corporate Smalltalk Consulting Ltd. All rights reserved.
+ MIT License
+ Permission is hereby granted, free of charge, to any person
+ obtaining a copy of this software and associated documentation
+ files (the "Software"), to deal in the Software without
+ restriction, including without limitation the rights to use,
+ copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the
+ Software is furnished to do so, subject to the following
+ conditions:
+ 
+ The above copyright notice and this permission notice shall be
+ included in all copies or substantial portions of the Software.
+ 
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ OTHER DEALINGS IN THE SOFTWARE.
+ 
+ The end-user documentation included with the redistribution, if any, must include the following acknowledgment: 
+ "This product includes software developed by Corporate Smalltalk Consulting Ltd (http://www.smalltalkconsulting.com) 
+ and its contributors", in the same place and form as other third-party acknowledgments. 
+ Alternately, this acknowledgment may appear in the software itself, in the same form and location as other 
+ such third-party acknowledgments.
+ */
+//
+
+#import "sqMacLocaleCocoa.h"
+
+sqInt sqLocInitialize(void) {
+	return true;
+}
+
+/************** Country and language ******************/
+
+/* write the country code into the string ptr. ISO 3166 is the relevant source
+ * here; see http://www.unicode.org/onlinedat/countries.html for details.
+ * Using the 3 character Alpha-3 codes */
+void	sqLocGetCountryInto(char * str) {
+	NSLocale *locale = [NSLocale autoupdatingCurrentLocale];
+	NSString *countryCode = [locale objectForKey: NSLocaleCountryCode];
+	NSUInteger usedByteCount = 0;
+	[countryCode getBytes: str 
+				maxLength: 3 
+			   usedLength: &usedByteCount 
+				 encoding: NSMacOSRomanStringEncoding 
+				  options:NSStringEncodingConversionExternalRepresentation 
+					range:NSMakeRange(0,3) 
+		   remainingRange: NULL];
+}
+
+/* write the 3 char string describing the language in use into string ptr.
+ * ISO 639 is the relevant source here;
+ * see http://www.w3.org/WAI/ER/IG/ert/iso639.html
+ * for details */
+void	sqLocGetLanguageInto(char * str) {
+	NSLocale *locale = [NSLocale autoupdatingCurrentLocale];
+	NSString *languageCode = [locale objectForKey: NSLocaleLanguageCode];
+	NSUInteger usedByteCount = 0;
+	[languageCode getBytes: str 
+				maxLength: 3 
+			   usedLength: &usedByteCount 
+				 encoding: NSMacOSRomanStringEncoding 
+				  options:NSStringEncodingConversionExternalRepresentation 
+					range:NSMakeRange(0,3) 
+		   remainingRange: NULL];
+}
+
+/***************** Currency ********************/
+
+/* return 1 (true) if the currency symbol is to be placed in front of the
+ *currency amount */
+sqInt	sqLocCurrencyNotation(void) {
+
+	NSNumberFormatter *numberFormatter = [[[NSNumberFormatter alloc] init] autorelease];
+    [numberFormatter setNumberStyle: NSNumberFormatterCurrencyStyle];
+    NSString *numberAsString = [numberFormatter stringFromNumber:[NSNumber numberWithFloat: 1.2f]];
+	NSRange currencyLocation = [numberAsString rangeOfString:[numberFormatter currencySymbol]];
+	return (sqInt) (currencyLocation.location == 0);
+}
+
+/* return the length in chars of the curency symbol string */
+sqInt	sqLocCurrencySymbolSize(void) {
+	NSLocale *locale = [NSLocale autoupdatingCurrentLocale];
+	NSString *currencySymbol = [locale objectForKey: NSLocaleCurrencySymbol];
+	return [currencySymbol lengthOfBytesUsingEncoding: NSUTF8StringEncoding];
+}
+
+/* write the currency symbol into the string ptr */
+void	sqLocGetCurrencySymbolInto(char * str) {
+	NSLocale *locale = [NSLocale autoupdatingCurrentLocale];
+	NSString *currencySymbol = [locale objectForKey: NSLocaleCurrencySymbol];
+	NSUInteger usedByteCount = 0;
+	[currencySymbol getBytes: str 
+				 maxLength: sqLocCurrencySymbolSize()
+				usedLength: &usedByteCount 
+				  encoding: NSMacOSRomanStringEncoding 
+				   options:NSStringEncodingConversionExternalRepresentation 
+					 range:NSMakeRange(0,[currencySymbol length]) 
+			remainingRange: NULL];
+}
+
+/***************** Numbers and measurements **************/
+
+/* return true if the metric measurements system is to be used, false otherwise
+ * (USA is about it) */
+sqInt	sqLocMeasurementMetric(void) {
+	NSLocale *locale = [NSLocale autoupdatingCurrentLocale];
+	NSNumber *metric = [locale objectForKey: NSLocaleUsesMetricSystem];
+	return [metric boolValue];
+}
+
+/* write the 1 char used for digit grouping into string ptr.
+ * Usually this is . or ,  as in 1,000,000 */
+void	sqLocGetDigitGroupingSymbolInto(char * str) {
+	NSLocale *locale = [NSLocale autoupdatingCurrentLocale];
+	NSString *grouping = [locale objectForKey: NSLocaleGroupingSeparator];	
+	NSUInteger usedByteCount = 0;
+	[grouping getBytes: str 
+				 maxLength: 1 
+				usedLength: &usedByteCount 
+				  encoding: NSMacOSRomanStringEncoding 
+				   options:NSStringEncodingConversionExternalRepresentation 
+					 range:NSMakeRange(0,[grouping length]) 
+			remainingRange: NULL];
+}
+
+/* write the 1 char used for decimal separation into string ptr.
+ * Usually this is . or , */
+void	sqLocGetDecimalSymbolInto(char * str) {
+	NSLocale *locale = [NSLocale autoupdatingCurrentLocale];
+	NSString *decimal = [locale objectForKey: NSLocaleDecimalSeparator];	
+	NSUInteger usedByteCount = 0;
+	[decimal getBytes: str 
+			 maxLength: 1 
+			usedLength: &usedByteCount 
+			  encoding: NSMacOSRomanStringEncoding 
+			   options:NSStringEncodingConversionExternalRepresentation 
+				 range:NSMakeRange(0,[decimal length]) 
+		remainingRange: NULL];
+}
+
+
+/****************** time and date *********************/
+
+sqInt	sqLocGetVMOffsetToUTC(void) {
+	/* return 0 for now */
+	return 0;
+}
+
+sqInt	sqLocGetTimezoneOffset(void) {
+	NSTimeZone *tz = [NSTimeZone systemTimeZone];
+	NSInteger offset = [tz secondsFromGMT];
+	return (offset)/60;
+}
+
+/* return true if DST is in use, false otherwise */
+sqInt	sqLocDaylightSavings(void) {
+	NSTimeZone *tz = [NSTimeZone systemTimeZone];
+	return [tz isDaylightSavingTime];
+}
+
+/* return the size in chars of the long date format string */
+
+sqInt	sqLocLongDateFormatSize(void) {
+	NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init]  autorelease];
+	[dateFormatter setDateStyle:NSDateFormatterLongStyle];
+	[dateFormatter setTimeStyle:NSDateFormatterNoStyle];
+	NSString *fmt = [dateFormatter dateFormat];	
+	return [fmt lengthOfBytesUsingEncoding: NSUTF8StringEncoding];
+}
+/*Write the string describing the long date formatting into string ptr.
+ * Format is made up of
+ * 		d day, m month, y year,
+ * 		double symbol is null padded, single not padded (m=6, mm=06)
+ * 		dddd weekday
+ * 		mmmm month name */
+void	sqLocGetLongDateFormatInto(char * str) {
+	NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init]  autorelease];
+	[dateFormatter setDateStyle:NSDateFormatterLongStyle];
+	[dateFormatter setTimeStyle:NSDateFormatterNoStyle];
+	NSString *fmt = [dateFormatter dateFormat];	
+	NSUInteger usedByteCount = 0;
+	[fmt getBytes: str 
+			 maxLength: sqLocLongDateFormatSize() 
+			usedLength: &usedByteCount 
+			  encoding: NSUTF8StringEncoding 
+			   options:NSStringEncodingConversionExternalRepresentation 
+				 range:NSMakeRange(0,[fmt length]) 
+		remainingRange: NULL];
+	
+}
+
+/* return the size in chars of the short date format string */
+sqInt	sqLocShortDateFormatSize(void) {
+	NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init]  autorelease];
+	[dateFormatter setDateStyle:kCFDateFormatterShortStyle];
+	[dateFormatter setTimeStyle:NSDateFormatterNoStyle];
+	NSString *fmt = [dateFormatter dateFormat];	
+	return [fmt lengthOfBytesUsingEncoding: NSUTF8StringEncoding];
+}
+/*Write the string describing the short date formatting into string ptr.
+ * Format is made up of
+ * 		d day, m month, y year,
+ * 		double symbol is null padded, single not padded (m=6, mm=06)
+ * 		dddd weekday
+ * 		mmmm month name */
+void	sqLocGetShortDateFormatInto(char * str) {
+	NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init]  autorelease];
+	[dateFormatter setDateStyle:kCFDateFormatterShortStyle];
+	[dateFormatter setTimeStyle:NSDateFormatterNoStyle];
+	NSString *fmt = [dateFormatter dateFormat];	
+	NSUInteger usedByteCount = 0;
+	[fmt getBytes: str 
+		maxLength: sqLocLongDateFormatSize() 
+	   usedLength: &usedByteCount 
+		 encoding: NSUTF8StringEncoding 
+		  options:NSStringEncodingConversionExternalRepresentation 
+			range:NSMakeRange(0,[fmt length]) 
+   remainingRange: NULL];
+}
+
+/* return the size in chars of the time format string */
+sqInt	sqLocTimeFormatSize(void) {
+	NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init]  autorelease];
+	[dateFormatter setDateStyle:kCFDateFormatterNoStyle];
+	[dateFormatter setTimeStyle:kCFDateFormatterMediumStyle];
+	NSString *fmt = [dateFormatter dateFormat];	
+	return [fmt lengthOfBytesUsingEncoding: NSUTF8StringEncoding];
+}
+/* write the string describing the time formatting into string ptr.
+ * Format is made up of
+ * 		h hour (h 12, H 24), m minute, s seconds, x (am/pm String)
+ * 		double symbol is null padded, single not padded (h=6, hh=06)  */
+void	sqLocGetTimeFormatInto(char * str) {
+	NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init]  autorelease];
+	[dateFormatter setDateStyle:kCFDateFormatterNoStyle];
+	[dateFormatter setTimeStyle:kCFDateFormatterMediumStyle];
+	NSString *fmt = [dateFormatter dateFormat];	
+	NSUInteger usedByteCount = 0;
+	[fmt getBytes: str 
+		maxLength: sqLocTimeFormatSize() 
+	   usedLength: &usedByteCount 
+		 encoding: NSUTF8StringEncoding 
+		  options:NSStringEncodingConversionExternalRepresentation 
+			range:NSMakeRange(0,[fmt length]) 
+   remainingRange: NULL];
+}
\ No newline at end of file

Added: trunk/platforms/iOS/vm/src/plugins/LocalePlugin/LocalePlugin.c
===================================================================
--- trunk/platforms/iOS/vm/src/plugins/LocalePlugin/LocalePlugin.c	                        (rev 0)
+++ trunk/platforms/iOS/vm/src/plugins/LocalePlugin/LocalePlugin.c	2010-09-08 06:39:12 UTC (rev 2288)
@@ -0,0 +1,367 @@
+/* Automatically generated from Squeak on #(17 November 2008 5:58:31 pm)
+by VMMaker 3.9.1-dtl
+ */
+
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+
+/* Default EXPORT macro that does nothing (see comment in sq.h): */
+#define EXPORT(returnType) returnType
+
+/* Do not include the entire sq.h file but just those parts needed. */
+/*  The virtual machine proxy definition */
+#include "sqVirtualMachine.h"
+/* Configuration options */
+#include "sqConfig.h"
+/* Platform specific definitions */
+#include "sqPlatformSpecific.h"
+
+#define true 1
+#define false 0
+#define null 0  /* using 'null' because nil is predefined in Think C */
+#ifdef SQUEAK_BUILTIN_PLUGIN
+#undef EXPORT
+// was #undef EXPORT(returnType) but screws NorCroft cc
+#define EXPORT(returnType) static returnType
+#endif
+#include "LocalePlugin.h"
+
+#include "sqMemoryAccess.h"
+
+
+/*** Constants ***/
+
+/*** Function Prototypes ***/
+static VirtualMachine * getInterpreter(void);
+#pragma export on
+EXPORT(const char*) getModuleName(void);
+#pragma export off
+static sqInt halt(void);
+#pragma export on
+EXPORT(sqInt) initialiseModule(void);
+#pragma export off
+static sqInt msg(char * s);
+#pragma export on
+EXPORT(sqInt) primitiveCountry(void);
+EXPORT(sqInt) primitiveCurrencyNotation(void);
+EXPORT(sqInt) primitiveCurrencySymbol(void);
+EXPORT(sqInt) primitiveDaylightSavings(void);
+EXPORT(sqInt) primitiveDecimalSymbol(void);
+EXPORT(sqInt) primitiveDigitGroupingSymbol(void);
+EXPORT(sqInt) primitiveLanguage(void);
+EXPORT(sqInt) primitiveLongDateFormat(void);
+EXPORT(sqInt) primitiveMeasurementMetric(void);
+EXPORT(sqInt) primitiveShortDateFormat(void);
+EXPORT(sqInt) primitiveTimeFormat(void);
+EXPORT(sqInt) primitiveTimezoneOffset(void);
+EXPORT(sqInt) primitiveVMOffsetToUTC(void);
+EXPORT(sqInt) setInterpreter(struct VirtualMachine* anInterpreter);
+#pragma export off
+static sqInt sqAssert(sqInt aBool);
+/*** Variables ***/
+
+#ifdef SQUEAK_BUILTIN_PLUGIN
+extern
+#endif
+struct VirtualMachine* interpreterProxy;
+static const char *moduleName =
+#ifdef SQUEAK_BUILTIN_PLUGIN
+	"LocalePlugin 17 November 2008 (i)"
+#else
+	"LocalePlugin 17 November 2008 (e)"
+#endif
+;
+
+
+
+/*	Note: This is coded so that plugins can be run from Squeak. */
+
+static VirtualMachine * getInterpreter(void) {
+	return interpreterProxy;
+}
+
+
+/*	Note: This is hardcoded so it can be run from Squeak.
+	The module name is used for validating a module *after*
+	it is loaded to check if it does really contain the module
+	we're thinking it contains. This is important! */
+
+EXPORT(const char*) getModuleName(void) {
+	return moduleName;
+}
+
+static sqInt halt(void) {
+	;
+}
+
+EXPORT(sqInt) initialiseModule(void) {
+	return sqLocInitialize();
+}
+
+static sqInt msg(char * s) {
+	fprintf(stderr, "\n%s: %s", moduleName, s);
+}
+
+
+/*	return a 3 char string describing the country in use. ISO 3166 is the relevant source here; see http://www.unicode.org/onlinedat/countries.html for details. Using the 3 character Alpha-3 codes */
+
+EXPORT(sqInt) primitiveCountry(void) {
+	sqInt oop;
+
+	oop = interpreterProxy->instantiateClassindexableSize(interpreterProxy->classString(), 3);
+	sqLocGetCountryInto(interpreterProxy->firstIndexableField(oop));
+	if (interpreterProxy->failed()) {
+		return null;
+	}
+	interpreterProxy->popthenPush(1, oop);
+	return null;
+}
+
+
+/*	return a boolean specifying whether the currency symbol is pre or post fix. true -> pre */
+
+EXPORT(sqInt) primitiveCurrencyNotation(void) {
+	sqInt _return_value;
+
+	_return_value = ((sqLocCurrencyNotation())? interpreterProxy->trueObject(): interpreterProxy->falseObject());
+	if (interpreterProxy->failed()) {
+		return null;
+	}
+	interpreterProxy->popthenPush(1, _return_value);
+	return null;
+}
+
+
+/*	return a string describing the currency symbol used 
+Still need to find details on standard symbols - ISO 4217 is supposed to be it but cannot find on web */
+
+EXPORT(sqInt) primitiveCurrencySymbol(void) {
+	sqInt oop;
+	sqInt length;
+
+	length = sqLocCurrencySymbolSize();
+	oop = interpreterProxy->instantiateClassindexableSize(interpreterProxy->classString(), length);
+	sqLocGetCurrencySymbolInto(interpreterProxy->firstIndexableField(oop));
+	if (interpreterProxy->failed()) {
+		return null;
+	}
+	interpreterProxy->popthenPush(1, oop);
+	return null;
+}
+
+
+/*	return a boolean specifying the DST setting. true -> active */
+
+EXPORT(sqInt) primitiveDaylightSavings(void) {
+	sqInt _return_value;
+
+	_return_value = ((sqLocDaylightSavings())? interpreterProxy->trueObject(): interpreterProxy->falseObject());
+	if (interpreterProxy->failed()) {
+		return null;
+	}
+	interpreterProxy->popthenPush(1, _return_value);
+	return null;
+}
+
+
+/*	return a 1 char string describing the decimal symbol used - usually a . or a , */
+
+EXPORT(sqInt) primitiveDecimalSymbol(void) {
+	sqInt oop;
+
+	oop = interpreterProxy->instantiateClassindexableSize(interpreterProxy->classString(), 1);
+	sqLocGetDecimalSymbolInto(interpreterProxy->firstIndexableField(oop));
+	if (interpreterProxy->failed()) {
+		return null;
+	}
+	interpreterProxy->popthenPush(1, oop);
+	return null;
+}
+
+
+/*	return a 1 char string describing the digitGrouping symbol used - usually a . or a , between triples of digits */
+
+EXPORT(sqInt) primitiveDigitGroupingSymbol(void) {
+	sqInt oop;
+
+	oop = interpreterProxy->instantiateClassindexableSize(interpreterProxy->classString(), 1);
+	sqLocGetDigitGroupingSymbolInto(interpreterProxy->firstIndexableField(oop));
+	if (interpreterProxy->failed()) {
+		return null;
+	}
+	interpreterProxy->popthenPush(1, oop);
+	return null;
+}
+
+
+/*	return a 3 char string describing the language in use. ISO 639 is the relevant source here; see http://www.w3.org/WAI/ER/IG/ert/iso639.html for details */
+
+EXPORT(sqInt) primitiveLanguage(void) {
+	sqInt oop;
+
+	oop = interpreterProxy->instantiateClassindexableSize(interpreterProxy->classString(), 3);
+	sqLocGetLanguageInto(interpreterProxy->firstIndexableField(oop));
+	if (interpreterProxy->failed()) {
+		return null;
+	}
+	interpreterProxy->popthenPush(1, oop);
+	return null;
+}
+
+
+/*	return a string describing the long date formatting.
+Format is made up of
+d day, m month, y year,
+double symbol is null padded, single not padded (m=6, mm=06)
+dddd weekday
+mmmm month name
+ */
+
+EXPORT(sqInt) primitiveLongDateFormat(void) {
+	sqInt oop;
+	sqInt length;
+
+	length = sqLocLongDateFormatSize();
+	oop = interpreterProxy->instantiateClassindexableSize(interpreterProxy->classString(), length);
+	sqLocGetLongDateFormatInto(interpreterProxy->firstIndexableField(oop));
+	if (interpreterProxy->failed()) {
+		return null;
+	}
+	interpreterProxy->popthenPush(1, oop);
+	return null;
+}
+
+
+/*	return a boolean specifying whether the currency symbol is pre or post fix. true -> pre */
+
+EXPORT(sqInt) primitiveMeasurementMetric(void) {
+	sqInt _return_value;
+
+	_return_value = ((sqLocMeasurementMetric())? interpreterProxy->trueObject(): interpreterProxy->falseObject());
+	if (interpreterProxy->failed()) {
+		return null;
+	}
+	interpreterProxy->popthenPush(1, _return_value);
+	return null;
+}
+
+
+/*	return a string describing the long date formatting.
+Format is made up of
+d day, m month, y year,
+double symbol is null padded, single not padded (m=6, mm=06)
+dddd weekday
+mmmm month name
+ */
+
+EXPORT(sqInt) primitiveShortDateFormat(void) {
+	sqInt oop;
+	sqInt length;
+
+	length = sqLocShortDateFormatSize();
+	oop = interpreterProxy->instantiateClassindexableSize(interpreterProxy->classString(), length);
+	sqLocGetShortDateFormatInto(interpreterProxy->firstIndexableField(oop));
+	if (interpreterProxy->failed()) {
+		return null;
+	}
+	interpreterProxy->popthenPush(1, oop);
+	return null;
+}
+
+
+/*	return a string describing the time formatting.
+Format is made up of
+h hour (h 12, H 24), m minute, s seconds, x (am/pm String)
+double symbol is null padded, single not padded (h=6, hh=06) */
+
+EXPORT(sqInt) primitiveTimeFormat(void) {
+	sqInt oop;
+	sqInt length;
+
+	length = sqLocTimeFormatSize();
+	oop = interpreterProxy->instantiateClassindexableSize(interpreterProxy->classString(), length);
+	sqLocGetTimeFormatInto(interpreterProxy->firstIndexableField(oop));
+	if (interpreterProxy->failed()) {
+		return null;
+	}
+	interpreterProxy->popthenPush(1, oop);
+	return null;
+}
+
+
+/*	return the number of minutes this VM's time value is offset from UTC */
+
+EXPORT(sqInt) primitiveTimezoneOffset(void) {
+	sqInt _return_value;
+
+	_return_value = interpreterProxy->integerObjectOf((sqLocGetTimezoneOffset()));
+	if (interpreterProxy->failed()) {
+		return null;
+	}
+	interpreterProxy->popthenPush(1, _return_value);
+	return null;
+}
+
+
+/*	return the number of minutes this VM's time value is offset from UTC */
+
+EXPORT(sqInt) primitiveVMOffsetToUTC(void) {
+	sqInt _return_value;
+
+	_return_value = interpreterProxy->integerObjectOf((sqLocGetVMOffsetToUTC()));
+	if (interpreterProxy->failed()) {
+		return null;
+	}
+	interpreterProxy->popthenPush(1, _return_value);
+	return null;
+}
+
+
+/*	Note: This is coded so that is can be run from Squeak. */
+
+EXPORT(sqInt) setInterpreter(struct VirtualMachine* anInterpreter) {
+	sqInt ok;
+
+	interpreterProxy = anInterpreter;
+	ok = interpreterProxy->majorVersion() == VM_PROXY_MAJOR;
+	if (ok == 0) {
+		return 0;
+	}
+	ok = interpreterProxy->minorVersion() >= VM_PROXY_MINOR;
+	return ok;
+}
+
+static sqInt sqAssert(sqInt aBool) {
+	/* missing DebugCode */;
+}
+
+
+#ifdef SQUEAK_BUILTIN_PLUGIN
+
+
+void* LocalePlugin_exports[][3] = {
+	{"LocalePlugin", "primitiveDecimalSymbol", (void*)primitiveDecimalSymbol},
+	{"LocalePlugin", "primitiveMeasurementMetric", (void*)primitiveMeasurementMetric},
+	{"LocalePlugin", "primitiveDigitGroupingSymbol", (void*)primitiveDigitGroupingSymbol},
+	{"LocalePlugin", "primitiveCountry", (void*)primitiveCountry},
+	{"LocalePlugin", "primitiveVMOffsetToUTC", (void*)primitiveVMOffsetToUTC},
+	{"LocalePlugin", "primitiveCurrencyNotation", (void*)primitiveCurrencyNotation},
+	{"LocalePlugin", "initialiseModule", (void*)initialiseModule},
+	{"LocalePlugin", "primitiveCurrencySymbol", (void*)primitiveCurrencySymbol},
+	{"LocalePlugin", "primitiveTimezoneOffset", (void*)primitiveTimezoneOffset},
+	{"LocalePlugin", "primitiveLongDateFormat", (void*)primitiveLongDateFormat},
+	{"LocalePlugin", "primitiveDaylightSavings", (void*)primitiveDaylightSavings},
+	{"LocalePlugin", "primitiveLanguage", (void*)primitiveLanguage},
+	{"LocalePlugin", "getModuleName", (void*)getModuleName},
+	{"LocalePlugin", "primitiveShortDateFormat", (void*)primitiveShortDateFormat},
+	{"LocalePlugin", "primitiveTimeFormat", (void*)primitiveTimeFormat},
+	{"LocalePlugin", "setInterpreter", (void*)setInterpreter},
+	{NULL, NULL, NULL}
+};
+
+
+#endif /* ifdef SQ_BUILTIN_PLUGIN */
+



More information about the Vm-dev mailing list