Index: /trunk/ICeCoffEE/ICeCoffEE/ICeCoffEE APE.xcode/nicholas.mode2
===================================================================
--- /trunk/ICeCoffEE/ICeCoffEE/ICeCoffEE APE.xcode/nicholas.mode2 (revision 182)
+++ /trunk/ICeCoffEE/ICeCoffEE/ICeCoffEE APE.xcode/nicholas.mode2 (revision 182)
@@ -0,0 +1,1328 @@
+
+
+
+
+ ActivePerspectiveName
+ Project
+ AllowedModules
+
+
+ BundleLoadPath
+
+ MaxInstances
+ n
+ Module
+ PBXSmartGroupTreeModule
+ Name
+ Groups and Files Outline View
+
+
+ BundleLoadPath
+
+ MaxInstances
+ n
+ Module
+ PBXNavigatorGroup
+ Name
+ Editor
+
+
+ BundleLoadPath
+
+ MaxInstances
+ n
+ Module
+ XCTaskListModule
+ Name
+ Task List
+
+
+ BundleLoadPath
+
+ MaxInstances
+ n
+ Module
+ XCDetailModule
+ Name
+ File and Smart Group Detail Viewer
+
+
+ BundleLoadPath
+
+ MaxInstances
+ 1
+ Module
+ PBXBuildResultsModule
+ Name
+ Detailed Build Results Viewer
+
+
+ BundleLoadPath
+
+ MaxInstances
+ 1
+ Module
+ PBXProjectFindModule
+ Name
+ Project Batch Find Tool
+
+
+ BundleLoadPath
+
+ MaxInstances
+ n
+ Module
+ PBXRunSessionModule
+ Name
+ Run Log
+
+
+ BundleLoadPath
+
+ MaxInstances
+ n
+ Module
+ PBXBookmarksModule
+ Name
+ Bookmarks Tool
+
+
+ BundleLoadPath
+
+ MaxInstances
+ n
+ Module
+ PBXClassBrowserModule
+ Name
+ Class Browser
+
+
+ BundleLoadPath
+
+ MaxInstances
+ n
+ Module
+ PBXCVSModule
+ Name
+ Source Code Control Tool
+
+
+ BundleLoadPath
+
+ MaxInstances
+ n
+ Module
+ PBXDebugBreakpointsModule
+ Name
+ Debug Breakpoints Tool
+
+
+ BundleLoadPath
+
+ MaxInstances
+ n
+ Module
+ XCDockableInspector
+ Name
+ Inspector
+
+
+ BundleLoadPath
+
+ MaxInstances
+ n
+ Module
+ PBXOpenQuicklyModule
+ Name
+ Open Quickly Tool
+
+
+ BundleLoadPath
+
+ MaxInstances
+ 1
+ Module
+ PBXDebugSessionModule
+ Name
+ Debugger
+
+
+ BundleLoadPath
+
+ MaxInstances
+ 1
+ Module
+ PBXDebugCLIModule
+ Name
+ Debug Console
+
+
+ Description
+ CondensedDescriptionKey
+ DockingSystemVisible
+
+ Extension
+ mode2
+ FavBarConfig
+
+ PBXProjectModuleGUID
+ E18B482E082F08E9000E96F5
+ XCBarModuleItemNames
+
+ XCBarModuleItems
+
+
+ FirstTimeWindowDisplayed
+
+ Identifier
+ com.apple.perspectives.project.mode2
+ MajorVersion
+ 32
+ MinorVersion
+ 0
+ Name
+ Condensed
+ Notifications
+
+ OpenEditors
+
+ PerspectiveWidths
+
+ -1
+
+ Perspectives
+
+
+ ChosenToolbarItems
+
+ buildOrClean
+ build-and-runOrDebug
+ clean
+ com.apple.ide.PBXToolbarStopButton
+ NSToolbarFlexibleSpaceItem
+ get-info
+
+ ControllerClassBaseName
+
+ IconName
+ WindowOfProject
+ Identifier
+ perspective.project
+ IsVertical
+
+ Layout
+
+
+ Proportion
+ 308pt
+ Tabs
+
+
+ BecomeActive
+
+ ContentConfiguration
+
+ PBXBottomSmartGroupGIDs
+
+ PBXProjectModuleGUID
+ 1C9437FD063B20B00039CFAC
+ PBXProjectModuleLabel
+ Files
+ PBXProjectStructureProvided
+ yes
+ PBXSmartGroupTreeModuleColumnData
+
+ PBXSmartGroupTreeModuleColumnWidthsKey
+
+ 22
+ 269
+
+ PBXSmartGroupTreeModuleColumnsKey_v4
+
+ TargetStatusColumn
+ MainColumn
+
+
+ PBXSmartGroupTreeModuleOutlineStateKey_v7
+
+ PBXSmartGroupTreeModuleOutlineStateExpansionKey
+
+ 29B97314FDCFA39411CA2CEA
+ E14993A503DE868D00050002
+ 29B97315FDCFA39411CA2CEA
+ E1AFA51C03ECFDB000050001
+ E12FEC3C04959F1C00AEFBF9
+ E14343AE03DB48F700050002
+ E1BF154403DB950B00050002
+
+ PBXSmartGroupTreeModuleOutlineStateSelectionKey
+
+
+ 0
+
+
+ PBXSmartGroupTreeModuleOutlineStateVisibleRectKey
+ {{0, 0}, {291, 440}}
+
+ PBXTopSmartGroupGIDs
+
+ XCIncludePerspectivesSwitch
+
+
+ GeometryConfiguration
+
+ Frame
+ {{10, 27}, {308, 458}}
+ GroupTreeTableConfiguration
+
+ TargetStatusColumn
+ 22
+ MainColumn
+ 269
+
+ RubberWindowFrame
+ 1244 652 308 526 0 0 1600 1178
+
+ Module
+ PBXSmartGroupTreeModule
+
+
+ ContentConfiguration
+
+ PBXBottomSmartGroupGIDs
+
+ 1C37FBAC04509CD000000102
+ 1C37FAAC04509CD000000102
+
+ PBXProjectModuleGUID
+ 1C9437FE063B20B00039CFAC
+ PBXProjectModuleLabel
+ Targets
+ PBXProjectStructureProvided
+ no
+ PBXSmartGroupTreeModuleColumnData
+
+ PBXSmartGroupTreeModuleColumnWidthsKey
+
+ 291
+
+ PBXSmartGroupTreeModuleColumnsKey_v4
+
+ MainColumn
+
+
+ PBXSmartGroupTreeModuleOutlineStateKey_v7
+
+ PBXSmartGroupTreeModuleOutlineStateExpansionKey
+
+ PBXSmartGroupTreeModuleOutlineStateSelectionKey
+
+
+ 1
+
+
+ PBXSmartGroupTreeModuleOutlineStateVisibleRectKey
+ {{0, 0}, {291, 440}}
+
+ PBXTopSmartGroupGIDs
+
+ XCIncludePerspectivesSwitch
+
+
+ GeometryConfiguration
+
+ Frame
+ {{10, 27}, {308, 458}}
+ GroupTreeTableConfiguration
+
+ MainColumn
+ 291
+
+
+ Module
+ PBXSmartGroupTreeModule
+
+
+ ContentConfiguration
+
+ PBXBottomSmartGroupGIDs
+
+ 1C08E77C0454961000C914BD
+ 1C37FABC05509CD000000102
+ 1C37FABC05539CD112110102
+ E2644B35053B69B200211256
+ 1C37FABC04509CD000100104
+ 1CC0EA4004350EF90044410B
+ 1CC0EA4004350EF90041110B
+
+ PBXProjectModuleGUID
+ 1C9437FF063B20B00039CFAC
+ PBXProjectModuleLabel
+ Other
+ PBXProjectStructureProvided
+ no
+ PBXSmartGroupTreeModuleColumnData
+
+ PBXSmartGroupTreeModuleColumnWidthsKey
+
+ 291
+
+ PBXSmartGroupTreeModuleColumnsKey_v4
+
+ MainColumn
+
+
+ PBXSmartGroupTreeModuleOutlineStateKey_v7
+
+ PBXSmartGroupTreeModuleOutlineStateExpansionKey
+
+ PBXSmartGroupTreeModuleOutlineStateSelectionKey
+
+
+ 3
+
+
+ PBXSmartGroupTreeModuleOutlineStateVisibleRectKey
+ {{0, 0}, {291, 440}}
+
+ PBXTopSmartGroupGIDs
+
+ XCIncludePerspectivesSwitch
+
+
+ GeometryConfiguration
+
+ Frame
+ {{10, 27}, {308, 458}}
+ GroupTreeTableConfiguration
+
+ MainColumn
+ 291
+
+
+ Module
+ PBXSmartGroupTreeModule
+
+
+
+
+ Name
+ Project
+ ServiceClasses
+
+ XCModuleDock
+ XCDockableTabModule
+ PBXSmartGroupTreeModule
+ PBXSmartGroupTreeModule
+ PBXSmartGroupTreeModule
+
+ TableOfContents
+
+ E170DF9A08359B3000B484AC
+ E170DF9B08359B3000B484AC
+ 1C9437FD063B20B00039CFAC
+ 1C9437FE063B20B00039CFAC
+ 1C9437FF063B20B00039CFAC
+
+ ToolbarConfiguration
+ xcode.toolbar.config.default.short
+
+
+ PerspectivesBarVisible
+
+ ShelfIsVisible
+
+ SourceDescription
+ file at '/System/Library/PrivateFrameworks/DevToolsInterface.framework/Versions/A/Resources/XCPerspectivesSpecificationMode2.xcperspec'
+ StatusbarIsVisible
+
+ TimeStamp
+ 0.0
+ ToolbarDisplayMode
+ 2
+ ToolbarIsVisible
+
+ ToolbarSizeMode
+ 2
+ Type
+ Perspectives
+ UpdateMessage
+
+ WindowJustification
+ 0
+ WindowOrderList
+
+ /Users/nicholas/Documents/Development/ICeCoffEE/ICeCoffEE/ICeCoffEE APE.xcode
+ E18B4838082F0937000E96F5
+
+ WindowString
+ 1244 652 308 526 0 0 1600 1178
+ WindowTools
+
+
+ FirstTimeWindowDisplayed
+
+ Identifier
+ windowTool.detail
+ IsVertical
+
+ Layout
+
+
+ Dock
+
+
+ ContentConfiguration
+
+ PBXBottomSmartGroupGIDs
+
+ 1C37FBAC04509CD000000102
+ 1C37FAAC04509CD000000102
+ 1C08E77C0454961000C914BD
+ 1C37FABC05509CD000000102
+ 1C37FABC05539CD112110102
+ E2644B35053B69B200211256
+ 1C37FABC04509CD000100104
+ 1CC0EA4004350EF90044410B
+ 1CC0EA4004350EF90041110B
+
+ PBXProjectModuleGUID
+ 1CE0B1FE06471DED0097A5F4
+ PBXProjectModuleLabel
+ Files
+ PBXProjectStructureProvided
+ yes
+ PBXSmartGroupTreeModuleColumnData
+
+ PBXSmartGroupTreeModuleColumnWidthsKey
+
+ 245
+
+ PBXSmartGroupTreeModuleColumnsKey_v4
+
+ MainColumn
+
+
+ PBXSmartGroupTreeModuleOutlineStateKey_v7
+
+ PBXSmartGroupTreeModuleOutlineStateExpansionKey
+
+ 29B97314FDCFA39411CA2CEA
+ 1C37FABC05509CD000000102
+
+ PBXSmartGroupTreeModuleOutlineStateSelectionKey
+
+
+ 0
+
+
+ PBXSmartGroupTreeModuleOutlineStateVisibleRectKey
+ {{0, 0}, {245, 350}}
+
+ PBXTopSmartGroupGIDs
+
+ XCIncludePerspectivesSwitch
+
+
+ GeometryConfiguration
+
+ Frame
+ {{0, 0}, {262, 368}}
+ GroupTreeTableConfiguration
+
+ MainColumn
+ 245
+
+ RubberWindowFrame
+ 387 731 744 409 0 0 1600 1178
+
+ Module
+ PBXSmartGroupTreeModule
+ Proportion
+ 262pt
+
+
+ ContentConfiguration
+
+ PBXProjectModuleGUID
+ 1CA1AED706398EBD00589147
+ PBXProjectModuleLabel
+ Detail
+
+ GeometryConfiguration
+
+ Frame
+ {{267, 0}, {477, 368}}
+ RubberWindowFrame
+ 387 731 744 409 0 0 1600 1178
+
+ Module
+ XCDetailModule
+ Proportion
+ 477pt
+
+
+ Proportion
+ 368pt
+
+
+ Name
+ Detail
+ ServiceClasses
+
+ PBXSmartGroupTreeModule
+ XCDetailModule
+
+ StatusbarIsVisible
+
+ TableOfContents
+
+ 1C335F2C07B51CD20023D4EE
+ E18B49AB082F12B8000E96F5
+ 1CE0B1FE06471DED0097A5F4
+ 1CA1AED706398EBD00589147
+
+ ToolbarConfiguration
+ xcode.toolbar.config.default
+ WindowString
+ 387 731 744 409 0 0 1600 1178
+ WindowToolGUID
+ 1C335F2C07B51CD20023D4EE
+ WindowToolIsVisible
+
+
+
+ Identifier
+ MENUSEPARATOR
+
+
+ FirstTimeWindowDisplayed
+
+ Identifier
+ windowTool.build
+ IsVertical
+
+ Layout
+
+
+ Dock
+
+
+ ContentConfiguration
+
+ PBXProjectModuleGUID
+ 1CD0528F0623707200166675
+ PBXProjectModuleLabel
+
+ StatusBarVisibility
+
+
+ GeometryConfiguration
+
+ Frame
+ {{0, 0}, {807, 0}}
+ RubberWindowFrame
+ 707 46 807 200 0 0 1600 1178
+
+ Module
+ PBXNavigatorGroup
+ Proportion
+ 0pt
+
+
+ BecomeActive
+
+ ContentConfiguration
+
+ PBXProjectModuleGUID
+ XCMainBuildResultsModuleGUID
+ PBXProjectModuleLabel
+ Build
+ XCBuildResultsTrigger_Collapse
+ 1021
+ XCBuildResultsTrigger_Open
+ 1011
+
+ GeometryConfiguration
+
+ Frame
+ {{0, 5}, {807, 175}}
+ RubberWindowFrame
+ 707 46 807 200 0 0 1600 1178
+
+ Module
+ PBXBuildResultsModule
+ Proportion
+ 175pt
+
+
+ Proportion
+ 180pt
+
+
+ Name
+ Build Results
+ ServiceClasses
+
+ PBXBuildResultsModule
+
+ StatusbarIsVisible
+
+ TableOfContents
+
+ 1C530D52069F1CE1000CFCEE
+ E17DD6C808344ACB00D16E0F
+ 1CD0528F0623707200166675
+ XCMainBuildResultsModuleGUID
+
+ ToolbarConfiguration
+ xcode.toolbar.config.build
+ WindowString
+ 707 46 807 200 0 0 1600 1178
+ WindowToolGUID
+ 1C530D52069F1CE1000CFCEE
+ WindowToolIsVisible
+
+
+
+ Identifier
+ windowTool.debugger
+ Layout
+
+
+ Dock
+
+
+ ContentConfiguration
+
+ Debugger
+
+ HorizontalSplitView
+
+ _collapsingFrameDimension
+ 0.0
+ _indexOfCollapsedView
+ 0
+ _percentageOfCollapsedView
+ 0.0
+ isCollapsed
+ yes
+ sizes
+
+ {{0, 0}, {333, 166}}
+ {{333, 0}, {384, 166}}
+
+
+ VerticalSplitView
+
+ _collapsingFrameDimension
+ 0.0
+ _indexOfCollapsedView
+ 0
+ _percentageOfCollapsedView
+ 0.0
+ isCollapsed
+ yes
+ sizes
+
+ {{0, 0}, {717, 166}}
+ {{0, 166}, {717, 229}}
+
+
+
+ LauncherConfigVersion
+ 8
+ PBXProjectModuleGUID
+ 1C162984064C10D400B95A72
+ PBXProjectModuleLabel
+ Debug - GLUTExamples (Underwater)
+
+ GeometryConfiguration
+
+ DebugConsoleDrawerSize
+ {100, 120}
+ DebugConsoleVisible
+ None
+ DebugConsoleWindowFrame
+ {{200, 200}, {500, 300}}
+ DebugSTDIOWindowFrame
+ {{200, 200}, {500, 300}}
+ Frame
+ {{0, 0}, {717, 395}}
+ RubberWindowFrame
+ 124 412 717 437 0 0 1440 878
+
+ Module
+ PBXDebugSessionModule
+ Proportion
+ 100%
+
+
+ Proportion
+ 100%
+
+
+ Name
+ Debugger
+ ServiceClasses
+
+ PBXDebugSessionModule
+
+ StatusbarIsVisible
+ 1
+ TableOfContents
+
+ 1C530D54069F1CE1000CFCEE
+ 1C530D55069F1CE1000CFCEE
+ 1C162984064C10D400B95A72
+ 1C530D56069F1CE1000CFCEE
+
+ ToolbarConfiguration
+ xcode.toolbar.config.debug
+ WindowString
+ 124 412 717 437 0 0 1440 878
+ WindowToolGUID
+ 1C530D54069F1CE1000CFCEE
+ WindowToolIsVisible
+ 0
+
+
+ FirstTimeWindowDisplayed
+
+ Identifier
+ windowTool.find
+ IsVertical
+
+ Layout
+
+
+ Dock
+
+
+ Dock
+
+
+ ContentConfiguration
+
+ PBXProjectModuleGUID
+ 1CDD528C0622207200134675
+ PBXProjectModuleLabel
+ ICeCoffEE.m
+ StatusBarVisibility
+
+
+ GeometryConfiguration
+
+ Frame
+ {{0, 0}, {854, 187}}
+ RubberWindowFrame
+ 229 160 854 724 0 0 1600 1178
+
+ Module
+ PBXNavigatorGroup
+ Proportion
+ 854pt
+
+
+ Proportion
+ 187pt
+
+
+ BecomeActive
+
+ ContentConfiguration
+
+ PBXProjectModuleGUID
+ 1CD0528E0623707200166675
+ PBXProjectModuleLabel
+ Project Find
+
+ GeometryConfiguration
+
+ Frame
+ {{0, 192}, {854, 491}}
+ RubberWindowFrame
+ 229 160 854 724 0 0 1600 1178
+
+ Module
+ PBXProjectFindModule
+ Proportion
+ 491pt
+
+
+ Proportion
+ 683pt
+
+
+ Name
+ Project Find
+ ServiceClasses
+
+ PBXProjectFindModule
+
+ StatusbarIsVisible
+
+ TableOfContents
+
+ 1C530D57069F1CE1000CFCEE
+ E191FC360831AC44003B09BC
+ E191FC370831AC44003B09BC
+ 1CDD528C0622207200134675
+ 1CD0528E0623707200166675
+
+ WindowString
+ 229 160 854 724 0 0 1600 1178
+ WindowToolGUID
+ 1C530D57069F1CE1000CFCEE
+ WindowToolIsVisible
+
+
+
+ Identifier
+ MENUSEPARATOR
+
+
+ Identifier
+ windowTool.debuggerConsole
+ Layout
+
+
+ Dock
+
+
+ BecomeActive
+ 1
+ ContentConfiguration
+
+ PBXProjectModuleGUID
+ 1C78EAAC065D492600B07095
+ PBXProjectModuleLabel
+ Debugger Console
+
+ GeometryConfiguration
+
+ Frame
+ {{0, 0}, {440, 358}}
+ RubberWindowFrame
+ 149 87 440 400 0 0 1440 878
+
+ Module
+ PBXDebugCLIModule
+ Proportion
+ 358pt
+
+
+ Proportion
+ 358pt
+
+
+ Name
+ Debugger Console
+ ServiceClasses
+
+ PBXDebugCLIModule
+
+ StatusbarIsVisible
+ 1
+ TableOfContents
+
+ 1C530D5B069F1CE1000CFCEE
+ 1C530D5C069F1CE1000CFCEE
+ 1C78EAAC065D492600B07095
+
+ WindowString
+ 149 87 440 400 0 0 1440 878
+ WindowToolGUID
+ 1C530D5B069F1CE1000CFCEE
+ WindowToolIsVisible
+ 0
+
+
+ FirstTimeWindowDisplayed
+
+ Identifier
+ windowTool.run
+ IsVertical
+
+ Layout
+
+
+ Dock
+
+
+ ContentConfiguration
+
+ LauncherConfigVersion
+ 3
+ PBXProjectModuleGUID
+ 1CD0528B0623707200166675
+ PBXProjectModuleLabel
+ Run
+ Runner
+
+ HorizontalSplitView
+
+ _collapsingFrameDimension
+ 0.0
+ _indexOfCollapsedView
+ 0
+ _percentageOfCollapsedView
+ 0.0
+ isCollapsed
+ yes
+ sizes
+
+ {{0, 0}, {367, 168}}
+ {{0, 173}, {367, 270}}
+
+
+ VerticalSplitView
+
+ _collapsingFrameDimension
+ 0.0
+ _indexOfCollapsedView
+ 0
+ _percentageOfCollapsedView
+ 0.0
+ isCollapsed
+ yes
+ sizes
+
+ {{0, 0}, {406, 443}}
+ {{411, 0}, {517, 443}}
+
+
+
+
+ GeometryConfiguration
+
+ Frame
+ {{0, 0}, {702, 248}}
+ RubberWindowFrame
+ 827 57 702 268 0 0 1600 1178
+
+ Module
+ PBXRunSessionModule
+ Proportion
+ 248pt
+
+
+ Proportion
+ 248pt
+
+
+ Name
+ Run Log
+ ServiceClasses
+
+ PBXRunSessionModule
+
+ StatusbarIsVisible
+
+ TableOfContents
+
+ 1C0AD2B3069F1EA900FABCE6
+ E170DF3408359A5B00B484AC
+ 1CD0528B0623707200166675
+ E170DF3508359A5B00B484AC
+
+ ToolbarConfiguration
+ xcode.toolbar.config.run
+ WindowString
+ 827 57 702 268 0 0 1600 1178
+ WindowToolGUID
+ 1C0AD2B3069F1EA900FABCE6
+ WindowToolIsVisible
+
+
+
+ FirstTimeWindowDisplayed
+
+ Identifier
+ windowTool.scm
+ IsVertical
+
+ Layout
+
+
+ Dock
+
+
+ ContentConfiguration
+
+ PBXProjectModuleGUID
+ 1C78EAB2065D492600B07095
+ PBXProjectModuleLabel
+
+ StatusBarVisibility
+
+
+ GeometryConfiguration
+
+ Frame
+ {{0, 0}, {634, 0}}
+ RubberWindowFrame
+ 73 783 634 373 0 0 1600 1178
+
+ Module
+ PBXNavigatorGroup
+ Proportion
+ 0pt
+
+
+ BecomeActive
+
+ ContentConfiguration
+
+ PBXProjectModuleGUID
+ 1CD052920623707200166675
+ PBXProjectModuleLabel
+ SCM Results
+
+ GeometryConfiguration
+
+ Frame
+ {{0, 5}, {634, 327}}
+ RubberWindowFrame
+ 73 783 634 373 0 0 1600 1178
+
+ Module
+ PBXCVSModule
+ Proportion
+ 327pt
+
+
+ Proportion
+ 332pt
+
+
+ Name
+ SCM
+ ServiceClasses
+
+ PBXCVSModule
+
+ StatusbarIsVisible
+
+ TableOfContents
+
+ E18B4838082F0937000E96F5
+ E170DF9C08359B3000B484AC
+ 1C78EAB2065D492600B07095
+ 1CD052920623707200166675
+
+ ToolbarConfiguration
+ xcode.toolbar.config.scm
+ WindowString
+ 73 783 634 373 0 0 1600 1178
+ WindowToolGUID
+ E18B4838082F0937000E96F5
+ WindowToolIsVisible
+
+
+
+ Identifier
+ windowTool.breakpoints
+ Layout
+
+
+ Dock
+
+
+ BecomeActive
+ 1
+ ContentConfiguration
+
+ PBXProjectModuleGUID
+ 1CD052930623707200166675
+ PBXProjectModuleLabel
+ Breakpoints
+
+ GeometryConfiguration
+
+ BreakpointsTreeTableConfiguration
+
+ enabledColumn
+ 16
+ breakpointColumn
+ 201.5830078125
+
+ Frame
+ {{0, 0}, {240, 195}}
+ RubberWindowFrame
+ 751 36 240 216 0 0 1280 1002
+
+ Module
+ PBXDebugBreakpointsModule
+ Proportion
+ 195pt
+
+
+ Proportion
+ 195pt
+
+
+ Name
+ Breakpoints
+ ServiceClasses
+
+ PBXDebugBreakpointsModule
+
+ StatusbarIsVisible
+ 0
+ TableOfContents
+
+ 1C78EAB6065D492600B07095
+ 1C78EAB7065D492600B07095
+ 1CD052930623707200166675
+
+ WindowString
+ 751 36 240 216 0 0 1280 1002
+
+
+ FirstTimeWindowDisplayed
+
+ Identifier
+ windowTool.bookmarks
+ IsVertical
+
+ Layout
+
+
+ Dock
+
+
+ BecomeActive
+
+ ContentConfiguration
+
+ PBXProjectModuleGUID
+ E18B49F9082F18C6000E96F5
+ PBXProjectModuleLabel
+ Bookmarks
+
+ GeometryConfiguration
+
+ Frame
+ {{0, 0}, {285, 181}}
+ RubberWindowFrame
+ 352 945 285 201 0 0 1600 1178
+
+ Module
+ PBXBookmarksModule
+ Proportion
+ 181pt
+
+
+ Proportion
+ 181pt
+
+
+ Name
+ Bookmarks
+ ServiceClasses
+
+ PBXBookmarksModule
+
+ StatusbarIsVisible
+
+ TableOfContents
+
+ E18B49FA082F18C6000E96F5
+ E18B49FB082F18C6000E96F5
+ E18B49F9082F18C6000E96F5
+
+ WindowString
+ 352 945 285 201 0 0 1600 1178
+ WindowToolGUID
+ E18B49FA082F18C6000E96F5
+ WindowToolIsVisible
+
+
+
+ Identifier
+ windowTool.classBrowser
+ Layout
+
+
+ Dock
+
+
+ BecomeActive
+ 1
+ ContentConfiguration
+
+ OptionsSetName
+ Hierarchy, all classes
+ PBXProjectModuleGUID
+ 1CA6456E063B45B4001379D8
+ PBXProjectModuleLabel
+ Class Browser - NSObject
+
+ GeometryConfiguration
+
+ ClassesFrame
+ {{0, 0}, {368, 96}}
+ ClassesTreeTableConfiguration
+
+ PBXClassNameColumnIdentifier
+ 208
+ PBXClassBookColumnIdentifier
+ 22
+
+ Frame
+ {{0, 0}, {624, 318}}
+ MembersFrame
+ {{0, 105}, {368, 395}}
+ MembersTreeTableConfiguration
+
+ PBXMemberTypeIconColumnIdentifier
+ 22
+ PBXMemberNameColumnIdentifier
+ 216
+ PBXMemberTypeColumnIdentifier
+ 91
+ PBXMemberBookColumnIdentifier
+ 22
+
+ PBXModuleWindowStatusBarHidden2
+ 1
+ RubberWindowFrame
+ 128 171 624 339 0 0 1440 878
+
+ Module
+ PBXClassBrowserModule
+ Proportion
+ 319pt
+
+
+ Proportion
+ 319pt
+
+
+ Name
+ Class Browser
+ ServiceClasses
+
+ PBXClassBrowserModule
+
+ StatusbarIsVisible
+ 0
+ TableOfContents
+
+ 1C530D60069F1CE1000CFCEE
+ 1C530D61069F1CE1000CFCEE
+ 1CA6456E063B45B4001379D8
+
+ ToolbarConfiguration
+ xcode.toolbar.config.classbrowser
+ WindowString
+ 128 171 624 339 0 0 1440 878
+ WindowToolGUID
+ 1C530D60069F1CE1000CFCEE
+ WindowToolIsVisible
+ 0
+
+
+
+
Index: /trunk/ICeCoffEE/ICeCoffEE/ICeCoffEE APE.xcode/nicholas.pbxuser
===================================================================
--- /trunk/ICeCoffEE/ICeCoffEE/ICeCoffEE APE.xcode/nicholas.pbxuser (revision 181)
+++ /trunk/ICeCoffEE/ICeCoffEE/ICeCoffEE APE.xcode/nicholas.pbxuser (revision 182)
@@ -11,7 +11,9 @@
29B97313FDCFA39411CA2CEA = {
activeBuildStyle = 4A9504CDFFE6A4B311CA0CBA;
- activeExecutable = E1317A3503DF242100050002;
- activeTarget = E120DB7308141CCB00BF8DDC;
+ activeExecutable = E165AB3C03E7BCDE00050002;
+ activeTarget = E1ABAE8D0812F4B2007C5427;
addToTargets = (
+ E1ABAE8D0812F4B2007C5427,
+ E1ABAEBA0812F4B2007C5427,
);
breakpoints = (
@@ -169,5 +171,5 @@
);
};
- PBXPerProjectTemplateStateSaveDate = 137300198;
+ PBXPerProjectTemplateStateSaveDate = 137730838;
PBXPrepackagedSmartGroups_v2 = (
{
@@ -644,60 +646,5 @@
WindowFrame = "{{524, 473}, {756, 352}}";
};
- PBXWorkspaceStateSaveDate = 137300198;
- };
- perUserProjectItems = {
- E18B483F082F0CC5000E96F5 = E18B483F082F0CC5000E96F5;
- E18B4846082F0CF2000E96F5 = E18B4846082F0CF2000E96F5;
- E18B4847082F0CF2000E96F5 = E18B4847082F0CF2000E96F5;
- E18B484A082F0CF2000E96F5 = E18B484A082F0CF2000E96F5;
- E18B497A082F0DFB000E96F5 = E18B497A082F0DFB000E96F5;
- E18B497B082F0DFB000E96F5 = E18B497B082F0DFB000E96F5;
- E18B498F082F10DD000E96F5 = E18B498F082F10DD000E96F5;
- E18B4990082F10DD000E96F5 = E18B4990082F10DD000E96F5;
- E18B4991082F10DD000E96F5 = E18B4991082F10DD000E96F5;
- E18B4992082F10DD000E96F5 = E18B4992082F10DD000E96F5;
- E18B49AC082F12B8000E96F5 = E18B49AC082F12B8000E96F5;
- E18B49AD082F12B8000E96F5 = E18B49AD082F12B8000E96F5;
- E18B49AE082F12B8000E96F5 = E18B49AE082F12B8000E96F5;
- E18B49AF082F12B8000E96F5 = E18B49AF082F12B8000E96F5;
- E18B49B0082F12B8000E96F5 = E18B49B0082F12B8000E96F5;
- E18B49B1082F12B8000E96F5 = E18B49B1082F12B8000E96F5;
- E18B49B2082F12B8000E96F5 = E18B49B2082F12B8000E96F5;
- E18B49B3082F12B8000E96F5 = E18B49B3082F12B8000E96F5;
- E18B49B6082F12BD000E96F5 = E18B49B6082F12BD000E96F5;
- E18B49BF082F12FB000E96F5 = E18B49BF082F12FB000E96F5;
- E18B49C0082F12FB000E96F5 = E18B49C0082F12FB000E96F5;
- E18B49C1082F12FB000E96F5 = E18B49C1082F12FB000E96F5;
- E18B49C2082F12FB000E96F5 = E18B49C2082F12FB000E96F5;
- E18B49C3082F12FB000E96F5 = E18B49C3082F12FB000E96F5;
- E18B49C6082F1309000E96F5 = E18B49C6082F1309000E96F5;
- E18B49C7082F1309000E96F5 = E18B49C7082F1309000E96F5;
- E18B49DC082F1726000E96F5 = E18B49DC082F1726000E96F5;
- E18B49DE082F1726000E96F5 = E18B49DE082F1726000E96F5;
- E18B49E6082F18B7000E96F5 = E18B49E6082F18B7000E96F5;
- E18B49E7082F18B7000E96F5 = E18B49E7082F18B7000E96F5;
- E18B49E8082F18B7000E96F5 = E18B49E8082F18B7000E96F5;
- E18B49E9082F18B7000E96F5 = E18B49E9082F18B7000E96F5;
- E18B49EA082F18B7000E96F5 = E18B49EA082F18B7000E96F5;
- E18B49EB082F18B7000E96F5 = E18B49EB082F18B7000E96F5;
- E18B49EC082F18B7000E96F5 = E18B49EC082F18B7000E96F5;
- E18B49ED082F18B7000E96F5 = E18B49ED082F18B7000E96F5;
- E18B49EE082F18B7000E96F5 = E18B49EE082F18B7000E96F5;
- E18B49EF082F18B7000E96F5 = E18B49EF082F18B7000E96F5;
- E18B49F0082F18B7000E96F5 = E18B49F0082F18B7000E96F5;
- E18B49F1082F18B7000E96F5 = E18B49F1082F18B7000E96F5;
- E18B49F2082F18B7000E96F5 = E18B49F2082F18B7000E96F5;
- E18B49F3082F18B7000E96F5 = E18B49F3082F18B7000E96F5;
- E18B49F4082F18B7000E96F5 = E18B49F4082F18B7000E96F5;
- E18B49F5082F18B7000E96F5 = E18B49F5082F18B7000E96F5;
- E18B49F6082F18B7000E96F5 = E18B49F6082F18B7000E96F5;
- E18B49F7082F18C6000E96F5 = E18B49F7082F18C6000E96F5;
- E18B49F8082F18C6000E96F5 = E18B49F8082F18C6000E96F5;
- E18B49FC082F18CA000E96F5 = E18B49FC082F18CA000E96F5;
- E18B49FD082F18CA000E96F5 = E18B49FD082F18CA000E96F5;
- E18B49FE082F18CF000E96F5 = E18B49FE082F18CF000E96F5;
- E18B49FF082F18CF000E96F5 = E18B49FF082F18CF000E96F5;
- E18B4A02082F18E1000E96F5 = E18B4A02082F18E1000E96F5;
- E18B4A03082F18E1000E96F5 = E18B4A03082F18E1000E96F5;
+ PBXWorkspaceStateSaveDate = 137730838;
};
sourceControlManager = E12B21580548C9B600CFF4E9;
@@ -787,8 +734,8 @@
E12FEC3D04959F5A00AEFBF9 = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {609, 4802}}";
- sepNavSelRange = "{9956, 0}";
- sepNavVisRect = "{{0, 3518}, {609, 566}}";
- sepNavWindowFrame = "{{61, 283}, {750, 502}}";
+ sepNavIntBoundsRect = "{{0, 0}, {793, 3718}}";
+ sepNavSelRange = "{8048, 0}";
+ sepNavVisRect = "{{0, 2030}, {793, 944}}";
+ sepNavWindowFrame = "{{65, 118}, {832, 982}}";
};
};
@@ -902,7 +849,7 @@
E1317B2F03DFC4DE00050002 = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {621, 5687}}";
- sepNavSelRange = "{12497, 0}";
- sepNavVisRect = "{{0, 4344}, {621, 155}}";
+ sepNavIntBoundsRect = "{{0, 0}, {813, 5086}}";
+ sepNavSelRange = "{12661, 13}";
+ sepNavVisRect = "{{0, 3914}, {813, 170}}";
sepNavWindowFrame = "{{84, 262}, {750, 502}}";
};
@@ -921,6 +868,6 @@
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {508, 682}}";
- sepNavSelRange = "{1772, 0}";
- sepNavVisRect = "{{0, 130}, {508, 551}}";
+ sepNavSelRange = "{1665, 38}";
+ sepNavVisRect = "{{0, 99}, {508, 551}}";
sepNavWindowFrame = "{{174, 96}, {547, 589}}";
};
@@ -1022,16 +969,24 @@
E14343B303DB4CF200050002 = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {733, 825}}";
- sepNavSelRange = "{1980, 0}";
- sepNavVisRect = "{{0, 382}, {733, 443}}";
- sepNavWindowFrame = "{{38, 304}, {750, 502}}";
+ sepNavIntBoundsRect = "{{0, 0}, {725, 746}}";
+ sepNavSelRange = "{2148, 0}";
+ sepNavVisRect = "{{0, 0}, {725, 745}}";
+ sepNavWindowFrame = "{{55, 199}, {764, 783}}";
};
};
E14343B403DB4CF200050002 = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {686, 6787}}";
- sepNavSelRange = "{6810, 0}";
- sepNavVisRect = "{{0, 2040}, {686, 353}}";
- sepNavWindowFrame = "{{469, 47}, {750, 502}}";
+ sepNavIntBoundsRect = "{{0, 0}, {774, 6798}}";
+ sepNavSelRange = "{21057, 0}";
+ sepNavVisRect = "{{0, 5995}, {774, 783}}";
+ sepNavWindowFrame = "{{281, 288}, {813, 821}}";
+ };
+ };
+ E14343CD03DB66E900050002 = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {796, 776}}";
+ sepNavSelRange = "{231, 0}";
+ sepNavVisRect = "{{0, 0}, {796, 775}}";
+ sepNavWindowFrame = "{{38, 339}, {835, 813}}";
};
};
@@ -1095,7 +1050,7 @@
E165AB3603E7A7FC00050002 = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {743, 3645}}";
+ sepNavIntBoundsRect = "{{0, 0}, {766, 3612}}";
sepNavSelRange = "{1396, 0}";
- sepNavVisRect = "{{0, 341}, {743, 363}}";
+ sepNavVisRect = "{{0, 0}, {0, 0}}";
sepNavWindowFrame = "{{38, 218}, {750, 502}}";
};
@@ -1239,5 +1194,5 @@
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {686, 622}}";
- sepNavSelRange = "{322, 18}";
+ sepNavSelRange = "{2052, 35}";
sepNavVisRect = "{{0, 0}, {686, 621}}";
sepNavWindowFrame = "{{378, 506}, {725, 659}}";
@@ -1247,580 +1202,22 @@
fileReference = E14343B403DB4CF200050002;
isa = PBXFileBreakpoint;
- lineNumber = 153;
+ lineNumber = 144;
state = 1;
};
- E18B483F082F0CC5000E96F5 = {
- comments = "warning: passing argument 3 of 'CFStringCompare' makes integer from pointer without a cast";
- fRef = F9A6986E03BE1DF000AA4DA5;
- isa = PBXTextBookmark;
- rLen = 1;
- rLoc = 173;
- rType = 1;
- };
- E18B4840082F0CD6000E96F5 = {
- isa = PBXFileReference;
- lastKnownFileType = sourcecode.c.h;
- name = CFString.h;
- path = /Developer/SDKs/MacOSX10.3.9.sdk/System/Library/Frameworks/CoreFoundation.framework/Versions/A/Headers/CFString.h;
- refType = 0;
- sourceTree = "";
- uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {792, 8327}}";
- sepNavSelRange = "{13407, 196}";
- sepNavVisRect = "{{0, 2693}, {792, 928}}";
- sepNavWindowFrame = "{{15, 187}, {831, 986}}";
- };
- };
- E18B4846082F0CF2000E96F5 = {
- fRef = E18B4840082F0CD6000E96F5;
- isa = PBXTextBookmark;
- rLen = 1;
- rLoc = 336;
- rType = 1;
- };
- E18B4847082F0CF2000E96F5 = {
- fRef = E18B4840082F0CD6000E96F5;
- isa = PBXTextBookmark;
- name = CFOptionFlags;
- rLen = 13;
- rLoc = 17210;
- rType = 0;
- vrLen = 4010;
- vrLoc = 15255;
- };
- E18B484A082F0CF2000E96F5 = {
- fRef = F9A6986E03BE1DF000AA4DA5;
- isa = PBXTextBookmark;
- name = CFStringCompare;
- rLen = 15;
- rLoc = 7767;
- rType = 0;
- vrLen = 1604;
- vrLoc = 6944;
- };
- E18B497A082F0DFB000E96F5 = {
- comments = "warning: passing argument 3 of 'CFStringCompare' makes integer from pointer without a cast";
- fRef = F9A6986E03BE1DF000AA4DA5;
- isa = PBXTextBookmark;
- rLen = 1;
- rLoc = 173;
- rType = 1;
- };
- E18B497B082F0DFB000E96F5 = {
- fRef = F9A6986E03BE1DF000AA4DA5;
- isa = PBXTextBookmark;
- name = "if (CFStringCompare(message, kICPreferencesChanged, NULL) == kCFCompareEqualTo)";
- rLen = 83;
- rLoc = 7759;
- rType = 0;
- vrLen = 454;
- vrLoc = 7506;
- };
- E18B498F082F10DD000E96F5 = {
- fRef = F9A6986E03BE1DF000AA4DA5;
- isa = PBXTextBookmark;
- name = "APEMain.m: 174";
- rLen = 0;
- rLoc = 7816;
- rType = 0;
- vrLen = 451;
- vrLoc = 7506;
- };
- E18B4990082F10DD000E96F5 = {
- comments = "warning: pointer targets in passing argument 6 of 'CFStringGetBytes' differ in signedness";
- fRef = E14343B403DB4CF200050002;
- isa = PBXTextBookmark;
- rLen = 1;
- rLoc = 256;
- rType = 1;
- };
- E18B4991082F10DD000E96F5 = {
- fRef = F9A6986E03BE1DF000AA4DA5;
- isa = PBXTextBookmark;
- name = "APEMain.m: 174";
- rLen = 0;
- rLoc = 7816;
- rType = 0;
- vrLen = 451;
- vrLoc = 7506;
- };
- E18B4992082F10DD000E96F5 = {
- fRef = E14343B403DB4CF200050002;
- isa = PBXTextBookmark;
- name = "ICeCoffEE.m: 257";
- rLen = 0;
- rLoc = 8955;
- rType = 0;
- vrLen = 408;
- vrLoc = 8784;
- };
- E18B49AC082F12B8000E96F5 = {
- fRef = E14343B403DB4CF200050002;
- isa = PBXTextBookmark;
- name = "ICeCoffEE.m: 187";
- rLen = 0;
- rLoc = 6810;
- rType = 0;
- vrLen = 1043;
- vrLoc = 6274;
- };
- E18B49AD082F12B8000E96F5 = {
- fRef = E19EB4FA03DD35A700050002;
- isa = PBXTextBookmark;
- name = "cachedVersion = NULL;";
- rLen = 23;
- rLoc = 1186;
- rType = 0;
- vrLen = 1076;
- vrLoc = 797;
- };
- E18B49AE082F12B8000E96F5 = {
- fRef = E169DBA103E4EF5E00050002;
- isa = PBXTextBookmark;
- name = "Delay(blinkDelay, &junk);";
- rLen = 42;
- rLoc = 7867;
- rType = 0;
- vrLen = 1177;
- vrLoc = 7166;
- };
- E18B49AF082F12B8000E96F5 = {
- comments = "warning: value computed is not used";
- fRef = E1BF166A03DBE27000050002;
- isa = PBXTextBookmark;
- rLen = 1;
- rLoc = 139;
- rType = 1;
- };
- E18B49B0082F12B8000E96F5 = {
- fRef = E14343B403DB4CF200050002;
- isa = PBXTextBookmark;
- name = "ICeCoffEE.m: 187";
- rLen = 0;
- rLoc = 6810;
- rType = 0;
- vrLen = 1043;
- vrLoc = 6274;
- };
- E18B49B1082F12B8000E96F5 = {
- fRef = E19EB4FA03DD35A700050002;
- isa = PBXTextBookmark;
- name = "cachedVersion = NULL;";
- rLen = 23;
- rLoc = 1186;
- rType = 0;
- vrLen = 1076;
- vrLoc = 797;
- };
- E18B49B2082F12B8000E96F5 = {
- fRef = E169DBA103E4EF5E00050002;
- isa = PBXTextBookmark;
- name = "Delay(blinkDelay, &junk);";
- rLen = 42;
- rLoc = 7867;
- rType = 0;
- vrLen = 1177;
- vrLoc = 7166;
- };
- E18B49B3082F12B8000E96F5 = {
- fRef = E1BF166A03DBE27000050002;
- isa = PBXTextBookmark;
- name = "ICLog(@\"selectedRange %@ selectionRect %@ textBlinkCount %d\", NSStringFromRange(selectedRange), NSStringFromRect(selectionRect), ICCF_prefs.textBlinkCount);";
- rLen = 161;
- rLoc = 4705;
- rType = 0;
- vrLen = 1469;
- vrLoc = 3678;
- };
- E18B49B6082F12BD000E96F5 = {
- fRef = E1BF166A03DBE27000050002;
- isa = PBXTextBookmark;
- name = "ICLog(@\"selectedRange %@ selectionRect %@ textBlinkCount %d\", NSStringFromRange(selectedRange), NSStringFromRect(selectionRect), ICCF_prefs.textBlinkCount);";
- rLen = 161;
- rLoc = 4705;
- rType = 0;
- vrLen = 1469;
- vrLoc = 3678;
- };
- E18B49BF082F12FB000E96F5 = {
- fRef = E1BF166A03DBE27000050002;
- isa = PBXTextBookmark;
- name = "ICLog(@\"selectedRange %@ selectionRect %@ textBlinkCount %d\", NSStringFromRange(selectedRange), NSStringFromRect(selectionRect), ICCF_prefs.textBlinkCount);";
- rLen = 161;
- rLoc = 4705;
- rType = 0;
- vrLen = 1469;
- vrLoc = 3678;
- };
- E18B49C0082F12FB000E96F5 = {
- fRef = E1BF4A4D0487C77C00C20906;
- isa = PBXTextBookmark;
- name = "German: 1";
- rLen = 0;
- rLoc = 15;
- rType = 0;
- vrLen = 374;
- vrLoc = 0;
- };
- E18B49C1082F12FB000E96F5 = {
- fRef = 089C165DFE840E0CC02AAC07;
- isa = PBXTextBookmark;
- rLen = 3;
- rLoc = 103;
- rType = 0;
- };
- E18B49C2082F12FB000E96F5 = {
- fRef = E1BF4A4D0487C77C00C20906;
- isa = PBXTextBookmark;
- name = "German: 1";
- rLen = 0;
- rLoc = 15;
- rType = 0;
- vrLen = 374;
- vrLoc = 0;
- };
- E18B49C3082F12FB000E96F5 = {
- fRef = 089C165DFE840E0CC02AAC07;
- isa = PBXTextBookmark;
- name = "English: 5";
- rLen = 0;
- rLoc = 113;
- rType = 0;
- vrLen = 238;
- vrLoc = 0;
- };
- E18B49C6082F1309000E96F5 = {
- fRef = E1BF166A03DBE27000050002;
- isa = PBXTextBookmark;
- name = "ICLog(@\"selectedRange %@ selectionRect %@ textBlinkCount %d\", NSStringFromRange(selectedRange), NSStringFromRect(selectionRect), ICCF_prefs.textBlinkCount);";
- rLen = 161;
- rLoc = 4705;
- rType = 0;
- vrLen = 1469;
- vrLoc = 3678;
- };
- E18B49C7082F1309000E96F5 = {
- fRef = 089C165DFE840E0CC02AAC07;
- isa = PBXTextBookmark;
- name = "English: 5";
- rLen = 0;
- rLoc = 113;
- rType = 0;
- vrLen = 238;
- vrLoc = 0;
- };
- E18B49C8082F142B000E96F5 = {
- isa = PBXFileReference;
- lastKnownFileType = sourcecode.c.h;
- name = OSUtils.h;
- path = /Developer/SDKs/MacOSX10.3.9.sdk/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/Headers/OSUtils.h;
- refType = 0;
- sourceTree = "";
- uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {758, 6116}}";
- sepNavSelRange = "{8211, 7}";
- sepNavVisRect = "{{0, 3074}, {758, 353}}";
- };
- };
- E18B49CF082F1466000E96F5 = {
- isa = PBXFileReference;
- lastKnownFileType = sourcecode.c.h;
- name = CFURL.h;
- path = /Developer/SDKs/MacOSX10.3.9.sdk/System/Library/Frameworks/CoreFoundation.framework/Versions/A/Headers/CFURL.h;
- refType = 0;
- sourceTree = "";
- uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {758, 4642}}";
- sepNavSelRange = "{1704, 13}";
- sepNavVisRect = "{{0, 308}, {758, 353}}";
- };
- };
- E18B49DC082F1726000E96F5 = {
- fRef = E18B49DD082F1726000E96F5;
- isa = PBXTextBookmark;
- rLen = 0;
- rLoc = 2147483647;
- rType = 0;
- };
- E18B49DD082F1726000E96F5 = {
- isa = PBXFileReference;
- lastKnownFileType = sourcecode.c.h;
- name = LSInfo.h;
- path = /Developer/SDKs/MacOSX10.3.9.sdk/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Headers/LSInfo.h;
- refType = 0;
- sourceTree = "";
- uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {686, 12155}}";
- sepNavSelRange = "{33879, 24}";
- sepNavVisRect = "{{0, 11533}, {686, 621}}";
- sepNavWindowFrame = "{{567, 115}, {725, 659}}";
- };
- };
- E18B49DE082F1726000E96F5 = {
- fRef = E18B49DF082F1726000E96F5;
- isa = PBXTextBookmark;
- name = LSCopyApplicationURLsFor;
- rLen = 24;
- rLoc = 33879;
- rType = 0;
- vrLen = 1563;
- vrLoc = 32560;
- };
- E18B49DF082F1726000E96F5 = {
- isa = PBXFileReference;
- name = LSInfo.h;
- path = /Developer/SDKs/MacOSX10.3.9.sdk/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Headers/LSInfo.h;
- refType = 0;
- sourceTree = "";
- };
- E18B49E6082F18B7000E96F5 = {
- fRef = E1BF166A03DBE27000050002;
- isa = PBXTextBookmark;
- name = "ICLog(@\"selectedRange %@ selectionRect %@ textBlinkCount %d\", NSStringFromRange(selectedRange), NSStringFromRect(selectionRect), ICCF_prefs.textBlinkCount);";
- rLen = 161;
- rLoc = 4705;
- rType = 0;
- vrLen = 1469;
- vrLoc = 3678;
- };
- E18B49E7082F18B7000E96F5 = {
- fRef = E18B49C8082F142B000E96F5;
- isa = PBXTextBookmark;
- name = "Delay(";
- rLen = 7;
- rLoc = 8211;
- rType = 0;
- vrLen = 855;
- vrLoc = 7848;
- };
- E18B49E8082F18B7000E96F5 = {
- fRef = E169DBA103E4EF5E00050002;
- isa = PBXTextBookmark;
- name = "ICeCoffEETextEdit.c: 148";
- rLen = 0;
- rLoc = 7587;
- rType = 0;
- vrLen = 1184;
- vrLoc = 7166;
- };
- E18B49E9082F18B7000E96F5 = {
- fRef = E19EB4FC03DD35A700050002;
- isa = PBXTextBookmark;
- name = "UICookieMonster.h: 1";
- rLen = 0;
- rLoc = 0;
- rType = 0;
- vrLen = 829;
- vrLoc = 0;
- };
- E18B49EA082F18B7000E96F5 = {
- fRef = E19EB4FA03DD35A700050002;
- isa = PBXTextBookmark;
- name = "UICookieMonster.m: 106";
- rLen = 0;
- rLoc = 2865;
- rType = 0;
- vrLen = 416;
- vrLoc = 2659;
- };
- E18B49EB082F18B7000E96F5 = {
- fRef = E18B49CF082F1466000E96F5;
- isa = PBXTextBookmark;
- name = "const UInt8 *";
- rLen = 13;
- rLoc = 1704;
- rType = 0;
- vrLen = 1664;
- vrLoc = 848;
- };
- E18B49EC082F18B7000E96F5 = {
- fRef = E165AB3603E7A7FC00050002;
- isa = PBXTextBookmark;
- name = CFURLCreateWithBytes;
- rLen = 20;
- rLoc = 12005;
- rType = 0;
- vrLen = 976;
- vrLoc = 11724;
- };
- E18B49ED082F18B7000E96F5 = {
- fRef = E1BF166A03DBE27000050002;
- isa = PBXTextBookmark;
- name = "ICLog(@\"selectedRange %@ selectionRect %@ textBlinkCount %d\", NSStringFromRange(selectedRange), NSStringFromRect(selectionRect), ICCF_prefs.textBlinkCount);";
- rLen = 161;
- rLoc = 4705;
- rType = 0;
- vrLen = 1469;
- vrLoc = 3678;
- };
- E18B49EE082F18B7000E96F5 = {
- fRef = E169DBA103E4EF5E00050002;
- isa = PBXTextBookmark;
- name = "ICeCoffEETextEdit.c: 148";
- rLen = 0;
- rLoc = 7587;
- rType = 0;
- vrLen = 1184;
- vrLoc = 7166;
- };
- E18B49EF082F18B7000E96F5 = {
- fRef = E19EB4FA03DD35A700050002;
- isa = PBXTextBookmark;
- name = "UICookieMonster.m: 45";
- rLen = 0;
- rLoc = 1200;
- rType = 0;
- vrLen = 1076;
- vrLoc = 797;
- };
- E18B49F0082F18B7000E96F5 = {
- fRef = E19EB4FC03DD35A700050002;
- isa = PBXTextBookmark;
- name = "UICookieMonster.h: 1";
- rLen = 0;
- rLoc = 0;
- rType = 0;
- vrLen = 829;
- vrLoc = 0;
- };
- E18B49F1082F18B7000E96F5 = {
- fRef = E19EB4FA03DD35A700050002;
- isa = PBXTextBookmark;
- name = "UICookieMonster.m: 45";
- rLen = 0;
- rLoc = 1200;
- rType = 0;
- vrLen = 1076;
- vrLoc = 797;
- };
- E18B49F2082F18B7000E96F5 = {
- fRef = E19EB4FC03DD35A700050002;
- isa = PBXTextBookmark;
- name = "UICookieMonster.h: 1";
- rLen = 0;
- rLoc = 0;
- rType = 0;
- vrLen = 829;
- vrLoc = 0;
- };
- E18B49F3082F18B7000E96F5 = {
- fRef = E19EB4FA03DD35A700050002;
- isa = PBXTextBookmark;
- name = "UICookieMonster.m: 106";
- rLen = 0;
- rLoc = 2865;
- rType = 0;
- vrLen = 416;
- vrLoc = 2659;
- };
- E18B49F4082F18B7000E96F5 = {
- fRef = E18B49CF082F1466000E96F5;
- isa = PBXTextBookmark;
- name = "const UInt8 *";
- rLen = 13;
- rLoc = 1704;
- rType = 0;
- vrLen = 1664;
- vrLoc = 848;
- };
- E18B49F5082F18B7000E96F5 = {
- fRef = E165AB3603E7A7FC00050002;
- isa = PBXTextBookmark;
- name = "ICeCoffEEAction.c: 36";
- rLen = 0;
- rLoc = 1396;
- rType = 0;
- vrLen = 1588;
- vrLoc = 975;
- };
- E18B49F6082F18B7000E96F5 = {
- fRef = 089C165DFE840E0CC02AAC07;
- isa = PBXTextBookmark;
- name = "English: 5";
- rLen = 0;
- rLoc = 113;
- rType = 0;
- vrLen = 238;
- vrLoc = 0;
- };
- E18B49F7082F18C6000E96F5 = {
- fRef = E165AB3603E7A7FC00050002;
- isa = PBXTextBookmark;
- name = "ICeCoffEEAction.c: 36";
- rLen = 0;
- rLoc = 1396;
- rType = 0;
- vrLen = 1588;
- vrLoc = 975;
- };
- E18B49F8082F18C6000E96F5 = {
- fRef = 089C165DFE840E0CC02AAC07;
- isa = PBXTextBookmark;
- name = "English: 5";
- rLen = 0;
- rLoc = 113;
- rType = 0;
- vrLen = 238;
- vrLoc = 0;
- };
- E18B49FC082F18CA000E96F5 = {
- fRef = E165AB3603E7A7FC00050002;
- isa = PBXTextBookmark;
- name = "ICeCoffEEAction.c: 36";
- rLen = 0;
- rLoc = 1396;
- rType = 0;
- vrLen = 1588;
- vrLoc = 975;
- };
- E18B49FD082F18CA000E96F5 = {
- fRef = 089C165DFE840E0CC02AAC07;
- isa = PBXTextBookmark;
- name = "English: 5";
- rLen = 0;
- rLoc = 113;
- rType = 0;
- vrLen = 238;
- vrLoc = 0;
- };
- E18B49FE082F18CF000E96F5 = {
- fRef = E165AB3603E7A7FC00050002;
- isa = PBXTextBookmark;
- name = "ICeCoffEEAction.c: 36";
- rLen = 0;
- rLoc = 1396;
- rType = 0;
- vrLen = 1588;
- vrLoc = 975;
- };
- E18B49FF082F18CF000E96F5 = {
- fRef = 089C165DFE840E0CC02AAC07;
- isa = PBXTextBookmark;
- name = "English: 5";
- rLen = 0;
- rLoc = 113;
- rType = 0;
- vrLen = 238;
- vrLoc = 0;
- };
- E18B4A02082F18E1000E96F5 = {
- fRef = E165AB3603E7A7FC00050002;
- isa = PBXTextBookmark;
- name = "ICeCoffEEAction.c: 36";
- rLen = 0;
- rLoc = 1396;
- rType = 0;
- vrLen = 1588;
- vrLoc = 975;
- };
- E18B4A03082F18E1000E96F5 = {
- fRef = 089C165DFE840E0CC02AAC07;
- isa = PBXTextBookmark;
- name = "English: 5";
- rLen = 0;
- rLoc = 113;
- rType = 0;
- vrLen = 238;
- vrLoc = 0;
+ E191FC9C0831B8FB003B09BC = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {739, 541}}";
+ sepNavSelRange = "{231, 0}";
+ sepNavVisRect = "{{0, 0}, {739, 540}}";
+ sepNavWindowFrame = "{{245, 385}, {778, 578}}";
+ };
+ };
+ E191FC9D0831B8FB003B09BC = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {739, 541}}";
+ sepNavSelRange = "{336, 0}";
+ sepNavVisRect = "{{0, 0}, {739, 540}}";
+ sepNavWindowFrame = "{{268, 364}, {778, 578}}";
+ };
};
E19EB4FA03DD35A700050002 = {
@@ -1967,39 +1364,40 @@
E1BF166A03DBE27000050002 = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {758, 2050}}";
- sepNavSelRange = "{4705, 161}";
- sepNavVisRect = "{{0, 1329}, {758, 353}}";
+ sepNavIntBoundsRect = "{{0, 0}, {828, 1258}}";
+ sepNavSelRange = "{833, 0}";
+ sepNavVisRect = "{{0, 11}, {828, 868}}";
+ sepNavWindowFrame = "{{95, 122}, {867, 906}}";
+ };
+ };
+ E1BF166B03DBE27000050002 = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {711, 465}}";
+ sepNavSelRange = "{232, 0}";
+ sepNavVisRect = "{{0, 0}, {711, 464}}";
+ sepNavWindowFrame = "{{199, 71}, {750, 502}}";
+ };
+ };
+ E1BF166C03DBE27000050002 = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {711, 465}}";
+ sepNavSelRange = "{224, 0}";
+ sepNavVisRect = "{{0, 0}, {711, 464}}";
+ sepNavWindowFrame = "{{222, 50}, {750, 502}}";
+ };
+ };
+ E1BF166D03DBE27000050002 = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {711, 465}}";
+ sepNavSelRange = "{0, 0}";
+ sepNavVisRect = "{{0, 0}, {711, 464}}";
sepNavWindowFrame = "{{61, 197}, {750, 502}}";
};
};
- E1BF166B03DBE27000050002 = {
- uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {735, 464}}";
- sepNavSelRange = "{232, 0}";
- sepNavVisRect = "{{0, 0}, {735, 464}}";
- sepNavWindowFrame = "{{199, 71}, {750, 502}}";
- };
- };
- E1BF166C03DBE27000050002 = {
- uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {735, 464}}";
- sepNavSelRange = "{224, 0}";
- sepNavVisRect = "{{0, 0}, {735, 464}}";
- sepNavWindowFrame = "{{222, 50}, {750, 502}}";
- };
- };
- E1BF166D03DBE27000050002 = {
- uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {735, 464}}";
- sepNavSelRange = "{0, 0}";
- sepNavVisRect = "{{0, 0}, {735, 464}}";
- sepNavWindowFrame = "{{61, 197}, {750, 502}}";
- };
- };
E1BF167203DBEAA000050002 = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {585, 4059}}";
- sepNavSelRange = "{4814, 0}";
- sepNavVisRect = "{{0, 2104}, {585, 566}}";
+ sepNavIntBoundsRect = "{{0, 0}, {796, 3157}}";
+ sepNavSelRange = "{70, 0}";
+ sepNavVisRect = "{{0, 0}, {796, 775}}";
+ sepNavWindowFrame = "{{61, 318}, {835, 813}}";
};
};
@@ -2047,10 +1445,18 @@
};
};
+ F56276BA03796C8B01AA4DA5 = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {828, 2332}}";
+ sepNavSelRange = "{4066, 61}";
+ sepNavVisRect = "{{0, 1463}, {828, 868}}";
+ sepNavWindowFrame = "{{38, 246}, {867, 906}}";
+ };
+ };
F56276C20379923401AA4DA5 = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {735, 5823}}";
- sepNavSelRange = "{7948, 0}";
- sepNavVisRect = "{{0, 2619}, {735, 464}}";
- sepNavWindowFrame = "{{59, 150}, {750, 502}}";
+ sepNavIntBoundsRect = "{{0, 0}, {739, 5988}}";
+ sepNavSelRange = "{16837, 0}";
+ sepNavVisRect = "{{0, 2531}, {739, 540}}";
+ sepNavWindowFrame = "{{59, 74}, {778, 578}}";
};
};
@@ -2066,6 +1472,6 @@
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {711, 3613}}";
- sepNavSelRange = "{7816, 0}";
- sepNavVisRect = "{{0, 1956}, {711, 444}}";
+ sepNavSelRange = "{9679, 0}";
+ sepNavVisRect = "{{0, 2432}, {711, 464}}";
sepNavWindowFrame = "{{440, 49}, {750, 502}}";
};
@@ -2080,7 +1486,8 @@
F9A6987103BE1DFF00AA4DA5 = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {840, 2027}}";
+ sepNavIntBoundsRect = "{{0, 0}, {828, 1870}}";
sepNavSelRange = "{4986, 0}";
- sepNavVisRect = "{{0, 0}, {0, 0}}";
+ sepNavVisRect = "{{0, 1001}, {828, 868}}";
+ sepNavWindowFrame = "{{15, 267}, {867, 906}}";
};
};
Index: /trunk/ICeCoffEE/ICeCoffEE/ICeCoffEE APE.xcode/project.pbxproj
===================================================================
--- /trunk/ICeCoffEE/ICeCoffEE/ICeCoffEE APE.xcode/project.pbxproj (revision 181)
+++ /trunk/ICeCoffEE/ICeCoffEE/ICeCoffEE APE.xcode/project.pbxproj (revision 182)
@@ -208,4 +208,5 @@
buildSettings = {
COPY_PHASE_STRIP = YES;
+ GCC_C_LANGUAGE_STANDARD = c99;
GCC_ENABLE_FIX_AND_CONTINUE = NO;
ZERO_LINK = NO;
@@ -352,4 +353,5 @@
refType = 4;
sourceTree = "";
+ wrapsLines = 1;
};
E12FEC3E04959F5A00AEFBF9 = {
@@ -510,5 +512,5 @@
);
isa = PBXGroup;
- name = "APE Manager plugin sources";
+ name = "APE preference pane plugin sources";
path = "";
refType = 4;
@@ -567,4 +569,6 @@
E135625E03DC9FC200050002,
E182C8F603DE817F00050002,
+ E191FC9C0831B8FB003B09BC,
+ E191FC9D0831B8FB003B09BC,
);
isa = PBXGroup;
@@ -632,4 +636,44 @@
refType = 4;
sourceTree = "";
+ };
+ E191FC9C0831B8FB003B09BC = {
+ fileEncoding = 4;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ path = ICeCoffEESetServicesMenu.h;
+ refType = 4;
+ sourceTree = "";
+ };
+ E191FC9D0831B8FB003B09BC = {
+ fileEncoding = 4;
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.objc;
+ path = ICeCoffEESetServicesMenu.m;
+ refType = 4;
+ sourceTree = "";
+ };
+ E191FC9E0831B8FB003B09BC = {
+ fileRef = E191FC9C0831B8FB003B09BC;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ E191FC9F0831B8FB003B09BC = {
+ fileRef = E191FC9D0831B8FB003B09BC;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ E191FCA00831B8FB003B09BC = {
+ fileRef = E191FC9C0831B8FB003B09BC;
+ isa = PBXBuildFile;
+ settings = {
+ };
+ };
+ E191FCA10831B8FB003B09BC = {
+ fileRef = E191FC9D0831B8FB003B09BC;
+ isa = PBXBuildFile;
+ settings = {
+ };
};
E19EB4F503DD359100050002 = {
@@ -735,4 +779,5 @@
E1ABAE9C0812F4B2007C5427,
E1ABAE9D0812F4B2007C5427,
+ E191FC9E0831B8FB003B09BC,
);
isa = PBXHeadersBuildPhase;
@@ -861,4 +906,5 @@
E1ABAEAE0812F4B2007C5427,
E1ABAEAF0812F4B2007C5427,
+ E191FC9F0831B8FB003B09BC,
);
isa = PBXSourcesBuildPhase;
@@ -1054,4 +1100,5 @@
E1ABAEC10812F4B2007C5427,
E1ABAEC20812F4B2007C5427,
+ E191FCA00831B8FB003B09BC,
);
isa = PBXHeadersBuildPhase;
@@ -1132,4 +1179,5 @@
E1ABAECD0812F4B2007C5427,
E1ABAECE0812F4B2007C5427,
+ E191FCA10831B8FB003B09BC,
);
isa = PBXSourcesBuildPhase;
@@ -1493,4 +1541,5 @@
E1BF166A03DBE27000050002 = {
fileEncoding = 30;
+ indentWidth = 4;
isa = PBXFileReference;
lastKnownFileType = sourcecode.c.objc;
@@ -1498,4 +1547,6 @@
refType = 4;
sourceTree = "";
+ tabWidth = 8;
+ usesTabs = 1;
};
E1BF166B03DBE27000050002 = {
Index: /trunk/ICeCoffEE/ICeCoffEE/ICeCoffEE.m
===================================================================
--- /trunk/ICeCoffEE/ICeCoffEE/ICeCoffEE.m (revision 181)
+++ /trunk/ICeCoffEE/ICeCoffEE/ICeCoffEE.m (revision 182)
@@ -1,18 +1,8 @@
-// ICeCoffEE - Internet Config Cocoa Editor Extension
+// ICeCoffEE - Internet Config Carbon/Cocoa Editor Extension
// Nicholas Riley
/* To do/think about:
-- TXNClick - MLTE has its own support in Jaguar and later, but it's lousy
-
-Done:
-
-- TEClick - TextEdit
-- flash on success (like BBEdit)
-- display dialog on failure (decode OSStatus)
-- adjust URL blinking
-- app exclusion list - make a pref pane (see AquaShade config)
-- _LSCopyApplicationURLsForItemURL - list apps
-- Menu on command-option-click: add bookmark, open with other helper, pass to configurable service, ...?
+- TXNClick - MLTE has its own (lousy) support in Jaguar, seems improved in Panther, good enough to leave?
*/
@@ -22,4 +12,5 @@
#include
#import "ICeCoffEESuper.h"
+#import "ICeCoffEESetServicesMenu.h"
iccfPrefRec ICCF_prefs;
@@ -91,7 +82,7 @@
[set autorelease];
- [set formUnionWithCharacterSet: [[NSCharacterSet characterSetWithRange: NSMakeRange(0, 128)] invertedSet]]; // remove non-ASCII characters
+ [set formUnionWithCharacterSet: [[NSCharacterSet characterSetWithRange: NSMakeRange(0x21, 0x5e)] invertedSet]]; // nonprintable and non-ASCII characters
[set formUnionWithCharacterSet: [NSCharacterSet punctuationCharacterSet]];
- [set removeCharactersInString: @";/?:@&=+$,-_.!~*'()%#"]; // RFC 2396 ¤2.2, 2.3, 2.4, plus #
+ [set removeCharactersInString: @";/?:@&=+$,-_.!~*'()%#"]; // RFC 2396 ¤2.2, 2.3, 2.4, plus % and # from "delims" set
tmpSet = [[set mutableCopy] autorelease];
@@ -198,19 +189,25 @@
}
+// input/output 'range' is the range of source document which contains 'string'
void ICCF_ParseURL(NSString *string, NSRange *range) {
OSStatus err;
Handle h;
- long selStart, selEnd;
+ long selStart = 0, selEnd = range->length; // local offsets within 'string'
char *urlData = NULL;
- NSCAssert(range->length == [string length], @"Internal error: URL string is wrong length");
+ NSCAssert(selEnd == [string length], @"Internal error: URL string is wrong length");
NS_DURING
if ([[NSCharacterSet characterSetWithCharactersInString: @";,."] characterIsMember:
- [string characterAtIndex: range->length - 1]]) {
- range->length--;
- }
-
- string = [string substringToIndex: range->length];
+ [string characterAtIndex: selEnd - 1]]) {
+ selEnd--;
+ }
+ NSCharacterSet *alphanumericCharacterSet = [NSCharacterSet alphanumericCharacterSet];
+ while (![alphanumericCharacterSet characterIsMember: [string characterAtIndex: selStart]]) {
+ selStart++;
+ NSCAssert(selStart < selEnd, @"No URL is selected");
+ }
+
+ string = [string substringWithRange: NSMakeRange(selStart, selEnd - selStart)];
ICLog(@"Parsing URL |%@|", string);
@@ -221,6 +218,5 @@
NSCAssert(urlData != NULL, @"Internal error: can't allocate memory for URL string");
- selStart = 0; selEnd = range->length;
-
+ // XXX getCString: is deprecated in 10.4, but this is safe and shouldn't assert because we've already verified the string can be converted to ASCII, which should be a subset of any possible system encoding. The replacement (getCString:maxLength:encoding:) is not available until 10.4, so we leave this until we dump Internet Config and gain IDN friendliness.
[string getCString: urlData];
@@ -402,14 +398,23 @@
NSMenuItem *ICCF_ServicesMenuItem() {
NSMenuItem *servicesItem;
- NSMenu *servicesMenu;
- // don't want to use [[NSApp servicesMenu] title] because the Services menu may not have been created yet
- NSString *servicesTitle = [[NSBundle bundleWithIdentifier: @"com.apple.AppKit"] localizedStringForKey: @"Services" value: nil table: @"ServicesMenu"];
- if (servicesTitle == nil) {
- ICLog(@"Can't get localized text for 'Services' in AppKit.framework");
- servicesTitle = @"Services";
+ NSString *servicesTitle = nil;
+ NSMenu *servicesMenu = [NSApp servicesMenu];
+
+ if (servicesMenu != nil) {
+ servicesTitle = [servicesMenu title];
+ if (servicesTitle == nil) {
+ ICLog(@"Can't get service menu title");
+ servicesTitle = @"Services";
+ }
+ } else {
+ servicesTitle = [[NSBundle bundleWithIdentifier: @"com.apple.AppKit"] localizedStringForKey: @"Services" value: nil table: @"ServicesMenu"];
+ if (servicesTitle == nil) {
+ ICLog(@"Can't get localized text for 'Services' in AppKit.framework");
+ servicesTitle = @"Services";
+ }
}
servicesMenu = [[NSMenu alloc] initWithTitle: servicesTitle];
servicesItem = [[NSMenuItem alloc] initWithTitle: servicesTitle action:nil keyEquivalent:@""];
- [[NSApplication sharedApplication] setServicesMenu: servicesMenu];
+ ICCF_SetServicesMenu(servicesMenu);
[servicesItem setSubmenu: servicesMenu];
[servicesItem setRepresentedObject: ICCF_SERVICES_ITEM];
@@ -448,4 +453,5 @@
}
} else {
+ [menuItem setKeyEquivalent: @""];
shouldKeepItem = [menuItem isEnabled];
}
@@ -494,4 +500,10 @@
}
+
+@interface NSTextView (IC_NSSharing)
+// only in Mac OS X 10.4 and later
+- (NSArray *)selectedRanges;
+@end
+
@implementation ICeCoffEE
@@ -536,5 +548,14 @@
#endif
if (ICCF_enabled && ICCF_prefs.commandClickEnabled && ICCF_EventIsCommandMouseDown(e)) {
- // don't want to trigger selection extension or anything else; pass through as a plain click
+ if ([self respondsToSelector: @selector(selectedRanges)]) {
+ // discontiguous selection support, Mac OS X 10.4 or later
+ NSArray *ranges = [self selectedRanges];
+ ICLog(@"ICeCoffEE selected ranges: %@", ranges);
+ if ([ranges count] > 1 || [[ranges objectAtIndex: 0] rangeValue].length != 0)
+ goto bypass;
+ } else {
+ // don't want to trigger selection extension or anything else; pass through as a plain click
+ // (on Panther and earlier, command does not modify behavior)
+ }
[super mouseDown: [NSEvent mouseEventWithType: NSLeftMouseDown location: [e locationInWindow] modifierFlags: 0 timestamp: [e timestamp] windowNumber: [e windowNumber] context: [e context] eventNumber: [e eventNumber] clickCount: 1 pressure: 0]];
// we don't actually get a mouseUp event, just wait for mouseDown to return
@@ -548,4 +569,5 @@
}
} else {
+bypass:
[super mouseDown: e];
}
Index: /trunk/ICeCoffEE/ICeCoffEE/ICeCoffEEServicePrefController.m
===================================================================
--- /trunk/ICeCoffEE/ICeCoffEE/ICeCoffEEServicePrefController.m (revision 181)
+++ /trunk/ICeCoffEE/ICeCoffEE/ICeCoffEEServicePrefController.m (revision 182)
@@ -8,4 +8,5 @@
#import "ICeCoffEEShared.h"
+#import "ICeCoffEESetServicesMenu.h"
#import "ICeCoffEEServicePrefController.h"
#import "ICeCoffEENonHighlightingButtonCell.h"
@@ -222,7 +223,7 @@
{
if (servicesMenu == nil) {
- servicesMenu = [[NSMenu alloc] initWithTitle: @""];
- [[NSApplication sharedApplication] setServicesMenu: servicesMenu];
- [servicesMenu update];
+ servicesMenu = [[NSMenu alloc] initWithTitle: @""];
+ ICCF_SetServicesMenu(servicesMenu);
+ [servicesMenu update]; // XXX necessary on 10.3? or anywhere?
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSDictionary *icDefaults = [defaults persistentDomainForName: (NSString *)kICBundleIdentifier];
Index: /trunk/ICeCoffEE/ICeCoffEE/ICeCoffEESetServicesMenu.h
===================================================================
--- /trunk/ICeCoffEE/ICeCoffEE/ICeCoffEESetServicesMenu.h (revision 182)
+++ /trunk/ICeCoffEE/ICeCoffEE/ICeCoffEESetServicesMenu.h (revision 182)
@@ -0,0 +1,11 @@
+//
+// ICeCoffEESetServicesMenu.h
+// ICeCoffEE APE
+//
+// Created by Nicholas Riley on 5/10/05.
+// Copyright 2005 Nicholas Riley. All rights reserved.
+//
+
+#import
+
+void ICCF_SetServicesMenu(NSMenu *servicesMenu);
Index: /trunk/ICeCoffEE/ICeCoffEE/ICeCoffEESetServicesMenu.m
===================================================================
--- /trunk/ICeCoffEE/ICeCoffEE/ICeCoffEESetServicesMenu.m (revision 182)
+++ /trunk/ICeCoffEE/ICeCoffEE/ICeCoffEESetServicesMenu.m (revision 182)
@@ -0,0 +1,32 @@
+//
+// ICeCoffEESetServicesMenu.m
+// ICeCoffEE APE
+//
+// Created by Nicholas Riley on 5/10/05.
+// Copyright 2005 Nicholas Riley. All rights reserved.
+//
+
+#import "ICeCoffEESetServicesMenu.h"
+
+
+void ICCF_SetServicesMenu(NSMenu *servicesMenu) {
+ // in 10.3, this populates the menu; in 10.4, it attaches a delegate (NSServiceMaster)
+ [[NSApplication sharedApplication] setServicesMenu: servicesMenu];
+ id delegate;
+ if ( (delegate = [servicesMenu delegate]) != nil) {
+ // populate menu so we have something to filter
+ if ([delegate respondsToSelector: @selector(menuNeedsUpdate:)]) {
+ [delegate menuNeedsUpdate: servicesMenu];
+ }
+ if ([delegate respondsToSelector: @selector(menu:updateItem:atIndex:shouldCancel:)]) {
+ int itemCount = [delegate numberOfItemsInMenu: servicesMenu];
+ for (int i = 0 ; i < itemCount ; i++) {
+ [servicesMenu addItemWithTitle: @"" action: NULL keyEquivalent: @""];
+ }
+ for (int i = 0 ; i < itemCount ; i++) {
+ if (![delegate menu: servicesMenu updateItem: (NSMenuItem *)[servicesMenu itemAtIndex: i] atIndex: i shouldCancel: NO])
+ break;
+ }
+ }
+ }
+}
Index: /trunk/ICeCoffEE/ICeCoffEE/ICeCoffEEWebKit.m
===================================================================
--- /trunk/ICeCoffEE/ICeCoffEE/ICeCoffEEWebKit.m (revision 181)
+++ /trunk/ICeCoffEE/ICeCoffEE/ICeCoffEEWebKit.m (revision 182)
@@ -15,19 +15,8 @@
- (NSDictionary *)elementAtPoint:(NSPoint)point;
- (NSString *)selectedString;
-- (void)deselectAll;
-
-// only in Safari 1.0-1.2
-- (void)setSelectionFrom:(id /* WebDOMNode */)start startOffset:(int)startOffset to:(id /* WebDOMNode */)end endOffset:(int) endOffset;
-
-- (id /* WebDOMNode */)selectionStart;
-- (int)selectionStartOffset;
-- (id /* WebDOMNode */)selectionEnd;
-- (int)selectionEndOffset;
-
-// only in Safari 1.1-1.2
- (NSRect)selectionRect;
-// only in Safari 1.3
- (void)selectNSRange:(NSRange)range;
+- (void)deselectAll;
@end
@@ -38,5 +27,4 @@
- (WebCoreBridge *)_bridge;
-// only in Safari 1.3
- (NSRange)selectedRange;
@@ -52,34 +40,4 @@
static NSEvent *downEvent = nil;
-
-// used in Safari < 1.3 because there's no sane way to set the selection
-typedef struct {
- int startOffset;
- int endOffset;
- id fromNode;
- id toNode;
-} ICCF_WebCoreSelection;
-
-static ICCF_WebCoreSelection selection = {nil, nil, 0, 0};
-
-void ICCF_GetWebCoreBridgeSelection(WebCoreBridge *bridge, ICCF_WebCoreSelection *ioSel) {
- [ioSel->fromNode release]; ioSel->fromNode = nil;
- [ioSel->toNode release]; ioSel->toNode = nil;
- ioSel->startOffset = [bridge selectionStartOffset];
- ioSel->endOffset = [bridge selectionEndOffset];
- ioSel->fromNode = [[bridge selectionStart] retain];
- ioSel->toNode = [[bridge selectionEnd] retain];
-}
-
-void ICCF_SetWebCoreBridgeSelection(WebCoreBridge *bridge, ICCF_WebCoreSelection *inSel) {
- if (inSel->fromNode == nil || inSel->toNode == nil)
- [bridge deselectAll];
- [bridge setSelectionFrom: inSel->fromNode
- startOffset: inSel->startOffset
- to: inSel->toNode
- endOffset: inSel->endOffset];
-}
-// end Safari < 1.3 section
-
static NSString *selectedString = nil;
static NSRange selectedRange;
@@ -87,18 +45,14 @@
- (void)mouseDown:(NSEvent *)e;
{
- [downEvent release]; downEvent = nil;
- // don't want command-option-click, command-shift-click, etc. to trigger
+ [downEvent release]; downEvent = nil;
+ // don't want command-control-click, command-shift-click, etc. to trigger
if (ICCF_enabled && ICCF_prefs.commandClickEnabled && ICCF_EventIsCommandMouseDown(e)) {
WebCoreBridge *bridge = [(WebHTMLView *)self _bridge];
- if ([self respondsToSelector: @selector(selectedRange)]) {
- // Safari 1.3 save selection: it may be deselected on super mouseDown
- selectedRange = [(WebHTMLView *)self selectedRange];
- } else if ([bridge respondsToSelector: @selector(selectionStartOffset)]) {
- // Safari < 1.3 save selection: it will be deselected on super mouseDown
- ICCF_GetWebCoreBridgeSelection(bridge, &selection);
- ICLog(@"selection start %d@%@ end %d@%@ string %@", [bridge selectionStartOffset], [bridge selectionStart], [bridge selectionEndOffset], [bridge selectionEnd], [bridge selectedString]);
- }
- [selectedString release]; selectedString = nil;
- selectedString = [[bridge selectedString] retain];
+ if ([self respondsToSelector: @selector(selectedRange)]) {
+ // save selection: it may be deselected on super mouseDown
+ selectedRange = [(WebHTMLView *)self selectedRange];
+ }
+ [selectedString release]; selectedString = nil;
+ selectedString = [[bridge selectedString] retain];
downEvent = [e retain];
}
@@ -126,47 +80,26 @@
NS_VOIDRETURN; // donÕt activate on links
}
- if (selectedString == nil || [selectedString length] == 0) {
- ICLog(@"no selected string");
- NS_VOIDRETURN;
- }
- ICCF_StartIC();
- ICCF_LaunchURL(selectedString, ICCF_KeyboardAction());
- if (ICCF_prefs.textBlinkEnabled &&
- [bridge respondsToSelector: @selector(selectNSRange:)]) {
- // blink text in Safari 1.3
- [bridge selectNSRange: selectedRange];
- int i;
- NSRect selectionRect = [bridge selectionRect];
- ICLog(@"selectedRange %@ selectionRect %@ textBlinkCount %d", NSStringFromRange(selectedRange), NSStringFromRect(selectionRect), ICCF_prefs.textBlinkCount);
- for (i = 0 ; i < ICCF_prefs.textBlinkCount ; i++) {
- [bridge deselectAll];
- [self setNeedsDisplayInRect: selectionRect];
- [self display];
- usleep(kICBlinkDelayUsecs);
- [bridge selectNSRange: selectedRange];
- [self setNeedsDisplayInRect: selectionRect];
- [self display];
- usleep(kICBlinkDelayUsecs);
- }
- } else {
- // select text in Safari 1.0-1.2
- ICCF_SetWebCoreBridgeSelection(bridge, &selection);
- if (ICCF_prefs.textBlinkEnabled &&
- [bridge respondsToSelector: @selector(selectionRect)]) {
- // blink text in Safari 1.1/1.2
- int i;
- NSRect selectionRect = [bridge selectionRect];
- for (i = 0 ; i < ICCF_prefs.textBlinkCount ; i++) {
- [bridge deselectAll];
- [self setNeedsDisplayInRect: selectionRect];
- [self display];
- usleep(kICBlinkDelayUsecs);
- ICCF_SetWebCoreBridgeSelection(bridge, &selection);
- [self setNeedsDisplayInRect: selectionRect];
- [self display];
- usleep(kICBlinkDelayUsecs);
- }
- }
- }
+ if (selectedString == nil || [selectedString length] == 0) {
+ ICLog(@"no selected string");
+ NS_VOIDRETURN;
+ }
+ ICCF_StartIC();
+ ICCF_LaunchURL(selectedString, ICCF_KeyboardAction());
+ if (ICCF_prefs.textBlinkEnabled && [bridge respondsToSelector: @selector(selectNSRange:)]) {
+ [bridge selectNSRange: selectedRange];
+ int i;
+ NSRect selectionRect = [bridge selectionRect];
+ ICLog(@"selectedRange %@ selectionRect %@ textBlinkCount %d", NSStringFromRange(selectedRange), NSStringFromRect(selectionRect), ICCF_prefs.textBlinkCount);
+ for (i = 0 ; i < ICCF_prefs.textBlinkCount ; i++) {
+ [bridge deselectAll];
+ [self setNeedsDisplayInRect: selectionRect];
+ [self display];
+ usleep(kICBlinkDelayUsecs);
+ [bridge selectNSRange: selectedRange];
+ [self setNeedsDisplayInRect: selectionRect];
+ [self display];
+ usleep(kICBlinkDelayUsecs);
+ }
+ }
NS_HANDLER
ICCF_HandleException(localException);